1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

[AMDGPU][MC][GFX9+] Corrected encoding of op_sel_hi for unused operands in VOP3P

Corrected encoding of VOP3P op_sel_hi for unused operands. See bug 49363.

Differential Revision: https://reviews.llvm.org/D97689
This commit is contained in:
Dmitry Preobrazhensky 2021-03-02 12:59:09 +03:00
parent d3d5045b8b
commit b5019ff92f
19 changed files with 1718 additions and 1679 deletions

View File

@ -71,6 +71,9 @@ public:
unsigned getAVOperandEncoding(const MCInst &MI, unsigned OpNo,
SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const override;
private:
uint64_t getImplicitOpSelHiEncoding(int Opcode) const;
};
} // end anonymous namespace
@ -279,28 +282,38 @@ uint32_t SIMCCodeEmitter::getLitEncoding(const MCOperand &MO,
}
}
uint64_t SIMCCodeEmitter::getImplicitOpSelHiEncoding(int Opcode) const {
using namespace AMDGPU::VOP3PEncoding;
using namespace AMDGPU::OpName;
if (AMDGPU::getNamedOperandIdx(Opcode, op_sel_hi) != -1) {
if (AMDGPU::getNamedOperandIdx(Opcode, src2) != -1)
return 0;
if (AMDGPU::getNamedOperandIdx(Opcode, src1) != -1)
return OP_SEL_HI_2;
if (AMDGPU::getNamedOperandIdx(Opcode, src0) != -1)
return OP_SEL_HI_1 | OP_SEL_HI_2;
}
return OP_SEL_HI_0 | OP_SEL_HI_1 | OP_SEL_HI_2;
}
void SIMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS,
SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const {
verifyInstructionPredicates(MI,
computeAvailableFeatures(STI.getFeatureBits()));
int Opcode = MI.getOpcode();
uint64_t Encoding = getBinaryCodeForInstr(MI, Fixups, STI);
const MCInstrDesc &Desc = MCII.get(MI.getOpcode());
const MCInstrDesc &Desc = MCII.get(Opcode);
unsigned bytes = Desc.getSize();
switch (MI.getOpcode()) {
case AMDGPU::V_ACCVGPR_READ_B32_vi:
case AMDGPU::V_ACCVGPR_WRITE_B32_vi:
// Set unused op_sel_hi bits to 1.
// FIXME: This shall be done for all VOP3P but not MAI instructions with
// unused op_sel_hi bits if corresponding operands do not exist.
// accvgpr_read/write are different, however. These are VOP3P, MAI, have
// src0, but do not use op_sel.
Encoding |= (1ull << 14) | (1ull << 59) | (1ull << 60);
break;
default:
break;
// Set unused op_sel_hi bits to 1 for VOP3P and MAI instructions.
// Note that accvgpr_read/write are MAI, have src0, but do not use op_sel.
if ((Desc.TSFlags & SIInstrFlags::VOP3P) ||
Opcode == AMDGPU::V_ACCVGPR_READ_B32_vi ||
Opcode == AMDGPU::V_ACCVGPR_WRITE_B32_vi) {
Encoding |= getImplicitOpSelHiEncoding(Opcode);
}
for (unsigned i = 0; i < bytes; i++) {

View File

@ -737,6 +737,17 @@ enum Target : unsigned {
};
} // namespace Exp
namespace VOP3PEncoding {
enum OpSel : uint64_t {
OP_SEL_HI_0 = UINT64_C(1) << 59,
OP_SEL_HI_1 = UINT64_C(1) << 60,
OP_SEL_HI_2 = UINT64_C(1) << 14,
};
} // namespace VOP3PEncoding
} // namespace AMDGPU
#define R_00B028_SPI_SHADER_PGM_RSRC1_PS 0x00B028

View File

@ -317,7 +317,7 @@ class VOP3Pe <bits<7> op, VOPProfile P> : Enc64 {
let Inst{12} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{2}, 0); // op_sel(1)
let Inst{13} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{2}, 0); // op_sel(2)
let Inst{14} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{3}, 0); // op_sel_hi(2)
let Inst{14} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{3}, ?); // op_sel_hi(2)
let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
@ -326,8 +326,8 @@ class VOP3Pe <bits<7> op, VOPProfile P> : Enc64 {
let Inst{40-32} = !if(P.HasSrc0, src0, 0);
let Inst{49-41} = !if(P.HasSrc1, src1, 0);
let Inst{58-50} = !if(P.HasSrc2, src2, 0);
let Inst{59} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{3}, 0); // op_sel_hi(0)
let Inst{60} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{3}, 0); // op_sel_hi(1)
let Inst{59} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{3}, ?); // op_sel_hi(0)
let Inst{60} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{3}, ?); // op_sel_hi(1)
let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // neg (lo)
let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // neg (lo)
let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0); // neg (lo)

View File

@ -139,11 +139,11 @@ define amdgpu_kernel void @add_inline_imm_0.0_v2f16(<2 x half> addrspace(1)* %ou
; GCN-LABEL: {{^}}add_inline_imm_0.5_v2f16:
; GFX10: s_load_dword [[VAL:s[0-9]+]]
; GFX10: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], 0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x00,0x0f,0xcc,0x02,0xe0,0x01,0x08]
; GFX10: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], 0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x40,0x0f,0xcc,0x02,0xe0,0x01,0x08]
; GFX10: buffer_store_dword [[REG]]
; GFX9: s_load_dword [[VAL:s[0-9]+]]
; GFX9: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], 0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x00,0x8f,0xd3,0x04,0xe0,0x01,0x08]
; GFX9: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], 0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x40,0x8f,0xd3,0x04,0xe0,0x01,0x08]
; GFX9: buffer_store_dword [[REG]]
; FIXME: Shouldn't need right shift and SDWA, also extra copy
@ -164,11 +164,11 @@ define amdgpu_kernel void @add_inline_imm_0.5_v2f16(<2 x half> addrspace(1)* %ou
; GCN-LABEL: {{^}}add_inline_imm_neg_0.5_v2f16:
; GFX10: s_load_dword [[VAL:s[0-9]+]]
; GFX10: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], -0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x00,0x0f,0xcc,0x02,0xe2,0x01,0x08]
; GFX10: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], -0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x40,0x0f,0xcc,0x02,0xe2,0x01,0x08]
; GFX10: buffer_store_dword [[REG]]
; GFX9: s_load_dword [[VAL:s[0-9]+]]
; GFX9: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], -0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x00,0x8f,0xd3,0x04,0xe2,0x01,0x08]
; GFX9: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], -0.5 op_sel_hi:[1,0] ; encoding: [0x00,0x40,0x8f,0xd3,0x04,0xe2,0x01,0x08]
; GFX9: buffer_store_dword [[REG]]
; FIXME: Shouldn't need right shift and SDWA, also extra copy
@ -334,11 +334,11 @@ define amdgpu_kernel void @commute_add_inline_imm_0.5_v2f16(<2 x half> addrspace
}
; GCN-LABEL: {{^}}commute_add_literal_v2f16:
; GFX10: v_pk_add_f16 v0, 0x6400, v0 op_sel_hi:[0,1] ; encoding: [0x00,0x00,0x0f,0xcc,0xff,0x00,0x02,0x10,0x00,0x64,0x00,0x00]
; GFX10: v_pk_add_f16 v0, 0x6400, v0 op_sel_hi:[0,1] ; encoding: [0x00,0x40,0x0f,0xcc,0xff,0x00,0x02,0x10,0x00,0x64,0x00,0x00]
; GFX9-DAG: buffer_load_dword [[VAL:v[0-9]+]]
; GFX9-DAG: s_movk_i32 [[K:s[0-9]+]], 0x6400 ; encoding
; GFX9: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], [[K]] op_sel_hi:[1,0] ; encoding: [0x00,0x00,0x8f,0xd3,0x00,0x09,0x00,0x08]
; GFX9: v_pk_add_f16 [[REG:v[0-9]+]], [[VAL]], [[K]] op_sel_hi:[1,0] ; encoding: [0x00,0x40,0x8f,0xd3,0x00,0x09,0x00,0x08]
; GFX9: buffer_store_dword [[REG]]
; VI-DAG: s_movk_i32 [[K:s[0-9]+]], 0x6400 ; encoding

