Changeset 4138 in CLRX


Ignore:
Timestamp:
May 10, 2018, 8:01:18 PM (2 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add yet another testcase for testing createRoutineDataLv (createLivenesses).

File:
1 edited

Legend:

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

    r4137 r4138  
    14731473            { 0, { { { 15 }, { }, { }, { } } } },
    14741474            { 4, { { { 0, 1, 10 }, { }, { }, { } } } }
     1475        },
     1476        true, ""
     1477    },
     1478    {   // 24 - simple call, more complex routine (sa[3] and sa[6] not used after call)
     1479        R"ffDXD(.regvar sa:s:8, va:v:8
     1480        s_mov_b32 sa[2], s4             # 0
     1481        s_mov_b32 sa[3], s5             # 4
     1482        s_mov_b32 sa[5], s5             # 8
     1483       
     1484        s_getpc_b64 s[2:3]              # 12
     1485        s_add_u32 s2, s2, routine-.     # 16
     1486        s_add_u32 s3, s3, routine-.+4   # 24
     1487        .cf_call routine
     1488        s_swappc_b64 s[0:1], s[2:3]     # 32
     1489       
     1490        s_lshl_b32 sa[2], sa[2], sa[5]  # 36
     1491        s_nop 7                         # 40
     1492        s_endpgm                        # 44
     1493       
     1494routine:
     1495        s_xor_b32 sa[2], sa[2], sa[4]   # 48
     1496        s_xor_b32 sa[6], sa[6], sa[4]   # 52
     1497        s_cbranch_scc1 bb1              # 56
     1498       
     1499        s_min_u32 sa[2], sa[2], sa[4]   # 60
     1500        s_xor_b32 sa[3], sa[3], sa[4]   # 64
     1501        .cf_ret
     1502        s_setpc_b64 s[0:1]              # 68
     1503       
     1504bb1:    s_and_b32 sa[2], sa[2], sa[4]   # 72
     1505        .cf_ret
     1506        s_setpc_b64 s[0:1]              # 76
     1507)ffDXD",
     1508        {   // livenesses
     1509            {   // for SGPRs
     1510                { { 33, 36 }, { 48, 69 }, { 72, 77 } }, // 0: S0
     1511                { { 33, 36 }, { 48, 69 }, { 72, 77 } }, // 1: S1
     1512                { { 13, 33 } }, // 2: S2
     1513                { { 13, 33 } }, // 3: S3
     1514                { { 0, 1 } }, // 4: S4
     1515                { { 0, 9 } }, // 5: S5
     1516                { { 1, 36 }, { 48, 49 } }, // 6: sa[2]'0
     1517                { { 49, 61 }, { 72, 73 } }, // 7: sa[2]'1
     1518                { { 36, 37 }, { 61, 72 }, { 73, 80 } }, // 8: sa[2]'2
     1519                { { 37, 38 } }, // 9: sa[2]'3
     1520                { { 5, 36 }, { 48, 65 } }, // 10: sa[3]'0
     1521                { { 65, 66 } }, // 11: sa[3]'1
     1522                { { 0, 36 }, { 48, 65 }, { 72, 73 } }, // 12: sa[4]'0
     1523                { { 9, 37 } },  // 13: sa[5]'0
     1524                { { 0, 36 }, { 48, 53 } }, // 14: sa[6]'0
     1525                { { 53, 54 } }  // 15: sa[6]'1
     1526            },
     1527            { },
     1528            { },
     1529            { }
     1530        },
     1531        { }, // linearDepMaps
     1532        {   // vidxRoutineMap
     1533            { 2, { { { 0, 1, 6, 7, 8, 10, 11, 12, 14, 15 }, { }, { }, { } } } }
     1534        },
     1535        {   // vidxCallMap
     1536            { 0, { { { 13 }, { }, { }, { } } } }
    14751537        },
    14761538        true, ""
Note: See TracChangeset for help on using the changeset viewer.