@@ -892,8 +892,8 @@ define float @ldexp_8_contractable(float %x, float %y) {
892
892
define float @ldexp_f32_mask_select_0 (i1 %cond , float %x , i32 %y ) {
893
893
; CHECK-LABEL: define float @ldexp_f32_mask_select_0
894
894
; 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]]
897
897
; CHECK-NEXT: ret float [[LDEXP]]
898
898
;
899
899
%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) {
904
904
define float @ldexp_nnan_f32_mask_select_0 (i1 %cond , float %x , i32 %y ) {
905
905
; CHECK-LABEL: define float @ldexp_nnan_f32_mask_select_0
906
906
; 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]]
909
909
; CHECK-NEXT: ret float [[LDEXP]]
910
910
;
911
911
%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) {
916
916
define float @ldexp_flags_f32_mask_select_0 (i1 %cond , float %x , i32 %y ) {
917
917
; CHECK-LABEL: define float @ldexp_flags_f32_mask_select_0
918
918
; 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]]
921
921
; CHECK-NEXT: ret float [[LDEXP]]
922
922
;
923
923
%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) {
928
928
define float @ldexp_f32_mask_select_0_swap (i1 %cond , float %x , i32 %y ) {
929
929
; CHECK-LABEL: define float @ldexp_f32_mask_select_0_swap
930
930
; 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]]
933
933
; CHECK-NEXT: ret float [[LDEXP]]
934
934
;
935
935
%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 {
992
992
define <2 x float > @ldexp_v2f32_mask_select_0 (<2 x i1 > %cond , <2 x float > %x , <2 x i32 > %y ) {
993
993
; CHECK-LABEL: define <2 x float> @ldexp_v2f32_mask_select_0
994
994
; 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]]
997
997
; CHECK-NEXT: ret <2 x float> [[LDEXP]]
998
998
;
999
999
%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
1004
1004
define <2 x float > @ldexp_v2f32_mask_select_0_swap (<2 x i1 > %cond , <2 x float > %x , <2 x i32 > %y ) {
1005
1005
; CHECK-LABEL: define <2 x float> @ldexp_v2f32_mask_select_0_swap
1006
1006
; 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]]
1009
1009
; CHECK-NEXT: ret <2 x float> [[LDEXP]]
1010
1010
;
1011
1011
%select = select <2 x i1 > %cond , <2 x i32 > zeroinitializer , <2 x i32 > %y
0 commit comments