Changeset 3065 in CLRX


Ignore:
Timestamp:
May 15, 2017, 2:23:24 PM (18 months ago)
Author:
matszpk
Message:

CLRadeonExtender: GCNDisasm: Add new VOP3 instructions for GFX9 arch.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3064 r3065  
    19071907    { "v_mqsad_u8",          GCNENC_VOP3A,  GCN_REG_DS0_64|GCN_REG_SRC2_64, 486,  ARCH_GCN_1_2_4  },
    19081908    { "v_mqsad_u32_u8",      GCNENC_VOP3A,  GCN_REG_SRC0_64|GCN_VOP3_DS2_128 , 487,  ARCH_GCN_1_2_4  },
    1909     { "v_mad_f16",           GCNENC_VOP3A,  GCN_STDMODE,              490,  ARCH_GCN_1_2_4  },
    1910     { "v_mad_u16",           GCNENC_VOP3A,  GCN_STDMODE,              491,  ARCH_GCN_1_2_4  },
    1911     { "v_mad_i16",           GCNENC_VOP3A,  GCN_STDMODE,              492,  ARCH_GCN_1_2_4  },
     1909    { "v_mad_f16",           GCNENC_VOP3A,  GCN_STDMODE,              490,  ARCH_RX3X0  },
     1910    { "v_mad_u16",           GCNENC_VOP3A,  GCN_STDMODE,              491,  ARCH_RX3X0  },
     1911    { "v_mad_i16",           GCNENC_VOP3A,  GCN_STDMODE,              492,  ARCH_RX3X0  },
    19121912    { "v_perm_b32",          GCNENC_VOP3A,  GCN_STDMODE,              493,  ARCH_GCN_1_2_4  },
    1913     { "v_fma_f16",           GCNENC_VOP3A,  GCN_STDMODE,              494,  ARCH_GCN_1_2_4  },
    1914     { "v_div_fixup_f16",     GCNENC_VOP3A,  GCN_STDMODE,              495,  ARCH_GCN_1_2_4  },
     1913    { "v_fma_f16",           GCNENC_VOP3A,  GCN_STDMODE,              494,  ARCH_RX3X0  },
     1914    { "v_div_fixup_f16",     GCNENC_VOP3A,  GCN_STDMODE,              495,  ARCH_RX3X0  },
     1915    { "v_mad_legacy_f16",    GCNENC_VOP3A,  GCN_STDMODE,              490,  ARCH_RXVEGA  },
     1916    { "v_mad_legacy_u16",    GCNENC_VOP3A,  GCN_STDMODE,              491,  ARCH_RXVEGA  },
     1917    { "v_mad_legacy_i16",    GCNENC_VOP3A,  GCN_STDMODE,              492,  ARCH_RXVEGA  },
     1918    { "v_fma_legacy_f16",    GCNENC_VOP3A,  GCN_STDMODE,              494,  ARCH_RXVEGA  },
     1919    { "v_div_fixup_legacy_f16", GCNENC_VOP3A,  GCN_STDMODE,              495,  ARCH_RXVEGA  },
    19151920    { "v_cvt_pkaccum_u8_f32",GCNENC_VOP3A,  GCN_VOP3_VOP2_DS01,       496,  ARCH_GCN_1_2_4  },
     1921    { "v_mad_u32_u16",       GCNENC_VOP3A,  GCN_STDMODE,              497,  ARCH_RXVEGA   },
     1922    { "v_mad_i32_i16",       GCNENC_VOP3A,  GCN_STDMODE,              498,  ARCH_RXVEGA   },
     1923    { "v_xad_u32",           GCNENC_VOP3A,  GCN_STDMODE,              499,  ARCH_RXVEGA   },
     1924    { "v_min3_f16",          GCNENC_VOP3A,  GCN_STDMODE,              500,  ARCH_RXVEGA   },
     1925    { "v_min3_i16",          GCNENC_VOP3A,  GCN_STDMODE,              501,  ARCH_RXVEGA   },
     1926    { "v_min3_u16",          GCNENC_VOP3A,  GCN_STDMODE,              502,  ARCH_RXVEGA   },
     1927    { "v_max3_f16",          GCNENC_VOP3A,  GCN_STDMODE,              503,  ARCH_RXVEGA   },
     1928    { "v_max3_i16",          GCNENC_VOP3A,  GCN_STDMODE,              504,  ARCH_RXVEGA   },
     1929    { "v_max3_u16",          GCNENC_VOP3A,  GCN_STDMODE,              505,  ARCH_RXVEGA   },
     1930    { "v_med3_f16",          GCNENC_VOP3A,  GCN_STDMODE,              506,  ARCH_RXVEGA   },
     1931    { "v_med3_i16",          GCNENC_VOP3A,  GCN_STDMODE,              507,  ARCH_RXVEGA   },
     1932    { "v_med3_u16",          GCNENC_VOP3A,  GCN_STDMODE,              508,  ARCH_RXVEGA   },
     1933    { "v_lshl_add_u32",      GCNENC_VOP3A,  GCN_STDMODE,              509,  ARCH_RXVEGA   },
     1934    { "v_add_lshl_u32",      GCNENC_VOP3A,  GCN_STDMODE,              510,  ARCH_RXVEGA   },
     1935    { "v_add3_u32",          GCNENC_VOP3A,  GCN_STDMODE,              511,  ARCH_RXVEGA   },
     1936    { "v_lshl_or_b32",       GCNENC_VOP3A,  GCN_STDMODE,              512,  ARCH_RXVEGA   },
     1937    { "v_and_or_b32",        GCNENC_VOP3A,  GCN_STDMODE,              513,  ARCH_RXVEGA   },
     1938    { "v_or3_b32",           GCNENC_VOP3A,  GCN_STDMODE,              514,  ARCH_RXVEGA   },
     1939    { "v_mad_f16",           GCNENC_VOP3A,  GCN_STDMODE,              515,  ARCH_RXVEGA   },
     1940    { "v_mad_u16",           GCNENC_VOP3A,  GCN_STDMODE,              516,  ARCH_RXVEGA   },
     1941    { "v_mad_i16",           GCNENC_VOP3A,  GCN_STDMODE,              517,  ARCH_RXVEGA   },
     1942    { "v_fma_f16",           GCNENC_VOP3A,  GCN_STDMODE,              518,  ARCH_RXVEGA   },
     1943    { "v_div_fixup_f16",     GCNENC_VOP3A,  GCN_STDMODE,              519,  ARCH_RXVEGA   },
    19161944    { "v_interp_p1_f32",     GCNENC_VOP3A,  GCN_VOP3_VINTRP,          624,  ARCH_GCN_1_2_4  },
    19171945    { "v_interp_p2_f32",     GCNENC_VOP3A,  GCN_VOP3_VINTRP,          625,  ARCH_GCN_1_2_4  },
  • CLRadeonExtender/trunk/tests/amdasm/GCNDisasmOpc14.cpp

    r3064 r3065  
    241241    { 0xd1900037U, 0x0000011bU, true, "        v_writelane_regwr_b32 v55, v27 vop3\n" },
    242242    { 0xd1910037U, 0x0000011bU, true, "        v_swap_b32      v55, v27 vop3\n" },
     243    /* VOP3 instructions */
     244    { 0xd1f10037U, 0x07974d4fU, true, "        v_mad_u32_u16   v55, v79, v166, v229\n" },
     245    { 0xd1f20037U, 0x07974d4fU, true, "        v_mad_i32_i16   v55, v79, v166, v229\n" },
     246    { 0xd1f30037U, 0x07974d4fU, true, "        v_xad_u32       v55, v79, v166, v229\n" },
     247    { 0xd1f40037U, 0x07974d4fU, true, "        v_min3_f16      v55, v79, v166, v229\n" },
     248    { 0xd1f50037U, 0x07974d4fU, true, "        v_min3_i16      v55, v79, v166, v229\n" },
     249    { 0xd1f60037U, 0x07974d4fU, true, "        v_min3_u16      v55, v79, v166, v229\n" },
     250    { 0xd1f70037U, 0x07974d4fU, true, "        v_max3_f16      v55, v79, v166, v229\n" },
     251    { 0xd1f80037U, 0x07974d4fU, true, "        v_max3_i16      v55, v79, v166, v229\n" },
     252    { 0xd1f90037U, 0x07974d4fU, true, "        v_max3_u16      v55, v79, v166, v229\n" },
     253    { 0xd1fa0037U, 0x07974d4fU, true, "        v_med3_f16      v55, v79, v166, v229\n" },
     254    { 0xd1fb0037U, 0x07974d4fU, true, "        v_med3_i16      v55, v79, v166, v229\n" },
     255    { 0xd1fc0037U, 0x07974d4fU, true, "        v_med3_u16      v55, v79, v166, v229\n" },
     256    { 0xd1fd0037U, 0x07974d4fU, true, "        v_lshl_add_u32  v55, v79, v166, v229\n" },
     257    { 0xd1fe0037U, 0x07974d4fU, true, "        v_add_lshl_u32  v55, v79, v166, v229\n" },
     258    { 0xd1ff0037U, 0x07974d4fU, true, "        v_add3_u32      v55, v79, v166, v229\n" },
     259    { 0xd2000037U, 0x07974d4fU, true, "        v_lshl_or_b32   v55, v79, v166, v229\n" },
     260    { 0xd2010037U, 0x07974d4fU, true, "        v_and_or_b32    v55, v79, v166, v229\n" },
     261    { 0xd2020037U, 0x07974d4fU, true, "        v_or3_b32       v55, v79, v166, v229\n" },
     262    { 0xd2030037U, 0x07974d4fU, true, "        v_mad_f16       v55, v79, v166, v229\n" },
     263    { 0xd2040037U, 0x07974d4fU, true, "        v_mad_u16       v55, v79, v166, v229\n" },
     264    { 0xd2050037U, 0x07974d4fU, true, "        v_mad_i16       v55, v79, v166, v229\n" },
     265    { 0xd2060037U, 0x07974d4fU, true, "        v_fma_f16       v55, v79, v166, v229\n" },
     266    { 0xd2070037U, 0x07974d4fU, true, "        v_div_fixup_f16 v55, v79, v166, v229\n" },
     267    { 0xd1ea0037U, 0x07974d4fU, true, "        v_mad_legacy_f16 v55, v79, v166, v229\n" },
     268    { 0xd1eb0037U, 0x07974d4fU, true, "        v_mad_legacy_u16 v55, v79, v166, v229\n" },
     269    { 0xd1ec0037U, 0x07974d4fU, true, "        v_mad_legacy_i16 v55, v79, v166, v229\n" },
     270    { 0xd1ee0037U, 0x07974d4fU, true, "        v_fma_legacy_f16 v55, v79, v166, v229\n" },
     271    { 0xd1ef0037U, 0x07974d4fU, true,
     272            "        v_div_fixup_legacy_f16 v55, v79, v166, v229\n" },
    243273    { 0, 0, false, nullptr }
    244274};
Note: See TracChangeset for help on using the changeset viewer.