@@ -66,7 +66,7 @@ define double @test_constant_fold_rcp_f64_43() nounwind {
6666
6767define float @test_constant_fold_rcp_f32_43_strictfp () nounwind strictfp {
6868; CHECK-LABEL: @test_constant_fold_rcp_f32_43_strictfp(
69- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.rcp.f32(float 4.300000e+01) #[[ATTR14 :[0-9]+]]
69+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.rcp.f32(float 4.300000e+01) #[[ATTR17 :[0-9]+]]
7070; CHECK-NEXT: ret float [[VAL]]
7171;
7272 %val = call float @llvm.amdgcn.rcp.f32 (float 4 .300000e+01 ) strictfp nounwind readnone
@@ -115,7 +115,7 @@ define half @test_constant_fold_sqrt_f16_0() nounwind {
115115
116116define float @test_constant_fold_sqrt_f32_0 () nounwind {
117117; CHECK-LABEL: @test_constant_fold_sqrt_f32_0(
118- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.sqrt.f32(float 0.000000e+00) #[[ATTR15 :[0-9]+]]
118+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.sqrt.f32(float 0.000000e+00) #[[ATTR18 :[0-9]+]]
119119; CHECK-NEXT: ret float [[VAL]]
120120;
121121 %val = call float @llvm.amdgcn.sqrt.f32 (float 0 .0 ) nounwind readnone
@@ -124,7 +124,7 @@ define float @test_constant_fold_sqrt_f32_0() nounwind {
124124
125125define double @test_constant_fold_sqrt_f64_0 () nounwind {
126126; CHECK-LABEL: @test_constant_fold_sqrt_f64_0(
127- ; CHECK-NEXT: [[VAL:%.*]] = call double @llvm.amdgcn.sqrt.f64(double 0.000000e+00) #[[ATTR15 ]]
127+ ; CHECK-NEXT: [[VAL:%.*]] = call double @llvm.amdgcn.sqrt.f64(double 0.000000e+00) #[[ATTR18 ]]
128128; CHECK-NEXT: ret double [[VAL]]
129129;
130130 %val = call double @llvm.amdgcn.sqrt.f64 (double 0 .0 ) nounwind readnone
@@ -141,7 +141,7 @@ define half @test_constant_fold_sqrt_f16_neg0() nounwind {
141141
142142define float @test_constant_fold_sqrt_f32_neg0 () nounwind {
143143; CHECK-LABEL: @test_constant_fold_sqrt_f32_neg0(
144- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.sqrt.f32(float -0.000000e+00) #[[ATTR15 ]]
144+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.sqrt.f32(float -0.000000e+00) #[[ATTR18 ]]
145145; CHECK-NEXT: ret float [[VAL]]
146146;
147147 %val = call float @llvm.amdgcn.sqrt.f32 (float -0 .0 ) nounwind readnone
@@ -150,7 +150,7 @@ define float @test_constant_fold_sqrt_f32_neg0() nounwind {
150150
151151define double @test_constant_fold_sqrt_f64_neg0 () nounwind {
152152; CHECK-LABEL: @test_constant_fold_sqrt_f64_neg0(
153- ; CHECK-NEXT: [[VAL:%.*]] = call double @llvm.amdgcn.sqrt.f64(double -0.000000e+00) #[[ATTR15 ]]
153+ ; CHECK-NEXT: [[VAL:%.*]] = call double @llvm.amdgcn.sqrt.f64(double -0.000000e+00) #[[ATTR18 ]]
154154; CHECK-NEXT: ret double [[VAL]]
155155;
156156 %val = call double @llvm.amdgcn.sqrt.f64 (double -0 .0 ) nounwind readnone
@@ -718,7 +718,7 @@ define i1 @test_class_isnan_f32(float %x) nounwind {
718718
719719define i1 @test_class_isnan_f32_strict (float %x ) nounwind strictfp {
720720; CHECK-LABEL: @test_class_isnan_f32_strict(
721- ; CHECK-NEXT: [[VAL:%.*]] = call i1 @llvm.is.fpclass.f32(float [[X:%.*]], i32 3) #[[ATTR16 :[0-9]+]]
721+ ; CHECK-NEXT: [[VAL:%.*]] = call i1 @llvm.is.fpclass.f32(float [[X:%.*]], i32 3) #[[ATTR19 :[0-9]+]]
722722; CHECK-NEXT: ret i1 [[VAL]]
723723;
724724 %val = call i1 @llvm.amdgcn.class.f32 (float %x , i32 3 ) strictfp
@@ -736,7 +736,7 @@ define i1 @test_class_is_p0_n0_f32(float %x) nounwind {
736736
737737define i1 @test_class_is_p0_n0_f32_strict (float %x ) nounwind strictfp {
738738; CHECK-LABEL: @test_class_is_p0_n0_f32_strict(
739- ; CHECK-NEXT: [[VAL:%.*]] = call i1 @llvm.is.fpclass.f32(float [[X:%.*]], i32 96) #[[ATTR16 ]]
739+ ; CHECK-NEXT: [[VAL:%.*]] = call i1 @llvm.is.fpclass.f32(float [[X:%.*]], i32 96) #[[ATTR19 ]]
740740; CHECK-NEXT: ret i1 [[VAL]]
741741;
742742 %val = call i1 @llvm.amdgcn.class.f32 (float %x , i32 96 ) strictfp
@@ -2000,7 +2000,7 @@ define i64 @icmp_constant_inputs_false() {
20002000
20012001define i64 @icmp_constant_inputs_true () {
20022002; CHECK-LABEL: @icmp_constant_inputs_true(
2003- ; CHECK-NEXT: [[RESULT:%.*]] = call i64 @llvm.read_register.i64(metadata [[META0:![0-9]+]]) #[[ATTR17 :[0-9]+]]
2003+ ; CHECK-NEXT: [[RESULT:%.*]] = call i64 @llvm.read_register.i64(metadata [[META0:![0-9]+]]) #[[ATTR20 :[0-9]+]]
20042004; CHECK-NEXT: ret i64 [[RESULT]]
20052005;
20062006 %result = call i64 @llvm.amdgcn.icmp.i64.i32 (i32 9 , i32 8 , i32 34 )
@@ -2707,7 +2707,7 @@ define i64 @fcmp_constant_inputs_false() {
27072707
27082708define i64 @fcmp_constant_inputs_true () {
27092709; CHECK-LABEL: @fcmp_constant_inputs_true(
2710- ; CHECK-NEXT: [[RESULT:%.*]] = call i64 @llvm.read_register.i64(metadata [[META0]]) #[[ATTR17 ]]
2710+ ; CHECK-NEXT: [[RESULT:%.*]] = call i64 @llvm.read_register.i64(metadata [[META0]]) #[[ATTR20 ]]
27112711; CHECK-NEXT: ret i64 [[RESULT]]
27122712;
27132713 %result = call i64 @llvm.amdgcn.fcmp.i64.f32 (float 2 .0 , float 4 .0 , i32 4 )
@@ -5845,7 +5845,7 @@ define double @trig_preop_constfold_neg32_segment() {
58455845
58465846define double @trig_preop_constfold_strictfp () strictfp {
58475847; CHECK-LABEL: @trig_preop_constfold_strictfp(
5848- ; CHECK-NEXT: [[VAL:%.*]] = call double @llvm.amdgcn.trig.preop.f64(double 3.454350e+02, i32 5) #[[ATTR16 ]]
5848+ ; CHECK-NEXT: [[VAL:%.*]] = call double @llvm.amdgcn.trig.preop.f64(double 3.454350e+02, i32 5) #[[ATTR19 ]]
58495849; CHECK-NEXT: ret double [[VAL]]
58505850;
58515851 %val = call double @llvm.amdgcn.trig.preop.f64 (double 3 .454350e+02 , i32 5 ) strictfp
@@ -6214,7 +6214,7 @@ define half @test_constant_fold_log_f16_neg10() {
62146214
62156215define float @test_constant_fold_log_f32_qnan_strictfp () strictfp {
62166216; CHECK-LABEL: @test_constant_fold_log_f32_qnan_strictfp(
6217- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float 0x7FF8000000000000) #[[ATTR16 ]]
6217+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float 0x7FF8000000000000) #[[ATTR19 ]]
62186218; CHECK-NEXT: ret float [[VAL]]
62196219;
62206220 %val = call float @llvm.amdgcn.log.f32 (float 0x7FF8000000000000 ) strictfp
@@ -6223,7 +6223,7 @@ define float @test_constant_fold_log_f32_qnan_strictfp() strictfp {
62236223
62246224define float @test_constant_fold_log_f32_0_strictfp () strictfp {
62256225; CHECK-LABEL: @test_constant_fold_log_f32_0_strictfp(
6226- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float 0.000000e+00) #[[ATTR16 ]]
6226+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float 0.000000e+00) #[[ATTR19 ]]
62276227; CHECK-NEXT: ret float [[VAL]]
62286228;
62296229 %val = call float @llvm.amdgcn.log.f32 (float 0 .0 ) strictfp
@@ -6232,7 +6232,7 @@ define float @test_constant_fold_log_f32_0_strictfp() strictfp {
62326232
62336233define float @test_constant_fold_log_f32_neg0_strictfp () strictfp {
62346234; CHECK-LABEL: @test_constant_fold_log_f32_neg0_strictfp(
6235- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float -0.000000e+00) #[[ATTR16 ]]
6235+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float -0.000000e+00) #[[ATTR19 ]]
62366236; CHECK-NEXT: ret float [[VAL]]
62376237;
62386238 %val = call float @llvm.amdgcn.log.f32 (float -0 .0 ) strictfp
@@ -6241,7 +6241,7 @@ define float @test_constant_fold_log_f32_neg0_strictfp() strictfp {
62416241
62426242define float @test_constant_fold_log_f32_neg_strictfp () strictfp {
62436243; CHECK-LABEL: @test_constant_fold_log_f32_neg_strictfp(
6244- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float -1.000000e+01) #[[ATTR16 ]]
6244+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float -1.000000e+01) #[[ATTR19 ]]
62456245; CHECK-NEXT: ret float [[VAL]]
62466246;
62476247 %val = call float @llvm.amdgcn.log.f32 (float -10 .0 ) strictfp
@@ -6258,7 +6258,7 @@ define float @test_constant_fold_log_f32_pinf_strictfp() strictfp {
62586258
62596259define float @test_constant_fold_log_f32_ninf_strictfp () strictfp {
62606260; CHECK-LABEL: @test_constant_fold_log_f32_ninf_strictfp(
6261- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float 0xFFF0000000000000) #[[ATTR16 ]]
6261+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.log.f32(float 0xFFF0000000000000) #[[ATTR19 ]]
62626262; CHECK-NEXT: ret float [[VAL]]
62636263;
62646264 %val = call float @llvm.amdgcn.log.f32 (float 0xFFF0000000000000 ) strictfp
@@ -6460,7 +6460,7 @@ define half @test_constant_fold_exp2_f16_neg10() {
64606460
64616461define float @test_constant_fold_exp2_f32_qnan_strictfp () strictfp {
64626462; CHECK-LABEL: @test_constant_fold_exp2_f32_qnan_strictfp(
6463- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 0x7FF8000000000000) #[[ATTR16 ]]
6463+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 0x7FF8000000000000) #[[ATTR19 ]]
64646464; CHECK-NEXT: ret float [[VAL]]
64656465;
64666466 %val = call float @llvm.amdgcn.exp2.f32 (float 0x7FF8000000000000 ) strictfp
@@ -6469,7 +6469,7 @@ define float @test_constant_fold_exp2_f32_qnan_strictfp() strictfp {
64696469
64706470define float @test_constant_fold_exp2_f32_0_strictfp () strictfp {
64716471; CHECK-LABEL: @test_constant_fold_exp2_f32_0_strictfp(
6472- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 0.000000e+00) #[[ATTR16 ]]
6472+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 0.000000e+00) #[[ATTR19 ]]
64736473; CHECK-NEXT: ret float [[VAL]]
64746474;
64756475 %val = call float @llvm.amdgcn.exp2.f32 (float 0 .0 ) strictfp
@@ -6478,7 +6478,7 @@ define float @test_constant_fold_exp2_f32_0_strictfp() strictfp {
64786478
64796479define float @test_constant_fold_exp2_f32_neg0_strictfp () strictfp {
64806480; CHECK-LABEL: @test_constant_fold_exp2_f32_neg0_strictfp(
6481- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -0.000000e+00) #[[ATTR16 ]]
6481+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -0.000000e+00) #[[ATTR19 ]]
64826482; CHECK-NEXT: ret float [[VAL]]
64836483;
64846484 %val = call float @llvm.amdgcn.exp2.f32 (float -0 .0 ) strictfp
@@ -6487,7 +6487,7 @@ define float @test_constant_fold_exp2_f32_neg0_strictfp() strictfp {
64876487
64886488define float @test_constant_fold_exp2_f32_1_strictfp () strictfp {
64896489; CHECK-LABEL: @test_constant_fold_exp2_f32_1_strictfp(
6490- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 1.000000e+00) #[[ATTR16 ]]
6490+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 1.000000e+00) #[[ATTR19 ]]
64916491; CHECK-NEXT: ret float [[VAL]]
64926492;
64936493 %val = call float @llvm.amdgcn.exp2.f32 (float 1 .0 ) strictfp
@@ -6496,7 +6496,7 @@ define float @test_constant_fold_exp2_f32_1_strictfp() strictfp {
64966496
64976497define float @test_constant_fold_exp2_f32_neg1_strictfp () strictfp {
64986498; CHECK-LABEL: @test_constant_fold_exp2_f32_neg1_strictfp(
6499- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -1.000000e+00) #[[ATTR16 ]]
6499+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -1.000000e+00) #[[ATTR19 ]]
65006500; CHECK-NEXT: ret float [[VAL]]
65016501;
65026502 %val = call float @llvm.amdgcn.exp2.f32 (float -1 .0 ) strictfp
@@ -6505,7 +6505,7 @@ define float @test_constant_fold_exp2_f32_neg1_strictfp() strictfp {
65056505
65066506define float @test_constant_fold_exp2_f32_2_strictfp () strictfp {
65076507; CHECK-LABEL: @test_constant_fold_exp2_f32_2_strictfp(
6508- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 2.000000e+00) #[[ATTR16 ]]
6508+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float 2.000000e+00) #[[ATTR19 ]]
65096509; CHECK-NEXT: ret float [[VAL]]
65106510;
65116511 %val = call float @llvm.amdgcn.exp2.f32 (float 2 .0 ) strictfp
@@ -6514,7 +6514,7 @@ define float @test_constant_fold_exp2_f32_2_strictfp() strictfp {
65146514
65156515define float @test_constant_fold_exp2_f32_neg2_strictfp () strictfp {
65166516; CHECK-LABEL: @test_constant_fold_exp2_f32_neg2_strictfp(
6517- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -2.000000e+00) #[[ATTR16 ]]
6517+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -2.000000e+00) #[[ATTR19 ]]
65186518; CHECK-NEXT: ret float [[VAL]]
65196519;
65206520 %val = call float @llvm.amdgcn.exp2.f32 (float -2 .0 ) strictfp
@@ -6523,7 +6523,7 @@ define float @test_constant_fold_exp2_f32_neg2_strictfp() strictfp {
65236523
65246524define float @test_constant_fold_exp2_f32_neg_strictfp () strictfp {
65256525; CHECK-LABEL: @test_constant_fold_exp2_f32_neg_strictfp(
6526- ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -1.000000e+01) #[[ATTR16 ]]
6526+ ; CHECK-NEXT: [[VAL:%.*]] = call float @llvm.amdgcn.exp2.f32(float -1.000000e+01) #[[ATTR19 ]]
65276527; CHECK-NEXT: ret float [[VAL]]
65286528;
65296529 %val = call float @llvm.amdgcn.exp2.f32 (float -10 .0 ) strictfp
@@ -6571,13 +6571,15 @@ declare i32 @llvm.amdgcn.prng.b32(i32)
65716571define i32 @prng_undef_i32 () {
65726572; CHECK-LABEL: @prng_undef_i32(
65736573; CHECK-NEXT: ret i32 undef
6574+ ;
65746575 %prng = call i32 @llvm.amdgcn.prng.b32 (i32 undef )
65756576 ret i32 %prng
65766577}
65776578
65786579define i32 @prng_poison_i32 () {
65796580; CHECK-LABEL: @prng_poison_i32(
65806581; CHECK-NEXT: ret i32 poison
6582+ ;
65816583 %prng = call i32 @llvm.amdgcn.prng.b32 (i32 poison)
65826584 ret i32 %prng
65836585}
0 commit comments