@@ -1315,15 +1315,92 @@ define i1 @fcmp_one_fsub_const(float %x, float %y) {
1315
1315
ret i1 %cmp
1316
1316
}
1317
1317
1318
- define i1 @fcmp_fsub_neg_zero (float %x , float %y ) {
1319
- ; CHECK-LABEL: @fcmp_fsub_neg_zero(
1320
- ; CHECK-NEXT: [[FS:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
1321
- ; CHECK-NEXT: call void @use(float [[FS]])
1322
- ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[X]], [[Y]]
1323
- ; CHECK-NEXT: ret i1 [[CMP]]
1318
+ define <8 x i1 > @fcmp_vec_ogt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1319
+ ; CHECK-LABEL: @fcmp_vec_ogt_fsub_const(
1320
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <8 x float> [[X:%.*]], [[Y:%.*]]
1321
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1324
1322
;
1325
- %fs = fsub float %x , %y
1326
- call void @use (float %fs )
1327
- %cmp = fcmp ogt float %fs , -0 .000000e+00
1328
- ret i1 %cmp
1323
+ %fs = fsub <8 x float > %x , %y
1324
+ %cmp = fcmp ogt <8 x float > %fs , zeroinitializer
1325
+ ret <8 x i1 > %cmp
1326
+ }
1327
+
1328
+ define <8 x i1 > @fcmp_vec_olt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1329
+ ; CHECK-LABEL: @fcmp_vec_olt_fsub_const(
1330
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <8 x float> [[X:%.*]], [[Y:%.*]]
1331
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1332
+ ;
1333
+ %fs = fsub <8 x float > %x , %y
1334
+ %cmp = fcmp olt <8 x float > %fs , zeroinitializer
1335
+ ret <8 x i1 > %cmp
1336
+ }
1337
+
1338
+ define <8 x i1 > @fcmp_vec_one_fsub_const (<8 x float > %x , <8 x float > %y ) {
1339
+ ; CHECK-LABEL: @fcmp_vec_one_fsub_const(
1340
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp one <8 x float> [[X:%.*]], [[Y:%.*]]
1341
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1342
+ ;
1343
+ %fs = fsub <8 x float > %x , %y
1344
+ %cmp = fcmp one <8 x float > %fs , zeroinitializer
1345
+ ret <8 x i1 > %cmp
1346
+ }
1347
+
1348
+ define <8 x i1 > @fcmp_vec_ogt_fm_fsub_const (<8 x float > %x , <8 x float > %y ) {
1349
+ ; CHECK-LABEL: @fcmp_vec_ogt_fm_fsub_const(
1350
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <8 x float> [[X:%.*]], [[Y:%.*]]
1351
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1352
+ ;
1353
+ %fs = fsub fast <8 x float > %x , %y
1354
+ %cmp = fcmp ogt <8 x float > %fs , zeroinitializer
1355
+ ret <8 x i1 > %cmp
1356
+ }
1357
+
1358
+ define <8 x i1 > @fcmp_vec_olt_fm_fsub_const (<8 x float > %x , <8 x float > %y ) {
1359
+ ; CHECK-LABEL: @fcmp_vec_olt_fm_fsub_const(
1360
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <8 x float> [[X:%.*]], [[Y:%.*]]
1361
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1362
+ ;
1363
+ %fs = fsub fast <8 x float > %x , %y
1364
+ %cmp = fcmp olt <8 x float > %fs , zeroinitializer
1365
+ ret <8 x i1 > %cmp
1366
+ }
1367
+
1368
+ define <8 x i1 > @fcmp_vec_one_fm_fsub_const (<8 x float > %x , <8 x float > %y ) {
1369
+ ; CHECK-LABEL: @fcmp_vec_one_fm_fsub_const(
1370
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp one <8 x float> [[X:%.*]], [[Y:%.*]]
1371
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1372
+ ;
1373
+ %fs = fsub fast <8 x float > %x , %y
1374
+ %cmp = fcmp one <8 x float > %fs , zeroinitializer
1375
+ ret <8 x i1 > %cmp
1376
+ }
1377
+
1378
+ define <8 x i1 > @ffcmp_vec_ogt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1379
+ ; CHECK-LABEL: @ffcmp_vec_ogt_fsub_const(
1380
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <8 x float> [[X:%.*]], [[Y:%.*]]
1381
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1382
+ ;
1383
+ %fs = fsub <8 x float > %x , %y
1384
+ %cmp = fcmp fast ogt <8 x float > %fs , zeroinitializer
1385
+ ret <8 x i1 > %cmp
1386
+ }
1387
+
1388
+ define <8 x i1 > @ffcmp_vec_olt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1389
+ ; CHECK-LABEL: @ffcmp_vec_olt_fsub_const(
1390
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <8 x float> [[X:%.*]], [[Y:%.*]]
1391
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1392
+ ;
1393
+ %fs = fsub <8 x float > %x , %y
1394
+ %cmp = fcmp fast olt <8 x float > %fs , zeroinitializer
1395
+ ret <8 x i1 > %cmp
1396
+ }
1397
+
1398
+ define <8 x i1 > @ffcmp_vec_one_fsub_const (<8 x float > %x , <8 x float > %y ) {
1399
+ ; CHECK-LABEL: @ffcmp_vec_one_fsub_const(
1400
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp one <8 x float> [[X:%.*]], [[Y:%.*]]
1401
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1402
+ ;
1403
+ %fs = fsub <8 x float > %x , %y
1404
+ %cmp = fcmp fast one <8 x float > %fs , zeroinitializer
1405
+ ret <8 x i1 > %cmp
1329
1406
}
0 commit comments