View File

@ -42,7 +42,7 @@ v_mov_b32_sdwa v1, sext(-2+i1)
//===----------------------------------------------------------------------===//
v_pk_add_u16 v1, v2, v3 op_sel:[2-i1,i1-1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] ; encoding: [0x01,0x08,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 neg_lo:[2-i1,i1-1]
// GFX9: v_pk_add_u16 v1, v2, v3 neg_lo:[1,0] ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x38]
// GFX9: v_pk_add_u16 v1, v2, v3 neg_lo:[1,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x38]

View File

@ -71,260 +71,260 @@ v_pk_fma_f32 v[8:9], v[0:1], s[0:1], v[4:5] clamp
v_pk_fma_f32 v[0:1], v[4:5], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x40,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[254:255], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0xfe,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0xfe,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[254:255], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x02,0x20,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x02,0x20,0x02,0x18]
v_pk_mul_f32 v[4:5], s[2:3], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x64,0x20,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x64,0x20,0x02,0x18]
v_pk_mul_f32 v[4:5], s[100:101], v[16:17]
// GFX90A: v_pk_mul_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x66,0x20,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x66,0x20,0x02,0x18]
// NOT-GFX1010: error: instruction not supported on this GPU
// NOT-GFX908: error: instruction not supported on this GPU
v_pk_mul_f32 v[4:5], flat_scratch, v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x6a,0x20,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x6a,0x20,0x02,0x18]
v_pk_mul_f32 v[4:5], vcc, v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x7e,0x20,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x7e,0x20,0x02,0x18]
v_pk_mul_f32 v[4:5], exec, v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xfd,0x03,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xfd,0x03,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[254:255]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x05,0x00,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x05,0x00,0x18]
v_pk_mul_f32 v[4:5], v[8:9], s[2:3]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xc9,0x00,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xc9,0x00,0x18]
v_pk_mul_f32 v[4:5], v[8:9], s[100:101]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xcd,0x00,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xcd,0x00,0x18]
// NOT-GFX1010: error: instruction not supported on this GPU
// NOT-GFX908: error: instruction not supported on this GPU
v_pk_mul_f32 v[4:5], v[8:9], flat_scratch
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xd5,0x00,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xd5,0x00,0x18]
v_pk_mul_f32 v[4:5], v[8:9], vcc
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xfd,0x00,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xfd,0x00,0x18]
v_pk_mul_f32 v[4:5], v[8:9], exec
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x08,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x48,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x10,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x50,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x18,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x58,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x00]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x00]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x08]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x08]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x10]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x10]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x38]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x38]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x58]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x58]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x78]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x78]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x01,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x41,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x02,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x42,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x03,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x43,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0x80,0xb1,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0xc0,0xb1,0xd3,0x08,0x21,0x02,0x18]
v_pk_mul_f32 v[4:5], v[8:9], v[16:17] clamp
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x40,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[254:255], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0xfe,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0xfe,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[254:255], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x02,0x20,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x02,0x20,0x02,0x18]
v_pk_add_f32 v[4:5], s[2:3], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x64,0x20,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x64,0x20,0x02,0x18]
v_pk_add_f32 v[4:5], s[100:101], v[16:17]
// GFX90A: v_pk_add_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x66,0x20,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x66,0x20,0x02,0x18]
// NOT-GFX1010: error: instruction not supported on this GPU
// NOT-GFX908: error: instruction not supported on this GPU
v_pk_add_f32 v[4:5], flat_scratch, v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x6a,0x20,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x6a,0x20,0x02,0x18]
v_pk_add_f32 v[4:5], vcc, v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x7e,0x20,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x7e,0x20,0x02,0x18]
v_pk_add_f32 v[4:5], exec, v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xfd,0x03,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xfd,0x03,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[254:255]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x05,0x00,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x05,0x00,0x18]
v_pk_add_f32 v[4:5], v[8:9], s[2:3]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xc9,0x00,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xc9,0x00,0x18]
v_pk_add_f32 v[4:5], v[8:9], s[100:101]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xcd,0x00,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xcd,0x00,0x18]
// NOT-GFX1010: error: instruction not supported on this GPU
// NOT-GFX908: error: instruction not supported on this GPU
v_pk_add_f32 v[4:5], v[8:9], flat_scratch
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xd5,0x00,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xd5,0x00,0x18]
v_pk_add_f32 v[4:5], v[8:9], vcc
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xfd,0x00,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xfd,0x00,0x18]
v_pk_add_f32 v[4:5], v[8:9], exec
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x08,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x48,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x10,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x50,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x18,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x58,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x00]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x00]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x08]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x08]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x10]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x10]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x38]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x38]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x58]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x58]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x78]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x78]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x01,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x41,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x02,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x42,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x03,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x43,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0x80,0xb2,0xd3,0x08,0x21,0x02,0x18]
// GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0xc0,0xb2,0xd3,0x08,0x21,0x02,0x18]
v_pk_add_f32 v[4:5], v[8:9], v[16:17] clamp
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0x09,0x02,0x18]
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0x09,0x02,0x18]
v_pk_mov_b32 v[0:1], v[2:3], v[4:5]
// GFX90A: v_pk_mov_b32 v[0:1], flat_scratch, v[4:5] ; encoding: [0x00,0x00,0xb3,0xd3,0x66,0x08,0x02,0x18]
// GFX90A: v_pk_mov_b32 v[0:1], flat_scratch, v[4:5] ; encoding: [0x00,0x40,0xb3,0xd3,0x66,0x08,0x02,0x18]
// NOT-GFX1010: error: instruction not supported on this GPU
// NOT-GFX908: error: instruction not supported on this GPU
v_pk_mov_b32 v[0:1], flat_scratch, v[4:5]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], vcc ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0xd5,0x00,0x18]
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], vcc ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0xd5,0x00,0x18]
v_pk_mov_b32 v[0:1], v[2:3], vcc
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], s[0:1] ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0x01,0x00,0x18]
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], s[0:1] ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0x01,0x00,0x18]
v_pk_mov_b32 v[0:1], v[2:3], s[0:1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel_hi:[0,1] ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0x05,0x02,0x10]
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel_hi:[0,1] ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0x05,0x02,0x10]
v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel_hi:[0,1]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,0] ; encoding: [0x00,0x08,0xb3,0xd3,0x02,0x09,0x02,0x18]
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,0] ; encoding: [0x00,0x48,0xb3,0xd3,0x02,0x09,0x02,0x18]
v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,0]
// NOT-GFX90A: error: instruction not supported on this GPU
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,1] ; encoding: [0x00,0x18,0xb3,0xd3,0x02,0x09,0x02,0x18]
// GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,1] ; encoding: [0x00,0x58,0xb3,0xd3,0x02,0x09,0x02,0x18]
v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,1]
// GFX90A: tbuffer_load_format_xyzw v[4:7], off, s[0:3], 0 scc ; encoding: [0x00,0x80,0x09,0xe8,0x00,0x04,0x20,0x80]

File diff suppressed because it is too large Load Diff

View File

