Changeset 3989 in CLRX


Ignore:
Timestamp:
Apr 12, 2018, 8:53:36 AM (3 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Yet another testcase.

File:
1 edited

Legend:

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

    r3988 r3989  
    25482548        true, ""
    25492549    },
     2550    {   // 18 - simple routine with loop (no var init)
     2551        R"ffDXD(.regvar sa:s:10, va:v:8
     2552        .cf_call routine
     2553        s_swappc_b64 s[0:1], s[2:3]
     2554       
     2555        s_xor_b32 sa[2], sa[2], sa[0]
     2556        s_xor_b32 sa[3], sa[3], sa[0]
     2557        s_xor_b32 sa[4], sa[4], sa[1]
     2558       
     2559        .cf_call routine
     2560        s_swappc_b64 s[0:1], s[2:3]
     2561       
     2562        s_xor_b32 sa[2], sa[2], sa[0]
     2563        s_xor_b32 sa[3], sa[3], sa[0]
     2564        s_xor_b32 sa[4], sa[4], sa[1]
     2565        s_endpgm
     2566       
     2567routine:
     2568loop0:  s_xor_b32 sa[2], sa[2], sa[0]
     2569        s_xor_b32 sa[3], sa[3], sa[0]
     2570        s_xor_b32 sa[4], sa[4], sa[1]
     2571        s_cbranch_scc0 loop0
     2572       
     2573        s_xor_b32 sa[4], sa[4], sa[1]
     2574        s_xor_b32 sa[2], sa[2], sa[0]
     2575        .cf_ret
     2576        s_setpc_b64 s[0:1]
     2577)ffDXD",
     2578        {
     2579            {   // block 0 - start
     2580                0, 4,
     2581                { { 3, true } },
     2582                {
     2583                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2584                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2585                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2586                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) }
     2587                }, true, false, false },
     2588            {   // block 1 - after routine call
     2589                4, 20,
     2590                { { 3, true } },
     2591                {
     2592                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2593                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2594                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2595                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2596                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2597                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2598                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, true) },
     2599                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2600                    { { "sa", 4 }, SSAInfo(2, 3, 3, 3, 1, true) }
     2601                }, true, false, false },
     2602            {   // block 2 - end
     2603                20, 36,
     2604                { },
     2605                {
     2606                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2607                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2608                    { { "sa", 2 }, SSAInfo(2, 4, 4, 4, 1, true) },
     2609                    { { "sa", 3 }, SSAInfo(1, 3, 3, 3, 1, true) },
     2610                    { { "sa", 4 }, SSAInfo(2, 4, 4, 4, 1, true) }
     2611                }, false, false, true },
     2612            {   // block 3 - routine/loop
     2613                36, 52,
     2614                { { 3, false }, { 4, false } },
     2615                {
     2616                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2617                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2618                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, true) },
     2619                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, true) },
     2620                    { { "sa", 4 }, SSAInfo(0, 1, 1, 1, 1, true) }
     2621                }, false, false, false },
     2622            {   // block 4 - routine end
     2623                52, 64,
     2624                { },
     2625                {
     2626                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2627                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2628                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2629                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2630                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2631                    { { "sa", 4 }, SSAInfo(1, 2, 2, 2, 1, true) }
     2632                }, false, true, true }
     2633        },
     2634        {   // SSA replaces
     2635            { { "sa", 2 }, { { 1, 0 }, { 3, 0 } } },
     2636            { { "sa", 3 }, { { 1, 0 }, { 2, 0 } } },
     2637            { { "sa", 4 }, { { 1, 0 }, { 3, 0 } } }
     2638        },
     2639        true, ""
     2640    },
    25502641    { nullptr }
    25512642};
Note: See TracChangeset for help on using the changeset viewer.