Changeset 4817 in CLRX


Ignore:
Timestamp:
Jul 19, 2019, 10:25:54 PM (5 months ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: Add VOP1 instructions testcases for GFX10. Fixed segfault for new ROCm binary format if STT_FUNC symbols present (accept only real kernel symbols).

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdbin/ROCmBinaries.cpp

    r4430 r4817  
    14111411        const cxbyte bind = ELF64_ST_BIND(sym.st_info);
    14121412        if (ULEV(sym.st_shndx)==textIndex &&
    1413             (symType==STT_GNU_IFUNC || symType==STT_FUNC ||
     1413            (symType==STT_GNU_IFUNC || (symType==STT_FUNC && !newBinFormat) ||
    14141414                (bind==STB_GLOBAL && symType==STT_OBJECT)))
    14151415            regionsNum++;
     
    14441444            // if function kernel
    14451445            else if (symType==STT_FUNC)
     1446            {
     1447                if (newBinFormat)
     1448                    continue;
    14461449                type = ROCmRegionType::FKERNEL;
     1450            }
    14471451            symOffsets[j] = std::make_pair(value, j);
    14481452            if (type!=ROCmRegionType::DATA && value+0x100 > codeOffset+codeSize)
  • CLRadeonExtender/trunk/tests/amdasm/GCNAsmOpc15.cpp

    r4816 r4817  
    13481348    { "    v_cvt_i32_f64  v55, abs(s[26:27])", 0xd5830137U, 0x0000001aU, true, true, "" },
    13491349    { "    v_cvt_i32_f64  v55, -s[26:27]", 0xd5830037U, 0x2000001aU, true, true, "" },
     1350    { "    v_cvt_f64_i32  v[158:159], v79", 0x7f3c094fU, 0, false, true, "" },
     1351    { "    v_cvt_f64_i32  v[55:56], abs(v27)", 0xd5840137U, 0x0000011bU, true, true, "" },
     1352    { "    v_cvt_f32_i32  v158, v79", 0x7f3c0b4fU, 0, false, true, "" },
     1353    { "    v_cvt_f32_i32  v55, v27 vop3", 0xd5850037U, 0x0000011bU, true, true, "" },
     1354    { "    v_cvt_f32_u32  v158, v79", 0x7f3c0d4fU, 0, false, true, "" },
     1355    { "    v_cvt_f32_u32  v55, v27 vop3", 0xd5860037U, 0x0000011bU, true, true, "" },
     1356    { "    v_cvt_u32_f32  v158, v79", 0x7f3c0f4fU, 0, false, true, "" },
     1357    { "    v_cvt_u32_f32  v55, v27 vop3", 0xd5870037U, 0x0000011bU, true, true, "" },
     1358    { "    v_cvt_i32_f32  v158, v79", 0x7f3c114fU, 0, false, true, "" },
     1359    { "    v_cvt_i32_f32  v55, v27 vop3", 0xd5880037U, 0x0000011bU, true, true, "" },
     1360    { "    v_mov_fed_b32  v158, v79", 0x7f3c134fU, 0, false, true, "" },
     1361    { "    v_mov_fed_b32  v55, v27 vop3", 0xd5890037U, 0x0000011bU, true, true, "" },
     1362    { "    v_cvt_f16_f32  v158, v79", 0x7f3c154fU, 0, false, true, "" },
     1363    { "    v_cvt_f16_f32  v55, v27 vop3", 0xd58a0037U, 0x0000011bU, true, true, "" },
     1364    { "    v_cvt_f32_f16  v158, v79", 0x7f3c174fU, 0, false, true, "" },
     1365    { "    v_cvt_f32_f16  v55, v27 vop3", 0xd58b0037U, 0x0000011bU, true, true, "" },
     1366    { "    v_cvt_f32_f16  v158, -23.56h", 0x7f3c16ffU, 0xcde4U, true, true, "" },
     1367    /* constant immediates */
     1368    { "    v_cvt_f32_f16  v158, 0.0", 0x7f3c1680U, 0, false, true, "" },
     1369    { "    v_cvt_f32_f16  v158, 0.5s", 0x7f3c16f0U, 0, false, true, "" },
     1370    { "    v_cvt_f32_f16  v158, -0.5s", 0x7f3c16f1U, 0, false, true, "" },
     1371    { "    v_cvt_f32_f16  v158, 1.s", 0x7f3c16f2U, 0, false, true, "" },
     1372    { "    v_cvt_f32_f16  v158, -1.s", 0x7f3c16f3U, 0, false, true, "" },
     1373    { "    v_cvt_f32_f16  v158, 2.s", 0x7f3c16f4U, 0, false, true, "" },
     1374    { "    v_cvt_f32_f16  v158, -2.s", 0x7f3c16f5U, 0, false, true, "" },
     1375    { "    v_cvt_f32_f16  v158, 4.s", 0x7f3c16f6U, 0, false, true, "" },
     1376    { "    v_cvt_f32_f16  v158, -4.s", 0x7f3c16f7U, 0, false, true, "" },
     1377    { "    v_cvt_f32_f64  v158, 0.5l", 0x7f3c1ef0U, 0, false, true, "" },
     1378    { "    v_cvt_f32_f64  v158, -0.5l", 0x7f3c1ef1U, 0, false, true, "" },
     1379    { "    v_cvt_f32_f64  v158, 1.l", 0x7f3c1ef2U, 0, false, true, "" },
     1380    { "    v_cvt_f32_f64  v158, -1.l", 0x7f3c1ef3U, 0, false, true, "" },
     1381    { "    v_cvt_f32_f64  v158, 2.l", 0x7f3c1ef4U, 0, false, true, "" },
     1382    { "    v_cvt_f32_f64  v158, -2.l", 0x7f3c1ef5U, 0, false, true, "" },
     1383    { "    v_cvt_f32_f64  v158, 4.l", 0x7f3c1ef6U, 0, false, true, "" },
     1384    { "    v_cvt_f32_f64  v158, -4.l", 0x7f3c1ef7U, 0, false, true, "" },
     1385    { "    v_cvt_f32_f16  v158, 0.5", 0x7f3c16f0U, 0, false, true, "" },
     1386    { "    v_cvt_f32_f16  v158, 2.", 0x7f3c16f4U, 0, false, true, "" },
     1387    { "    v_cvt_f32_f16  v158, -2.", 0x7f3c16f5U, 0, false, true, "" },
     1388    /* rest of VOP1 instructions */
     1389    { "    v_cvt_rpi_i32_f32  v158, v79", 0x7f3c194fU, 0, false, true, "" },
     1390    { "    v_cvt_rpi_i32_f32  v55, v27 vop3", 0xd58c0037U, 0x0000011bU, true, true, "" },
     1391    { "    v_cvt_flr_i32_f32  v158, v79", 0x7f3c1b4fU, 0, false, true, "" },
     1392    { "    v_cvt_flr_i32_f32  v55, v27 vop3", 0xd58d0037U, 0x0000011bU, true, true, "" },
     1393    { "    v_cvt_off_f32_i4  v158, v79", 0x7f3c1d4fU, 0, false, true, "" },
     1394    { "    v_cvt_off_f32_i4  v55, v27 vop3", 0xd58e0037U, 0x0000011bU, true, true, "" },
     1395    { "    v_cvt_f32_f64  v158, v[79:80]", 0x7f3c1f4fU, 0, false, true, "" },
     1396    { "    v_cvt_f32_f64  v55, v[27:28] vop3", 0xd58f0037U, 0x0000011bU, true, true, "" },
     1397    { "    v_cvt_f64_f32  v[158:159], v79", 0x7f3c214fU, 0, false, true, "" },
     1398    { "    v_cvt_f64_f32  v[55:56], v27 vop3", 0xd5900037U, 0x0000011bU, true, true, "" },
     1399    { "    v_cvt_f32_ubyte0  v158, v79", 0x7f3c234fU, 0, false, true, "" },
     1400    { "    v_cvt_f32_ubyte0  v55, v27 vop3", 0xd5910037U, 0x0000011bU, true, true, "" },
     1401    { "    v_cvt_f32_ubyte1  v158, v79", 0x7f3c254fU, 0, false, true, "" },
     1402    { "    v_cvt_f32_ubyte1  v55, v27 vop3", 0xd5920037U, 0x0000011bU, true, true, "" },
     1403    { "    v_cvt_f32_ubyte2  v158, v79", 0x7f3c274fU, 0, false, true, "" },
     1404    { "    v_cvt_f32_ubyte2  v55, v27 vop3", 0xd5930037U, 0x0000011bU, true, true, "" },
     1405    { "    v_cvt_f32_ubyte3  v158, v79", 0x7f3c294fU, 0, false, true, "" },
     1406    { "    v_cvt_f32_ubyte3  v55, v27 vop3", 0xd5940037U, 0x0000011bU, true, true, "" },
     1407    { "    v_cvt_u32_f64  v158, v[79:80]", 0x7f3c2b4fU, 0, false, true, "" },
     1408    { "    v_cvt_u32_f64  v55, v[27:28] vop3", 0xd5950037U, 0x0000011bU, true, true, "" },
     1409    { "    v_cvt_f64_u32  v[158:159], v79", 0x7f3c2d4fU, 0, false, true, "" },
     1410    { "    v_cvt_f64_u32  v[55:56], v27 vop3", 0xd5960037U, 0x0000011bU, true, true, "" },
     1411    { "    v_trunc_f64  v[158:159], v[79:80]", 0x7f3c2f4fU, 0, false, true, "" },
     1412    { "    v_ceil_f64  v[158:159], v[79:80]", 0x7f3c314fU, 0, false, true, "" },
     1413    { "    v_rndne_f64  v[158:159], v[79:80]", 0x7f3c334fU, 0, false, true, "" },
     1414    { "    v_floor_f64  v[158:159], v[79:80]", 0x7f3c354fU, 0, false, true, "" },
    13501415    { nullptr, 0, 0, false, false, 0 }
    13511416};
Note: See TracChangeset for help on using the changeset viewer.