Changeset 3986 in CLRX


Ignore:
Timestamp:
Apr 11, 2018, 9:27:25 AM (3 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add new testcase (two routines, one joins second).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAllocCase3.cpp

    r3980 r3986  
    20932093        true, ""
    20942094    },
     2095    {   // 15 - one routine as part of other routine
     2096        R"ffDXD(.regvar sa:s:10, va:v:8
     2097        s_mov_b32 sa[2], s4
     2098        s_mov_b32 sa[3], s5
     2099        s_mov_b32 sa[4], s6
     2100        .cf_call routine
     2101        s_swappc_b64 s[0:1], s[2:3]
     2102       
     2103        s_xor_b32 sa[2], sa[2], sa[0]
     2104        s_xor_b32 sa[3], sa[3], sa[0]
     2105        s_xor_b32 sa[4], sa[4], sa[1]
     2106       
     2107        .cf_call routine2
     2108        s_swappc_b64 s[0:1], s[2:3]
     2109       
     2110        s_xor_b32 sa[2], sa[2], sa[0]
     2111        s_xor_b32 sa[3], sa[3], sa[0]
     2112        s_xor_b32 sa[4], sa[4], sa[1]
     2113        s_endpgm
     2114       
     2115routine2:
     2116        s_xor_b32 sa[2], sa[2], sa[0]
     2117        s_xor_b32 sa[3], sa[3], sa[0]
     2118        s_cbranch_scc1 b0
     2119        .cf_ret
     2120        s_setpc_b64 s[0:1]
     2121       
     2122b0:     s_xor_b32 sa[3], sa[3], sa[1]
     2123        s_xor_b32 sa[2], sa[2], sa[1]
     2124
     2125routine:
     2126        s_xor_b32 sa[3], sa[3], sa[0]
     2127        s_xor_b32 sa[4], sa[4], sa[1]
     2128        .cf_ret
     2129        s_setpc_b64 s[0:1]
     2130)ffDXD",
     2131        {
     2132            {   // block 0 - start
     2133                0, 16,
     2134                { { 6, true } },
     2135                {
     2136                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2137                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2138                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2139                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2140                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2141                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2142                    { { "", 6 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2143                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     2144                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) },
     2145                    { { "sa", 4 }, SSAInfo(0, 1, 1, 1, 1, false) }
     2146                }, true, false, false },
     2147            {   // block 1 - after call routine
     2148                16, 32,
     2149                { { 3, true } },
     2150                {
     2151                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2152                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2153                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2154                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2155                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2156                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2157                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2158                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) },
     2159                    { { "sa", 4 }, SSAInfo(2, 3, 3, 3, 1, true) }
     2160                }, true, false, false },
     2161            {   // block 2 - end
     2162                32, 48,
     2163                { },
     2164                {
     2165                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2166                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2167                    { { "sa", 2 }, SSAInfo(3, 5, 5, 5, 1, true) },
     2168                    { { "sa", 3 }, SSAInfo(2, 6, 6, 6, 1, true) },
     2169                    { { "sa", 4 }, SSAInfo(2, 4, 4, 4, 1, true) }
     2170                }, false, false, true },
     2171            {   // block 3 - routine2
     2172                48, 60,
     2173                { { 4, false }, { 5, false } },
     2174                {
     2175                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2176                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, true) },
     2177                    { { "sa", 3 }, SSAInfo(3, 4, 4, 4, 1, true) }
     2178                }, false, false, false },
     2179            {   // block 4 - end1
     2180                60, 64,
     2181                { },
     2182                {
     2183                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2184                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) }
     2185                }, false, true, true },
     2186            {   // block 5 - b0
     2187                64, 72,
     2188                { },
     2189                {
     2190                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2191                    { { "sa", 2 }, SSAInfo(3, 4, 4, 4, 1, true) },
     2192                    { { "sa", 3 }, SSAInfo(4, 5, 5, 5, 1, true) }
     2193                }, false, false, false },
     2194            {   // block 6 - routine
     2195                72, 84,
     2196                { },
     2197                {
     2198                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2199                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2200                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2201                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2202                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2203                    { { "sa", 4 }, SSAInfo(1, 2, 2, 2, 1, true) }
     2204                }, false, true, true }
     2205        },
     2206        {   // SSA replaces
     2207            { { "sa", 2 }, { { 4, 3 } } },
     2208            { { "sa", 3 }, { { 4, 2 }, { 5, 1 } } },
     2209            { { "sa", 4 }, { { 3, 2 }, { 3, 1 } } }
     2210        },
     2211        true, ""
     2212    },
    20952213    { nullptr }
    20962214};
Note: See TracChangeset for help on using the changeset viewer.