@@ -50,8 +50,7 @@ define i128 @slliuw_3(i32 signext %0, ptr %1) {
50
50
; RV64I: # %bb.0:
51
51
; RV64I-NEXT: addi a0, a0, 1
52
52
; RV64I-NEXT: slli a0, a0, 32
53
- ; RV64I-NEXT: srli a0, a0, 32
54
- ; RV64I-NEXT: slli a0, a0, 4
53
+ ; RV64I-NEXT: srli a0, a0, 28
55
54
; RV64I-NEXT: add a1, a1, a0
56
55
; RV64I-NEXT: ld a0, 0(a1)
57
56
; RV64I-NEXT: ld a1, 8(a1)
@@ -1514,8 +1513,7 @@ define signext i32 @srliw_1_sh2add(ptr %0, i32 signext %1) {
1514
1513
; RV64I: # %bb.0:
1515
1514
; RV64I-NEXT: srliw a1, a1, 1
1516
1515
; RV64I-NEXT: slli a1, a1, 32
1517
- ; RV64I-NEXT: srli a1, a1, 32
1518
- ; RV64I-NEXT: slli a1, a1, 2
1516
+ ; RV64I-NEXT: srli a1, a1, 30
1519
1517
; RV64I-NEXT: add a0, a0, a1
1520
1518
; RV64I-NEXT: lw a0, 0(a0)
1521
1519
; RV64I-NEXT: ret
@@ -1539,8 +1537,7 @@ define i64 @srliw_1_sh3add(ptr %0, i32 signext %1) {
1539
1537
; RV64I: # %bb.0:
1540
1538
; RV64I-NEXT: srliw a1, a1, 1
1541
1539
; RV64I-NEXT: slli a1, a1, 32
1542
- ; RV64I-NEXT: srli a1, a1, 32
1543
- ; RV64I-NEXT: slli a1, a1, 3
1540
+ ; RV64I-NEXT: srli a1, a1, 29
1544
1541
; RV64I-NEXT: add a0, a0, a1
1545
1542
; RV64I-NEXT: ld a0, 0(a0)
1546
1543
; RV64I-NEXT: ret
@@ -1564,8 +1561,7 @@ define i64 @srliw_2_sh3add(ptr %0, i32 signext %1) {
1564
1561
; RV64I: # %bb.0:
1565
1562
; RV64I-NEXT: srliw a1, a1, 2
1566
1563
; RV64I-NEXT: slli a1, a1, 32
1567
- ; RV64I-NEXT: srli a1, a1, 32
1568
- ; RV64I-NEXT: slli a1, a1, 3
1564
+ ; RV64I-NEXT: srli a1, a1, 29
1569
1565
; RV64I-NEXT: add a0, a0, a1
1570
1566
; RV64I-NEXT: ld a0, 0(a0)
1571
1567
; RV64I-NEXT: ret
@@ -1589,8 +1585,7 @@ define signext i16 @srliw_2_sh1add(ptr %0, i32 signext %1) {
1589
1585
; RV64I: # %bb.0:
1590
1586
; RV64I-NEXT: srliw a1, a1, 2
1591
1587
; RV64I-NEXT: slli a1, a1, 32
1592
- ; RV64I-NEXT: srli a1, a1, 32
1593
- ; RV64I-NEXT: slli a1, a1, 1
1588
+ ; RV64I-NEXT: srli a1, a1, 31
1594
1589
; RV64I-NEXT: add a0, a0, a1
1595
1590
; RV64I-NEXT: lh a0, 0(a0)
1596
1591
; RV64I-NEXT: ret
@@ -1615,8 +1610,7 @@ define signext i32 @srliw_3_sh2add(ptr %0, i32 signext %1) {
1615
1610
; RV64I: # %bb.0:
1616
1611
; RV64I-NEXT: srliw a1, a1, 3
1617
1612
; RV64I-NEXT: slli a1, a1, 32
1618
- ; RV64I-NEXT: srli a1, a1, 32
1619
- ; RV64I-NEXT: slli a1, a1, 2
1613
+ ; RV64I-NEXT: srli a1, a1, 30
1620
1614
; RV64I-NEXT: add a0, a0, a1
1621
1615
; RV64I-NEXT: lw a0, 0(a0)
1622
1616
; RV64I-NEXT: ret
@@ -1640,8 +1634,7 @@ define i64 @srliw_4_sh3add(ptr %0, i32 signext %1) {
1640
1634
; RV64I: # %bb.0:
1641
1635
; RV64I-NEXT: srliw a1, a1, 4
1642
1636
; RV64I-NEXT: slli a1, a1, 32
1643
- ; RV64I-NEXT: srli a1, a1, 32
1644
- ; RV64I-NEXT: slli a1, a1, 3
1637
+ ; RV64I-NEXT: srli a1, a1, 29
1645
1638
; RV64I-NEXT: add a0, a0, a1
1646
1639
; RV64I-NEXT: ld a0, 0(a0)
1647
1640
; RV64I-NEXT: ret
@@ -1770,8 +1763,7 @@ define signext i16 @shl_2_sh1add(ptr %0, i32 signext %1) {
1770
1763
; RV64I: # %bb.0:
1771
1764
; RV64I-NEXT: slli a1, a1, 2
1772
1765
; RV64I-NEXT: slli a1, a1, 32
1773
- ; RV64I-NEXT: srli a1, a1, 32
1774
- ; RV64I-NEXT: slli a1, a1, 1
1766
+ ; RV64I-NEXT: srli a1, a1, 31
1775
1767
; RV64I-NEXT: add a0, a0, a1
1776
1768
; RV64I-NEXT: lh a0, 0(a0)
1777
1769
; RV64I-NEXT: ret
@@ -1795,8 +1787,7 @@ define signext i32 @shl_16_sh2add(ptr %0, i32 signext %1) {
1795
1787
; RV64I: # %bb.0:
1796
1788
; RV64I-NEXT: slli a1, a1, 16
1797
1789
; RV64I-NEXT: slli a1, a1, 32
1798
- ; RV64I-NEXT: srli a1, a1, 32
1799
- ; RV64I-NEXT: slli a1, a1, 2
1790
+ ; RV64I-NEXT: srli a1, a1, 30
1800
1791
; RV64I-NEXT: add a0, a0, a1
1801
1792
; RV64I-NEXT: lw a0, 0(a0)
1802
1793
; RV64I-NEXT: ret
@@ -1820,8 +1811,7 @@ define i64 @shl_31_sh3add(ptr %0, i32 signext %1) {
1820
1811
; RV64I: # %bb.0:
1821
1812
; RV64I-NEXT: slli a1, a1, 31
1822
1813
; RV64I-NEXT: slli a1, a1, 32
1823
- ; RV64I-NEXT: srli a1, a1, 32
1824
- ; RV64I-NEXT: slli a1, a1, 3
1814
+ ; RV64I-NEXT: srli a1, a1, 29
1825
1815
; RV64I-NEXT: add a0, a0, a1
1826
1816
; RV64I-NEXT: ld a0, 0(a0)
1827
1817
; RV64I-NEXT: ret
0 commit comments