@@ -1517,15 +1517,92 @@ define i1 @fcmp_one_fsub_const(float %x, float %y) {
1517
1517
ret i1 %cmp
1518
1518
}
1519
1519
1520
- define i1 @fcmp_fsub_neg_zero (float %x , float %y ) {
1521
- ; CHECK-LABEL: @fcmp_fsub_neg_zero(
1522
- ; CHECK-NEXT: [[FS:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
1523
- ; CHECK-NEXT: call void @use(float [[FS]])
1524
- ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[X]], [[Y]]
1525
- ; CHECK-NEXT: ret i1 [[CMP]]
1520
+ define <8 x i1 > @fcmp_vec_ogt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1521
+ ; CHECK-LABEL: @fcmp_vec_ogt_fsub_const(
1522
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <8 x float> [[X:%.*]], [[Y:%.*]]
1523
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1526
1524
;
1527
- %fs = fsub float %x , %y
1528
- call void @use (float %fs )
1529
- %cmp = fcmp ogt float %fs , -0 .000000e+00
1530
- ret i1 %cmp
1525
+ %fs = fsub <8 x float > %x , %y
1526
+ %cmp = fcmp ogt <8 x float > %fs , zeroinitializer
1527
+ ret <8 x i1 > %cmp
1528
+ }
1529
+
1530
+ define <8 x i1 > @fcmp_vec_olt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1531
+ ; CHECK-LABEL: @fcmp_vec_olt_fsub_const(
1532
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <8 x float> [[X:%.*]], [[Y:%.*]]
1533
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1534
+ ;
1535
+ %fs = fsub <8 x float > %x , %y
1536
+ %cmp = fcmp olt <8 x float > %fs , zeroinitializer
1537
+ ret <8 x i1 > %cmp
1538
+ }
1539
+
1540
+ define <8 x i1 > @fcmp_vec_one_fsub_const (<8 x float > %x , <8 x float > %y ) {
1541
+ ; CHECK-LABEL: @fcmp_vec_one_fsub_const(
1542
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp one <8 x float> [[X:%.*]], [[Y:%.*]]
1543
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1544
+ ;
1545
+ %fs = fsub <8 x float > %x , %y
1546
+ %cmp = fcmp one <8 x float > %fs , zeroinitializer
1547
+ ret <8 x i1 > %cmp
1548
+ }
1549
+
1550
+ define <8 x i1 > @fcmp_vec_ogt_fm_fsub_const (<8 x float > %x , <8 x float > %y ) {
1551
+ ; CHECK-LABEL: @fcmp_vec_ogt_fm_fsub_const(
1552
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <8 x float> [[X:%.*]], [[Y:%.*]]
1553
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1554
+ ;
1555
+ %fs = fsub fast <8 x float > %x , %y
1556
+ %cmp = fcmp ogt <8 x float > %fs , zeroinitializer
1557
+ ret <8 x i1 > %cmp
1558
+ }
1559
+
1560
+ define <8 x i1 > @fcmp_vec_olt_fm_fsub_const (<8 x float > %x , <8 x float > %y ) {
1561
+ ; CHECK-LABEL: @fcmp_vec_olt_fm_fsub_const(
1562
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <8 x float> [[X:%.*]], [[Y:%.*]]
1563
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1564
+ ;
1565
+ %fs = fsub fast <8 x float > %x , %y
1566
+ %cmp = fcmp olt <8 x float > %fs , zeroinitializer
1567
+ ret <8 x i1 > %cmp
1568
+ }
1569
+
1570
+ define <8 x i1 > @fcmp_vec_one_fm_fsub_const (<8 x float > %x , <8 x float > %y ) {
1571
+ ; CHECK-LABEL: @fcmp_vec_one_fm_fsub_const(
1572
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp one <8 x float> [[X:%.*]], [[Y:%.*]]
1573
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1574
+ ;
1575
+ %fs = fsub fast <8 x float > %x , %y
1576
+ %cmp = fcmp one <8 x float > %fs , zeroinitializer
1577
+ ret <8 x i1 > %cmp
1578
+ }
1579
+
1580
+ define <8 x i1 > @ffcmp_vec_ogt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1581
+ ; CHECK-LABEL: @ffcmp_vec_ogt_fsub_const(
1582
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <8 x float> [[X:%.*]], [[Y:%.*]]
1583
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1584
+ ;
1585
+ %fs = fsub <8 x float > %x , %y
1586
+ %cmp = fcmp fast ogt <8 x float > %fs , zeroinitializer
1587
+ ret <8 x i1 > %cmp
1588
+ }
1589
+
1590
+ define <8 x i1 > @ffcmp_vec_olt_fsub_const (<8 x float > %x , <8 x float > %y ) {
1591
+ ; CHECK-LABEL: @ffcmp_vec_olt_fsub_const(
1592
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <8 x float> [[X:%.*]], [[Y:%.*]]
1593
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1594
+ ;
1595
+ %fs = fsub <8 x float > %x , %y
1596
+ %cmp = fcmp fast olt <8 x float > %fs , zeroinitializer
1597
+ ret <8 x i1 > %cmp
1598
+ }
1599
+
1600
+ define <8 x i1 > @ffcmp_vec_one_fsub_const (<8 x float > %x , <8 x float > %y ) {
1601
+ ; CHECK-LABEL: @ffcmp_vec_one_fsub_const(
1602
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp one <8 x float> [[X:%.*]], [[Y:%.*]]
1603
+ ; CHECK-NEXT: ret <8 x i1> [[CMP]]
1604
+ ;
1605
+ %fs = fsub <8 x float > %x , %y
1606
+ %cmp = fcmp fast one <8 x float > %fs , zeroinitializer
1607
+ ret <8 x i1 > %cmp
1531
1608
}
0 commit comments