@@ -1473,20 +1473,16 @@ define i32 @select_cst1(i1 zeroext %cond) {
1473
1473
;
1474
1474
; RV64IMXVTCONDOPS-LABEL: select_cst1:
1475
1475
; RV64IMXVTCONDOPS: # %bb.0:
1476
- ; RV64IMXVTCONDOPS-NEXT: li a1, 20
1477
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1478
- ; RV64IMXVTCONDOPS-NEXT: li a2, 10
1479
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1480
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1476
+ ; RV64IMXVTCONDOPS-NEXT: li a1, 10
1477
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1478
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 10
1481
1479
; RV64IMXVTCONDOPS-NEXT: ret
1482
1480
;
1483
1481
; CHECKZICOND-LABEL: select_cst1:
1484
1482
; CHECKZICOND: # %bb.0:
1485
- ; CHECKZICOND-NEXT: li a1, 20
1486
- ; CHECKZICOND-NEXT: czero.nez a1, a1, a0
1487
- ; CHECKZICOND-NEXT: li a2, 10
1488
- ; CHECKZICOND-NEXT: czero.eqz a0, a2, a0
1489
- ; CHECKZICOND-NEXT: or a0, a0, a1
1483
+ ; CHECKZICOND-NEXT: li a1, 10
1484
+ ; CHECKZICOND-NEXT: czero.nez a0, a1, a0
1485
+ ; CHECKZICOND-NEXT: addi a0, a0, 10
1490
1486
; CHECKZICOND-NEXT: ret
1491
1487
%ret = select i1 %cond , i32 10 , i32 20
1492
1488
ret i32 %ret
@@ -1517,32 +1513,26 @@ define i32 @select_cst2(i1 zeroext %cond) {
1517
1513
;
1518
1514
; RV64IMXVTCONDOPS-LABEL: select_cst2:
1519
1515
; RV64IMXVTCONDOPS: # %bb.0:
1520
- ; RV64IMXVTCONDOPS-NEXT: li a1, 10
1521
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a1, a1, a0
1522
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 5
1523
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, -480
1524
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a2, a0
1525
- ; RV64IMXVTCONDOPS-NEXT: or a0, a1, a0
1516
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 5
1517
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -490
1518
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1519
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 10
1526
1520
; RV64IMXVTCONDOPS-NEXT: ret
1527
1521
;
1528
1522
; RV32IMZICOND-LABEL: select_cst2:
1529
1523
; RV32IMZICOND: # %bb.0:
1530
- ; RV32IMZICOND-NEXT: li a1, 10
1531
- ; RV32IMZICOND-NEXT: czero.eqz a1, a1, a0
1532
- ; RV32IMZICOND-NEXT: lui a2, 5
1533
- ; RV32IMZICOND-NEXT: addi a2, a2, -480
1534
- ; RV32IMZICOND-NEXT: czero.nez a0, a2, a0
1535
- ; RV32IMZICOND-NEXT: or a0, a1, a0
1524
+ ; RV32IMZICOND-NEXT: lui a1, 5
1525
+ ; RV32IMZICOND-NEXT: addi a1, a1, -490
1526
+ ; RV32IMZICOND-NEXT: czero.nez a0, a1, a0
1527
+ ; RV32IMZICOND-NEXT: addi a0, a0, 10
1536
1528
; RV32IMZICOND-NEXT: ret
1537
1529
;
1538
1530
; RV64IMZICOND-LABEL: select_cst2:
1539
1531
; RV64IMZICOND: # %bb.0:
1540
- ; RV64IMZICOND-NEXT: li a1, 10
1541
- ; RV64IMZICOND-NEXT: czero.eqz a1, a1, a0
1542
- ; RV64IMZICOND-NEXT: lui a2, 5
1543
- ; RV64IMZICOND-NEXT: addiw a2, a2, -480
1544
- ; RV64IMZICOND-NEXT: czero.nez a0, a2, a0
1545
- ; RV64IMZICOND-NEXT: or a0, a1, a0
1532
+ ; RV64IMZICOND-NEXT: lui a1, 5
1533
+ ; RV64IMZICOND-NEXT: addiw a1, a1, -490
1534
+ ; RV64IMZICOND-NEXT: czero.nez a0, a1, a0
1535
+ ; RV64IMZICOND-NEXT: addi a0, a0, 10
1546
1536
; RV64IMZICOND-NEXT: ret
1547
1537
%ret = select i1 %cond , i32 10 , i32 20000
1548
1538
ret i32 %ret
@@ -1575,35 +1565,32 @@ define i32 @select_cst3(i1 zeroext %cond) {
1575
1565
;
1576
1566
; RV64IMXVTCONDOPS-LABEL: select_cst3:
1577
1567
; RV64IMXVTCONDOPS: # %bb.0:
1578
- ; RV64IMXVTCONDOPS-NEXT: lui a1, 5
1579
- ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -480
1580
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1581
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 7
1582
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, 1328
1583
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1584
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1568
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 1048574
1569
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -1808
1570
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1571
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 7
1572
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, 1328
1573
+ ; RV64IMXVTCONDOPS-NEXT: add a0, a0, a1
1585
1574
; RV64IMXVTCONDOPS-NEXT: ret
1586
1575
;
1587
1576
; RV32IMZICOND-LABEL: select_cst3:
1588
1577
; RV32IMZICOND: # %bb.0:
1589
- ; RV32IMZICOND-NEXT: lui a1, 5
1590
- ; RV32IMZICOND-NEXT: addi a1, a1, -480
1591
- ; RV32IMZICOND-NEXT: czero.nez a1, a1, a0
1592
- ; RV32IMZICOND-NEXT: lui a2, 7
1593
- ; RV32IMZICOND-NEXT: addi a2, a2, 1328
1594
- ; RV32IMZICOND-NEXT: czero.eqz a0, a2, a0
1595
- ; RV32IMZICOND-NEXT: or a0, a0, a1
1578
+ ; RV32IMZICOND-NEXT: lui a1, 1048574
1579
+ ; RV32IMZICOND-NEXT: addi a1, a1, -1808
1580
+ ; RV32IMZICOND-NEXT: czero.nez a0, a1, a0
1581
+ ; RV32IMZICOND-NEXT: lui a1, 7
1582
+ ; RV32IMZICOND-NEXT: addi a1, a1, 1328
1583
+ ; RV32IMZICOND-NEXT: add a0, a0, a1
1596
1584
; RV32IMZICOND-NEXT: ret
1597
1585
;
1598
1586
; RV64IMZICOND-LABEL: select_cst3:
1599
1587
; RV64IMZICOND: # %bb.0:
1600
- ; RV64IMZICOND-NEXT: lui a1, 5
1601
- ; RV64IMZICOND-NEXT: addiw a1, a1, -480
1602
- ; RV64IMZICOND-NEXT: czero.nez a1, a1, a0
1603
- ; RV64IMZICOND-NEXT: lui a2, 7
1604
- ; RV64IMZICOND-NEXT: addiw a2, a2, 1328
1605
- ; RV64IMZICOND-NEXT: czero.eqz a0, a2, a0
1606
- ; RV64IMZICOND-NEXT: or a0, a0, a1
1588
+ ; RV64IMZICOND-NEXT: lui a1, 1048574
1589
+ ; RV64IMZICOND-NEXT: addiw a1, a1, -1808
1590
+ ; RV64IMZICOND-NEXT: czero.nez a0, a1, a0
1591
+ ; RV64IMZICOND-NEXT: lui a1, 7
1592
+ ; RV64IMZICOND-NEXT: addiw a1, a1, 1328
1593
+ ; RV64IMZICOND-NEXT: add a0, a0, a1
1607
1594
; RV64IMZICOND-NEXT: ret
1608
1595
%ret = select i1 %cond , i32 30000 , i32 20000
1609
1596
ret i32 %ret
@@ -1632,21 +1619,27 @@ define i32 @select_cst4(i1 zeroext %cond) {
1632
1619
;
1633
1620
; RV64IMXVTCONDOPS-LABEL: select_cst4:
1634
1621
; RV64IMXVTCONDOPS: # %bb.0:
1635
- ; RV64IMXVTCONDOPS-NEXT: li a1, 2047
1636
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1637
- ; RV64IMXVTCONDOPS-NEXT: li a2, -2048
1638
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1639
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1622
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 1
1623
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -1
1624
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1625
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, -2048
1640
1626
; RV64IMXVTCONDOPS-NEXT: ret
1641
1627
;
1642
- ; CHECKZICOND-LABEL: select_cst4:
1643
- ; CHECKZICOND: # %bb.0:
1644
- ; CHECKZICOND-NEXT: li a1, 2047
1645
- ; CHECKZICOND-NEXT: czero.nez a1, a1, a0
1646
- ; CHECKZICOND-NEXT: li a2, -2048
1647
- ; CHECKZICOND-NEXT: czero.eqz a0, a2, a0
1648
- ; CHECKZICOND-NEXT: or a0, a0, a1
1649
- ; CHECKZICOND-NEXT: ret
1628
+ ; RV32IMZICOND-LABEL: select_cst4:
1629
+ ; RV32IMZICOND: # %bb.0:
1630
+ ; RV32IMZICOND-NEXT: lui a1, 1
1631
+ ; RV32IMZICOND-NEXT: addi a1, a1, -1
1632
+ ; RV32IMZICOND-NEXT: czero.nez a0, a1, a0
1633
+ ; RV32IMZICOND-NEXT: addi a0, a0, -2048
1634
+ ; RV32IMZICOND-NEXT: ret
1635
+ ;
1636
+ ; RV64IMZICOND-LABEL: select_cst4:
1637
+ ; RV64IMZICOND: # %bb.0:
1638
+ ; RV64IMZICOND-NEXT: lui a1, 1
1639
+ ; RV64IMZICOND-NEXT: addiw a1, a1, -1
1640
+ ; RV64IMZICOND-NEXT: czero.nez a0, a1, a0
1641
+ ; RV64IMZICOND-NEXT: addi a0, a0, -2048
1642
+ ; RV64IMZICOND-NEXT: ret
1650
1643
%ret = select i1 %cond , i32 -2048 , i32 2047
1651
1644
ret i32 %ret
1652
1645
}
@@ -1676,33 +1669,17 @@ define i32 @select_cst5(i1 zeroext %cond) {
1676
1669
;
1677
1670
; RV64IMXVTCONDOPS-LABEL: select_cst5:
1678
1671
; RV64IMXVTCONDOPS: # %bb.0:
1679
- ; RV64IMXVTCONDOPS-NEXT: li a1, 2047
1680
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a1, a1, a0
1681
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 1
1682
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, -2047
1683
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a2, a0
1684
- ; RV64IMXVTCONDOPS-NEXT: or a0, a1, a0
1672
+ ; RV64IMXVTCONDOPS-NEXT: li a1, 2
1673
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1674
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 2047
1685
1675
; RV64IMXVTCONDOPS-NEXT: ret
1686
1676
;
1687
- ; RV32IMZICOND-LABEL: select_cst5:
1688
- ; RV32IMZICOND: # %bb.0:
1689
- ; RV32IMZICOND-NEXT: li a1, 2047
1690
- ; RV32IMZICOND-NEXT: czero.eqz a1, a1, a0
1691
- ; RV32IMZICOND-NEXT: lui a2, 1
1692
- ; RV32IMZICOND-NEXT: addi a2, a2, -2047
1693
- ; RV32IMZICOND-NEXT: czero.nez a0, a2, a0
1694
- ; RV32IMZICOND-NEXT: or a0, a1, a0
1695
- ; RV32IMZICOND-NEXT: ret
1696
- ;
1697
- ; RV64IMZICOND-LABEL: select_cst5:
1698
- ; RV64IMZICOND: # %bb.0:
1699
- ; RV64IMZICOND-NEXT: li a1, 2047
1700
- ; RV64IMZICOND-NEXT: czero.eqz a1, a1, a0
1701
- ; RV64IMZICOND-NEXT: lui a2, 1
1702
- ; RV64IMZICOND-NEXT: addiw a2, a2, -2047
1703
- ; RV64IMZICOND-NEXT: czero.nez a0, a2, a0
1704
- ; RV64IMZICOND-NEXT: or a0, a1, a0
1705
- ; RV64IMZICOND-NEXT: ret
1677
+ ; CHECKZICOND-LABEL: select_cst5:
1678
+ ; CHECKZICOND: # %bb.0:
1679
+ ; CHECKZICOND-NEXT: li a1, 2
1680
+ ; CHECKZICOND-NEXT: czero.nez a0, a1, a0
1681
+ ; CHECKZICOND-NEXT: addi a0, a0, 2047
1682
+ ; CHECKZICOND-NEXT: ret
1706
1683
%ret = select i1 %cond , i32 2047 , i32 2049
1707
1684
ret i32 %ret
1708
1685
}
@@ -1732,33 +1709,17 @@ define i32 @select_cst6(i1 zeroext %cond) {
1732
1709
;
1733
1710
; RV64IMXVTCONDOPS-LABEL: select_cst6:
1734
1711
; RV64IMXVTCONDOPS: # %bb.0:
1735
- ; RV64IMXVTCONDOPS-NEXT: li a1, 2047
1736
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1737
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 1
1738
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, -2047
1739
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1740
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1712
+ ; RV64IMXVTCONDOPS-NEXT: li a1, 2
1713
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a1, a0
1714
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 2047
1741
1715
; RV64IMXVTCONDOPS-NEXT: ret
1742
1716
;
1743
- ; RV32IMZICOND-LABEL: select_cst6:
1744
- ; RV32IMZICOND: # %bb.0:
1745
- ; RV32IMZICOND-NEXT: li a1, 2047
1746
- ; RV32IMZICOND-NEXT: czero.nez a1, a1, a0
1747
- ; RV32IMZICOND-NEXT: lui a2, 1
1748
- ; RV32IMZICOND-NEXT: addi a2, a2, -2047
1749
- ; RV32IMZICOND-NEXT: czero.eqz a0, a2, a0
1750
- ; RV32IMZICOND-NEXT: or a0, a0, a1
1751
- ; RV32IMZICOND-NEXT: ret
1752
- ;
1753
- ; RV64IMZICOND-LABEL: select_cst6:
1754
- ; RV64IMZICOND: # %bb.0:
1755
- ; RV64IMZICOND-NEXT: li a1, 2047
1756
- ; RV64IMZICOND-NEXT: czero.nez a1, a1, a0
1757
- ; RV64IMZICOND-NEXT: lui a2, 1
1758
- ; RV64IMZICOND-NEXT: addiw a2, a2, -2047
1759
- ; RV64IMZICOND-NEXT: czero.eqz a0, a2, a0
1760
- ; RV64IMZICOND-NEXT: or a0, a0, a1
1761
- ; RV64IMZICOND-NEXT: ret
1717
+ ; CHECKZICOND-LABEL: select_cst6:
1718
+ ; CHECKZICOND: # %bb.0:
1719
+ ; CHECKZICOND-NEXT: li a1, 2
1720
+ ; CHECKZICOND-NEXT: czero.eqz a0, a1, a0
1721
+ ; CHECKZICOND-NEXT: addi a0, a0, 2047
1722
+ ; CHECKZICOND-NEXT: ret
1762
1723
%ret = select i1 %cond , i32 2049 , i32 2047
1763
1724
ret i32 %ret
1764
1725
}
0 commit comments