@ -86,7 +86,7 @@ v_pk_mad_i16 v0, src_lds_direct, v0, v0
// GFX9: v_pk_mad_i16 v0, src_lds_direct, v0, v0 ; encoding: [0x00,0x40,0x80,0xd3,0xfe,0x00,0x02,0x1c]
v_pk_add_i16 v0, src_lds_direct, v0
// GFX9: v_pk_add_i16 v0, src_lds_direct, v0 ; encoding: [0x00,0x00,0x82,0xd3,0xfe,0x00,0x02,0x18]
// GFX9: v_pk_add_i16 v0, src_lds_direct, v0 ; encoding: [0x00,0x40,0x82,0xd3,0xfe,0x00,0x02,0x18]
//---------------------------------------------------------------------------//
// VOPC

View File

@ -597,7 +597,7 @@ v_max_f32 v0, vccz, v0
v_max_f64 v[0:1], scc, v[0:1]
// NOSICIVI: error: instruction not supported on this GPU
// GFX9: v_pk_add_f16 v0, src_execz, v0 ; encoding: [0x00,0x00,0x8f,0xd3,0xfc,0x00,0x02,0x18]
// GFX9: v_pk_add_f16 v0, src_execz, v0 ; encoding: [0x00,0x40,0x8f,0xd3,0xfc,0x00,0x02,0x18]
v_pk_add_f16 v0, execz, v0
// NOSICI: error: instruction not supported on this GPU
@ -737,7 +737,7 @@ v_max_f32 v0, src_shared_base, v0
v_max_f64 v[0:1], src_shared_base, v[0:1]
// NOSICIVI: error: instruction not supported on this GPU
// GFX9: v_pk_add_f16 v0, src_shared_base, v0 ; encoding: [0x00,0x00,0x8f,0xd3,0xeb,0x00,0x02,0x18]
// GFX9: v_pk_add_f16 v0, src_shared_base, v0 ; encoding: [0x00,0x40,0x8f,0xd3,0xeb,0x00,0x02,0x18]
v_pk_add_f16 v0, src_shared_base, v0
// GFX9: v_ceil_f16_e64 v0, -src_shared_base ; encoding: [0x00,0x00,0x85,0xd1,0xeb,0x00,0x00,0x20]

View File

@ -9,152 +9,152 @@
//===----------------------------------------------------------------------===//
v_pk_add_f16 v1, 0, v2
// GFX9: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x80,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x80,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x80,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x80,0x04,0x02,0x18]
v_pk_add_f16 v1, 0.0, v2
// GFX9: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x80,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x80,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x80,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x80,0x04,0x02,0x18]
v_pk_add_f16 v1, v2, 0
// GFX9: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x00,0x8f,0xd3,0x02,0x01,0x01,0x18]
// GFX10: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x00,0x0f,0xcc,0x02,0x01,0x01,0x18]
// GFX9: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x40,0x8f,0xd3,0x02,0x01,0x01,0x18]
// GFX10: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x40,0x0f,0xcc,0x02,0x01,0x01,0x18]
v_pk_add_f16 v1, v2, 0.0
// GFX9: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x00,0x8f,0xd3,0x02,0x01,0x01,0x18]
// GFX10: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x00,0x0f,0xcc,0x02,0x01,0x01,0x18]
// GFX9: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x40,0x8f,0xd3,0x02,0x01,0x01,0x18]
// GFX10: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x40,0x0f,0xcc,0x02,0x01,0x01,0x18]
v_pk_add_f16 v1, 1.0, v2
// GFX9: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf2,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf2,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf2,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf2,0x04,0x02,0x18]
v_pk_add_f16 v1, -1.0, v2
// GFX9: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf3,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf3,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf3,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf3,0x04,0x02,0x18]
v_pk_add_f16 v1, -0.5, v2
// GFX9: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf1,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf1,0x04,0x02,0x18]
v_pk_add_f16 v1, 0.5, v2
// GFX9: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf0,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf0,0x04,0x02,0x18]
v_pk_add_f16 v1, 2.0, v2
// GFX9: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf4,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf4,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf4,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf4,0x04,0x02,0x18]
v_pk_add_f16 v1, -2.0, v2
// GFX9: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf5,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf5,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf5,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf5,0x04,0x02,0x18]
v_pk_add_f16 v1, 4.0, v2
// GFX9: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf6,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf6,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf6,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf6,0x04,0x02,0x18]
v_pk_add_f16 v1, -4.0, v2
// GFX9: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf7,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf7,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf7,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf7,0x04,0x02,0x18]
v_pk_add_f16 v1, 0.15915494, v2
// GFX9: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf8,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf8,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf8,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf8,0x04,0x02,0x18]
v_pk_add_f16 v1, -1, v2
// GFX9: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc1,0x04,0x02,0x18]
v_pk_add_f16 v1, -2, v2
// GFX9: v_pk_add_f16 v1, -2, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xc2,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -2, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc2,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -2, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xc2,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -2, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc2,0x04,0x02,0x18]
v_pk_add_f16 v1, -3, v2
// GFX9: v_pk_add_f16 v1, -3, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xc3,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -3, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc3,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -3, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xc3,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -3, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc3,0x04,0x02,0x18]
v_pk_add_f16 v1, -16, v2
// GFX9: v_pk_add_f16 v1, -16, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xd0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -16, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xd0,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -16, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xd0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -16, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xd0,0x04,0x02,0x18]
v_pk_add_f16 v1, 1, v2
// GFX9: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x81,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x81,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x81,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x81,0x04,0x02,0x18]
v_pk_add_f16 v1, 2, v2
// GFX9: v_pk_add_f16 v1, 2, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x82,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 2, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x82,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 2, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x82,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 2, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x82,0x04,0x02,0x18]
v_pk_add_f16 v1, 3, v2
// GFX9: v_pk_add_f16 v1, 3, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x83,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 3, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x83,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 3, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x83,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 3, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x83,0x04,0x02,0x18]
v_pk_add_f16 v1, 4, v2
// GFX9: v_pk_add_f16 v1, 4, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x84,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 4, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x84,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 4, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x84,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 4, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x84,0x04,0x02,0x18]
v_pk_add_f16 v1, 15, v2
// GFX9: v_pk_add_f16 v1, 15, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x8f,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 15, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x8f,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 15, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x8f,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 15, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x8f,0x04,0x02,0x18]
v_pk_add_f16 v1, 16, v2
// GFX9: v_pk_add_f16 v1, 16, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x90,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 16, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x90,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 16, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x90,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 16, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x90,0x04,0x02,0x18]
v_pk_add_f16 v1, 63, v2
// GFX9: v_pk_add_f16 v1, 63, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xbf,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 63, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xbf,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 63, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xbf,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 63, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xbf,0x04,0x02,0x18]
v_pk_add_f16 v1, 64, v2
// GFX9: v_pk_add_f16 v1, 64, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xc0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 64, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc0,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 64, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xc0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 64, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc0,0x04,0x02,0x18]
v_pk_add_f16 v1, 0x0001, v2
// GFX9: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0x81,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x81,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0x81,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x81,0x04,0x02,0x18]
v_pk_add_f16 v1, 0xffff, v2
// GFX9: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc1,0x04,0x02,0x18]
v_pk_add_f16 v1, 0x3c00, v2
// GFX9: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf2,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf2,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf2,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf2,0x04,0x02,0x18]
v_pk_add_f16 v1, 0xbc00, v2
// GFX9: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf3,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf3,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf3,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf3,0x04,0x02,0x18]
v_pk_add_f16 v1, 0x3800, v2
// GFX9: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf0,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf0,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf0,0x04,0x02,0x18]
v_pk_add_f16 v1, 0xb800, v2
// GFX9: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf1,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf1,0x04,0x02,0x18]
v_pk_add_f16 v1, 0x4000, v2
// GFX9: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf4,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf4,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf4,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf4,0x04,0x02,0x18]
v_pk_add_f16 v1, 0xc000, v2
// GFX9: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf5,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf5,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf5,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf5,0x04,0x02,0x18]
v_pk_add_f16 v1, 0x4400, v2
// GFX9: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf6,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf6,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf6,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf6,0x04,0x02,0x18]
v_pk_add_f16 v1, 0xc400, v2
// GFX9: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf7,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf7,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf7,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf7,0x04,0x02,0x18]
v_pk_add_f16 v1, 0x3118, v2
// GFX9: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xf8,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf8,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xf8,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf8,0x04,0x02,0x18]
v_pk_add_f16 v1, 65535, v2
// GFX9: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x8f,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18]
// GFX9: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x8f,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc1,0x04,0x02,0x18]
//===----------------------------------------------------------------------===//
// Integer literals
@ -162,35 +162,35 @@ v_pk_add_f16 v1, 65535, v2
v_pk_add_f16 v5, v1, 0x12345678
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_f16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
// GFX10: v_pk_add_f16 v5, v1, 0x12345678 ; encoding: [0x05,0x40,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
v_pk_add_f16 v5, 0x12345678, v2
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_f16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
// GFX10: v_pk_add_f16 v5, 0x12345678, v2 ; encoding: [0x05,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
v_pk_add_f16 v5, -256, v2
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_f16 v5, 0xffffff00, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
// GFX10: v_pk_add_f16 v5, 0xffffff00, v2 ; encoding: [0x05,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
v_pk_add_f16 v5, v1, 256
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_f16 v5, v1, 0x100 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
// GFX10: v_pk_add_f16 v5, v1, 0x100 ; encoding: [0x05,0x40,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
v_pk_add_u16 v5, v1, 0x12345678
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_u16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
// GFX10: v_pk_add_u16 v5, v1, 0x12345678 ; encoding: [0x05,0x40,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
v_pk_add_u16 v5, 0x12345678, v2
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_u16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
// GFX10: v_pk_add_u16 v5, 0x12345678, v2 ; encoding: [0x05,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
v_pk_add_u16 v5, -256, v2
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_u16 v5, 0xffffff00, v2 ; encoding: [0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
// GFX10: v_pk_add_u16 v5, 0xffffff00, v2 ; encoding: [0x05,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
v_pk_add_u16 v5, v1, 256
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_u16 v5, v1, 0x100 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
// GFX10: v_pk_add_u16 v5, v1, 0x100 ; encoding: [0x05,0x40,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
v_pk_add_f16 v5, v1, 0x123456780
// NOGFX9: error: invalid operand for instruction
@ -226,11 +226,11 @@ v_pk_mad_i16 v5, v1, v2, 0xaf123456
v_pk_ashrrev_i16 v5, 0x12345678, v2
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_ashrrev_i16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
// GFX10: v_pk_ashrrev_i16 v5, 0x12345678, v2 ; encoding: [0x05,0x40,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
v_pk_ashrrev_i16 v5, v1, 0x12345678
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_ashrrev_i16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
// GFX10: v_pk_ashrrev_i16 v5, v1, 0x12345678 ; encoding: [0x05,0x40,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
//===----------------------------------------------------------------------===//
// Floating-point literals (allowed if lossless conversion to f16 is possible)
@ -238,11 +238,11 @@ v_pk_ashrrev_i16 v5, v1, 0x12345678
v_pk_add_f16 v5, v1, 0.1234
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_f16 v5, v1, 0x2fe6 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0xe6,0x2f,0x00,0x00]
// GFX10: v_pk_add_f16 v5, v1, 0x2fe6 ; encoding: [0x05,0x40,0x0f,0xcc,0x01,0xff,0x01,0x18,0xe6,0x2f,0x00,0x00]
v_pk_add_u16 v5, v1, 0.1234
// NOGFX9: error: literal operands are not supported
// GFX10: v_pk_add_u16 v5, v1, 0x2fe6 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0xe6,0x2f,0x00,0x00]
// GFX10: v_pk_add_u16 v5, v1, 0x2fe6 ; encoding: [0x05,0x40,0x0a,0xcc,0x01,0xff,0x01,0x18,0xe6,0x2f,0x00,0x00]
v_pk_fma_f16 v5, 0.1234, v2, v3
// NOGFX9: error: literal operands are not supported

