Index: lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp =================================================================== --- lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp +++ lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @@ -243,7 +243,8 @@ if (Res && (MI.getOpcode() == AMDGPU::V_MAC_F32_e64_vi || MI.getOpcode() == AMDGPU::V_MAC_F32_e64_si || - MI.getOpcode() == AMDGPU::V_MAC_F16_e64_vi)) { + MI.getOpcode() == AMDGPU::V_MAC_F16_e64_vi || + MI.getOpcode() == AMDGPU::V_FMAC_F32_e64_vi)) { // Insert dummy unused src2_modifiers. insertNamedMCOperand(MI, MCOperand::createImm(0), AMDGPU::OpName::src2_modifiers); Index: test/MC/Disassembler/AMDGPU/dl-insts.txt =================================================================== --- /dev/null +++ test/MC/Disassembler/AMDGPU/dl-insts.txt @@ -0,0 +1,973 @@ +# RUN: llvm-mc -arch=amdgcn -mcpu=gfx906 -disassemble -show-encoding < %s | FileCheck %s + +# CHECK: v_fmac_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x76] +0x01,0x05,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v255, v1, v2 ; encoding: [0x01,0x05,0xfe,0x77] +0x01,0x05,0xfe,0x77 + +# CHECK: v_fmac_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x76] +0xff,0x05,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x76] +0x01,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, s101, v2 ; encoding: [0x65,0x04,0x0a,0x76] +0x65,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, flat_scratch_lo, v2 ; encoding: [0x66,0x04,0x0a,0x76] +0x66,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, flat_scratch_hi, v2 ; encoding: [0x67,0x04,0x0a,0x76] +0x67,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x76] +0x6a,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x76] +0x6b,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, m0, v2 ; encoding: [0x7c,0x04,0x0a,0x76] +0x7c,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x76] +0x7e,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x76] +0x7f,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, 0, v2 ; encoding: [0x80,0x04,0x0a,0x76] +0x80,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x76] +0xc1,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x76] +0xf0,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, -4.0, v2 ; encoding: [0xf7,0x04,0x0a,0x76] +0xf7,0x04,0x0a,0x76 + +# CHECK: v_fmac_f32_e32 v5, 0xaf123456, v2 ; encoding: [0xff,0x04,0x0a,0x76,0x56,0x34,0x12,0xaf] +0xff,0x04,0x0a,0x76,0x56,0x34,0x12,0xaf + +# CHECK: v_fmac_f32_e32 v5, 0x3f717273, v2 ; encoding: [0xff,0x04,0x0a,0x76,0x73,0x72,0x71,0x3f] +0xff,0x04,0x0a,0x76,0x73,0x72,0x71,0x3f + +# CHECK: v_fmac_f32_e32 v5, v1, v255 ; encoding: [0x01,0xff,0x0b,0x76] +0x01,0xff,0x0b,0x76 + +# CHECK: v_fmac_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v255, v1, v2 ; encoding: [0xff,0x00,0x3b,0xd1,0x01,0x05,0x02,0x00] +0xff,0x00,0x3b,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, v255, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0xff,0x05,0x02,0x00] +0x05,0x00,0x3b,0xd1,0xff,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, s1, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x01,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, s101, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x65,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x65,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, flat_scratch_lo, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x66,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x66,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, flat_scratch_hi, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x67,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x67,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, vcc_lo, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x6a,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x6a,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, vcc_hi, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x6b,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x6b,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, m0, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x7c,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x7c,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, exec_lo, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x7e,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x7e,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, exec_hi, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x7f,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x7f,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, 0, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x80,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0x80,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, -1, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0xc1,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0xc1,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, 0.5, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0xf0,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0xf0,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, -4.0, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0xf7,0x04,0x02,0x00] +0x05,0x00,0x3b,0xd1,0xf7,0x04,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, v255 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xff,0x03,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xff,0x03,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, s2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, s101 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xcb,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xcb,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, flat_scratch_lo ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xcd,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xcd,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, flat_scratch_hi ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xcf,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xcf,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, vcc_lo ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xd5,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xd5,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, vcc_hi ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xd7,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xd7,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, m0 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xf9,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xf9,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, exec_lo ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xfd,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xfd,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, exec_hi ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xff,0x00,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xff,0x00,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, 0 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x01,0x01,0x00] +0x05,0x00,0x3b,0xd1,0x01,0x01,0x01,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, -1 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x83,0x01,0x00] +0x05,0x00,0x3b,0xd1,0x01,0x83,0x01,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, 0.5 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xe1,0x01,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xe1,0x01,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, -4.0 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0xef,0x01,0x00] +0x05,0x00,0x3b,0xd1,0x01,0xef,0x01,0x00 + +# CHECK: v_fmac_f32_e64 v5, -v1, v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x20] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x20 + +# CHECK: v_fmac_f32_e64 v5, v1, -v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x40] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x40 + +# CHECK: v_fmac_f32_e64 v5, -v1, -v2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x60] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x60 + +# CHECK: v_fmac_f32_e64 v5, |v1|, v2 ; encoding: [0x05,0x01,0x3b,0xd1,0x01,0x05,0x02,0x00] +0x05,0x01,0x3b,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, |v2| ; encoding: [0x05,0x02,0x3b,0xd1,0x01,0x05,0x02,0x00] +0x05,0x02,0x3b,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, |v1|, |v2| ; encoding: [0x05,0x03,0x3b,0xd1,0x01,0x05,0x02,0x00] +0x05,0x03,0x3b,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, v2 clamp ; encoding: [0x05,0x80,0x3b,0xd1,0x01,0x05,0x02,0x00] +0x05,0x80,0x3b,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_fmac_f32_e64 v5, v1, v2 mul:2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x08] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x08 + +# CHECK: v_fmac_f32_e64 v5, v1, v2 mul:4 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x10] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x10 + +# CHECK: v_fmac_f32_e64 v5, v1, v2 div:2 ; encoding: [0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x18] +0x05,0x00,0x3b,0xd1,0x01,0x05,0x02,0x18 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x00] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x00 + +# CHECK: v_fmac_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0xfe,0x77,0x01,0xe4,0x00,0x00] +0xfa,0x04,0xfe,0x77,0x01,0xe4,0x00,0x00 + +# CHECK: v_fmac_f32_dpp v5, v255, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0xff,0xe4,0x00,0x00] +0xfa,0x04,0x0a,0x76,0xff,0xe4,0x00,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v255 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0xfe,0x0b,0x76,0x01,0xe4,0x00,0x00] +0xfa,0xfe,0x0b,0x76,0x01,0xe4,0x00,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_mirror row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_half_mirror row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_bcast:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x42,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x42,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_bcast:31 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x43,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x43,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 wave_shl:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x30,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x30,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 wave_rol:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x34,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x34,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 wave_shr:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x38,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x38,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 wave_ror:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x3c,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x3c,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_shl:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_shl:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_shr:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_shr:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_ror:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 row_ror:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0x00] +0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x1 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x10] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x10 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x3 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x30] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x30 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xf0] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xf0 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xf0] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xf0 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x01] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x01 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x3 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x03] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x03 + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x0f] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x0f + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x0f] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0x0f + +# CHECK: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x08,0x00] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x08,0x00 + +# CHECK: v_fmac_f32_dpp v5, -v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x10,0x00] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x10,0x00 + +# CHECK: v_fmac_f32_dpp v5, |v1|, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x20,0x00] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x20,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, -v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x40,0x00] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x40,0x00 + +# CHECK: v_fmac_f32_dpp v5, v1, |v2| quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x80,0x00] +0xfa,0x04,0x0a,0x76,0x01,0xe4,0x80,0x00 + +# CHECK: v_xnor_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x7a] +0x01,0x05,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v255, v1, v2 ; encoding: [0x01,0x05,0xfe,0x7b] +0x01,0x05,0xfe,0x7b + +# CHECK: v_xnor_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x7a] +0xff,0x05,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x7a] +0x01,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, s101, v2 ; encoding: [0x65,0x04,0x0a,0x7a] +0x65,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, flat_scratch_lo, v2 ; encoding: [0x66,0x04,0x0a,0x7a] +0x66,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, flat_scratch_hi, v2 ; encoding: [0x67,0x04,0x0a,0x7a] +0x67,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7a] +0x6a,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7a] +0x6b,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, m0, v2 ; encoding: [0x7c,0x04,0x0a,0x7a] +0x7c,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7a] +0x7e,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7a] +0x7f,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, 0, v2 ; encoding: [0x80,0x04,0x0a,0x7a] +0x80,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7a] +0xc1,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7a] +0xf0,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, -4.0, v2 ; encoding: [0xf7,0x04,0x0a,0x7a] +0xf7,0x04,0x0a,0x7a + +# CHECK: v_xnor_b32_e32 v5, 0xaf123456, v2 ; encoding: [0xff,0x04,0x0a,0x7a,0x56,0x34,0x12,0xaf] +0xff,0x04,0x0a,0x7a,0x56,0x34,0x12,0xaf + +# CHECK: v_xnor_b32_e32 v5, 0x3f717273, v2 ; encoding: [0xff,0x04,0x0a,0x7a,0x73,0x72,0x71,0x3f] +0xff,0x04,0x0a,0x7a,0x73,0x72,0x71,0x3f + +# CHECK: v_xnor_b32_e32 v5, v1, v255 ; encoding: [0x01,0xff,0x0b,0x7a] +0x01,0xff,0x0b,0x7a + +# CHECK: v_xnor_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0x05,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v255, v1, v2 ; encoding: [0xff,0x00,0x3d,0xd1,0x01,0x05,0x02,0x00] +0xff,0x00,0x3d,0xd1,0x01,0x05,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, v255, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0xff,0x05,0x02,0x00] +0x05,0x00,0x3d,0xd1,0xff,0x05,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, s1, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x01,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, s101, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x65,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x65,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, flat_scratch_lo, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x66,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x66,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, flat_scratch_hi, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x67,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x67,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, vcc_lo, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x6a,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x6a,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, vcc_hi, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x6b,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x6b,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, m0, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x7c,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x7c,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, exec_lo, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x7e,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x7e,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, exec_hi, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x7f,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x7f,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, 0, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0x80,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0x80,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, -1, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0xc1,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0xc1,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, 0.5, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0xf0,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0xf0,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, -4.0, v2 ; encoding: [0x05,0x00,0x3d,0xd1,0xf7,0x04,0x02,0x00] +0x05,0x00,0x3d,0xd1,0xf7,0x04,0x02,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, v255 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xff,0x03,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xff,0x03,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, s2 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0x05,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0x05,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, s101 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xcb,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xcb,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, flat_scratch_lo ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xcd,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xcd,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, flat_scratch_hi ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xcf,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xcf,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, vcc_lo ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xd5,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xd5,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, vcc_hi ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xd7,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xd7,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, m0 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xf9,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xf9,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, exec_lo ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xfd,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xfd,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, exec_hi ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xff,0x00,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xff,0x00,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, 0 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0x01,0x01,0x00] +0x05,0x00,0x3d,0xd1,0x01,0x01,0x01,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, -1 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0x83,0x01,0x00] +0x05,0x00,0x3d,0xd1,0x01,0x83,0x01,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, 0.5 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xe1,0x01,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xe1,0x01,0x00 + +# CHECK: v_xnor_b32_e64 v5, v1, -4.0 ; encoding: [0x05,0x00,0x3d,0xd1,0x01,0xef,0x01,0x00] +0x05,0x00,0x3d,0xd1,0x01,0xef,0x01,0x00 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0xfe,0x7b,0x01,0x06,0x06,0x06] +0xf9,0x04,0xfe,0x7b,0x01,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v255, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0xff,0x06,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0xff,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, s1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, s101, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x65,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x65,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, flat_scratch_lo, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x66,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x66,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, flat_scratch_hi, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x67,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x67,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, vcc_lo, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x6a,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x6a,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, vcc_hi, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x6b,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x6b,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, m0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x7c,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x7c,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, exec_lo, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x7e,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x7e,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, exec_hi, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x7f,0x06,0x86,0x06] +0xf9,0x04,0x0a,0x7a,0x7f,0x06,0x86,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v255 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xfe,0x0b,0x7a,0x01,0x06,0x06,0x06] +0xf9,0xfe,0x0b,0x7a,0x01,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_0 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x00,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x00,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x01,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x01,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_2 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x02,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x02,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:BYTE_3 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x03,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x03,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:WORD_0 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x04,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x04,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x05,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x05,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_SEXT src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x0e,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x0e,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x16,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x16,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x16,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x16,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x00,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x00,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_1 src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x01,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x01,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_2 src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x02,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x02,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_3 src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x03,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x03,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x04,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x04,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x05,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x05,0x06 + +# CHECK: v_xnor_b32_sdwa v5, sext(v1), v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x0e,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x0e,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x06 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x00] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x00 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_1 ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x01] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x01 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x02] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x02 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_3 ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x03] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x03 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x04] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x04 + +# CHECK: v_xnor_b32_sdwa v5, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1 ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x05] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x05 + +# CHECK: v_xnor_b32_sdwa v5, v1, sext(v2) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x0e] +0xf9,0x04,0x0a,0x7a,0x01,0x06,0x06,0x0e + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x50,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x48,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x58,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x00,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x10,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x08,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x18,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x50,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x48,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x58,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x00,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x10,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x08,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x18,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x50,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x48,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x58,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x00,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x10,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x08,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x04] +0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x04 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x14] +0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x14 + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x0c] +0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x0c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 clamp ; encoding: [0x00,0xc0,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0xc0,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_i32_i16 v0, v1, v2, v3 clamp ; encoding: [0x00,0xc0,0xa6,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0xc0,0xa6,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_u32_u16 v0, v1, v2, v3 clamp ; encoding: [0x00,0xc0,0xa7,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0xc0,0xa7,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] ; encoding: [0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x40,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,0,0] ; encoding: [0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x41,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[0,1,0] ; encoding: [0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x42,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[0,0,1] ; encoding: [0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x44,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,1,0] ; encoding: [0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x43,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,0,1] ; encoding: [0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x45,0xa3,0xd3,0x01,0x05,0x0e,0xfc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x1c] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x1c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,0] neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x3c] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x3c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,1,0] neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x5c] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x5c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,1] neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x9c] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x9c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,0] neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x7c] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0x7c + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,0,1] neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0xbc] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0xbc + +# CHECK: v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[1,1,1] neg_hi:[1,1,1] ; encoding: [0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0xfc] +0x00,0x47,0xa3,0xd3,0x01,0x05,0x0e,0xfc