Changeset 4156 in CLRX


Ignore:
Timestamp:
May 13, 2018, 9:39:42 AM (7 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add testcase with a shared code between routines.

File:
1 edited

Legend:

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

    r4155 r4156  
    22872287        true, ""
    22882288    },
     2289    {   // 36 - two routines with common code
     2290        R"ffDXD(.regvar sa:s:8, va:v:8, xa:s:8
     2291        s_mov_b32 sa[2], s4             # 0
     2292        s_mov_b32 sa[3], s5             # 4
     2293        s_mov_b32 sa[4], s6             # 8
     2294        s_mov_b32 sa[5], s7             # 12
     2295        s_mov_b32 sa[6], s8             # 16
     2296        s_mov_b32 xa[0], s9             # 20
     2297        s_mov_b32 xa[1], s10            # 24
     2298       
     2299        .cf_call routine1
     2300        s_swappc_b64 s[0:1], s[2:3]     # 28
     2301       
     2302        s_xor_b32 sa[5], sa[5], sa[0]   # 32
     2303        s_xor_b32 sa[2], sa[2], sa[0]   # 36
     2304       
     2305        .cf_call routine2
     2306        s_swappc_b64 s[0:1], s[2:3]     # 40
     2307       
     2308        s_xor_b32 sa[5], sa[5], sa[0]   # 44
     2309        s_xor_b32 sa[2], sa[2], sa[0]   # 48
     2310        s_xor_b32 sa[6], sa[6], sa[0]   # 52
     2311        s_xor_b32 xa[0], xa[0], sa[0]   # 56
     2312        s_xor_b32 xa[1], xa[1], sa[0]   # 60
     2313        s_endpgm                        # 64
     2314       
     2315routine1:
     2316        s_add_u32 sa[2], sa[2], sa[0]   # 68
     2317        s_add_u32 sa[3], sa[3], sa[1]   # 72
     2318       
     2319        s_add_u32 sa[4], sa[3], sa[0]   # 76
     2320        s_add_u32 sa[5], sa[3], sa[5]   # 80
     2321        s_add_u32 sa[6], sa[6], sa[1]   # 84
     2322       
     2323        s_xor_b32 xa[1], xa[1], sa[0]   # 88
     2324       
     2325common:
     2326        s_add_u32 sa[5], sa[5], sa[0]   # 92
     2327        s_add_u32 sa[3], sa[3], sa[1]   # 96
     2328        s_xor_b32 sa[4], sa[4], sa[2]   # 100
     2329        .cf_ret
     2330        s_setpc_b64 s[0:1]              # 104
     2331
     2332routine2:
     2333        s_add_u32 sa[2], sa[2], sa[0]   # 108
     2334        s_add_u32 sa[3], sa[3], sa[1]   # 112
     2335       
     2336        s_add_u32 sa[4], sa[1], sa[2]   # 116
     2337        s_add_u32 sa[5], sa[3], sa[5]   # 120
     2338       
     2339        s_xor_b32 xa[0], xa[0], sa[0]   # 124
     2340        s_branch common                 # 128
     2341)ffDXD",
     2342        {   // livenesses
     2343            {   // for SGPRs
     2344                { { 29, 32 }, { 41, 44 }, { 68, 105 }, { 108, 132 } }, // 0: S0
     2345                { { 29, 32 }, { 41, 44 }, { 68, 105 }, { 108, 132 } }, // 1: S1
     2346                { { 0, 41 } }, // 2: S2
     2347                { { 0, 41 } }, // 3: S3
     2348                { { 0, 1 } }, // 4: S4
     2349                { { 0, 5 } }, // 5: S5
     2350                { { 0, 9 } }, // 6: S6
     2351                { { 0, 13 } }, // 7: S7
     2352                { { 0, 17 } }, // 8: S8
     2353                { { 0, 21 } }, // 9: S9
     2354                { { 0, 25 } }, // 10: S10
     2355                { { 0, 61 }, { 68, 132 } }, // 11: sa[0]'0
     2356                { { 0, 44 }, { 68, 132 } }, // 12: sa[1]'0
     2357                { { 1, 32 }, { 68, 69 } }, // 13: sa[2]'0
     2358                { { 32, 37 }, { 44, 49 }, { 69, 108 }, { 109, 132 } }, // 14: sa[2]'1
     2359                { { 37, 44 }, { 108, 109 } }, // 15: sa[2]'2
     2360                { { 49, 50 } }, // 16: sa[2]'3
     2361                { { 5, 32 }, { 68, 73 } }, // 17: sa[3]'0
     2362                { { 73, 97 }, { 113, 132 } }, // 18: sa[3]'1
     2363                { { 32, 44 }, { 97, 113 } }, // 19: sa[3]'2
     2364                { { 9, 10 } }, // 20: sa[4]'0
     2365                { { 77, 102 }, { 117, 132 } }, // 21: sa[4]'1
     2366                { { 13, 32 }, { 68, 81 } }, // 22: sa[5]'0
     2367                { { 81, 93 }, { 121, 132 } }, // 23: sa[5]'1
     2368                { { 32, 33 }, { 44, 45 }, { 93, 108 } }, // 24: sa[5]'2
     2369                { { 33, 44 }, { 108, 121 } }, // 25: sa[5]'3
     2370                { { 45, 46 } }, // 26: sa[5]'4
     2371                { { 17, 32 }, { 68, 85 } }, // 27: sa[6]'0
     2372                { { 32, 53 }, { 85, 108 } }, // 28: sa[6]'1
     2373                { { 53, 54 } }, // 29: sa[6]'2
     2374                { { 21, 44 }, { 108, 125 } }, // 30: xa[0]'0
     2375                { { 44, 57 }, { 92, 108 }, { 125, 132 } }, // 31: xa[0]'1
     2376                { { 57, 58 } }, // 32: xa[0]'2
     2377                { { 25, 32 }, { 68, 89 } }, // 33: xa[1]'0
     2378                { { 32, 61 }, { 89, 108 } }, // 34: xa[1]'1
     2379                { { 61, 62 } }  // 35: xa[1]'2
     2380            },
     2381            { },
     2382            { },
     2383            { }
     2384        },
     2385        { }, // linearDepMaps
     2386        {   // vidxRoutineMap
     2387            { 3, { {
     2388                { 0, 1, 11, 12, 13, 14, 17, 18, 19, 21, 22, 23, 24, 27, 28, 33, 34 },
     2389                { }, { }, { } } } },
     2390            { 5, { { { 0, 1, 11, 12, 14, 15, 18, 19, 21, 23, 24, 25, 30, 31 },
     2391                { }, { }, { } } } }
     2392        },
     2393        {   // vidxCallMap
     2394            { 0, { { { 2, 3, 30 }, { }, { }, { } } } },
     2395            { 1, { { { 28, 34 }, { }, { }, { } } } }
     2396        },
     2397        true, ""
     2398    }
    22892399};
    22902400
Note: See TracChangeset for help on using the changeset viewer.