@@ -1250,7 +1250,7 @@ define half @mul_zero_nnan(half %x) {
1250
1250
1251
1251
define <2 x float > @mul_zero_nnan_vec_poison (<2 x float > %x ) {
1252
1252
; CHECK-LABEL: @mul_zero_nnan_vec_poison(
1253
- ; CHECK-NEXT: [[R:%.*]] = call nnan <2 x float> @llvm.copysign.v2f32(<2 x float> <float 0.000000e+00, float poison> , <2 x float> [[X:%.*]])
1253
+ ; CHECK-NEXT: [[R:%.*]] = call nnan <2 x float> @llvm.copysign.v2f32(<2 x float> zeroinitializer , <2 x float> [[X:%.*]])
1254
1254
; CHECK-NEXT: ret <2 x float> [[R]]
1255
1255
;
1256
1256
%r = fmul nnan <2 x float > %x , <float 0 .0 , float poison>
@@ -1272,7 +1272,8 @@ define half @mul_zero(half %x) {
1272
1272
1273
1273
define half @mul_negzero_nnan (half %x ) {
1274
1274
; CHECK-LABEL: @mul_negzero_nnan(
1275
- ; CHECK-NEXT: [[R:%.*]] = fmul nnan half [[X:%.*]], 0xH8000
1275
+ ; CHECK-NEXT: [[TMP1:%.*]] = fneg nnan half [[X:%.*]]
1276
+ ; CHECK-NEXT: [[R:%.*]] = call nnan half @llvm.copysign.f16(half 0xH8000, half [[TMP1]])
1276
1277
; CHECK-NEXT: ret half [[R]]
1277
1278
;
1278
1279
%r = fmul nnan half %x , -0 .0
@@ -1282,7 +1283,7 @@ define half @mul_negzero_nnan(half %x) {
1282
1283
define float @mul_pos_zero_nnan_ninf (float nofpclass(inf nan) %a ) {
1283
1284
; CHECK-LABEL: @mul_pos_zero_nnan_ninf(
1284
1285
; CHECK-NEXT: entry:
1285
- ; CHECK-NEXT: [[RET:%.*]] = fmul float [[A:%.*]], 0.000000e+00
1286
+ ; CHECK-NEXT: [[RET:%.*]] = call float @llvm.copysign.f32(float 0.000000e+00, float [[A:%.*]])
1286
1287
; CHECK-NEXT: ret float [[RET]]
1287
1288
;
1288
1289
entry:
@@ -1304,7 +1305,7 @@ entry:
1304
1305
define float @mul_pos_zero_nnan_ninf_fmf (float nofpclass(nan) %a ) {
1305
1306
; CHECK-LABEL: @mul_pos_zero_nnan_ninf_fmf(
1306
1307
; CHECK-NEXT: entry:
1307
- ; CHECK-NEXT: [[RET:%.*]] = fmul ninf float [[A:%.*]], 0.000000e+00
1308
+ ; CHECK-NEXT: [[RET:%.*]] = call ninf float @llvm.copysign.f32(float 0.000000e+00, float [[A:%.*]])
1308
1309
; CHECK-NEXT: ret float [[RET]]
1309
1310
;
1310
1311
entry:
@@ -1315,7 +1316,8 @@ entry:
1315
1316
define float @mul_neg_zero_nnan_ninf (float nofpclass(inf nan) %a ) {
1316
1317
; CHECK-LABEL: @mul_neg_zero_nnan_ninf(
1317
1318
; CHECK-NEXT: entry:
1318
- ; CHECK-NEXT: [[RET:%.*]] = fmul float [[A:%.*]], -0.000000e+00
1319
+ ; CHECK-NEXT: [[TMP0:%.*]] = fneg float [[A:%.*]]
1320
+ ; CHECK-NEXT: [[RET:%.*]] = call float @llvm.copysign.f32(float -0.000000e+00, float [[TMP0]])
1319
1321
; CHECK-NEXT: ret float [[RET]]
1320
1322
;
1321
1323
entry:
@@ -1326,7 +1328,8 @@ entry:
1326
1328
define float @mul_neg_zero_nnan_fmf (float %a ) {
1327
1329
; CHECK-LABEL: @mul_neg_zero_nnan_fmf(
1328
1330
; CHECK-NEXT: entry:
1329
- ; CHECK-NEXT: [[RET:%.*]] = fmul nnan float [[A:%.*]], -0.000000e+00
1331
+ ; CHECK-NEXT: [[TMP0:%.*]] = fneg nnan float [[A:%.*]]
1332
+ ; CHECK-NEXT: [[RET:%.*]] = call nnan float @llvm.copysign.f32(float -0.000000e+00, float [[TMP0]])
1330
1333
; CHECK-NEXT: ret float [[RET]]
1331
1334
;
1332
1335
entry:
@@ -1337,7 +1340,8 @@ entry:
1337
1340
define float @mul_neg_zero_nnan_ninf_fmf (float nofpclass(inf nan) %a ) {
1338
1341
; CHECK-LABEL: @mul_neg_zero_nnan_ninf_fmf(
1339
1342
; CHECK-NEXT: entry:
1340
- ; CHECK-NEXT: [[RET:%.*]] = fmul nnan ninf float [[A:%.*]], -0.000000e+00
1343
+ ; CHECK-NEXT: [[TMP0:%.*]] = fneg nnan ninf float [[A:%.*]]
1344
+ ; CHECK-NEXT: [[RET:%.*]] = call nnan ninf float @llvm.copysign.f32(float -0.000000e+00, float [[TMP0]])
1341
1345
; CHECK-NEXT: ret float [[RET]]
1342
1346
;
1343
1347
entry:
@@ -1350,7 +1354,8 @@ entry:
1350
1354
define <3 x float > @mul_neg_zero_nnan_ninf_vec (<3 x float > nofpclass(inf nan) %a ) {
1351
1355
; CHECK-LABEL: @mul_neg_zero_nnan_ninf_vec(
1352
1356
; CHECK-NEXT: entry:
1353
- ; CHECK-NEXT: [[RET:%.*]] = fmul <3 x float> [[A:%.*]], <float -0.000000e+00, float undef, float poison>
1357
+ ; CHECK-NEXT: [[TMP0:%.*]] = fneg <3 x float> [[A:%.*]]
1358
+ ; CHECK-NEXT: [[RET:%.*]] = call <3 x float> @llvm.copysign.v3f32(<3 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, <3 x float> [[TMP0]])
1354
1359
; CHECK-NEXT: ret <3 x float> [[RET]]
1355
1360
;
1356
1361
entry:
0 commit comments