@@ -1171,8 +1171,8 @@ define float @test_fneg_ninf_mul_nsz_with_const(float %a) {
1171
1171
ret float %f2
1172
1172
}
1173
1173
1174
- define <2 x float > @test_fneg_ninf_mul_nnan_with_vec_const (<2 x float > %a ) {
1175
- ; CHECK-LABEL: @test_fneg_ninf_mul_nnan_with_vec_const (
1174
+ define <2 x float > @test_fneg_mul_combine_nnan_ninf_with_vec_const (<2 x float > %a ) {
1175
+ ; CHECK-LABEL: @test_fneg_mul_combine_nnan_ninf_with_vec_const (
1176
1176
; CHECK-NEXT: [[F2:%.*]] = fmul nnan <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1177
1177
; CHECK-NEXT: ret <2 x float> [[F2]]
1178
1178
;
@@ -1181,8 +1181,8 @@ define <2 x float> @test_fneg_ninf_mul_nnan_with_vec_const(<2 x float> %a) {
1181
1181
ret <2 x float > %f2
1182
1182
}
1183
1183
1184
- define <2 x float > @test_fneg_ninf_mul_nsz_with_vec_const (<2 x float > %a ) {
1185
- ; CHECK-LABEL: @test_fneg_ninf_mul_nsz_with_vec_const (
1184
+ define <2 x float > @test_fneg_mul_combine_nsz_ninf_with_vec_const (<2 x float > %a ) {
1185
+ ; CHECK-LABEL: @test_fneg_mul_combine_nsz_ninf_with_vec_const (
1186
1186
; CHECK-NEXT: [[F2:%.*]] = fmul nsz <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1187
1187
; CHECK-NEXT: ret <2 x float> [[F2]]
1188
1188
;
@@ -1191,8 +1191,8 @@ define <2 x float> @test_fneg_ninf_mul_nsz_with_vec_const(<2 x float> %a) {
1191
1191
ret <2 x float > %f2
1192
1192
}
1193
1193
1194
- define <2 x float > @test_fneg_nnan_ninf_mul_with_vec_const (<2 x float > %a ) {
1195
- ; CHECK-LABEL: @test_fneg_nnan_ninf_mul_with_vec_const (
1194
+ define <2 x float > @test_fneg_ninf_nnan_mul_with_vec_const (<2 x float > %a ) {
1195
+ ; CHECK-LABEL: @test_fneg_ninf_nnan_mul_with_vec_const (
1196
1196
; CHECK-NEXT: [[F2:%.*]] = fmul nnan <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1197
1197
; CHECK-NEXT: ret <2 x float> [[F2]]
1198
1198
;
@@ -1201,8 +1201,8 @@ define <2 x float> @test_fneg_nnan_ninf_mul_with_vec_const(<2 x float> %a) {
1201
1201
ret <2 x float > %f2
1202
1202
}
1203
1203
1204
- define <2 x float > @test_fneg_nnan_ninf_mul_ninf_with_vec_const (<2 x float > %a ) {
1205
- ; CHECK-LABEL: @test_fneg_nnan_ninf_mul_ninf_with_vec_const (
1204
+ define <2 x float > @test_fneg_mul_combine_nnan_ninf_with_vec_const2 (<2 x float > %a ) {
1205
+ ; CHECK-LABEL: @test_fneg_mul_combine_nnan_ninf_with_vec_const2 (
1206
1206
; CHECK-NEXT: [[F2:%.*]] = fmul nnan ninf <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1207
1207
; CHECK-NEXT: ret <2 x float> [[F2]]
1208
1208
;
@@ -1211,4 +1211,64 @@ define <2 x float> @test_fneg_nnan_ninf_mul_ninf_with_vec_const(<2 x float> %a)
1211
1211
ret <2 x float > %f2
1212
1212
}
1213
1213
1214
+ define <2 x float > @test_fneg_mul_combine_reassoc_ninf_with_vec_const1 (<2 x float > %a ) {
1215
+ ; CHECK-LABEL: @test_fneg_mul_combine_reassoc_ninf_with_vec_const1(
1216
+ ; CHECK-NEXT: [[F2:%.*]] = fmul <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1217
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1218
+ ;
1219
+ %f1 = fmul reassoc <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1220
+ %f2 = fneg ninf <2 x float > %f1
1221
+ ret <2 x float > %f2
1222
+ }
1223
+
1224
+ define <2 x float > @test_fneg_mul_combine_reassoc_ninf_with_vec_const2 (<2 x float > %a ) {
1225
+ ; CHECK-LABEL: @test_fneg_mul_combine_reassoc_ninf_with_vec_const2(
1226
+ ; CHECK-NEXT: [[F2:%.*]] = fmul ninf <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1227
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1228
+ ;
1229
+ %f1 = fmul ninf <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1230
+ %f2 = fneg reassoc ninf <2 x float > %f1
1231
+ ret <2 x float > %f2
1232
+ }
1233
+
1234
+ define <2 x float > @test_fneg_mul_combine_reassoc_ninf_with_vec_const3 (<2 x float > %a ) {
1235
+ ; CHECK-LABEL: @test_fneg_mul_combine_reassoc_ninf_with_vec_const3(
1236
+ ; CHECK-NEXT: [[F2:%.*]] = fmul reassoc <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1237
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1238
+ ;
1239
+ %f1 = fmul reassoc <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1240
+ %f2 = fneg reassoc ninf <2 x float > %f1
1241
+ ret <2 x float > %f2
1242
+ }
1243
+
1244
+ define <2 x float > @test_fneg_mul_combine_contract_ninf_with_vec_const1 (<2 x float > %a ) {
1245
+ ; CHECK-LABEL: @test_fneg_mul_combine_contract_ninf_with_vec_const1(
1246
+ ; CHECK-NEXT: [[F2:%.*]] = fmul <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1247
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1248
+ ;
1249
+ %f1 = fmul contract <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1250
+ %f2 = fneg ninf <2 x float > %f1
1251
+ ret <2 x float > %f2
1252
+ }
1253
+
1254
+ define <2 x float > @test_fneg_mul_combine_contract_ninf_with_vec_const2 (<2 x float > %a ) {
1255
+ ; CHECK-LABEL: @test_fneg_mul_combine_contract_ninf_with_vec_const2(
1256
+ ; CHECK-NEXT: [[F2:%.*]] = fmul ninf <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1257
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1258
+ ;
1259
+ %f1 = fmul ninf <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1260
+ %f2 = fneg contract ninf <2 x float > %f1
1261
+ ret <2 x float > %f2
1262
+ }
1263
+
1264
+ define <2 x float > @test_fneg_mul_combine_contract_ninf_with_vec_const3 (<2 x float > %a ) {
1265
+ ; CHECK-LABEL: @test_fneg_mul_combine_contract_ninf_with_vec_const3(
1266
+ ; CHECK-NEXT: [[F2:%.*]] = fmul contract <2 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00>
1267
+ ; CHECK-NEXT: ret <2 x float> [[F2]]
1268
+ ;
1269
+ %f1 = fmul contract <2 x float > %a , <float 0 .000000 , float -0 .000000 >
1270
+ %f2 = fneg contract ninf <2 x float > %f1
1271
+ ret <2 x float > %f2
1272
+ }
1273
+
1214
1274
!0 = !{}
0 commit comments