Changeset 4127 in CLRX


Ignore:
Timestamp:
May 9, 2018, 3:43:36 PM (11 days ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add more compex testcase with routines and many calls (createLivenesses).

File:
1 edited

Legend:

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

    r4125 r4127  
    10151015            { }
    10161016        },
    1017         { }, //
     1017        { }, // linearDepMaps
    10181018        {   // vidxRoutineMap
    10191019            { 2, { { { 0, 1, 6, 7, 9, 10, 12 }, { }, { }, { } } } }
     
    10781078            { }
    10791079        },
    1080         { },
     1080        { }, // linearDepMaps
    10811081        {   // vidxRoutineMap
    10821082            { 2, { { { 0, 1, 6, 7, 8, 10, 11, 12, 14 }, { }, { }, { } } } }
     
    11371137            { }
    11381138        },
    1139         { },
     1139        { }, // linearDepMaps
    11401140        {   // vidxRoutineMap
    11411141            { 2, { { { 0, 1, 6, 7, 8, 10, 12 }, { }, { }, { } } } }
     
    11451145        },
    11461146        true, ""
     1147    },
     1148    {   // 20 - multiple call of routine
     1149        R"ffDXD(.regvar sa:s:8, va:v:8
     1150        s_mov_b32 sa[2], s4             # 0
     1151        s_mov_b32 sa[3], s5             # 4
     1152       
     1153        s_getpc_b64 s[2:3]              # 8
     1154        s_add_u32 s2, s2, routine-.     # 12
     1155        s_add_u32 s3, s3, routine-.+4   # 20
     1156        .cf_call routine
     1157        s_swappc_b64 s[0:1], s[2:3]     # 28
     1158       
     1159        s_lshl_b32 sa[2], sa[2], 3      # 32
     1160        s_lshl_b32 sa[3], sa[3], 4      # 36
     1161       
     1162        s_getpc_b64 s[2:3]              # 40
     1163        s_add_u32 s2, s2, routine-.     # 44
     1164        s_add_u32 s3, s3, routine-.+4   # 52
     1165        .cf_call routine
     1166        s_swappc_b64 s[0:1], s[2:3]     # 60
     1167       
     1168        s_ashr_i32 sa[2], sa[2], 3      # 64
     1169        s_ashr_i32 sa[2], sa[2], 3      # 68
     1170        s_ashr_i32 sa[3], sa[3], 4      # 72
     1171        s_ashr_i32 sa[3], sa[3], 4      # 76
     1172       
     1173        s_getpc_b64 s[2:3]              # 80
     1174        s_add_u32 s2, s2, routine-.     # 84
     1175        s_add_u32 s3, s3, routine-.+4   # 92
     1176        .cf_call routine
     1177        s_swappc_b64 s[0:1], s[2:3]     # 100
     1178       
     1179        s_ashr_i32 sa[2], sa[2], 3      # 104
     1180        s_ashr_i32 sa[3], sa[3], 3      # 108
     1181        s_endpgm                        # 112
     1182       
     1183routine:
     1184        s_xor_b32 sa[2], sa[2], sa[4]   # 116
     1185        s_xor_b32 sa[3], sa[3], sa[4]   # 120
     1186        s_cbranch_scc1 bb1              # 124
     1187       
     1188        s_min_u32 sa[2], sa[2], sa[4]   # 128
     1189        .cf_ret
     1190        s_setpc_b64 s[0:1]              # 132
     1191       
     1192bb1:    s_and_b32 sa[2], sa[2], sa[4]   # 136
     1193        .cf_ret
     1194        s_setpc_b64 s[0:1]              # 140
     1195)ffDXD",
     1196        {   // livenesses
     1197            {
     1198                { { 29, 32 }, { 61, 64 }, { 101, 104 },
     1199                        { 116, 133 }, { 136, 141 } }, // 0: S0
     1200                { { 29, 32 }, { 61, 64 }, { 101, 104 },
     1201                        { 116, 133 }, { 136, 141 } }, // 1: S1
     1202                { { 9, 29 }, { 41, 61 }, { 81, 101 } }, // 2: S2
     1203                { { 9, 29 }, { 41, 61 }, { 81, 101 } }, // 3: S3
     1204                { { 0, 1 } }, // 4: S4
     1205                { { 0, 5 } }, // 5: S5
     1206                { { 1, 32 }, { 33, 64 }, { 69, 104 }, { 116, 117 } }, // 6: sa[2]'0
     1207                { { 117, 129 }, { 136, 137 } }, // 7: sa[2]'1
     1208                { { 32, 33 }, { 64, 65 }, { 104, 105 },
     1209                        { 129, 136 }, { 137, 144 } }, // 8: sa[2]'2
     1210                { { 65, 69 } }, // 9: sa[2]'3
     1211                { { 105, 106 } }, // 10: sa[2]'4
     1212                { { 5, 32 }, { 37, 64 }, { 77, 104 }, { 116, 121 } }, // 11: sa[3]'0
     1213                { { 32, 37 }, { 64, 73 }, { 104, 109 }, { 121, 144 } }, // 12: sa[3]'1
     1214                { { 73, 77 } }, // 13: sa[3]'2
     1215                { { 109, 110 } }, // 14: sa[3]'3
     1216                { { 0, 104 }, { 116, 144 } }  // 15: sa[4]'0
     1217            },
     1218            { },
     1219            { },
     1220            { }
     1221        },
     1222        { }, // linearDepMaps
     1223        {   // vidxRoutineMap
     1224            { 4, { { { 0, 1, 6, 7, 8, 11, 12, 15 }, { }, { }, { } } } }
     1225        },
     1226        { }, // vidxCallMap
     1227        true, ""
    11471228    }
    1148 #if 0
    1149     ,
    1150     {   // 22 - multiple call of routine
    1151         R"ffDXD(.regvar sa:s:8, va:v:8
    1152         s_mov_b32 sa[2], s4
    1153         s_mov_b32 sa[3], s5
    1154        
    1155         s_getpc_b64 s[2:3]
    1156         s_add_u32 s2, s2, routine-.
    1157         s_add_u32 s3, s3, routine-.+4
    1158         .cf_call routine
    1159         s_swappc_b64 s[0:1], s[2:3]
    1160        
    1161         s_lshl_b32 sa[2], sa[2], 3
    1162         s_lshl_b32 sa[3], sa[3], 4
    1163        
    1164         s_getpc_b64 s[2:3]
    1165         s_add_u32 s2, s2, routine-.
    1166         s_add_u32 s3, s3, routine-.+4
    1167         .cf_call routine
    1168         s_swappc_b64 s[0:1], s[2:3]
    1169        
    1170         s_ashr_i32 sa[2], sa[2], 3
    1171         s_ashr_i32 sa[2], sa[2], 3
    1172         s_ashr_i32 sa[3], sa[3], 4
    1173         s_ashr_i32 sa[3], sa[3], 4
    1174        
    1175         s_getpc_b64 s[2:3]
    1176         s_add_u32 s2, s2, routine-.
    1177         s_add_u32 s3, s3, routine-.+4
    1178         .cf_call routine
    1179         s_swappc_b64 s[0:1], s[2:3]
    1180        
    1181         s_ashr_i32 sa[2], sa[2], 3
    1182         s_ashr_i32 sa[3], sa[3], 3
    1183         s_endpgm
    1184        
    1185 routine:
    1186         s_xor_b32 sa[2], sa[2], sa[4]
    1187         s_xor_b32 sa[3], sa[3], sa[4]
    1188         s_cbranch_scc1 bb1
    1189        
    1190         s_min_u32 sa[2], sa[2], sa[4]
    1191         .cf_ret
    1192         s_setpc_b64 s[0:1]
    1193        
    1194 bb1:    s_and_b32 sa[2], sa[2], sa[4]
    1195         .cf_ret
    1196         s_setpc_b64 s[0:1]
    1197 )ffDXD"
    1198     }
    1199 #endif
    12001229};
    12011230
Note: See TracChangeset for help on using the changeset viewer.