@@ -892,8 +892,8 @@ define float @ldexp_8_contractable(float %x, float %y) {
892892define float @ldexp_f32_mask_select_0 (i1 %cond , float %x , i32 %y ) {
893893; CHECK-LABEL: define float @ldexp_f32_mask_select_0
894894; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], i32 [[Y:%.*]]) {
895- ; CHECK-NEXT: [[SELECT :%.*]] = select i1 [[COND ]], i32 [[Y]], i32 0
896- ; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32( float [[X ]], i32 [[SELECT]])
895+ ; CHECK-NEXT: [[TMP1 :%.*]] = call float @llvm.ldexp.f32.i32(float [[X ]], i32 [[Y]])
896+ ; CHECK-NEXT: [[LDEXP:%.*]] = select i1 [[COND]], float [[TMP1 ]], float [[X]]
897897; CHECK-NEXT: ret float [[LDEXP]]
898898;
899899 %select = select i1 %cond , i32 %y , i32 0
@@ -904,8 +904,8 @@ define float @ldexp_f32_mask_select_0(i1 %cond, float %x, i32 %y) {
904904define float @ldexp_nnan_f32_mask_select_0 (i1 %cond , float %x , i32 %y ) {
905905; CHECK-LABEL: define float @ldexp_nnan_f32_mask_select_0
906906; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], i32 [[Y:%.*]]) {
907- ; CHECK-NEXT: [[SELECT :%.*]] = select i1 [[COND ]], i32 [[Y]], i32 0
908- ; CHECK-NEXT: [[LDEXP:%.*]] = call nnan float @llvm.ldexp.f32.i32( float [[X ]], i32 [[SELECT]])
907+ ; CHECK-NEXT: [[TMP1 :%.*]] = call nnan float @llvm.ldexp.f32.i32(float [[X ]], i32 [[Y]])
908+ ; CHECK-NEXT: [[LDEXP:%.*]] = select i1 [[COND]], float [[TMP1 ]], float [[X]]
909909; CHECK-NEXT: ret float [[LDEXP]]
910910;
911911 %select = select i1 %cond , i32 %y , i32 0
@@ -916,8 +916,8 @@ define float @ldexp_nnan_f32_mask_select_0(i1 %cond, float %x, i32 %y) {
916916define float @ldexp_flags_f32_mask_select_0 (i1 %cond , float %x , i32 %y ) {
917917; CHECK-LABEL: define float @ldexp_flags_f32_mask_select_0
918918; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], i32 [[Y:%.*]]) {
919- ; CHECK-NEXT: [[SELECT :%.*]] = select i1 [[COND ]], i32 [[Y]], i32 0
920- ; CHECK-NEXT: [[LDEXP:%.*]] = call ninf nsz float @llvm.ldexp.f32.i32(float [[X ]], i32 [[SELECT]])
919+ ; CHECK-NEXT: [[TMP1 :%.*]] = call ninf nsz float @llvm.ldexp.f32.i32(float [[X ]], i32 [[Y]])
920+ ; CHECK-NEXT: [[LDEXP:%.*]] = select i1 [[COND]], float [[TMP1 ]], float [[X]]
921921; CHECK-NEXT: ret float [[LDEXP]]
922922;
923923 %select = select i1 %cond , i32 %y , i32 0
@@ -928,8 +928,8 @@ define float @ldexp_flags_f32_mask_select_0(i1 %cond, float %x, i32 %y) {
928928define float @ldexp_f32_mask_select_0_swap (i1 %cond , float %x , i32 %y ) {
929929; CHECK-LABEL: define float @ldexp_f32_mask_select_0_swap
930930; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], i32 [[Y:%.*]]) {
931- ; CHECK-NEXT: [[SELECT :%.*]] = select i1 [[COND ]], i32 0, i32 [[Y]]
932- ; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32( float [[X]], i32 [[SELECT]])
931+ ; CHECK-NEXT: [[TMP1 :%.*]] = call float @llvm.ldexp.f32.i32(float [[X ]], i32 [[Y]])
932+ ; CHECK-NEXT: [[LDEXP:%.*]] = select i1 [[COND]], float [[X]], float [[TMP1]]
933933; CHECK-NEXT: ret float [[LDEXP]]
934934;
935935 %select = select i1 %cond , i32 0 , i32 %y
@@ -992,8 +992,8 @@ define float @ldexp_f32_mask_select_0_strictfp(i1 %cond, float %x, i32 %y) #0 {
992992define <2 x float > @ldexp_v2f32_mask_select_0 (<2 x i1 > %cond , <2 x float > %x , <2 x i32 > %y ) {
993993; CHECK-LABEL: define <2 x float> @ldexp_v2f32_mask_select_0
994994; CHECK-SAME: (<2 x i1> [[COND:%.*]], <2 x float> [[X:%.*]], <2 x i32> [[Y:%.*]]) {
995- ; CHECK-NEXT: [[SELECT :%.*]] = select <2 x i1> [[COND]], <2 x i32 > [[Y ]], <2 x i32> zeroinitializer
996- ; CHECK-NEXT: [[LDEXP:%.*]] = call nnan nsz <2 x float> @llvm.ldexp.v2f32.v2i32( <2 x float> [[X ]], <2 x i32 > [[SELECT]])
995+ ; CHECK-NEXT: [[TMP1 :%.*]] = call nnan nsz <2 x float> @llvm.ldexp.v2f32.v2i32( <2 x float > [[X ]], <2 x i32> [[Y]])
996+ ; CHECK-NEXT: [[LDEXP:%.*]] = select <2 x i1> [[COND]], <2 x float> [[TMP1 ]], <2 x float > [[X]]
997997; CHECK-NEXT: ret <2 x float> [[LDEXP]]
998998;
999999 %select = select <2 x i1 > %cond , <2 x i32 > %y , <2 x i32 > zeroinitializer
@@ -1004,8 +1004,8 @@ define <2 x float> @ldexp_v2f32_mask_select_0(<2 x i1> %cond, <2 x float> %x, <2
10041004define <2 x float > @ldexp_v2f32_mask_select_0_swap (<2 x i1 > %cond , <2 x float > %x , <2 x i32 > %y ) {
10051005; CHECK-LABEL: define <2 x float> @ldexp_v2f32_mask_select_0_swap
10061006; CHECK-SAME: (<2 x i1> [[COND:%.*]], <2 x float> [[X:%.*]], <2 x i32> [[Y:%.*]]) {
1007- ; CHECK-NEXT: [[SELECT :%.*]] = select <2 x i1> [[COND]], <2 x i32> zeroinitializer , <2 x i32> [[Y]]
1008- ; CHECK-NEXT: [[LDEXP:%.*]] = call nnan nsz <2 x float> @llvm.ldexp.v2f32.v2i32( <2 x float> [[X]], <2 x i32 > [[SELECT]])
1007+ ; CHECK-NEXT: [[TMP1 :%.*]] = call nnan nsz <2 x float> @llvm.ldexp.v2f32.v2i32( <2 x float> [[X]] , <2 x i32> [[Y]])
1008+ ; CHECK-NEXT: [[LDEXP:%.*]] = select <2 x i1> [[COND]], <2 x float> [[X]], <2 x float > [[TMP1]]
10091009; CHECK-NEXT: ret <2 x float> [[LDEXP]]
10101010;
10111011 %select = select <2 x i1 > %cond , <2 x i32 > zeroinitializer , <2 x i32 > %y
0 commit comments