Changeset 4122 in CLRX


Ignore:
Timestamp:
May 9, 2018, 6:54:34 AM (2 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: The second working testcase with routines for createLivenesses: routine with fork and call with unused variable in routine.

File:
1 edited

Legend:

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

    r4119 r4122  
    10211021        { },  // varCallMap
    10221022        true, ""
     1023    },
     1024    {   // 18 - simple call, more complex routine
     1025        R"ffDXD(.regvar sa:s:8, va:v:8
     1026        s_mov_b32 sa[2], s4             # 0
     1027        s_mov_b32 sa[3], s5             # 4
     1028        s_mov_b32 sa[5], s5             # 8
     1029       
     1030        s_getpc_b64 s[2:3]              # 12
     1031        s_add_u32 s2, s2, routine-.     # 16
     1032        s_add_u32 s3, s3, routine-.+4   # 24
     1033        .cf_call routine
     1034        s_swappc_b64 s[0:1], s[2:3]     # 32
     1035       
     1036        s_lshl_b32 sa[2], sa[2], 3      # 36
     1037        s_lshl_b32 sa[3], sa[3], 4      # 40
     1038        s_lshl_b32 sa[5], sa[5], 5      # 44
     1039        s_endpgm                        # 48
     1040       
     1041routine:
     1042        s_xor_b32 sa[2], sa[2], sa[4]   # 52
     1043        s_xor_b32 sa[3], sa[3], sa[4]   # 56
     1044        s_cbranch_scc1 bb1              # 60
     1045       
     1046        s_min_u32 sa[2], sa[2], sa[4]   # 64
     1047        s_min_u32 sa[3], sa[3], sa[4]   # 68
     1048        .cf_ret
     1049        s_setpc_b64 s[0:1]              # 72
     1050       
     1051bb1:    s_and_b32 sa[2], sa[2], sa[4]   # 76
     1052        s_and_b32 sa[3], sa[3], sa[4]   # 80
     1053        .cf_ret
     1054        s_setpc_b64 s[0:1]              # 84
     1055)ffDXD",
     1056        {
     1057            {   // for SGPRs
     1058                { { 33, 36 }, { 52, 73 }, { 76, 85 } }, // 0: S0
     1059                { { 33, 36 }, { 52, 73 }, { 76, 85 } }, // 1: S1
     1060                { { 13, 33 } }, // 2: S2
     1061                { { 13, 33 } }, // 3: S3
     1062                { { 0, 1 } }, // 4: S4
     1063                { { 0, 9 } }, // 5: S5
     1064                { { 1, 36 }, { 52, 53 } }, // 6: sa[2]'0
     1065                { { 53, 65 }, { 76, 77 } }, // 7: sa[2]'1
     1066                { { 36, 37 }, { 65, 76 }, { 77, 88 } }, // 8: sa[2]'2
     1067                { { 37, 38 } }, // 9: sa[2]'3
     1068                { { 5, 36 }, { 52, 57 } }, // 10: sa[3]'0
     1069                { { 57, 69 }, { 76, 81 } }, // 11: sa[3]'1
     1070                { { 36, 41 }, { 69, 76 }, { 81, 88 } }, // 12: sa[3]'2
     1071                { { 41, 42 } }, // 13: sa[3]'3
     1072                { { 0, 36 }, { 52, 69 }, { 76, 81 } }, // 14: sa[4]'0
     1073                { { 9, 45 } }, // 15: sa[5]'0
     1074                { { 45, 46 } }  // 16: sa[5]'1
     1075            },
     1076            { },
     1077            { },
     1078            { }
     1079        },
     1080        { },
     1081        {   // varRoutineMap
     1082            { 2, { { { 0, 1, 6, 7, 8, 10, 11, 12, 14 }, { }, { }, { } } } }
     1083        },
     1084        {   // varCallMap
     1085            { 0, { { { 15 }, { }, { }, { } } } }
     1086        },
     1087        true, ""
    10231088    }
    10241089};
Note: See TracChangeset for help on using the changeset viewer.