View File

@ -68,19 +68,19 @@ v_bfm_b32_e64 v0, 0x3039, 0x3038
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v1, 25.0, v2
// GFX10: v_pk_add_f16 v1, 0x4e40, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0x4e,0x00,0x00]
// GFX10: v_pk_add_f16 v1, 0x4e40, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0x4e,0x00,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v1, 123456, v2
// GFX10: v_pk_add_f16 v1, 0x1e240, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0xe2,0x01,0x00]
// GFX10: v_pk_add_f16 v1, 0x1e240, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0xe2,0x01,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v1, -200, v2
// GFX10: v_pk_add_f16 v1, 0xffffff38, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
// GFX10: v_pk_add_f16 v1, 0xffffff38, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v1, 25.0, 25.0
// GFX10: v_pk_add_f16 v1, 0x4e40, 0x4e40 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0xfe,0x01,0x18,0x40,0x4e,0x00,0x00]
// GFX10: v_pk_add_f16 v1, 0x4e40, 0x4e40 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0xfe,0x01,0x18,0x40,0x4e,0x00,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v1, 25.0, 25.1
@ -88,31 +88,31 @@ v_pk_add_f16 v1, 25.0, 25.1
// GFX9-ERR: error: literal operands are not supported
v_pk_add_u16 v1, -200, v2
// GFX10: v_pk_add_u16 v1, 0xffffff38, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
// GFX10: v_pk_add_u16 v1, 0xffffff38, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_u16 v1, 64, v2
// GFX10: v_pk_add_u16 v1, 64, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xc0,0x04,0x02,0x18]
// GFX9: v_pk_add_u16 v1, 64, v2 ; encoding: [0x01,0x00,0x8a,0xd3,0xc0,0x04,0x02,0x18]
// GFX10: v_pk_add_u16 v1, 64, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xc0,0x04,0x02,0x18]
// GFX9: v_pk_add_u16 v1, 64, v2 ; encoding: [0x01,0x40,0x8a,0xd3,0xc0,0x04,0x02,0x18]
v_pk_add_u16 v1, 65, v2
// GFX10: v_pk_add_u16 v1, 0x41, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x41,0x00,0x00,0x00]
// GFX10: v_pk_add_u16 v1, 0x41, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x41,0x00,0x00,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_u16 v1, -1, v2
// GFX10: v_pk_add_u16 v1, -1, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xc1,0x04,0x02,0x18]
// GFX9: v_pk_add_u16 v1, -1, v2 ; encoding: [0x01,0x00,0x8a,0xd3,0xc1,0x04,0x02,0x18]
// GFX10: v_pk_add_u16 v1, -1, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xc1,0x04,0x02,0x18]
// GFX9: v_pk_add_u16 v1, -1, v2 ; encoding: [0x01,0x40,0x8a,0xd3,0xc1,0x04,0x02,0x18]
v_pk_add_u16 v1, -5, v2
// GFX10: v_pk_add_u16 v1, -5, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xc5,0x04,0x02,0x18]
// GFX9: v_pk_add_u16 v1, -5, v2 ; encoding: [0x01,0x00,0x8a,0xd3,0xc5,0x04,0x02,0x18]
// GFX10: v_pk_add_u16 v1, -5, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xc5,0x04,0x02,0x18]
// GFX9: v_pk_add_u16 v1, -5, v2 ; encoding: [0x01,0x40,0x8a,0xd3,0xc5,0x04,0x02,0x18]
v_pk_add_u16 v1, -100, v2
// GFX10: v_pk_add_u16 v1, 0xffffff9c, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x9c,0xff,0xff,0xff]
// GFX10: v_pk_add_u16 v1, 0xffffff9c, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x9c,0xff,0xff,0xff]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_u16 v1, -100, -100
// GFX10: v_pk_add_u16 v1, 0xffffff9c, 0xffffff9c ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0xfe,0x01,0x18,0x9c,0xff,0xff,0xff]
// GFX10: v_pk_add_u16 v1, 0xffffff9c, 0xffffff9c ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0xfe,0x01,0x18,0x9c,0xff,0xff,0xff]
// GFX9-ERR: error: literal operands are not supported
v_add_f32_e64 v1, neg(abs(0x123)), v3
@ -340,27 +340,27 @@ v_fma_mix_f32 v5, 0x1c8a, 0x1c8a, 0x1c8a
// GFX9-ERR: error: instruction not supported on this GPU
v_pk_add_f16 v5, 0xaf123456, v2
// GFX10: v_pk_add_f16 v5, 0xaf123456, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x56,0x34,0x12,0xaf]
// GFX10: v_pk_add_f16 v5, 0xaf123456, v2 ; encoding: [0x05,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x56,0x34,0x12,0xaf]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v5, v1, 0x3f717273
// GFX10: v_pk_add_f16 v5, v1, 0x3f717273 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x73,0x72,0x71,0x3f]
// GFX10: v_pk_add_f16 v5, v1, 0x3f717273 ; encoding: [0x05,0x40,0x0f,0xcc,0x01,0xff,0x01,0x18,0x73,0x72,0x71,0x3f]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_f16 v5, 0x3f717273, 0x3f717273
// GFX10: v_pk_add_f16 v5, 0x3f717273, 0x3f717273 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0xfe,0x01,0x18,0x73,0x72,0x71,0x3f]
// GFX10: v_pk_add_f16 v5, 0x3f717273, 0x3f717273 ; encoding: [0x05,0x40,0x0f,0xcc,0xff,0xfe,0x01,0x18,0x73,0x72,0x71,0x3f]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_i16 v5, 0x7b, v2
// GFX10: v_pk_add_i16 v5, 0x7b, v2 ; encoding: [0x05,0x00,0x02,0xcc,0xff,0x04,0x02,0x18,0x7b,0x00,0x00,0x00]
// GFX10: v_pk_add_i16 v5, 0x7b, v2 ; encoding: [0x05,0x40,0x02,0xcc,0xff,0x04,0x02,0x18,0x7b,0x00,0x00,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_i16 v5, v1, 0x7b
// GFX10: v_pk_add_i16 v5, v1, 0x7b ; encoding: [0x05,0x00,0x02,0xcc,0x01,0xff,0x01,0x18,0x7b,0x00,0x00,0x00]
// GFX10: v_pk_add_i16 v5, v1, 0x7b ; encoding: [0x05,0x40,0x02,0xcc,0x01,0xff,0x01,0x18,0x7b,0x00,0x00,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_i16 v5, 0xab7b, 0xab7b
// GFX10: v_pk_add_i16 v5, 0xab7b, 0xab7b ; encoding: [0x05,0x00,0x02,0xcc,0xff,0xfe,0x01,0x18,0x7b,0xab,0x00,0x00]
// GFX10: v_pk_add_i16 v5, 0xab7b, 0xab7b ; encoding: [0x05,0x40,0x02,0xcc,0xff,0xfe,0x01,0x18,0x7b,0xab,0x00,0x00]
// GFX9-ERR: error: literal operands are not supported
v_pk_add_i16 v5, 0xab7b, 0xab7a

