@@ -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
0 commit comments