@@ -41,7 +41,7 @@ define float @fmul_fneg(float %x) {
41
41
42
42
define float @fmul_fsub_fmf (float %x ) {
43
43
; CHECK-LABEL: @fmul_fsub_fmf(
44
- ; CHECK-NEXT: [[R:%.*]] = fmul reassoc nsz float [[X:%.*]], -4.200000e+01
44
+ ; CHECK-NEXT: [[R:%.*]] = fmul float [[X:%.*]], -4.200000e+01
45
45
; CHECK-NEXT: ret float [[R]]
46
46
;
47
47
%m = fmul float %x , 42 .0
@@ -51,7 +51,7 @@ define float @fmul_fsub_fmf(float %x) {
51
51
52
52
define float @fmul_fneg_fmf (float %x ) {
53
53
; CHECK-LABEL: @fmul_fneg_fmf(
54
- ; CHECK-NEXT: [[R:%.*]] = fmul reassoc nsz float [[X:%.*]], -4.200000e+01
54
+ ; CHECK-NEXT: [[R:%.*]] = fmul float [[X:%.*]], -4.200000e+01
55
55
; CHECK-NEXT: ret float [[R]]
56
56
;
57
57
%m = fmul float %x , 42 .0
@@ -1121,31 +1121,30 @@ define float @test_fneg_ninf_mul_with_anyzero(float %a) {
1121
1121
1122
1122
define float @test_fsub_ninf_mul_with_anyzero (float %a ) {
1123
1123
; CHECK-LABEL: @test_fsub_ninf_mul_with_anyzero(
1124
- ; CHECK-NEXT: [[F2:%.*]] = fmul float [[A:%.*]], -0.000000e+00
1124
+ ; CHECK-NEXT: [[F2:%.*]] = fmul nsz float [[A:%.*]], -0.000000e+00
1125
1125
; CHECK-NEXT: ret float [[F2]]
1126
1126
;
1127
- %f1 = fmul float %a , 0 .000000
1127
+ %f1 = fmul nsz float %a , 0 .000000
1128
1128
%f2 = fsub ninf float -0 .000000 , %f1
1129
1129
ret float %f2
1130
1130
}
1131
1131
1132
1132
define float @test_fneg_nnan_mul_with_anyzero (float %a ) {
1133
1133
; CHECK-LABEL: @test_fneg_nnan_mul_with_anyzero(
1134
- ; CHECK-NEXT: [[TMP1:%.*]] = fneg nnan float [[A:%.*]]
1135
- ; CHECK-NEXT: [[F2:%.*]] = call nnan float @llvm.copysign.f32(float 0.000000e+00, float [[TMP1]])
1134
+ ; CHECK-NEXT: [[F2:%.*]] = fmul ninf float [[A:%.*]], -0.000000e+00
1136
1135
; CHECK-NEXT: ret float [[F2]]
1137
1136
;
1138
- %f1 = fmul float %a , 0 .000000
1137
+ %f1 = fmul ninf float %a , 0 .000000
1139
1138
%f2 = fneg nnan float %f1
1140
1139
ret float %f2
1141
1140
}
1142
1141
1143
1142
define float @test_fneg_nsz_mul_with_anyzero (float %a ) {
1144
1143
; CHECK-LABEL: @test_fneg_nsz_mul_with_anyzero(
1145
- ; CHECK-NEXT: [[F2:%.*]] = fmul nsz float [[A:%.*]], -0.000000e+00
1144
+ ; CHECK-NEXT: [[F2:%.*]] = fmul ninf float [[A:%.*]], -0.000000e+00
1146
1145
; CHECK-NEXT: ret float [[F2]]
1147
1146
;
1148
- %f1 = fmul float %a , 0 .000000
1147
+ %f1 = fmul ninf float %a , 0 .000000
1149
1148
%f2 = fneg nsz float %f1
1150
1149
ret float %f2
1151
1150
}
@@ -1163,7 +1162,7 @@ define float @test_fneg_ninf_mul_nnan_with_const(float %a) {
1163
1162
1164
1163
define float @test_fneg_ninf_mul_nsz_with_const (float %a ) {
1165
1164
; CHECK-LABEL: @test_fneg_ninf_mul_nsz_with_const(
1166
- ; CHECK-NEXT: [[F2:%.*]] = fmul float [[A:%.*]], -0.000000e+00
1165
+ ; CHECK-NEXT: [[F2:%.*]] = fmul nsz float [[A:%.*]], -0.000000e+00
1167
1166
; CHECK-NEXT: ret float [[F2]]
1168
1167
;
1169
1168
%f1 = fmul nsz float %a , 0 .000000
@@ -1183,13 +1182,22 @@ define <2 x float> @test_fneg_ninf_mul_nnan_with_vec_const(<2 x float> %a) {
1183
1182
1184
1183
define <2 x float > @test_fneg_ninf_mul_nsz_with_vec_const (<2 x float > %a ) {
1185
1184
; CHECK-LABEL: @test_fneg_ninf_mul_nsz_with_vec_const(
1186
- ; CHECK-NEXT: [[F2:%.*]] = fmul <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1185
+ ; CHECK-NEXT: [[F2:%.*]] = fmul nsz <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1187
1186
; CHECK-NEXT: ret <2 x float> [[F2]]
1188
1187
;
1189
1188
%f1 = fmul nsz <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1190
1189
%f2 = fneg ninf <2 x float > %f1
1191
1190
ret <2 x float > %f2
1192
1191
}
1193
1192
1193
+ define <2 x float > @test_fneg_nnan_ninf_mul_with_vec_const (<2 x float > %a ) {
1194
+ ; CHECK-LABEL: @test_fneg_nnan_ninf_mul_with_vec_const(
1195
+ ; CHECK-NEXT: [[F2:%.*]] = fmul <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1196
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1197
+ ;
1198
+ %f1 = fmul <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1199
+ %f2 = fneg nnan ninf <2 x float > %f1
1200
+ ret <2 x float > %f2
1201
+ }
1194
1202
1195
1203
!0 = !{}
0 commit comments