@@ -1010,8 +1010,11 @@ define float @test_ui_add_with_signed_constant(i32 %shr.i) {
1010
1010
define float @missed_nonzero_check_on_constant_for_si_fmul (i1 %c , i1 %.b , ptr %g_2345 ) {
1011
1011
; CHECK-LABEL: @missed_nonzero_check_on_constant_for_si_fmul(
1012
1012
; CHECK-NEXT: [[SEL:%.*]] = select i1 [[C:%.*]], i32 65529, i32 53264
1013
+ ; CHECK-NEXT: [[CONV_I:%.*]] = trunc i32 [[SEL]] to i16
1014
+ ; CHECK-NEXT: [[CONV1_I:%.*]] = sitofp i16 [[CONV_I]] to float
1015
+ ; CHECK-NEXT: [[MUL3_I_I:%.*]] = fmul float [[CONV1_I]], 0.000000e+00
1013
1016
; CHECK-NEXT: store i32 [[SEL]], ptr [[G_2345:%.*]], align 4
1014
- ; CHECK-NEXT: ret float 0.000000e+00
1017
+ ; CHECK-NEXT: ret float [[MUL3_I_I]]
1015
1018
;
1016
1019
%sel = select i1 %c , i32 65529 , i32 53264
1017
1020
%conv.i = trunc i32 %sel to i16
@@ -1024,8 +1027,13 @@ define float @missed_nonzero_check_on_constant_for_si_fmul(i1 %c, i1 %.b, ptr %g
1024
1027
define <2 x float > @missed_nonzero_check_on_constant_for_si_fmul_vec (i1 %c , i1 %.b , ptr %g_2345 ) {
1025
1028
; CHECK-LABEL: @missed_nonzero_check_on_constant_for_si_fmul_vec(
1026
1029
; CHECK-NEXT: [[SEL:%.*]] = select i1 [[C:%.*]], i32 65529, i32 53264
1030
+ ; CHECK-NEXT: [[CONV_I_S:%.*]] = trunc i32 [[SEL]] to i16
1031
+ ; CHECK-NEXT: [[CONV_I_V:%.*]] = insertelement <2 x i16> poison, i16 [[CONV_I_S]], i64 0
1032
+ ; CHECK-NEXT: [[CONV_I:%.*]] = shufflevector <2 x i16> [[CONV_I_V]], <2 x i16> poison, <2 x i32> zeroinitializer
1033
+ ; CHECK-NEXT: [[CONV1_I:%.*]] = sitofp <2 x i16> [[CONV_I]] to <2 x float>
1034
+ ; CHECK-NEXT: [[MUL3_I_I:%.*]] = fmul <2 x float> [[CONV1_I]], zeroinitializer
1027
1035
; CHECK-NEXT: store i32 [[SEL]], ptr [[G_2345:%.*]], align 4
1028
- ; CHECK-NEXT: ret <2 x float> zeroinitializer
1036
+ ; CHECK-NEXT: ret <2 x float> [[MUL3_I_I]]
1029
1037
;
1030
1038
%sel = select i1 %c , i32 65529 , i32 53264
1031
1039
%conv.i.s = trunc i32 %sel to i16
0 commit comments