@@ -1606,21 +1606,17 @@ define i32 @select_cst_unknown(i32 signext %a, i32 signext %b) {
1606
1606
; RV64IMXVTCONDOPS-LABEL: select_cst_unknown:
1607
1607
; RV64IMXVTCONDOPS: # %bb.0:
1608
1608
; RV64IMXVTCONDOPS-NEXT: slt a0, a0, a1
1609
- ; RV64IMXVTCONDOPS-NEXT: li a1, -7
1610
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1611
- ; RV64IMXVTCONDOPS-NEXT: li a2, 5
1612
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1613
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1609
+ ; RV64IMXVTCONDOPS-NEXT: li a1, -12
1610
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1611
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 5
1614
1612
; RV64IMXVTCONDOPS-NEXT: ret
1615
1613
;
1616
1614
; CHECKZICOND-LABEL: select_cst_unknown:
1617
1615
; CHECKZICOND: # %bb.0:
1618
1616
; CHECKZICOND-NEXT: slt a0, a0, a1
1619
- ; CHECKZICOND-NEXT: li a1, -7
1620
- ; CHECKZICOND-NEXT: czero.nez a1, a1, a0
1621
- ; CHECKZICOND-NEXT: li a2, 5
1622
- ; CHECKZICOND-NEXT: czero.eqz a0, a2, a0
1623
- ; CHECKZICOND-NEXT: or a0, a0, a1
1617
+ ; CHECKZICOND-NEXT: li a1, -12
1618
+ ; CHECKZICOND-NEXT: czero.nez a0, a1, a0
1619
+ ; CHECKZICOND-NEXT: addi a0, a0, 5
1624
1620
; CHECKZICOND-NEXT: ret
1625
1621
%cond = icmp slt i32 %a , %b
1626
1622
%ret = select i1 %cond , i32 5 , i32 -7
@@ -1650,20 +1646,16 @@ define i32 @select_cst1(i1 zeroext %cond) {
1650
1646
;
1651
1647
; RV64IMXVTCONDOPS-LABEL: select_cst1:
1652
1648
; RV64IMXVTCONDOPS: # %bb.0:
1653
- ; RV64IMXVTCONDOPS-NEXT: li a1, 20
1654
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1655
- ; RV64IMXVTCONDOPS-NEXT: li a2, 10
1656
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1657
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1649
+ ; RV64IMXVTCONDOPS-NEXT: li a1, 10
1650
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1651
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 10
1658
1652
; RV64IMXVTCONDOPS-NEXT: ret
1659
1653
;
1660
1654
; CHECKZICOND-LABEL: select_cst1:
1661
1655
; CHECKZICOND: # %bb.0:
1662
- ; CHECKZICOND-NEXT: li a1, 20
1663
- ; CHECKZICOND-NEXT: czero.nez a1, a1, a0
1664
- ; CHECKZICOND-NEXT: li a2, 10
1665
- ; CHECKZICOND-NEXT: czero.eqz a0, a2, a0
1666
- ; CHECKZICOND-NEXT: or a0, a0, a1
1656
+ ; CHECKZICOND-NEXT: li a1, 10
1657
+ ; CHECKZICOND-NEXT: czero.nez a0, a1, a0
1658
+ ; CHECKZICOND-NEXT: addi a0, a0, 10
1667
1659
; CHECKZICOND-NEXT: ret
1668
1660
%ret = select i1 %cond , i32 10 , i32 20
1669
1661
ret i32 %ret
@@ -1694,32 +1686,26 @@ define i32 @select_cst2(i1 zeroext %cond) {
1694
1686
;
1695
1687
; RV64IMXVTCONDOPS-LABEL: select_cst2:
1696
1688
; RV64IMXVTCONDOPS: # %bb.0:
1697
- ; RV64IMXVTCONDOPS-NEXT: li a1, 10
1698
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a1, a1, a0
1699
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 5
1700
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, -480
1701
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a2, a0
1702
- ; RV64IMXVTCONDOPS-NEXT: or a0, a1, a0
1689
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 5
1690
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -490
1691
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1692
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 10
1703
1693
; RV64IMXVTCONDOPS-NEXT: ret
1704
1694
;
1705
1695
; RV32IMZICOND-LABEL: select_cst2:
1706
1696
; RV32IMZICOND: # %bb.0:
1707
- ; RV32IMZICOND-NEXT: li a1, 10
1708
- ; RV32IMZICOND-NEXT: czero.eqz a1, a1, a0
1709
- ; RV32IMZICOND-NEXT: lui a2, 5
1710
- ; RV32IMZICOND-NEXT: addi a2, a2, -480
1711
- ; RV32IMZICOND-NEXT: czero.nez a0, a2, a0
1712
- ; RV32IMZICOND-NEXT: or a0, a1, a0
1697
+ ; RV32IMZICOND-NEXT: lui a1, 5
1698
+ ; RV32IMZICOND-NEXT: addi a1, a1, -490
1699
+ ; RV32IMZICOND-NEXT: czero.nez a0, a1, a0
1700
+ ; RV32IMZICOND-NEXT: addi a0, a0, 10
1713
1701
; RV32IMZICOND-NEXT: ret
1714
1702
;
1715
1703
; RV64IMZICOND-LABEL: select_cst2:
1716
1704
; RV64IMZICOND: # %bb.0:
1717
- ; RV64IMZICOND-NEXT: li a1, 10
1718
- ; RV64IMZICOND-NEXT: czero.eqz a1, a1, a0
1719
- ; RV64IMZICOND-NEXT: lui a2, 5
1720
- ; RV64IMZICOND-NEXT: addiw a2, a2, -480
1721
- ; RV64IMZICOND-NEXT: czero.nez a0, a2, a0
1722
- ; RV64IMZICOND-NEXT: or a0, a1, a0
1705
+ ; RV64IMZICOND-NEXT: lui a1, 5
1706
+ ; RV64IMZICOND-NEXT: addiw a1, a1, -490
1707
+ ; RV64IMZICOND-NEXT: czero.nez a0, a1, a0
1708
+ ; RV64IMZICOND-NEXT: addi a0, a0, 10
1723
1709
; RV64IMZICOND-NEXT: ret
1724
1710
%ret = select i1 %cond , i32 10 , i32 20000
1725
1711
ret i32 %ret
@@ -1752,35 +1738,32 @@ define i32 @select_cst3(i1 zeroext %cond) {
1752
1738
;
1753
1739
; RV64IMXVTCONDOPS-LABEL: select_cst3:
1754
1740
; RV64IMXVTCONDOPS: # %bb.0:
1755
- ; RV64IMXVTCONDOPS-NEXT: lui a1, 5
1756
- ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -480
1757
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1758
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 7
1759
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, 1328
1760
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1761
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1741
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 1048574
1742
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, -1808
1743
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1744
+ ; RV64IMXVTCONDOPS-NEXT: lui a1, 7
1745
+ ; RV64IMXVTCONDOPS-NEXT: addiw a1, a1, 1328
1746
+ ; RV64IMXVTCONDOPS-NEXT: add a0, a0, a1
1762
1747
; RV64IMXVTCONDOPS-NEXT: ret
1763
1748
;
1764
1749
; RV32IMZICOND-LABEL: select_cst3:
1765
1750
; RV32IMZICOND: # %bb.0:
1766
- ; RV32IMZICOND-NEXT: lui a1, 5
1767
- ; RV32IMZICOND-NEXT: addi a1, a1, -480
1768
- ; RV32IMZICOND-NEXT: czero.nez a1, a1, a0
1769
- ; RV32IMZICOND-NEXT: lui a2, 7
1770
- ; RV32IMZICOND-NEXT: addi a2, a2, 1328
1771
- ; RV32IMZICOND-NEXT: czero.eqz a0, a2, a0
1772
- ; RV32IMZICOND-NEXT: or a0, a0, a1
1751
+ ; RV32IMZICOND-NEXT: lui a1, 1048574
1752
+ ; RV32IMZICOND-NEXT: addi a1, a1, -1808
1753
+ ; RV32IMZICOND-NEXT: czero.nez a0, a1, a0
1754
+ ; RV32IMZICOND-NEXT: lui a1, 7
1755
+ ; RV32IMZICOND-NEXT: addi a1, a1, 1328
1756
+ ; RV32IMZICOND-NEXT: add a0, a0, a1
1773
1757
; RV32IMZICOND-NEXT: ret
1774
1758
;
1775
1759
; RV64IMZICOND-LABEL: select_cst3:
1776
1760
; RV64IMZICOND: # %bb.0:
1777
- ; RV64IMZICOND-NEXT: lui a1, 5
1778
- ; RV64IMZICOND-NEXT: addiw a1, a1, -480
1779
- ; RV64IMZICOND-NEXT: czero.nez a1, a1, a0
1780
- ; RV64IMZICOND-NEXT: lui a2, 7
1781
- ; RV64IMZICOND-NEXT: addiw a2, a2, 1328
1782
- ; RV64IMZICOND-NEXT: czero.eqz a0, a2, a0
1783
- ; RV64IMZICOND-NEXT: or a0, a0, a1
1761
+ ; RV64IMZICOND-NEXT: lui a1, 1048574
1762
+ ; RV64IMZICOND-NEXT: addiw a1, a1, -1808
1763
+ ; RV64IMZICOND-NEXT: czero.nez a0, a1, a0
1764
+ ; RV64IMZICOND-NEXT: lui a1, 7
1765
+ ; RV64IMZICOND-NEXT: addiw a1, a1, 1328
1766
+ ; RV64IMZICOND-NEXT: add a0, a0, a1
1784
1767
; RV64IMZICOND-NEXT: ret
1785
1768
%ret = select i1 %cond , i32 30000 , i32 20000
1786
1769
ret i32 %ret
@@ -1821,33 +1804,17 @@ define i32 @select_cst5(i1 zeroext %cond) {
1821
1804
;
1822
1805
; RV64IMXVTCONDOPS-LABEL: select_cst5:
1823
1806
; RV64IMXVTCONDOPS: # %bb.0:
1824
- ; RV64IMXVTCONDOPS-NEXT: li a1, 2047
1825
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a1, a1, a0
1826
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 1
1827
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, -2047
1828
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a2, a0
1829
- ; RV64IMXVTCONDOPS-NEXT: or a0, a1, a0
1807
+ ; RV64IMXVTCONDOPS-NEXT: li a1, 2
1808
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a0, a1, a0
1809
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 2047
1830
1810
; RV64IMXVTCONDOPS-NEXT: ret
1831
1811
;
1832
- ; RV32IMZICOND-LABEL: select_cst5:
1833
- ; RV32IMZICOND: # %bb.0:
1834
- ; RV32IMZICOND-NEXT: li a1, 2047
1835
- ; RV32IMZICOND-NEXT: czero.eqz a1, a1, a0
1836
- ; RV32IMZICOND-NEXT: lui a2, 1
1837
- ; RV32IMZICOND-NEXT: addi a2, a2, -2047
1838
- ; RV32IMZICOND-NEXT: czero.nez a0, a2, a0
1839
- ; RV32IMZICOND-NEXT: or a0, a1, a0
1840
- ; RV32IMZICOND-NEXT: ret
1841
- ;
1842
- ; RV64IMZICOND-LABEL: select_cst5:
1843
- ; RV64IMZICOND: # %bb.0:
1844
- ; RV64IMZICOND-NEXT: li a1, 2047
1845
- ; RV64IMZICOND-NEXT: czero.eqz a1, a1, a0
1846
- ; RV64IMZICOND-NEXT: lui a2, 1
1847
- ; RV64IMZICOND-NEXT: addiw a2, a2, -2047
1848
- ; RV64IMZICOND-NEXT: czero.nez a0, a2, a0
1849
- ; RV64IMZICOND-NEXT: or a0, a1, a0
1850
- ; RV64IMZICOND-NEXT: ret
1812
+ ; CHECKZICOND-LABEL: select_cst5:
1813
+ ; CHECKZICOND: # %bb.0:
1814
+ ; CHECKZICOND-NEXT: li a1, 2
1815
+ ; CHECKZICOND-NEXT: czero.nez a0, a1, a0
1816
+ ; CHECKZICOND-NEXT: addi a0, a0, 2047
1817
+ ; CHECKZICOND-NEXT: ret
1851
1818
%ret = select i1 %cond , i32 2047 , i32 2049
1852
1819
ret i32 %ret
1853
1820
}
@@ -1877,33 +1844,17 @@ define i32 @select_cst6(i1 zeroext %cond) {
1877
1844
;
1878
1845
; RV64IMXVTCONDOPS-LABEL: select_cst6:
1879
1846
; RV64IMXVTCONDOPS: # %bb.0:
1880
- ; RV64IMXVTCONDOPS-NEXT: li a1, 2047
1881
- ; RV64IMXVTCONDOPS-NEXT: vt.maskcn a1, a1, a0
1882
- ; RV64IMXVTCONDOPS-NEXT: lui a2, 1
1883
- ; RV64IMXVTCONDOPS-NEXT: addiw a2, a2, -2047
1884
- ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a2, a0
1885
- ; RV64IMXVTCONDOPS-NEXT: or a0, a0, a1
1847
+ ; RV64IMXVTCONDOPS-NEXT: li a1, 2
1848
+ ; RV64IMXVTCONDOPS-NEXT: vt.maskc a0, a1, a0
1849
+ ; RV64IMXVTCONDOPS-NEXT: addi a0, a0, 2047
1886
1850
; RV64IMXVTCONDOPS-NEXT: ret
1887
1851
;
1888
- ; RV32IMZICOND-LABEL: select_cst6:
1889
- ; RV32IMZICOND: # %bb.0:
1890
- ; RV32IMZICOND-NEXT: li a1, 2047
1891
- ; RV32IMZICOND-NEXT: czero.nez a1, a1, a0
1892
- ; RV32IMZICOND-NEXT: lui a2, 1
1893
- ; RV32IMZICOND-NEXT: addi a2, a2, -2047
1894
- ; RV32IMZICOND-NEXT: czero.eqz a0, a2, a0
1895
- ; RV32IMZICOND-NEXT: or a0, a0, a1
1896
- ; RV32IMZICOND-NEXT: ret
1897
- ;
1898
- ; RV64IMZICOND-LABEL: select_cst6:
1899
- ; RV64IMZICOND: # %bb.0:
1900
- ; RV64IMZICOND-NEXT: li a1, 2047
1901
- ; RV64IMZICOND-NEXT: czero.nez a1, a1, a0
1902
- ; RV64IMZICOND-NEXT: lui a2, 1
1903
- ; RV64IMZICOND-NEXT: addiw a2, a2, -2047
1904
- ; RV64IMZICOND-NEXT: czero.eqz a0, a2, a0
1905
- ; RV64IMZICOND-NEXT: or a0, a0, a1
1906
- ; RV64IMZICOND-NEXT: ret
1852
+ ; CHECKZICOND-LABEL: select_cst6:
1853
+ ; CHECKZICOND: # %bb.0:
1854
+ ; CHECKZICOND-NEXT: li a1, 2
1855
+ ; CHECKZICOND-NEXT: czero.eqz a0, a1, a0
1856
+ ; CHECKZICOND-NEXT: addi a0, a0, 2047
1857
+ ; CHECKZICOND-NEXT: ret
1907
1858
%ret = select i1 %cond , i32 2049 , i32 2047
1908
1859
ret i32 %ret
1909
1860
}
0 commit comments