Skip to content

Commit 7ea7ccd

Browse files
authored
[PowerPC][AIX] Specify pointer info and alignment for stack store (#144526)
When lowering call arguments to stack, specify a stack MPI, as well as the stack alignment, instead of using the defaults (which would be an unknown location with ABI alignment). I believe the asm diffs are just changes in scheduling.
1 parent 255b55c commit 7ea7ccd

File tree

8 files changed

+341
-315
lines changed

8 files changed

+341
-315
lines changed

llvm/lib/Target/PowerPC/PPCISelLowering.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7767,7 +7767,9 @@ SDValue PPCTargetLowering::LowerCall_AIX(
77677767
DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType());
77687768
PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff);
77697769
MemOpChains.push_back(
7770-
DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()));
7770+
DAG.getStore(Chain, dl, Arg, PtrOff,
7771+
MachinePointerInfo::getStack(MF, VA.getLocMemOffset()),
7772+
Subtarget.getFrameLowering()->getStackAlign()));
77717773

77727774
continue;
77737775
}

llvm/test/CodeGen/PowerPC/aix-cc-abi-mir.ll

Lines changed: 189 additions & 177 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/PowerPC/aix-cc-abi.ll

Lines changed: 94 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,18 +1012,22 @@ define void @call_test_stackarg_float() {
10121012
; ASM32PWR4-NEXT: lwz 3, L..C8(2) # @f
10131013
; ASM32PWR4-NEXT: stw 0, 88(1)
10141014
; ASM32PWR4-NEXT: li 4, 2
1015-
; ASM32PWR4-NEXT: li 5, 3
10161015
; ASM32PWR4-NEXT: li 6, 4
10171016
; ASM32PWR4-NEXT: li 7, 5
1017+
; ASM32PWR4-NEXT: li 8, 6
10181018
; ASM32PWR4-NEXT: lfs 1, 0(3)
10191019
; ASM32PWR4-NEXT: lwz 3, L..C9(2) # @d
1020-
; ASM32PWR4-NEXT: li 8, 6
10211020
; ASM32PWR4-NEXT: li 9, 7
1021+
; ASM32PWR4-NEXT: li 10, 8
10221022
; ASM32PWR4-NEXT: lfd 2, 0(3)
10231023
; ASM32PWR4-NEXT: li 3, 1
1024-
; ASM32PWR4-NEXT: li 10, 8
1025-
; ASM32PWR4-NEXT: stfd 2, 60(1)
1024+
; ASM32PWR4-NEXT: stfd 2, 72(1)
1025+
; ASM32PWR4-NEXT: lwz 5, 76(1)
1026+
; ASM32PWR4-NEXT: lwz 11, 72(1)
1027+
; ASM32PWR4-NEXT: stw 5, 64(1)
1028+
; ASM32PWR4-NEXT: li 5, 3
10261029
; ASM32PWR4-NEXT: stfs 1, 56(1)
1030+
; ASM32PWR4-NEXT: stw 11, 60(1)
10271031
; ASM32PWR4-NEXT: bl .test_stackarg_float[PR]
10281032
; ASM32PWR4-NEXT: nop
10291033
; ASM32PWR4-NEXT: addi 1, 1, 80
@@ -1126,20 +1130,24 @@ define void @call_test_stackarg_float3() {
11261130
; ASM32PWR4-NEXT: stwu 1, -80(1)
11271131
; ASM32PWR4-NEXT: lwz 3, L..C9(2) # @d
11281132
; ASM32PWR4-NEXT: stw 0, 88(1)
1129-
; ASM32PWR4-NEXT: li 4, 2
11301133
; ASM32PWR4-NEXT: li 5, 3
11311134
; ASM32PWR4-NEXT: li 6, 4
11321135
; ASM32PWR4-NEXT: li 7, 5
1136+
; ASM32PWR4-NEXT: li 8, 6
11331137
; ASM32PWR4-NEXT: lfd 1, 0(3)
11341138
; ASM32PWR4-NEXT: lwz 3, L..C8(2) # @f
1135-
; ASM32PWR4-NEXT: li 8, 6
11361139
; ASM32PWR4-NEXT: li 9, 7
11371140
; ASM32PWR4-NEXT: stfd 1, 72(1)
1138-
; ASM32PWR4-NEXT: lwz 10, 72(1)
11391141
; ASM32PWR4-NEXT: lfs 2, 0(3)
11401142
; ASM32PWR4-NEXT: li 3, 1
1143+
; ASM32PWR4-NEXT: stfd 1, 64(1)
1144+
; ASM32PWR4-NEXT: lwz 4, 68(1)
1145+
; ASM32PWR4-NEXT: lwz 10, 72(1)
1146+
; ASM32PWR4-NEXT: lwz 11, 64(1)
1147+
; ASM32PWR4-NEXT: stw 4, 56(1)
1148+
; ASM32PWR4-NEXT: li 4, 2
11411149
; ASM32PWR4-NEXT: stfs 2, 60(1)
1142-
; ASM32PWR4-NEXT: stfd 1, 52(1)
1150+
; ASM32PWR4-NEXT: stw 11, 52(1)
11431151
; ASM32PWR4-NEXT: bl .test_stackarg_float3[PR]
11441152
; ASM32PWR4-NEXT: nop
11451153
; ASM32PWR4-NEXT: addi 1, 1, 80
@@ -1562,95 +1570,99 @@ define void @caller_fpr_stack() {
15621570
; ASM32PWR4-LABEL: caller_fpr_stack:
15631571
; ASM32PWR4: # %bb.0: # %entry
15641572
; ASM32PWR4-NEXT: mflr 0
1565-
; ASM32PWR4-NEXT: stwu 1, -144(1)
1573+
; ASM32PWR4-NEXT: stwu 1, -160(1)
15661574
; ASM32PWR4-NEXT: lwz 3, L..C19(2) # @d15
1567-
; ASM32PWR4-NEXT: lwz 4, L..C20(2) # @f14
1568-
; ASM32PWR4-NEXT: lwz 5, L..C21(2) # @f16
1569-
; ASM32PWR4-NEXT: stw 0, 152(1)
1570-
; ASM32PWR4-NEXT: lis 6, 16361
1571-
; ASM32PWR4-NEXT: ori 6, 6, 39321
1575+
; ASM32PWR4-NEXT: stw 0, 168(1)
1576+
; ASM32PWR4-NEXT: lwz 5, L..C20(2) # %const.1
1577+
; ASM32PWR4-NEXT: lwz 4, L..C21(2) # @f14
15721578
; ASM32PWR4-NEXT: lfd 0, 0(3)
1573-
; ASM32PWR4-NEXT: lwz 3, 0(4)
1574-
; ASM32PWR4-NEXT: lwz 4, 0(5)
1575-
; ASM32PWR4-NEXT: li 5, 0
1576-
; ASM32PWR4-NEXT: stw 5, 60(1)
1577-
; ASM32PWR4-NEXT: lis 5, 16352
1578-
; ASM32PWR4-NEXT: stw 5, 56(1)
1579-
; ASM32PWR4-NEXT: lis 5, 13107
1580-
; ASM32PWR4-NEXT: ori 5, 5, 13107
1581-
; ASM32PWR4-NEXT: stw 5, 68(1)
1582-
; ASM32PWR4-NEXT: lis 5, 16355
1583-
; ASM32PWR4-NEXT: ori 5, 5, 13107
1584-
; ASM32PWR4-NEXT: stw 5, 64(1)
1585-
; ASM32PWR4-NEXT: lis 5, 26214
1586-
; ASM32PWR4-NEXT: ori 5, 5, 26214
1587-
; ASM32PWR4-NEXT: stw 5, 76(1)
1588-
; ASM32PWR4-NEXT: lis 5, 16358
1589-
; ASM32PWR4-NEXT: ori 5, 5, 26214
1590-
; ASM32PWR4-NEXT: stw 5, 72(1)
1591-
; ASM32PWR4-NEXT: lis 5, -26215
1592-
; ASM32PWR4-NEXT: ori 5, 5, 39322
1593-
; ASM32PWR4-NEXT: stw 5, 84(1)
1594-
; ASM32PWR4-NEXT: stw 5, 100(1)
1595-
; ASM32PWR4-NEXT: lis 5, 16313
1596-
; ASM32PWR4-NEXT: ori 5, 5, 39321
1597-
; ASM32PWR4-NEXT: stw 5, 96(1)
1598-
; ASM32PWR4-NEXT: lis 5, -15729
1599-
; ASM32PWR4-NEXT: ori 5, 5, 23593
1600-
; ASM32PWR4-NEXT: stw 5, 108(1)
1601-
; ASM32PWR4-NEXT: lis 5, 16316
1602-
; ASM32PWR4-NEXT: ori 5, 5, 10485
1603-
; ASM32PWR4-NEXT: stw 5, 104(1)
1604-
; ASM32PWR4-NEXT: lis 5, -5243
1605-
; ASM32PWR4-NEXT: ori 5, 5, 7864
1606-
; ASM32PWR4-NEXT: stw 5, 116(1)
1607-
; ASM32PWR4-NEXT: lis 5, 16318
1608-
; ASM32PWR4-NEXT: ori 5, 5, 47185
1609-
; ASM32PWR4-NEXT: stw 6, 80(1)
1610-
; ASM32PWR4-NEXT: lis 6, -13108
1611-
; ASM32PWR4-NEXT: ori 6, 6, 52429
1612-
; ASM32PWR4-NEXT: stw 5, 112(1)
1613-
; ASM32PWR4-NEXT: lis 5, 2621
1614-
; ASM32PWR4-NEXT: ori 5, 5, 28836
1615-
; ASM32PWR4-NEXT: stw 6, 92(1)
1616-
; ASM32PWR4-NEXT: lis 6, 16364
1617-
; ASM32PWR4-NEXT: ori 6, 6, 52428
1618-
; ASM32PWR4-NEXT: stw 5, 124(1)
1619-
; ASM32PWR4-NEXT: lis 5, 16320
1620-
; ASM32PWR4-NEXT: ori 5, 5, 41943
1621-
; ASM32PWR4-NEXT: stw 6, 88(1)
1622-
; ASM32PWR4-NEXT: lwz 6, L..C22(2) # %const.0
1623-
; ASM32PWR4-NEXT: stw 5, 120(1)
1624-
; ASM32PWR4-NEXT: lwz 5, L..C23(2) # %const.1
1625-
; ASM32PWR4-NEXT: lfd 2, 0(6)
1626-
; ASM32PWR4-NEXT: lwz 6, L..C24(2) # %const.2
1579+
; ASM32PWR4-NEXT: lwz 3, L..C22(2) # @f16
1580+
; ASM32PWR4-NEXT: lwz 3, 0(3)
1581+
; ASM32PWR4-NEXT: stw 3, 140(1)
1582+
; ASM32PWR4-NEXT: li 3, 0
1583+
; ASM32PWR4-NEXT: stw 3, 60(1)
1584+
; ASM32PWR4-NEXT: lis 3, 16352
1585+
; ASM32PWR4-NEXT: stw 3, 56(1)
1586+
; ASM32PWR4-NEXT: lis 3, 13107
1587+
; ASM32PWR4-NEXT: ori 3, 3, 13107
1588+
; ASM32PWR4-NEXT: stw 3, 68(1)
1589+
; ASM32PWR4-NEXT: lis 3, 16355
1590+
; ASM32PWR4-NEXT: ori 3, 3, 13107
1591+
; ASM32PWR4-NEXT: stw 3, 64(1)
1592+
; ASM32PWR4-NEXT: lis 3, 26214
1593+
; ASM32PWR4-NEXT: ori 3, 3, 26214
1594+
; ASM32PWR4-NEXT: stw 3, 76(1)
1595+
; ASM32PWR4-NEXT: lis 3, 16358
1596+
; ASM32PWR4-NEXT: ori 3, 3, 26214
1597+
; ASM32PWR4-NEXT: stw 3, 72(1)
1598+
; ASM32PWR4-NEXT: lis 3, -26215
1599+
; ASM32PWR4-NEXT: ori 3, 3, 39322
1600+
; ASM32PWR4-NEXT: stw 3, 84(1)
1601+
; ASM32PWR4-NEXT: stw 3, 100(1)
1602+
; ASM32PWR4-NEXT: lis 3, 16313
1603+
; ASM32PWR4-NEXT: ori 3, 3, 39321
1604+
; ASM32PWR4-NEXT: stw 3, 96(1)
1605+
; ASM32PWR4-NEXT: lis 3, -15729
1606+
; ASM32PWR4-NEXT: ori 3, 3, 23593
1607+
; ASM32PWR4-NEXT: stw 3, 108(1)
1608+
; ASM32PWR4-NEXT: lis 3, 16316
1609+
; ASM32PWR4-NEXT: ori 3, 3, 10485
1610+
; ASM32PWR4-NEXT: stw 3, 104(1)
1611+
; ASM32PWR4-NEXT: lis 3, -5243
1612+
; ASM32PWR4-NEXT: ori 3, 3, 7864
1613+
; ASM32PWR4-NEXT: stw 3, 116(1)
1614+
; ASM32PWR4-NEXT: lis 3, 16318
1615+
; ASM32PWR4-NEXT: ori 3, 3, 47185
1616+
; ASM32PWR4-NEXT: stw 3, 112(1)
1617+
; ASM32PWR4-NEXT: lis 3, 2621
1618+
; ASM32PWR4-NEXT: ori 3, 3, 28836
1619+
; ASM32PWR4-NEXT: stw 3, 124(1)
1620+
; ASM32PWR4-NEXT: lis 3, 16320
1621+
; ASM32PWR4-NEXT: ori 3, 3, 41943
1622+
; ASM32PWR4-NEXT: stw 3, 120(1)
1623+
; ASM32PWR4-NEXT: lwz 3, L..C23(2) # %const.0
1624+
; ASM32PWR4-NEXT: lfd 2, 0(3)
1625+
; ASM32PWR4-NEXT: lwz 3, L..C24(2) # %const.2
16271626
; ASM32PWR4-NEXT: lfd 3, 0(5)
16281627
; ASM32PWR4-NEXT: lwz 5, L..C25(2) # %const.3
1629-
; ASM32PWR4-NEXT: lfd 4, 0(6)
1630-
; ASM32PWR4-NEXT: lwz 6, L..C26(2) # %const.4
1628+
; ASM32PWR4-NEXT: lfd 4, 0(3)
1629+
; ASM32PWR4-NEXT: lwz 3, L..C26(2) # %const.4
16311630
; ASM32PWR4-NEXT: lfd 6, 0(5)
16321631
; ASM32PWR4-NEXT: lwz 5, L..C27(2) # %const.5
1633-
; ASM32PWR4-NEXT: lfd 7, 0(6)
1634-
; ASM32PWR4-NEXT: lwz 6, L..C28(2) # %const.6
1632+
; ASM32PWR4-NEXT: lwz 4, 0(4)
1633+
; ASM32PWR4-NEXT: lfd 7, 0(3)
1634+
; ASM32PWR4-NEXT: lwz 3, L..C28(2) # %const.6
16351635
; ASM32PWR4-NEXT: lfd 8, 0(5)
16361636
; ASM32PWR4-NEXT: lwz 5, L..C29(2) # %const.7
1637-
; ASM32PWR4-NEXT: lfd 9, 0(6)
1638-
; ASM32PWR4-NEXT: lwz 6, L..C30(2) # %const.8
1637+
; ASM32PWR4-NEXT: stw 4, 128(1)
1638+
; ASM32PWR4-NEXT: lis 4, 16361
1639+
; ASM32PWR4-NEXT: ori 4, 4, 39321
1640+
; ASM32PWR4-NEXT: lfd 9, 0(3)
1641+
; ASM32PWR4-NEXT: lwz 3, L..C30(2) # %const.8
16391642
; ASM32PWR4-NEXT: lfd 1, 0(5)
16401643
; ASM32PWR4-NEXT: lwz 5, L..C31(2) # %const.9
1641-
; ASM32PWR4-NEXT: lfd 11, 0(6)
1642-
; ASM32PWR4-NEXT: lwz 6, L..C32(2) # %const.10
1644+
; ASM32PWR4-NEXT: stw 4, 80(1)
1645+
; ASM32PWR4-NEXT: lis 4, -13108
16431646
; ASM32PWR4-NEXT: fmr 10, 1
1647+
; ASM32PWR4-NEXT: ori 4, 4, 52429
1648+
; ASM32PWR4-NEXT: lfd 11, 0(3)
1649+
; ASM32PWR4-NEXT: lwz 3, L..C32(2) # %const.10
16441650
; ASM32PWR4-NEXT: lfd 12, 0(5)
16451651
; ASM32PWR4-NEXT: lwz 5, L..C33(2) # %const.11
1646-
; ASM32PWR4-NEXT: lfd 13, 0(6)
1652+
; ASM32PWR4-NEXT: stw 4, 92(1)
1653+
; ASM32PWR4-NEXT: lis 4, 16364
1654+
; ASM32PWR4-NEXT: ori 4, 4, 52428
1655+
; ASM32PWR4-NEXT: stfd 0, 152(1)
1656+
; ASM32PWR4-NEXT: stw 4, 88(1)
1657+
; ASM32PWR4-NEXT: lwz 4, 156(1)
1658+
; ASM32PWR4-NEXT: lfd 13, 0(3)
16471659
; ASM32PWR4-NEXT: lfs 5, 0(5)
1648-
; ASM32PWR4-NEXT: stfd 0, 132(1)
1649-
; ASM32PWR4-NEXT: stw 4, 140(1)
1650-
; ASM32PWR4-NEXT: stw 3, 128(1)
1660+
; ASM32PWR4-NEXT: lwz 3, 152(1)
1661+
; ASM32PWR4-NEXT: stw 4, 136(1)
1662+
; ASM32PWR4-NEXT: stw 3, 132(1)
16511663
; ASM32PWR4-NEXT: bl .test_fpr_stack
16521664
; ASM32PWR4-NEXT: nop
1653-
; ASM32PWR4-NEXT: addi 1, 1, 144
1665+
; ASM32PWR4-NEXT: addi 1, 1, 160
16541666
; ASM32PWR4-NEXT: lwz 0, 8(1)
16551667
; ASM32PWR4-NEXT: mtlr 0
16561668
; ASM32PWR4-NEXT: blr
@@ -1667,7 +1679,6 @@ define void @caller_fpr_stack() {
16671679
; ASM64PWR4-NEXT: lis 7, 16313
16681680
; ASM64PWR4-NEXT: lwz 3, 0(3)
16691681
; ASM64PWR4-NEXT: ld 4, 0(4)
1670-
; ASM64PWR4-NEXT: lwz 5, 0(5)
16711682
; ASM64PWR4-NEXT: stw 3, 152(1)
16721683
; ASM64PWR4-NEXT: ld 3, L..C22(2) # %const.0
16731684
; ASM64PWR4-NEXT: std 4, 160(1)
@@ -1686,6 +1697,7 @@ define void @caller_fpr_stack() {
16861697
; ASM64PWR4-NEXT: ld 4, L..C29(2) # %const.7
16871698
; ASM64PWR4-NEXT: lfd 9, 0(3)
16881699
; ASM64PWR4-NEXT: ld 3, L..C30(2) # %const.8
1700+
; ASM64PWR4-NEXT: lwz 5, 0(5)
16891701
; ASM64PWR4-NEXT: lfd 1, 0(4)
16901702
; ASM64PWR4-NEXT: lis 4, 16320
16911703
; ASM64PWR4-NEXT: ori 4, 4, 41943

llvm/test/CodeGen/PowerPC/aix-cc-byval-mir.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ define void @call_test_byval_3Byte() {
134134
; 32BIT-NEXT: ADJCALLSTACKDOWN 60, 0, implicit-def dead $r1, implicit $r1
135135
; 32BIT-NEXT: renamable $r3 = LI 42
136136
; 32BIT-NEXT: renamable $r4 = LWZtoc @gS3, $r2 :: (load (s32) from got)
137-
; 32BIT-NEXT: STW killed renamable $r3, 56, $r1 :: (store (s32))
137+
; 32BIT-NEXT: STW killed renamable $r3, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)
138138
; 32BIT-NEXT: renamable $r3 = LBZ 2, renamable $r4 :: (load (s8))
139139
; 32BIT-NEXT: renamable $r4 = LHZ 0, killed renamable $r4 :: (load (s16))
140140
; 32BIT-NEXT: renamable $r10 = RLWINM killed renamable $r3, 8, 16, 23
@@ -155,7 +155,7 @@ define void @call_test_byval_3Byte() {
155155
; 64BIT-NEXT: ADJCALLSTACKDOWN 120, 0, implicit-def dead $r1, implicit $r1
156156
; 64BIT-NEXT: renamable $x3 = LI8 42
157157
; 64BIT-NEXT: renamable $x4 = LDtoc @gS3, $x2 :: (load (s64) from got)
158-
; 64BIT-NEXT: STD killed renamable $x3, 112, $x1 :: (store (s64))
158+
; 64BIT-NEXT: STD killed renamable $x3, 112, $x1 :: (store (s64) into stack + 112, align 16)
159159
; 64BIT-NEXT: renamable $x3 = LBZ8 2, renamable $x4 :: (load (s8))
160160
; 64BIT-NEXT: renamable $x4 = LHZ8 0, killed renamable $x4 :: (load (s16))
161161
; 64BIT-NEXT: renamable $x10 = RLDIC killed renamable $x3, 40, 16

llvm/test/CodeGen/PowerPC/aix-vec-arg-spills-mir.ll

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@ define double @caller() {
3434
; MIR32-NEXT: STXVW4X renamable $vsl0, $r1, killed renamable $r3 :: (store (s128), align 8)
3535
; MIR32-NEXT: renamable $r3 = LI 104
3636
; MIR32-NEXT: STXVW4X renamable $vsl0, $r1, killed renamable $r4 :: (store (s128), align 8)
37-
; MIR32-NEXT: renamable $r4 = LI 88
3837
; MIR32-NEXT: STXVW4X renamable $vsl0, $r1, killed renamable $r3 :: (store (s128), align 8)
39-
; MIR32-NEXT: STXVW4X renamable $vsl0, $r1, killed renamable $r4 :: (store (s128), align 8)
40-
; MIR32-NEXT: renamable $r3 = LI 72
41-
; MIR32-NEXT: renamable $r4 = LWZtoc %const.0, $r2 :: (load (s32) from got)
42-
; MIR32-NEXT: STXVW4X killed renamable $vsl0, $r1, killed renamable $r3 :: (store (s128), align 8)
38+
; MIR32-NEXT: renamable $r3 = LI 88
39+
; MIR32-NEXT: renamable $r4 = LI 72
40+
; MIR32-NEXT: STXVW4X renamable $vsl0, $r1, killed renamable $r3 :: (store (s128), align 8)
4341
; MIR32-NEXT: renamable $r3 = LI 48
44-
; MIR32-NEXT: renamable $vsl0 = LXVD2X $zero, killed renamable $r4 :: (load (s128) from constant-pool)
42+
; MIR32-NEXT: STXVW4X killed renamable $vsl0, $r1, killed renamable $r4 :: (store (s128), align 8)
4543
; MIR32-NEXT: renamable $r4 = LI 512
46-
; MIR32-NEXT: STXVD2X killed renamable $vsl0, $r1, killed renamable $r3 :: (store (s128))
47-
; MIR32-NEXT: STW killed renamable $r4, 152, $r1 :: (store (s32))
44+
; MIR32-NEXT: STW killed renamable $r4, 152, $r1 :: (store (s32) into stack + 152, align 8, basealign 16)
45+
; MIR32-NEXT: renamable $r4 = LWZtoc %const.0, $r2 :: (load (s32) from got)
46+
; MIR32-NEXT: renamable $vsl0 = LXVD2X $zero, killed renamable $r4 :: (load (s128) from constant-pool)
47+
; MIR32-NEXT: STXVD2X killed renamable $vsl0, $r1, killed renamable $r3 :: (store (s128) into stack + 48)
4848
; MIR32-NEXT: $f1 = XXLXORdpz
4949
; MIR32-NEXT: $f2 = XXLXORdpz
5050
; MIR32-NEXT: $v2 = XXLXORz
@@ -92,18 +92,18 @@ define double @caller() {
9292
; MIR64-NEXT: ADJCALLSTACKDOWN 224, 0, implicit-def dead $r1, implicit $r1
9393
; MIR64-NEXT: renamable $vsl0 = XXLXORz
9494
; MIR64-NEXT: renamable $x3 = LI8 160
95-
; MIR64-NEXT: STXVW4X renamable $vsl0, $x1, killed renamable $x3 :: (store (s128), align 8)
95+
; MIR64-NEXT: STXVW4X renamable $vsl0, $x1, killed renamable $x3 :: (store (s128))
9696
; MIR64-NEXT: renamable $x3 = LI8 144
97-
; MIR64-NEXT: STXVW4X renamable $vsl0, $x1, killed renamable $x3 :: (store (s128), align 8)
97+
; MIR64-NEXT: STXVW4X renamable $vsl0, $x1, killed renamable $x3 :: (store (s128))
9898
; MIR64-NEXT: renamable $x3 = LI8 128
99-
; MIR64-NEXT: STXVW4X killed renamable $vsl0, $x1, killed renamable $x3 :: (store (s128), align 8)
100-
; MIR64-NEXT: renamable $x3 = LDtocCPT %const.0, $x2 :: (load (s64) from got)
101-
; MIR64-NEXT: renamable $vsl0 = LXVD2X $zero8, killed renamable $x3 :: (load (s128) from constant-pool)
102-
; MIR64-NEXT: renamable $x3 = LI8 80
103-
; MIR64-NEXT: STXVD2X killed renamable $vsl0, $x1, killed renamable $x3 :: (store (s128))
99+
; MIR64-NEXT: STXVW4X killed renamable $vsl0, $x1, killed renamable $x3 :: (store (s128))
104100
; MIR64-NEXT: renamable $x3 = LI8 512
105-
; MIR64-NEXT: STD killed renamable $x3, 184, $x1 :: (store (s64))
106-
; MIR64-NEXT: STD killed renamable $x4, 176, $x1 :: (store (s64))
101+
; MIR64-NEXT: STD killed renamable $x3, 184, $x1 :: (store (s64) into stack + 184, basealign 16)
102+
; MIR64-NEXT: renamable $x3 = LI8 80
103+
; MIR64-NEXT: STD killed renamable $x4, 176, $x1 :: (store (s64) into stack + 176, align 16)
104+
; MIR64-NEXT: renamable $x4 = LDtocCPT %const.0, $x2 :: (load (s64) from got)
105+
; MIR64-NEXT: renamable $vsl0 = LXVD2X $zero8, killed renamable $x4 :: (load (s128) from constant-pool)
106+
; MIR64-NEXT: STXVD2X killed renamable $vsl0, $x1, killed renamable $x3 :: (store (s128) into stack + 80)
107107
; MIR64-NEXT: $f1 = XXLXORdpz
108108
; MIR64-NEXT: $f2 = XXLXORdpz
109109
; MIR64-NEXT: $v2 = XXLXORz

0 commit comments

Comments
 (0)