Changeset 3920 in CLRX


Ignore:
Timestamp:
Mar 22, 2018, 9:07:22 AM (6 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: add new testcase (ret ssa testing).

File:
1 edited

Legend:

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

    r3917 r3920  
    390390        true, ""
    391391    },
     392    {   // 1 - retssa tests 2
     393        R"ffDXD(.regvar sa:s:8, va:v:8
     394        s_mov_b32 sa[2], s4
     395        s_mov_b32 sa[3], s5
     396        s_mov_b32 sa[4], s6
     397        s_mov_b32 sa[6], s7
     398        s_mov_b32 sa[7], s7
     399       
     400        .cf_call routine
     401        s_swappc_b64 s[0:1], s[2:3]
     402       
     403        s_lshl_b32 sa[6], sa[3], 4
     404        s_lshl_b32 sa[6], sa[4], 4
     405        s_cbranch_execz aa3
     406       
     407aa2:    s_lshr_b32 sa[7], sa[1], 4
     408        s_endpgm
     409       
     410aa3:    s_ashr_i32 sa[7], sa[7], 4
     411        s_endpgm
     412       
     413routine:
     414        s_xor_b32 sa[2], sa[2], sa[0]
     415        s_xor_b32 sa[3], sa[3], sa[0]
     416        .cf_cjump bb1, bb2
     417        s_setpc_b64 s[0:1]
     418       
     419bb0:    s_min_u32 sa[3], sa[3], sa[0]
     420        s_max_u32 sa[4], sa[4], sa[0]
     421        s_xor_b32 sa[6], sa[6], sa[0]
     422        s_xor_b32 sa[7], sa[7], sa[0]
     423        .cf_ret
     424        s_setpc_b64 s[0:1]
     425       
     426bb1:    s_and_b32 sa[3], sa[3], sa[0]
     427        s_max_u32 sa[4], sa[4], sa[0]
     428        s_xor_b32 sa[6], sa[6], sa[0]
     429        s_xor_b32 sa[7], sa[7], sa[0]
     430        .cf_ret
     431        s_setpc_b64 s[0:1]
     432
     433bb2:    s_and_b32 sa[3], sa[3], sa[0]
     434        s_max_u32 sa[4], sa[4], sa[0]
     435        s_xor_b32 sa[6], sa[6], sa[0]
     436        s_xor_b32 sa[7], sa[7], sa[0]
     437        .cf_ret
     438        s_setpc_b64 s[0:1]
     439)ffDXD",
     440        {
     441            {   // block 0 - start
     442                0, 24,
     443                { { 4, true } },
     444                {
     445                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     446                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     447                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     448                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     449                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     450                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     451                    { { "", 6 }, SSAInfo(0, 0, 0, 0, 0, true) },
     452                    { { "", 7 }, SSAInfo(0, 0, 0, 0, 0, true) },
     453                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     454                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) },
     455                    { { "sa", 4 }, SSAInfo(0, 1, 1, 1, 1, false) },
     456                    { { "sa", 6 }, SSAInfo(0, 1, 1, 1, 1, false) },
     457                    { { "sa", 7 }, SSAInfo(0, 1, 1, 1, 1, false) }
     458                }, true, false, false },
     459            {   // block 1 - after call
     460                24, 36,
     461                { { 2, false }, { 3, false } },
     462                {
     463                    { { "sa", 3 }, SSAInfo(3, SIZE_MAX, 6, SIZE_MAX, 0, true) },
     464                    { { "sa", 4 }, SSAInfo(2, SIZE_MAX, 5, SIZE_MAX, 0, true) },
     465                    { { "sa", 6 }, SSAInfo(1, 5, 5, 6, 2, false) }
     466                }, false, false, false },
     467            {   // block 2 - aa2
     468                36, 44,
     469                { },
     470                {
     471                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     472                    { { "sa", 7 }, SSAInfo(1, 5, 5, 5, 1, false) }
     473                }, false, false, true },
     474            {   // block 3 - aa3
     475                44, 52,
     476                { },
     477                {
     478                    { { "sa", 7 }, SSAInfo(2, 6, 6, 6, 1, true) }
     479                }, false, false, true
     480            },
     481            {   // block 4 - routine
     482                52, 64,
     483                { { 5, false }, { 6, false }, { 7, false } },
     484                {
     485                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     486                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     487                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     488                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     489                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) }
     490                }, false, false, false },
     491            {   // block 5 - bb0
     492                64, 84,
     493                { },
     494                {
     495                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     496                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     497                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     498                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) },
     499                    { { "sa", 4 }, SSAInfo(1, 2, 2, 2, 1, true) },
     500                    { { "sa", 6 }, SSAInfo(1, 2, 2, 2, 1, true) },
     501                    { { "sa", 7 }, SSAInfo(1, 2, 2, 2, 1, true) }
     502                }, false, true, true },
     503            {   // block 6 - bb1
     504                84, 104,
     505                { },
     506                {
     507                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     508                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     509                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     510                    { { "sa", 3 }, SSAInfo(2, 4, 4, 4, 1, true) },
     511                    { { "sa", 4 }, SSAInfo(1, 3, 3, 3, 1, true) },
     512                    { { "sa", 6 }, SSAInfo(1, 3, 3, 3, 1, true) },
     513                    { { "sa", 7 }, SSAInfo(1, 3, 3, 3, 1, true) }
     514                }, false, true, true },
     515            {   // block 7 - bb2
     516                104, 124,
     517                { },
     518                {
     519                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     520                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     521                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     522                    { { "sa", 3 }, SSAInfo(2, 5, 5, 5, 1, true) },
     523                    { { "sa", 4 }, SSAInfo(1, 4, 4, 4, 1, true) },
     524                    { { "sa", 6 }, SSAInfo(1, 4, 4, 4, 1, true) },
     525                    { { "sa", 7 }, SSAInfo(1, 4, 4, 4, 1, true) }
     526                }, false, true, true }
     527        },
     528        {   // SSA replaces
     529            { { "sa", 3 }, { { 4, 3 }, { 5, 3 } } },
     530            { { "sa", 4 }, { { 3, 2 }, { 4, 2 } } },
     531            { { "sa", 7 }, { { 3, 2 }, { 4, 2 } } }
     532        },
     533        true, ""
     534    },
    392535    { nullptr }
    393536};
Note: See TracChangeset for help on using the changeset viewer.