Changeset 3101 in CLRX


Ignore:
Timestamp:
May 29, 2017, 7:46:13 PM (2 years ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNAsm: Add VOP2 instruction for AMD VEGA arch.
GCNDisasm: Fixed v_add/sub/subrev_u32 instructions in VOP3 encoding (AMD VEGA)

Location:
CLRadeonExtender/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/GCNInstructions.cpp

    r3076 r3101  
    633633    { "v_ldexp_f16",         GCNENC_VOP3A,  GCN_VOP3_VOP2_DS01,       307,  ARCH_GCN_1_2_4  },
    634634    { "v_add_u32",           GCNENC_VOP2,   GCN_STDMODE,              52,   ARCH_RXVEGA  },
    635     { "v_add_u32",           GCNENC_VOP3B,  GCN_VOP3_VOP2,            308,  ARCH_RXVEGA  },
     635    { "v_add_u32",           GCNENC_VOP3A,  GCN_VOP3_VOP2_DS01,       308,  ARCH_RXVEGA  },
    636636    { "v_sub_u32",           GCNENC_VOP2,   GCN_STDMODE,              53,   ARCH_RXVEGA  },
    637     { "v_sub_u32",           GCNENC_VOP3B,  GCN_VOP3_VOP2,            309,  ARCH_RXVEGA  },
     637    { "v_sub_u32",           GCNENC_VOP3A,  GCN_VOP3_VOP2_DS01,       309,  ARCH_RXVEGA  },
    638638    { "v_subrev_u32",        GCNENC_VOP2,   GCN_STDMODE,              54,   ARCH_RXVEGA  },
    639     { "v_subrev_u32",        GCNENC_VOP3B,  GCN_VOP3_VOP2,            310,  ARCH_RXVEGA  },
     639    { "v_subrev_u32",        GCNENC_VOP3A,  GCN_VOP3_VOP2_DS01,       310,  ARCH_RXVEGA  },
    640640    { "v_nop",               GCNENC_VOP1,   GCN_VOP_ARG_NONE,         0,    ARCH_GCN_ALL  },
    641641    { "v_nop",               GCNENC_VOP3A,  GCN_VOP_ARG_NONE|GCN_VOP3_VOP1, 320,  ARCH_GCN_1_2_4  },
  • CLRadeonExtender/trunk/tests/amdasm/GCNAsmOpc14.cpp

    r3100 r3101  
    310310    { "v_cmp_class_f32 vcc, sext(-abs(s65)), v107",
    311311        0x7c20d6f9U, 0x06be0641U, true, true, "" },
     312    /* VOP2 instructions */
     313    { "v_add_co_u32    v154, vcc, v21, v107\n", 0x3334d715U, 0, false, true, "" },
     314    { "v_sub_co_u32    v154, vcc, v21, v107\n", 0x3534d715U, 0, false, true, "" },
     315    { "v_subrev_co_u32 v154, vcc, v21, v107\n", 0x3734d715U, 0, false, true, "" },
     316    { "v_addc_co_u32   v154, vcc, v21, v107, vcc\n", 0x3934d715U, 0, false, true, "" },
     317    { "v_subb_co_u32   v154, vcc, v21, v107, vcc\n", 0x3b34d715U, 0, false, true, "" },
     318    { "v_subbrev_co_u32 v154, vcc, v21, v107, vcc\n", 0x3d34d715U, 0, false, true, "" },
     319    { "v_add_co_u32    v55, s[18:19], s27, v90\n",
     320        0xd1191237U, 0x0002b41bU, true, true, "" },
     321    { "v_add_co_u32    v55, vcc, s27, v90 vop3\n",
     322        0xd1196a37U, 0x0002b41bU, true, true, "" },
     323    { "v_sub_co_u32    v55, s[18:19], s27, v90\n",
     324        0xd11a1237U, 0x0002b41bU, true, true, "" },
     325    { "v_sub_co_u32    v55, vcc, s27, v90 vop3\n",
     326        0xd11a6a37U, 0x0002b41bU, true, true, "" },
     327    { "v_subrev_co_u32 v55, s[18:19], s27, v90\n",
     328        0xd11b1237U, 0x0002b41bU, true, true, "" },
     329    { "v_subrev_co_u32 v55, vcc, s27, v90 vop3\n",
     330        0xd11b6a37U, 0x0002b41bU, true, true, "" },
     331    { "v_addc_co_u32   v55, s[6:7], v27, -v90, s[24:25]\n",
     332        0xd11c0637U, 0x4062b51bU, true, true, "" },
     333    { "v_subb_co_u32   v55, s[6:7], v27, -v90, s[24:25]\n",
     334        0xd11d0637U, 0x4062b51bU, true, true, "" },
     335    { "v_subbrev_co_u32   v55, s[6:7], v27, -v90, s[24:25]\n",
     336        0xd11e0637U, 0x4062b51bU, true, true, "" },
     337    { "v_add_u32       v154, v21, v107\n", 0x6934d715U, 0, false, true, "" },
     338    { "v_sub_u32       v154, v21, v107\n", 0x6b34d715U, 0, false, true, "" },
     339    { "v_subrev_u32    v154, v21, v107\n", 0x6d34d715U, 0, false, true, "" },
     340    { "v_add_u32       v55, s27, v90 vop3\n", 0xd1340037U, 0x0002b41bU, true, true, "" },
     341    { "v_sub_u32       v55, s27, v90 vop3\n", 0xd1350037U, 0x0002b41bU, true, true, "" },
     342    { "v_subrev_u32    v55, s27, v90 vop3\n", 0xd1360037U, 0x0002b41bU, true, true, "" },
    312343    { nullptr, 0, 0, false, false, 0 }
    313344};
  • CLRadeonExtender/trunk/tests/amdasm/GCNDisasmOpc14.cpp

    r3076 r3101  
    218218    { 0x6b34d715U, 0, false, "        v_sub_u32       v154, v21, v107\n" },
    219219    { 0x6d34d715U, 0, false, "        v_subrev_u32    v154, v21, v107\n" },
     220    { 0xd1340037U, 0x0002b41bU, true, "        v_add_u32       v55, s27, v90 vop3\n" },
     221    { 0xd1350037U, 0x0002b41bU, true, "        v_sub_u32       v55, s27, v90 vop3\n" },
     222    { 0xd1360037U, 0x0002b41bU, true, "        v_subrev_u32    v55, s27, v90 vop3\n" },
    220223    /* VOP1 instructions */
    221224    { 0x7f3c6d4fU, 0, false, "        v_mov_prsv_b32  v158, v79\n" },
Note: See TracChangeset for help on using the changeset viewer.