View File

@ -4,52 +4,52 @@
//
v_pk_add_u16 v1, v2, v3
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel:[0,0]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,1]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0] ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x00]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x00]
v_pk_add_u16 v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0] ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x00]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x00]
v_pk_add_u16 v1, v2, v3 op_sel:[1,0]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] ; encoding: [0x01,0x08,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel:[0,1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] ; encoding: [0x01,0x10,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] ; encoding: [0x01,0x50,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel:[1,1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,1] ; encoding: [0x01,0x18,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,1] ; encoding: [0x01,0x58,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,1] ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x10]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[0,1] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x10]
v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,0]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,0] ; encoding: [0x01,0x00,0x8a,0xd3,0x02,0x07,0x02,0x08]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel_hi:[1,0] ; encoding: [0x01,0x40,0x8a,0xd3,0x02,0x07,0x02,0x08]
v_pk_add_u16 v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,1] ; encoding: [0x01,0x18,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,1] ; encoding: [0x01,0x58,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] ; encoding: [0x01,0x08,0x8a,0xd3,0x02,0x07,0x02,0x08]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x08]
v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] ; encoding: [0x01,0x10,0x8a,0xd3,0x02,0x07,0x02,0x10]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] ; encoding: [0x01,0x50,0x8a,0xd3,0x02,0x07,0x02,0x10]
v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] ; encoding: [0x01,0x08,0x8a,0xd3,0x02,0x07,0x02,0x10]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] ; encoding: [0x01,0x48,0x8a,0xd3,0x02,0x07,0x02,0x10]
v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] ; encoding: [0x01,0x10,0x8a,0xd3,0x02,0x07,0x02,0x08]
// GFX9: v_pk_add_u16 v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] ; encoding: [0x01,0x50,0x8a,0xd3,0x02,0x07,0x02,0x08]
//
// Test src2 op_sel/op_sel_hi
@ -110,59 +110,59 @@ v_pk_fma_f16 v8, v0, s0, v1 clamp
// GFX9: v_pk_fma_f16 v8, v0, s0, v1 clamp ; encoding: [0x08,0xc0,0x8e,0xd3,0x00,0x01,0x04,0x1c]
v_pk_add_u16 v1, v2, v3 clamp
// GFX9: v_pk_add_u16 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x8a,0xd3,0x02,0x07,0x02,0x18]
// GFX9: v_pk_add_u16 v1, v2, v3 clamp ; encoding: [0x01,0xc0,0x8a,0xd3,0x02,0x07,0x02,0x18]
v_pk_min_i16 v0, v1, v2 clamp
// GFX9: v_pk_min_i16 v0, v1, v2 clamp ; encoding: [0x00,0x80,0x88,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_min_i16 v0, v1, v2 clamp ; encoding: [0x00,0xc0,0x88,0xd3,0x01,0x05,0x02,0x18]
//
// Instruction tests:
//
v_pk_mul_lo_u16 v0, v1, v2
// GFX9: v_pk_mul_lo_u16 v0, v1, v2 ; encoding: [0x00,0x00,0x81,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_mul_lo_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x81,0xd3,0x01,0x05,0x02,0x18]
v_pk_add_i16 v0, v1, v2
// GFX9: v_pk_add_i16 v0, v1, v2 ; encoding: [0x00,0x00,0x82,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_add_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x82,0xd3,0x01,0x05,0x02,0x18]
v_pk_sub_i16 v0, v1, v2
// GFX9: v_pk_sub_i16 v0, v1, v2 ; encoding: [0x00,0x00,0x83,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_sub_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x83,0xd3,0x01,0x05,0x02,0x18]
v_pk_lshlrev_b16 v0, v1, v2
// GFX9: v_pk_lshlrev_b16 v0, v1, v2 ; encoding: [0x00,0x00,0x84,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_lshlrev_b16 v0, v1, v2 ; encoding: [0x00,0x40,0x84,0xd3,0x01,0x05,0x02,0x18]
v_pk_lshrrev_b16 v0, v1, v2
// GFX9: v_pk_lshrrev_b16 v0, v1, v2 ; encoding: [0x00,0x00,0x85,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_lshrrev_b16 v0, v1, v2 ; encoding: [0x00,0x40,0x85,0xd3,0x01,0x05,0x02,0x18]
v_pk_ashrrev_i16 v0, v1, v2
// GFX9: v_pk_ashrrev_i16 v0, v1, v2 ; encoding: [0x00,0x00,0x86,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_ashrrev_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x86,0xd3,0x01,0x05,0x02,0x18]
v_pk_max_i16 v0, v1, v2
// GFX9: v_pk_max_i16 v0, v1, v2 ; encoding: [0x00,0x00,0x87,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_max_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x87,0xd3,0x01,0x05,0x02,0x18]
v_pk_min_i16 v0, v1, v2
// GFX9: v_pk_min_i16 v0, v1, v2 ; encoding: [0x00,0x00,0x88,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_min_i16 v0, v1, v2 ; encoding: [0x00,0x40,0x88,0xd3,0x01,0x05,0x02,0x18]
v_pk_add_u16 v0, v1, v2
// GFX9: v_pk_add_u16 v0, v1, v2 ; encoding: [0x00,0x00,0x8a,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_add_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x8a,0xd3,0x01,0x05,0x02,0x18]
v_pk_max_u16 v0, v1, v2
// GFX9: v_pk_max_u16 v0, v1, v2 ; encoding: [0x00,0x00,0x8c,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_max_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x8c,0xd3,0x01,0x05,0x02,0x18]
v_pk_min_u16 v0, v1, v2
// GFX9: v_pk_min_u16 v0, v1, v2 ; encoding: [0x00,0x00,0x8d,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_min_u16 v0, v1, v2 ; encoding: [0x00,0x40,0x8d,0xd3,0x01,0x05,0x02,0x18]
v_pk_fma_f16 v0, v1, v2, v3
// GFX9: v_pk_fma_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0x8e,0xd3,0x01,0x05,0x0e,0x1c]
v_pk_add_f16 v0, v1, v2
// GFX9: v_pk_add_f16 v0, v1, v2 ; encoding: [0x00,0x00,0x8f,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_add_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x8f,0xd3,0x01,0x05,0x02,0x18]
v_pk_mul_f16 v0, v1, v2
// GFX9: v_pk_mul_f16 v0, v1, v2 ; encoding: [0x00,0x00,0x90,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_mul_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x90,0xd3,0x01,0x05,0x02,0x18]
v_pk_min_f16 v0, v1, v2
// GFX9: v_pk_min_f16 v0, v1, v2 ; encoding: [0x00,0x00,0x91,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_min_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x91,0xd3,0x01,0x05,0x02,0x18]
v_pk_max_f16 v0, v1, v2
// GFX9: v_pk_max_f16 v0, v1, v2 ; encoding: [0x00,0x00,0x92,0xd3,0x01,0x05,0x02,0x18]
// GFX9: v_pk_max_f16 v0, v1, v2 ; encoding: [0x00,0x40,0x92,0xd3,0x01,0x05,0x02,0x18]

