Changeset 4022 in CLRX


Ignore:
Timestamp:
Apr 18, 2018, 4:55:08 PM (4 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add yet another testcase for createSSAData routine.

File:
1 edited

Legend:

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

    r3990 r4022  
    30373037        true, ""
    30383038    },
     3039    {   // 20 - simple call, more complex routine (many changes at end)
     3040        R"ffDXD(.regvar sa:s:8, va:v:8
     3041        s_mov_b32 sa[2], s4
     3042        s_mov_b32 sa[3], s5
     3043       
     3044        s_getpc_b64 s[2:3]
     3045        s_add_u32 s2, s2, routine-.
     3046        s_add_u32 s3, s3, routine-.+4
     3047        .cf_call routine
     3048        s_swappc_b64 s[0:1], s[2:3]
     3049       
     3050        s_lshl_b32 sa[2], sa[2], 3
     3051        s_lshl_b32 sa[3], sa[3], 4
     3052        s_endpgm
     3053       
     3054routine:
     3055        s_xor_b32 sa[2], sa[2], sa[4]
     3056        s_xor_b32 sa[3], sa[3], sa[4]
     3057        s_cbranch_scc1 bb1
     3058       
     3059        s_min_u32 sa[2], sa[2], sa[4]
     3060        s_min_u32 sa[3], sa[3], sa[4]
     3061        .cf_ret
     3062        s_setpc_b64 s[0:1]
     3063       
     3064bb1:    s_and_b32 sa[2], sa[2], sa[4]
     3065        s_and_b32 sa[2], sa[2], sa[4]
     3066        s_and_b32 sa[3], sa[3], sa[4]
     3067        s_and_b32 sa[3], sa[3], sa[4]
     3068        .cf_ret
     3069        s_setpc_b64 s[0:1]
     3070)ffDXD",
     3071        {
     3072            { 0, 32,
     3073                { { 2, true } },
     3074                {
     3075                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     3076                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     3077                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, false) },
     3078                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, false) },
     3079                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3080                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3081                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     3082                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) }
     3083                }, true, false, false },
     3084            // block 1 - after call
     3085            { 32, 44,
     3086                { },
     3087                {
     3088                    { { "sa", 2 }, SSAInfo(3, 6, 6, 6, 1, true) },
     3089                    { { "sa", 3 }, SSAInfo(3, 6, 6, 6, 1, true) }
     3090                }, false, false, true },
     3091            // block 2 - routine
     3092            { 44, 56,
     3093                { { 3, false }, { 4, false } },
     3094                {
     3095                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     3096                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) },
     3097                    { { "sa", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     3098                }, false, false, false },
     3099            // block 3 - first return
     3100            { 56, 68,
     3101                { },
     3102                {
     3103                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3104                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3105                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, true) },
     3106                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) },
     3107                    { { "sa", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     3108                }, false, true, true },
     3109            // block 4 - second return
     3110            { 68, 88,
     3111                { },
     3112                {
     3113                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3114                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3115                    { { "sa", 2 }, SSAInfo(2, 4, 4, 5, 2, true) },
     3116                    { { "sa", 3 }, SSAInfo(2, 4, 4, 5, 2, true) },
     3117                    { { "sa", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     3118                }, false, true, true }
     3119        },
     3120        {   // SSA replaces
     3121            { { "sa", 2 }, { { 5, 3 } } },
     3122            { { "sa", 3 }, { { 5, 3 } } }
     3123        },
     3124        true, ""
     3125    },
    30393126    { nullptr }
    30403127};
Note: See TracChangeset for help on using the changeset viewer.