Skip to content

Commit cdb0602

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent e6b5bd5 commit cdb0602

File tree

1 file changed

+90
-0
lines changed
  • llvm/test/Transforms/InstCombine

1 file changed

+90
-0
lines changed

llvm/test/Transforms/InstCombine/fmul.ll

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,3 +1278,93 @@ define half @mul_negzero_nnan(half %x) {
12781278
%r = fmul nnan half %x, -0.0
12791279
ret half %r
12801280
}
1281+
1282+
define float @mul_pos_zero_nnan_ninf(float nofpclass(inf nan) %a) {
1283+
; CHECK-LABEL: @mul_pos_zero_nnan_ninf(
1284+
; CHECK-NEXT: entry:
1285+
; CHECK-NEXT: [[RET:%.*]] = fmul float [[A:%.*]], 0.000000e+00
1286+
; CHECK-NEXT: ret float [[RET]]
1287+
;
1288+
entry:
1289+
%ret = fmul float %a, 0.000000e+00
1290+
ret float %ret
1291+
}
1292+
1293+
define float @mul_pos_zero_nnan(float nofpclass(nan) %a) {
1294+
; CHECK-LABEL: @mul_pos_zero_nnan(
1295+
; CHECK-NEXT: entry:
1296+
; CHECK-NEXT: [[RET:%.*]] = fmul float [[A:%.*]], 0.000000e+00
1297+
; CHECK-NEXT: ret float [[RET]]
1298+
;
1299+
entry:
1300+
%ret = fmul float %a, 0.000000e+00
1301+
ret float %ret
1302+
}
1303+
1304+
define float @mul_pos_zero_nnan_ninf_fmf(float nofpclass(nan) %a) {
1305+
; CHECK-LABEL: @mul_pos_zero_nnan_ninf_fmf(
1306+
; CHECK-NEXT: entry:
1307+
; CHECK-NEXT: [[RET:%.*]] = fmul ninf float [[A:%.*]], 0.000000e+00
1308+
; CHECK-NEXT: ret float [[RET]]
1309+
;
1310+
entry:
1311+
%ret = fmul ninf float %a, 0.000000e+00
1312+
ret float %ret
1313+
}
1314+
1315+
define float @mul_neg_zero_nnan_ninf(float nofpclass(inf nan) %a) {
1316+
; CHECK-LABEL: @mul_neg_zero_nnan_ninf(
1317+
; CHECK-NEXT: entry:
1318+
; CHECK-NEXT: [[RET:%.*]] = fmul float [[A:%.*]], -0.000000e+00
1319+
; CHECK-NEXT: ret float [[RET]]
1320+
;
1321+
entry:
1322+
%ret = fmul float %a, -0.000000e+00
1323+
ret float %ret
1324+
}
1325+
1326+
define float @mul_neg_zero_nnan_fmf(float %a) {
1327+
; CHECK-LABEL: @mul_neg_zero_nnan_fmf(
1328+
; CHECK-NEXT: entry:
1329+
; CHECK-NEXT: [[RET:%.*]] = fmul nnan float [[A:%.*]], -0.000000e+00
1330+
; CHECK-NEXT: ret float [[RET]]
1331+
;
1332+
entry:
1333+
%ret = fmul nnan float %a, -0.000000e+00
1334+
ret float %ret
1335+
}
1336+
1337+
define float @mul_neg_zero_nnan_ninf_fmf(float nofpclass(inf nan) %a) {
1338+
; CHECK-LABEL: @mul_neg_zero_nnan_ninf_fmf(
1339+
; CHECK-NEXT: entry:
1340+
; CHECK-NEXT: [[RET:%.*]] = fmul nnan ninf float [[A:%.*]], -0.000000e+00
1341+
; CHECK-NEXT: ret float [[RET]]
1342+
;
1343+
entry:
1344+
%ret = fmul nnan ninf float %a, -0.000000e+00
1345+
ret float %ret
1346+
}
1347+
1348+
; poison propagates through vector elements
1349+
1350+
define <3 x float> @mul_neg_zero_nnan_ninf_vec(<3 x float> nofpclass(inf nan) %a) {
1351+
; CHECK-LABEL: @mul_neg_zero_nnan_ninf_vec(
1352+
; CHECK-NEXT: entry:
1353+
; CHECK-NEXT: [[RET:%.*]] = fmul <3 x float> [[A:%.*]], <float -0.000000e+00, float undef, float poison>
1354+
; CHECK-NEXT: ret <3 x float> [[RET]]
1355+
;
1356+
entry:
1357+
%ret = fmul <3 x float> %a, <float -0.0, float undef, float poison>
1358+
ret <3 x float> %ret
1359+
}
1360+
1361+
define <3 x float> @mul_mixed_zero_nnan_ninf_vec(<3 x float> nofpclass(inf nan) %a) {
1362+
; CHECK-LABEL: @mul_mixed_zero_nnan_ninf_vec(
1363+
; CHECK-NEXT: entry:
1364+
; CHECK-NEXT: [[RET:%.*]] = fmul <3 x float> [[A:%.*]], <float -0.000000e+00, float 0.000000e+00, float poison>
1365+
; CHECK-NEXT: ret <3 x float> [[RET]]
1366+
;
1367+
entry:
1368+
%ret = fmul <3 x float> %a, <float -0.0, float 0.0, float poison>
1369+
ret <3 x float> %ret
1370+
}

0 commit comments

Comments
 (0)