View File

@ -52,193 +52,193 @@
# GFX90A: v_pk_fma_f32 v[0:1], v[4:5], v[8:9], v[16:17] ; encoding: [0x00,0x40,0xb0,0xd3,0x04,0x11,0x42,0x1c]
0x00,0x40,0xb0,0xd3,0x04,0x11,0x42,0x1c
# GFX90A: v_pk_mul_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x40,0xb1,0xd3,0x08,0x21,0x02,0x18]
0xfe,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0xfe,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0xfe,0x21,0x02,0x18]
0x04,0x00,0xb1,0xd3,0xfe,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x02,0x20,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x02,0x20,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x02,0x20,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x64,0x20,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x64,0x20,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x64,0x20,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x66,0x20,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x66,0x20,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x66,0x20,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x6a,0x20,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x6a,0x20,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x6a,0x20,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x7e,0x20,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x7e,0x20,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x7e,0x20,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xfd,0x03,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xfd,0x03,0x18]
0x04,0x00,0xb1,0xd3,0x08,0xfd,0x03,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x05,0x00,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x05,0x00,0x18]
0x04,0x00,0xb1,0xd3,0x08,0x05,0x00,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xc9,0x00,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xc9,0x00,0x18]
0x04,0x00,0xb1,0xd3,0x08,0xc9,0x00,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xcd,0x00,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xcd,0x00,0x18]
0x04,0x00,0xb1,0xd3,0x08,0xcd,0x00,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xd5,0x00,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xd5,0x00,0x18]
0x04,0x00,0xb1,0xd3,0x08,0xd5,0x00,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0xfd,0x00,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0xfd,0x00,0x18]
0x04,0x00,0xb1,0xd3,0x08,0xfd,0x00,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x08,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x48,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x08,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x10,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x50,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x10,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x18,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x58,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x18,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x00]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x00]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x00
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x08]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x08]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x08
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x10]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x10]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x10
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x38]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x38]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x38
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x58]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x58]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x58
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x78]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x40,0xb1,0xd3,0x08,0x21,0x02,0x78]
0x04,0x00,0xb1,0xd3,0x08,0x21,0x02,0x78
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x01,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x41,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x01,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x02,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x42,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x02,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x03,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x43,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x03,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0x80,0xb1,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_mul_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0xc0,0xb1,0xd3,0x08,0x21,0x02,0x18]
0x04,0x80,0xb1,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[254:255], v[8:9], v[16:17] ; encoding: [0xfe,0x40,0xb2,0xd3,0x08,0x21,0x02,0x18]
0xfe,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0xfe,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[254:255], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0xfe,0x21,0x02,0x18]
0x04,0x00,0xb2,0xd3,0xfe,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x02,0x20,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], s[2:3], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x02,0x20,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x02,0x20,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x64,0x20,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], s[100:101], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x64,0x20,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x64,0x20,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x66,0x20,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], flat_scratch, v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x66,0x20,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x66,0x20,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x6a,0x20,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], vcc, v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x6a,0x20,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x6a,0x20,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x7e,0x20,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], exec, v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x7e,0x20,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x7e,0x20,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xfd,0x03,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[254:255] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xfd,0x03,0x18]
0x04,0x00,0xb2,0xd3,0x08,0xfd,0x03,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x05,0x00,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[2:3] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x05,0x00,0x18]
0x04,0x00,0xb2,0xd3,0x08,0x05,0x00,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xc9,0x00,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], s[100:101] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xc9,0x00,0x18]
0x04,0x00,0xb2,0xd3,0x08,0xc9,0x00,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xcd,0x00,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], flat_scratch ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xcd,0x00,0x18]
0x04,0x00,0xb2,0xd3,0x08,0xcd,0x00,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xd5,0x00,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], vcc ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xd5,0x00,0x18]
0x04,0x00,0xb2,0xd3,0x08,0xd5,0x00,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0xfd,0x00,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], exec ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0xfd,0x00,0x18]
0x04,0x00,0xb2,0xd3,0x08,0xfd,0x00,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x08,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,0] ; encoding: [0x04,0x48,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x08,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x10,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[0,1] ; encoding: [0x04,0x50,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x10,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x18,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel:[1,1] ; encoding: [0x04,0x58,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x18,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x00]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,0] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x00]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x00
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x08]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[1,0] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x08]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x08
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x10]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] op_sel_hi:[0,1] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x10]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x10
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x38]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,0] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x38]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x38
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x58]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[0,1] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x58]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x58
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x78]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_lo:[1,1] ; encoding: [0x04,0x40,0xb2,0xd3,0x08,0x21,0x02,0x78]
0x04,0x00,0xb2,0xd3,0x08,0x21,0x02,0x78
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x01,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,0] ; encoding: [0x04,0x41,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x01,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x02,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[0,1] ; encoding: [0x04,0x42,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x02,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x03,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] neg_hi:[1,1] ; encoding: [0x04,0x43,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x03,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0x80,0xb2,0xd3,0x08,0x21,0x02,0x18]
# GFX90A: v_pk_add_f32 v[4:5], v[8:9], v[16:17] clamp ; encoding: [0x04,0xc0,0xb2,0xd3,0x08,0x21,0x02,0x18]
0x04,0x80,0xb2,0xd3,0x08,0x21,0x02,0x18
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0x09,0x02,0x18]
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0x09,0x02,0x18]
0x00,0x00,0xb3,0xd3,0x02,0x09,0x02,0x18
# GFX90A: v_pk_mov_b32 v[0:1], flat_scratch, v[4:5] ; encoding: [0x00,0x00,0xb3,0xd3,0x66,0x08,0x02,0x18]
# GFX90A: v_pk_mov_b32 v[0:1], flat_scratch, v[4:5] ; encoding: [0x00,0x40,0xb3,0xd3,0x66,0x08,0x02,0x18]
0x00,0x00,0xb3,0xd3,0x66,0x08,0x02,0x18
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], vcc ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0xd5,0x00,0x18]
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], vcc ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0xd5,0x00,0x18]
0x00,0x00,0xb3,0xd3,0x02,0xd5,0x00,0x18
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], s[0:1] ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0x01,0x00,0x18]
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], s[0:1] ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0x01,0x00,0x18]
0x00,0x00,0xb3,0xd3,0x02,0x01,0x00,0x18
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel_hi:[0,1] ; encoding: [0x00,0x00,0xb3,0xd3,0x02,0x09,0x02,0x10]
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel_hi:[0,1] ; encoding: [0x00,0x40,0xb3,0xd3,0x02,0x09,0x02,0x10]
0x00,0x00,0xb3,0xd3,0x02,0x09,0x02,0x10
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,0] ; encoding: [0x00,0x08,0xb3,0xd3,0x02,0x09,0x02,0x18]
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,0] ; encoding: [0x00,0x48,0xb3,0xd3,0x02,0x09,0x02,0x18]
0x00,0x08,0xb3,0xd3,0x02,0x09,0x02,0x18
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,1] ; encoding: [0x00,0x18,0xb3,0xd3,0x02,0x09,0x02,0x18]
# GFX90A: v_pk_mov_b32 v[0:1], v[2:3], v[4:5] op_sel:[1,1] ; encoding: [0x00,0x58,0xb3,0xd3,0x02,0x09,0x02,0x18]
0x00,0x18,0xb3,0xd3,0x02,0x09,0x02,0x18
# GFX908: tbuffer_load_format_xyzw v[4:7], off, s[0:3], 0 ; encoding: [0x00,0x80,0x09,0xe8,0x00,0x04,0x20,0x80]

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@
# GFX9: v_pk_mad_i16 v0, src_lds_direct, v0, v0 ; encoding: [0x00,0x40,0x80,0xd3,0xfe,0x00,0x02,0x1c]
0x00,0x40,0x80,0xd3,0xfe,0x00,0x02,0x1c
# GFX9: v_pk_mul_lo_u16 v0, src_lds_direct, v0 ; encoding: [0x00,0x00,0x81,0xd3,0xfe,0x00,0x02,0x18]
# GFX9: v_pk_mul_lo_u16 v0, src_lds_direct, v0 ; encoding: [0x00,0x40,0x81,0xd3,0xfe,0x00,0x02,0x18]
0x00,0x00,0x81,0xd3,0xfe,0x00,0x02,0x18
# GFX9: v_cmpx_le_i32_e32 vcc, src_lds_direct, v0 ; encoding: [0xfe,0x00,0xa6,0x7d]

