@@ -1661,3 +1661,170 @@ body: |
16611661 SI_RETURN implicit $vgpr0
16621662
16631663 ...
1664+
1665+ ---
1666+ name : v_add_co_u32_e64__fi_sgpr_kernel
1667+ tracksRegLiveness : true
1668+ stack :
1669+ - { id: 0, size: 20, alignment: 4 }
1670+ machineFunctionInfo :
1671+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1672+ frameOffsetReg : ' $sgpr33'
1673+ stackPtrOffsetReg : ' $sgpr32'
1674+ isEntryFunction : true
1675+ body : |
1676+ bb.0:
1677+ liveins: $sgpr4
1678+
1679+ ; MUBUFW64-LABEL: name: v_add_co_u32_e64__fi_sgpr_kernel
1680+ ; MUBUFW64: liveins: $sgpr4, $sgpr0_sgpr1_sgpr2_sgpr3
1681+ ; MUBUFW64-NEXT: {{ $}}
1682+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1683+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1684+ ; MUBUFW64-NEXT: renamable $vgpr0 = V_MOV_B32_e32 killed $sgpr4, implicit $exec
1685+ ; MUBUFW64-NEXT: SI_RETURN implicit $vgpr0
1686+ ;
1687+ ; FLATSCRW64-LABEL: name: v_add_co_u32_e64__fi_sgpr_kernel
1688+ ; FLATSCRW64: liveins: $sgpr4
1689+ ; FLATSCRW64-NEXT: {{ $}}
1690+ ; FLATSCRW64-NEXT: renamable $vgpr0 = V_MOV_B32_e32 killed $sgpr4, implicit $exec
1691+ ; FLATSCRW64-NEXT: SI_RETURN implicit $vgpr0
1692+ renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 %stack.0, killed $sgpr4, 0, implicit $exec
1693+ SI_RETURN implicit $vgpr0
1694+
1695+ ...
1696+
1697+ ---
1698+ name : v_add_co_u32_e64__fi_sgpr_func
1699+ tracksRegLiveness : true
1700+ stack :
1701+ - { id: 0, size: 20, alignment: 4 }
1702+ machineFunctionInfo :
1703+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1704+ frameOffsetReg : ' $sgpr33'
1705+ stackPtrOffsetReg : ' $sgpr32'
1706+ body : |
1707+ bb.0:
1708+ liveins: $sgpr4
1709+
1710+ ; MUBUFW64-LABEL: name: v_add_co_u32_e64__fi_sgpr_func
1711+ ; MUBUFW64: liveins: $sgpr4
1712+ ; MUBUFW64-NEXT: {{ $}}
1713+ ; MUBUFW64-NEXT: renamable $vgpr1 = V_LSHRREV_B32_e64 6, $sgpr32, implicit $exec
1714+ ; MUBUFW64-NEXT: renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 killed $sgpr4, killed $vgpr1, 0, implicit $exec
1715+ ; MUBUFW64-NEXT: SI_RETURN implicit $vgpr0
1716+ ;
1717+ ; GFX940-LABEL: name: v_add_co_u32_e64__fi_sgpr_func
1718+ ; GFX940: liveins: $sgpr4
1719+ ; GFX940-NEXT: {{ $}}
1720+ ; GFX940-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr32, implicit $exec
1721+ ; GFX940-NEXT: renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 killed $sgpr4, killed $vgpr1, 0, implicit $exec
1722+ ; GFX940-NEXT: SI_RETURN implicit $vgpr0
1723+ ;
1724+ ; GFX11-LABEL: name: v_add_co_u32_e64__fi_sgpr_func
1725+ ; GFX11: liveins: $sgpr4
1726+ ; GFX11-NEXT: {{ $}}
1727+ ; GFX11-NEXT: renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 $sgpr32, killed $sgpr4, 0, implicit $exec
1728+ ; GFX11-NEXT: SI_RETURN implicit $vgpr0
1729+ ;
1730+ ; GFX12-LABEL: name: v_add_co_u32_e64__fi_sgpr_func
1731+ ; GFX12: liveins: $sgpr4
1732+ ; GFX12-NEXT: {{ $}}
1733+ ; GFX12-NEXT: renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 $sgpr32, killed $sgpr4, 0, implicit $exec
1734+ ; GFX12-NEXT: SI_RETURN implicit $vgpr0
1735+ renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 %stack.0, killed $sgpr4, 0, implicit $exec
1736+ SI_RETURN implicit $vgpr0
1737+
1738+ ...
1739+
1740+ ---
1741+ name : v_add_co_u32_e64__fi_inc_same_vgpr_kernel
1742+ tracksRegLiveness : true
1743+ stack :
1744+ - { id: 0, size: 20, alignment: 4 }
1745+ machineFunctionInfo :
1746+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1747+ frameOffsetReg : ' $sgpr33'
1748+ stackPtrOffsetReg : ' $sgpr32'
1749+ isEntryFunction : true
1750+ body : |
1751+ bb.0:
1752+ liveins: $vgpr0
1753+
1754+ ; MUBUFW64-LABEL: name: v_add_co_u32_e64__fi_inc_same_vgpr_kernel
1755+ ; MUBUFW64: liveins: $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3
1756+ ; MUBUFW64-NEXT: {{ $}}
1757+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1758+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1759+ ; MUBUFW64-NEXT: SI_RETURN implicit $vgpr0
1760+ ;
1761+ ; FLATSCRW64-LABEL: name: v_add_co_u32_e64__fi_inc_same_vgpr_kernel
1762+ ; FLATSCRW64: liveins: $vgpr0
1763+ ; FLATSCRW64-NEXT: {{ $}}
1764+ ; FLATSCRW64-NEXT: SI_RETURN implicit $vgpr0
1765+ renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 %stack.0, killed $vgpr0, 0, implicit $exec
1766+ SI_RETURN implicit $vgpr0
1767+
1768+ ...
1769+
1770+ ---
1771+ name : v_add_co_u32_e64__fi_inc_same_vgpr_func
1772+ tracksRegLiveness : true
1773+ stack :
1774+ - { id: 0, size: 20, alignment: 4 }
1775+ machineFunctionInfo :
1776+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1777+ frameOffsetReg : ' $sgpr33'
1778+ stackPtrOffsetReg : ' $sgpr32'
1779+ body : |
1780+ bb.0:
1781+ liveins: $vgpr0
1782+
1783+ ; MUBUFW64-LABEL: name: v_add_co_u32_e64__fi_inc_same_vgpr_func
1784+ ; MUBUFW64: liveins: $vgpr0
1785+ ; MUBUFW64-NEXT: {{ $}}
1786+ ; MUBUFW64-NEXT: renamable $vgpr1 = V_LSHRREV_B32_e64 6, $sgpr32, implicit $exec
1787+ ; MUBUFW64-NEXT: renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 killed $vgpr0, killed $vgpr1, 0, implicit $exec
1788+ ; MUBUFW64-NEXT: SI_RETURN implicit $vgpr0
1789+ ;
1790+ ; FLATSCRW64-LABEL: name: v_add_co_u32_e64__fi_inc_same_vgpr_func
1791+ ; FLATSCRW64: liveins: $vgpr0
1792+ ; FLATSCRW64-NEXT: {{ $}}
1793+ ; FLATSCRW64-NEXT: renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 $sgpr32, killed $vgpr0, 0, implicit $exec
1794+ ; FLATSCRW64-NEXT: SI_RETURN implicit $vgpr0
1795+ renamable $vgpr0, dead renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 %stack.0, killed $vgpr0, 0, implicit $exec
1796+ SI_RETURN implicit $vgpr0
1797+
1798+ ...
1799+
1800+ ---
1801+ name : v_add_co_u32_e64__fi_sgpr_kernel_live_co
1802+ tracksRegLiveness : true
1803+ stack :
1804+ - { id: 0, size: 20, alignment: 4 }
1805+ machineFunctionInfo :
1806+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1807+ frameOffsetReg : ' $sgpr33'
1808+ stackPtrOffsetReg : ' $sgpr32'
1809+ isEntryFunction : true
1810+ body : |
1811+ bb.0:
1812+ liveins: $sgpr4
1813+
1814+ ; MUBUFW64-LABEL: name: v_add_co_u32_e64__fi_sgpr_kernel_live_co
1815+ ; MUBUFW64: liveins: $sgpr4, $sgpr0_sgpr1_sgpr2_sgpr3
1816+ ; MUBUFW64-NEXT: {{ $}}
1817+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1818+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1819+ ; MUBUFW64-NEXT: renamable $vgpr0, renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 0, killed $sgpr4, 0, implicit $exec
1820+ ; MUBUFW64-NEXT: SI_RETURN implicit $vgpr0, implicit $sgpr4_sgpr5
1821+ ;
1822+ ; FLATSCRW64-LABEL: name: v_add_co_u32_e64__fi_sgpr_kernel_live_co
1823+ ; FLATSCRW64: liveins: $sgpr4
1824+ ; FLATSCRW64-NEXT: {{ $}}
1825+ ; FLATSCRW64-NEXT: renamable $vgpr0, renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 0, killed $sgpr4, 0, implicit $exec
1826+ ; FLATSCRW64-NEXT: SI_RETURN implicit $vgpr0, implicit $sgpr4_sgpr5
1827+ renamable $vgpr0, renamable $sgpr4_sgpr5 = V_ADD_CO_U32_e64 %stack.0, killed $sgpr4, 0, implicit $exec
1828+ SI_RETURN implicit $vgpr0, implicit $sgpr4_sgpr5
1829+
1830+ ...
0 commit comments