Changeset 3644 in CLRX


Ignore:
Timestamp:
Jan 19, 2018, 9:18:28 PM (2 years ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add new testcase (unused regvar after calls).

File:
1 edited

Legend:

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

    r3643 r3644  
    27262726        },
    27272727        true, ""
     2728    },
     2729    {   // 21 - simple call, more complex routine (no use return)
     2730        R"ffDXD(.regvar sa:s:8, va:v:8
     2731        s_mov_b32 sa[2], s4
     2732        s_mov_b32 sa[3], s5
     2733       
     2734        s_getpc_b64 s[2:3]
     2735        s_add_u32 s2, s2, routine-.
     2736        s_add_u32 s3, s3, routine-.+4
     2737        .cf_call routine
     2738        s_swappc_b64 s[0:1], s[2:3]
     2739       
     2740        s_lshl_b32 sa[3], sa[3], 4
     2741        s_endpgm
     2742       
     2743routine:
     2744        s_xor_b32 sa[2], sa[2], sa[4]
     2745        s_xor_b32 sa[3], sa[3], sa[4]
     2746        s_cbranch_scc1 bb1
     2747       
     2748        s_min_u32 sa[2], sa[2], sa[4]
     2749        .cf_ret
     2750        s_setpc_b64 s[0:1]
     2751       
     2752bb1:    s_and_b32 sa[2], sa[2], sa[4]
     2753        .cf_ret
     2754        s_setpc_b64 s[0:1]
     2755)ffDXD",
     2756        {
     2757            { 0, 32,
     2758                { { 2, true } },
     2759                {
     2760                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2761                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2762                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2763                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2764                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2765                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2766                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     2767                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) }
     2768                }, true, false, false },
     2769            // block 1 - after call
     2770            { 32, 40,
     2771                { },
     2772                {
     2773                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) }
     2774                }, false, false, true },
     2775            // block 2 - routine
     2776            { 40, 52,
     2777                { { 3, false }, { 4, false } },
     2778                {
     2779                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2780                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2781                    { { "sa", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     2782                }, false, false, false },
     2783            // block 3 - first return
     2784            { 52, 60,
     2785                { },
     2786                {
     2787                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2788                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2789                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, true) },
     2790                    { { "sa", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     2791                }, false, true, true },
     2792            // block 4 - second return
     2793            { 60, 68,
     2794                { },
     2795                {
     2796                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2797                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2798                    { { "sa", 2 }, SSAInfo(2, 4, 4, 4, 1, true) },
     2799                    { { "sa", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     2800                }, false, true, true }
     2801        },
     2802        { },
     2803        true, ""
    27282804    }
    27292805};
Note: See TracChangeset for help on using the changeset viewer.