View File

@ -45,7 +45,7 @@
# GFX9: v_max_f64 v[0:1], src_shared_base, v[0:1] ; encoding: [0x00,0x00,0x83,0xd2,0xeb,0x00,0x02,0x00]
0x00,0x00,0x83,0xd2,0xeb,0x00,0x02,0x00
# GFX9: v_pk_add_f16 v0, src_shared_base, v0 ; encoding: [0x00,0x00,0x8f,0xd3,0xeb,0x00,0x02,0x18]
# GFX9: v_pk_add_f16 v0, src_shared_base, v0 ; encoding: [0x00,0x40,0x8f,0xd3,0xeb,0x00,0x02,0x18]
0x00,0x00,0x8f,0xd3,0xeb,0x00,0x02,0x18
# GFX9: v_ceil_f16_e64 v0, -src_shared_base ; encoding: [0x00,0x00,0x85,0xd1,0xeb,0x00,0x00,0x20]
@ -126,7 +126,7 @@
# GFX9: v_max_f64 v[0:1], src_scc, v[0:1] ; encoding: [0x00,0x00,0x83,0xd2,0xfd,0x00,0x02,0x00]
0x00,0x00,0x83,0xd2,0xfd,0x00,0x02,0x00
# GFX9: v_pk_add_f16 v0, src_execz, v0 ; encoding: [0x00,0x00,0x8f,0xd3,0xfc,0x00,0x02,0x18]
# GFX9: v_pk_add_f16 v0, src_execz, v0 ; encoding: [0x00,0x40,0x8f,0xd3,0xfc,0x00,0x02,0x18]
0x00,0x00,0x8f,0xd3,0xfc,0x00,0x02,0x18
# GFX9: v_ceil_f16_e64 v0, -src_vccz ; encoding: [0x00,0x00,0x85,0xd1,0xfb,0x00,0x00,0x20]

View File

