Changeset 3979 in CLRX


Ignore:
Timestamp:
Apr 10, 2018, 8:51:33 AM (8 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: add new testcase.

File:
1 edited

Legend:

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

    r3975 r3979  
    18711871        true, ""
    18721872    },
     1873    {   // 13 - simple routine with loop (first jump to end, second to loop)
     1874        R"ffDXD(.regvar sa:s:10, va:v:8
     1875        s_mov_b32 sa[2], s4
     1876        s_mov_b32 sa[3], s5
     1877        s_mov_b32 sa[4], s6
     1878        .cf_call routine
     1879        s_swappc_b64 s[0:1], s[2:3]
     1880       
     1881        s_xor_b32 sa[2], sa[2], sa[0]
     1882        s_xor_b32 sa[3], sa[3], sa[0]
     1883        s_xor_b32 sa[4], sa[4], sa[1]
     1884       
     1885        .cf_call routine
     1886        s_swappc_b64 s[0:1], s[2:3]
     1887       
     1888        s_xor_b32 sa[2], sa[2], sa[0]
     1889        s_xor_b32 sa[3], sa[3], sa[0]
     1890        s_xor_b32 sa[4], sa[4], sa[1]
     1891        s_endpgm
     1892       
     1893rend:   s_xor_b32 sa[4], sa[4], sa[1]
     1894        s_xor_b32 sa[2], sa[2], sa[0]
     1895        .cf_ret
     1896        s_setpc_b64 s[0:1]
     1897       
     1898routine:
     1899        s_xor_b32 sa[2], sa[2], sa[0]
     1900        s_xor_b32 sa[3], sa[3], sa[0]
     1901       
     1902loop0:  s_xor_b32 sa[2], sa[2], sa[0]
     1903        s_xor_b32 sa[3], sa[3], sa[0]
     1904        s_xor_b32 sa[4], sa[4], sa[1]
     1905        .cf_jump loop0, rend
     1906        s_setpc_b64 s[0:1]
     1907)ffDXD",
     1908        {
     1909            {   // block 0 - start
     1910                0, 16,
     1911                { { 4, true } },
     1912                {
     1913                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     1914                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     1915                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1916                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1917                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1918                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1919                    { { "", 6 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1920                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     1921                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) },
     1922                    { { "sa", 4 }, SSAInfo(0, 1, 1, 1, 1, false) }
     1923                }, true, false, false },
     1924            {   // block 1 - after routine call
     1925                16, 32,
     1926                { { 4, true } },
     1927                {
     1928                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     1929                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     1930                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1931                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1932                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1933                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1934                    { { "sa", 2 }, SSAInfo(4, 5, 5, 5, 1, true) },
     1935                    { { "sa", 3 }, SSAInfo(3, 4, 4, 4, 1, true) },
     1936                    { { "sa", 4 }, SSAInfo(3, 4, 4, 4, 1, true) }
     1937                }, true, false, false },
     1938            {   // block 2 - end
     1939                32, 48,
     1940                { },
     1941                {
     1942                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1943                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1944                    { { "sa", 2 }, SSAInfo(4, 6, 6, 6, 1, true) },
     1945                    { { "sa", 3 }, SSAInfo(3, 5, 5, 5, 1, true) },
     1946                    { { "sa", 4 }, SSAInfo(3, 5, 5, 5, 1, true) }
     1947                }, false, false, true },
     1948            {   // block 3 - routine end
     1949                48, 60,
     1950                { },
     1951                {
     1952                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1953                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1954                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1955                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1956                    { { "sa", 2 }, SSAInfo(3, 4, 4, 4, 1, true) },
     1957                    { { "sa", 4 }, SSAInfo(2, 3, 3, 3, 1, true) }
     1958                }, false, true, true },
     1959            {   // block 4 - routine
     1960                60, 68,
     1961                { },
     1962                {
     1963                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1964                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     1965                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) }
     1966                }, false, false, false },
     1967            {   // block 5 - loop0
     1968                68, 84,
     1969                { { 3, false }, { 5, false } },
     1970                {
     1971                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1972                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1973                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1974                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     1975                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, true) },
     1976                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) },
     1977                    { { "sa", 4 }, SSAInfo(1, 2, 2, 2, 1, true) }
     1978                }, false, false, true }
     1979        },
     1980        {   // SSA replaces
     1981            { { "sa", 2 }, { { 3, 2 }, { 5, 1 } } },
     1982            { { "sa", 3 }, { { 3, 2 }, { 4, 1 } } },
     1983            { { "sa", 4 }, { { 2, 1 }, { 4, 1 } } }
     1984        },
     1985        true, ""
     1986    },
    18731987    { nullptr }
    18741988};
Note: See TracChangeset for help on using the changeset viewer.