Changeset 4157 in CLRX


Ignore:
Timestamp:
May 13, 2018, 1:06:39 PM (2 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Testcase with many routines in single calls.

File:
1 edited

Legend:

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

    r4156 r4157  
    23942394            { 0, { { { 2, 3, 30 }, { }, { }, { } } } },
    23952395            { 1, { { { 28, 34 }, { }, { }, { } } } }
     2396        },
     2397        true, ""
     2398    },
     2399    {   // 37 - many routines in calls
     2400        R"ffDXD(.regvar sa:s:8, va:v:8
     2401        s_mov_b32 sa[2], s4             # 0
     2402        s_mov_b32 sa[3], s5             # 4
     2403       
     2404        .cf_call routine, routine2
     2405        s_swappc_b64 s[0:1], s[2:3]     # 8
     2406       
     2407        s_lshl_b32 sa[2], sa[2], 3      # 12
     2408        s_lshl_b32 sa[3], sa[3], 4      # 16
     2409       
     2410        .cf_call routine2, routine3
     2411        s_swappc_b64 s[0:1], s[2:3]     # 20
     2412       
     2413        s_lshr_b32 sa[2], sa[2], 3      # 24
     2414        s_lshr_b32 sa[3], sa[3], 4      # 28
     2415        s_endpgm                        # 32
     2416       
     2417routine:
     2418        s_xor_b32 sa[2], sa[2], sa[4]   # 36
     2419        s_xor_b32 sa[3], sa[3], sa[4]   # 40
     2420        .cf_ret
     2421        s_setpc_b64 s[0:1]              # 44
     2422       
     2423routine2:
     2424        s_xor_b32 sa[2], sa[2], sa[4]   # 48
     2425        s_xor_b32 sa[3], sa[3], sa[4]   # 52
     2426        s_xor_b32 sa[3], sa[3], sa[1]   # 56
     2427        .cf_ret
     2428        s_setpc_b64 s[0:1]              # 60
     2429       
     2430routine3:
     2431        s_xor_b32 sa[2], sa[2], sa[4]   # 64
     2432        s_xor_b32 sa[3], sa[2], sa[0]   # 68
     2433       
     2434        .cf_call routine2, routine4
     2435        s_swappc_b64 s[0:1], s[2:3]     # 72
     2436       
     2437        s_xor_b32 sa[2], sa[2], sa[1]   # 76
     2438        s_xor_b32 sa[3], sa[3], sa[0]   # 80
     2439        .cf_ret
     2440        s_setpc_b64 s[0:1]              # 84
     2441       
     2442routine4:
     2443        s_xor_b32 sa[3], sa[3], sa[4]   # 88
     2444        s_xor_b32 sa[2], sa[3], sa[6]   # 92
     2445        .cf_ret
     2446        s_setpc_b64 s[0:1]              # 96
     2447)ffDXD",
     2448        {
     2449            {   // for SGPRs
     2450                { { 9, 12 }, { 21, 24 }, { 36, 45 },
     2451                    { 48, 64 }, { 73, 85 }, { 88, 100 } }, // 0: S0
     2452                { { 9, 12 }, { 21, 24 }, { 36, 45 },
     2453                    { 48, 64 }, { 73, 85 }, { 88, 100 } }, // 1: S1
     2454                { { 0, 24 }, { 64, 73 } }, // 2: S2
     2455                { { 0, 24 }, { 64, 73 } }, // 3: S3
     2456                { { 0, 1 } }, // 4: S4
     2457                { { 0, 5 } }, // 5: S5
     2458                { { 0, 24 }, { 64, 81 } }, // 6: sa[0]'0
     2459                { { 0, 24 }, { 48, 77 } }, // 7: sa[1]'0
     2460                { { 1, 12 }, { 13, 24 }, { 36, 37 },
     2461                    { 48, 49 }, { 64, 76 } }, // 8: sa[2]'0
     2462                { { 12, 13 }, { 24, 25 }, { 37, 48 },
     2463                    { 49, 64 }, { 76, 88 }, { 93, 100 } }, // 9: sa[2]'1
     2464                { { 25, 26 } }, // 10: sa[2]'2
     2465                { { 5, 12 }, { 17, 24 }, { 36, 41 },
     2466                    { 48, 53 }, { 69, 76 }, { 88, 89 } }, // 11: sa[3]'0
     2467                { { 12, 17 }, { 24, 29 }, { 41, 48 },
     2468                    { 57, 64 }, { 76, 88 }, { 89, 100 } }, // 12: sa[3]'1
     2469                { { 53, 57 } }, // 13: sa[3]'2
     2470                { { 29, 30 } }, // 14: sa[3]'3
     2471                { { 0, 24 }, { 36, 76 }, { 88, 89 } }, // 15: sa[4]'0
     2472                { { 0, 24 }, { 64, 76 }, { 88, 93 } }  // 16: sa[6]'0
     2473            },
     2474            { },
     2475            { },
     2476            { }
     2477        },
     2478        { }, // linearDepMaps
     2479        {   // vidxRoutineMap
     2480            { 3, { { { 0, 1, 8, 9, 11, 12, 15 }, { }, { }, { } } } },
     2481            { 4, { { { 0, 1, 7, 8, 9, 11, 12, 13, 15 }, { }, { }, { } } } },
     2482            { 5, { { { 0, 1, 2, 3, 6, 7, 8, 9, 11, 12, 13, 15, 16 }, { }, { }, { } } } },
     2483            { 7, { { { 0, 1, 9, 11, 12, 15, 16 }, { }, { }, { } } } }
     2484        },
     2485        {   // vidxCallMap
     2486            { 0, { { { 2, 3, 6, 16 }, { }, { }, { } } } },
     2487            { 5, { { { 6 }, { }, { }, { } } } }
    23962488        },
    23972489        true, ""
Note: See TracChangeset for help on using the changeset viewer.