@ -4,73 +4,73 @@
# Inline constants
#===----------------------------------------------------------------------===//
# GFX10: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x80,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x80,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x80,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x00,0x0f,0xcc,0x02,0x01,0x01,0x18]
# GFX10: v_pk_add_f16 v1, v2, 0 ; encoding: [0x01,0x40,0x0f,0xcc,0x02,0x01,0x01,0x18]
0x01,0x00,0x0f,0xcc,0x02,0x01,0x01,0x18
# GFX10: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf2,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 1.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf2,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf2,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf3,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -1.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf3,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf3,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf1,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -0.5, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf1,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf1,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf0,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 0.5, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf0,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf0,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf4,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 2.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf4,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf4,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf5,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -2.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf5,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf5,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf6,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 4.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf6,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf6,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf7,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -4.0, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf7,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf7,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf8,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xf8,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xf8,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc1,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -2, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc2,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -2, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc2,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xc2,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -3, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc3,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -3, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc3,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xc3,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, -16, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xd0,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, -16, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xd0,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xd0,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x81,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 1, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x81,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x81,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 2, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x82,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 2, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x82,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x82,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 3, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x83,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 3, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x83,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x83,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 4, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x84,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 4, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x84,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x84,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 15, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x8f,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 15, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x8f,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x8f,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 16, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0x90,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 16, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0x90,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0x90,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 63, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xbf,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 63, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xbf,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xbf,0x04,0x02,0x18
# GFX10: v_pk_add_f16 v1, 64, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xc0,0x04,0x02,0x18]
# GFX10: v_pk_add_f16 v1, 64, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xc0,0x04,0x02,0x18]
0x01,0x00,0x0f,0xcc,0xc0,0x04,0x02,0x18
# GFX10: v_pk_fma_f16 v5, 1.0, 2.0, 4.0 ; encoding: [0x05,0x40,0x0e,0xcc,0xf2,0xe8,0xd9,0x1b]
@ -85,35 +85,35 @@
# GFX10: v_pk_mad_u16 v5, -1, -2, -3 ; encoding: [0x05,0x40,0x09,0xcc,0xc1,0x84,0x0d,0x1b]
0x05,0x40,0x09,0xcc,0xc1,0x84,0x0d,0x1b
# GFX10: v_pk_ashrrev_i16 v5, 1, 16 ; encoding: [0x05,0x00,0x06,0xcc,0x81,0x20,0x01,0x18]
# GFX10: v_pk_ashrrev_i16 v5, 1, 16 ; encoding: [0x05,0x40,0x06,0xcc,0x81,0x20,0x01,0x18]
0x05,0x00,0x06,0xcc,0x81,0x20,0x01,0x18
#===----------------------------------------------------------------------===//
# 32-bit literals
#===----------------------------------------------------------------------===//
# GFX10: v_pk_add_f16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
# GFX10: v_pk_add_f16 v5, v1, 0x12345678 ; encoding: [0x05,0x40,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12
# GFX10: v_pk_add_f16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
# GFX10: v_pk_add_f16 v5, 0x12345678, v2 ; encoding: [0x05,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12
# GFX10: v_pk_add_f16 v5, 0xffffff00, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
# GFX10: v_pk_add_f16 v5, 0xffffff00, v2 ; encoding: [0x05,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff
# GFX10: v_pk_add_f16 v5, v1, 0x100 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
# GFX10: v_pk_add_f16 v5, v1, 0x100 ; encoding: [0x05,0x40,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00
# GFX10: v_pk_add_u16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
# GFX10: v_pk_add_u16 v5, v1, 0x12345678 ; encoding: [0x05,0x40,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12
# GFX10: v_pk_add_u16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
# GFX10: v_pk_add_u16 v5, 0x12345678, v2 ; encoding: [0x05,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12
# GFX10: v_pk_add_u16 v5, 0xffffff00, v2 ; encoding: [0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
# GFX10: v_pk_add_u16 v5, 0xffffff00, v2 ; encoding: [0x05,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff
# GFX10: v_pk_add_u16 v5, v1, 0x100 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
# GFX10: v_pk_add_u16 v5, v1, 0x100 ; encoding: [0x05,0x40,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00
# GFX10: v_pk_fma_f16 v5, 0xaf123456, v2, v3 ; encoding: [0x05,0x40,0x0e,0xcc,0xff,0x04,0x0e,0x1c,0x56,0x34,0x12,0xaf]
@ -134,10 +134,10 @@
# GFX10: v_pk_mad_i16 v5, v1, v2, 0xaf123456 ; encoding: [0x05,0x40,0x00,0xcc,0x01,0x05,0xfe,0x1b,0x56,0x34,0x12,0xaf]
0x05,0x40,0x00,0xcc,0x01,0x05,0xfe,0x1b,0x56,0x34,0x12,0xaf
# GFX10: v_pk_ashrrev_i16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
# GFX10: v_pk_ashrrev_i16 v5, 0x12345678, v2 ; encoding: [0x05,0x40,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
0x05,0x00,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12
# GFX10: v_pk_ashrrev_i16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
# GFX10: v_pk_ashrrev_i16 v5, v1, 0x12345678 ; encoding: [0x05,0x40,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
0x05,0x00,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12
#===----------------------------------------------------------------------===//

View File

@ -21,31 +21,31 @@
# GFX10: v_bfm_b32_e64 v0, 0x3039, v1 ; encoding: [0x00,0x00,0x63,0xd7,0xff,0x02,0x02,0x00,0x39,0x30,0x00,0x00]
0x00,0x00,0x63,0xd7,0xff,0x02,0x02,0x00,0x39,0x30,0x00,0x00
# GFX10: v_pk_add_f16 v1, 0x4e40, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0x4e,0x00,0x00]
# GFX10: v_pk_add_f16 v1, 0x4e40, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0x4e,0x00,0x00]
0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0x4e,0x00,0x00
# GFX10: v_pk_add_f16 v1, 0x1e240, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0xe2,0x01,0x00]
# GFX10: v_pk_add_f16 v1, 0x1e240, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0xe2,0x01,0x00]
0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x40,0xe2,0x01,0x00
# GFX10: v_pk_add_f16 v1, 0xffffff38, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
# GFX10: v_pk_add_f16 v1, 0xffffff38, v2 ; encoding: [0x01,0x40,0x0f,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
0x01,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff
# GFX10: v_pk_add_u16 v1, 0xffffff38, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
# GFX10: v_pk_add_u16 v1, 0xffffff38, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff]
0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x38,0xff,0xff,0xff
# GFX10: v_pk_add_u16 v1, 64, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xc0,0x04,0x02,0x18]
# GFX10: v_pk_add_u16 v1, 64, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xc0,0x04,0x02,0x18]
0x01,0x00,0x0a,0xcc,0xc0,0x04,0x02,0x18
# GFX10: v_pk_add_u16 v1, 0x41, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x41,0x00,0x00,0x00]
# GFX10: v_pk_add_u16 v1, 0x41, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x41,0x00,0x00,0x00]
0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x41,0x00,0x00,0x00
# GFX10: v_pk_add_u16 v1, -1, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xc1,0x04,0x02,0x18]
# GFX10: v_pk_add_u16 v1, -1, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xc1,0x04,0x02,0x18]
0x01,0x00,0x0a,0xcc,0xc1,0x04,0x02,0x18
# GFX10: v_pk_add_u16 v1, -5, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xc5,0x04,0x02,0x18]
# GFX10: v_pk_add_u16 v1, -5, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xc5,0x04,0x02,0x18]
0x01,0x00,0x0a,0xcc,0xc5,0x04,0x02,0x18
# GFX10: v_pk_add_u16 v1, 0xffffff9c, v2 ; encoding: [0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x9c,0xff,0xff,0xff]
# GFX10: v_pk_add_u16 v1, 0xffffff9c, v2 ; encoding: [0x01,0x40,0x0a,0xcc,0xff,0x04,0x02,0x18,0x9c,0xff,0xff,0xff]
0x01,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x9c,0xff,0xff,0xff
# GFX10: v_add_nc_i16 v5, v1, 0xcdab ; encoding: [0x05,0x00,0x0d,0xd7,0x01,0xff,0x01,0x00,0xab,0xcd,0xff,0xff]

View File

@ -0,0 +1,15 @@
# RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s | FileCheck %s
# Check that we can disassemble opcodes w/o src2 with any op_sel_hi value for src2
# CHECK: v_pk_add_f16 v5, v1, v2 ; encoding: [0x05,0x40,0x8f,0xd3,0x01,0x05,0x02,0x18]
0x05,0x00,0x8f,0xd3,0x01,0x05,0x02,0x18
# CHECK: v_pk_add_f16 v5, v1, v2 ; encoding: [0x05,0x40,0x8f,0xd3,0x01,0x05,0x02,0x18]
0x05,0x40,0x8f,0xd3,0x01,0x05,0x02,0x18
# CHECK: v_pk_add_f16 v5, v1, v2 op_sel_hi:[0,0] ; encoding: [0x05,0x40,0x8f,0xd3,0x01,0x05,0x02,0x00]
0x05,0x00,0x8f,0xd3,0x01,0x05,0x02,0x00
# CHECK: v_pk_add_f16 v5, v1, v2 op_sel_hi:[0,0] ; encoding: [0x05,0x40,0x8f,0xd3,0x01,0x05,0x02,0x00]
0x05,0x40,0x8f,0xd3,0x01,0x05,0x02,0x00