; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=instsimplify -S | FileCheck %s define i64 @vscale_i64_range_none() #0 { ; CHECK-LABEL: @vscale_i64_range_none( ; CHECK-NEXT: [[OUT:%.*]] = call i64 @llvm.vscale.i64() ; CHECK-NEXT: ret i64 [[OUT]] ; %out = call i64 @llvm.vscale.i64() ret i64 %out } define i64 @vscale_i64_range_1_1() #1 { ; CHECK-LABEL: @vscale_i64_range_1_1( ; CHECK-NEXT: ret i64 1 ; %out = call i64 @llvm.vscale.i64() ret i64 %out } define i32 @vscale_i32_range_2_2() #2 { ; CHECK-LABEL: @vscale_i32_range_2_2( ; CHECK-NEXT: ret i32 2 ; %out = call i32 @llvm.vscale.i32() ret i32 %out } define i64 @vscale_i64_range_2_4() #3 { ; CHECK-LABEL: @vscale_i64_range_2_4( ; CHECK-NEXT: [[OUT:%.*]] = call i64 @llvm.vscale.i64() ; CHECK-NEXT: ret i64 [[OUT]] ; %out = call i64 @llvm.vscale.i64() ret i64 %out } ; Function Attrs: nofree nosync nounwind readnone willreturn declare i64 @llvm.vscale.i64() #0 ; Function Attrs: nofree nosync nounwind readnone willreturn declare i32 @llvm.vscale.i32() #0 attributes #0 = { nofree nosync nounwind readnone willreturn } attributes #1 = { mustprogress nofree nosync nounwind uwtable vscale_range(1,1) } attributes #2 = { mustprogress nofree nosync nounwind uwtable vscale_range(2,2) } attributes #3 = { mustprogress nofree nosync nounwind uwtable vscale_range(2,4) }