diff --git a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td index 689f3b38a1723..1afd68767cd3b 100644 --- a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td @@ -405,16 +405,16 @@ defm V_DOT2_F32_F16 : VOP3PInst<"v_dot2_f32_f16", let OtherPredicates = [HasDot7Insts] in { defm V_DOT4_U32_U8 : VOP3PInst<"v_dot4_u32_u8", - VOP3P_Profile, int_amdgcn_udot4, 1>; + VOP3P_Profile, int_amdgcn_udot4, 1>; defm V_DOT8_U32_U4 : VOP3PInst<"v_dot8_u32_u4", - VOP3P_Profile, int_amdgcn_udot8, 1>; + VOP3P_Profile, int_amdgcn_udot8, 1>; } // End OtherPredicates = [HasDot7Insts] let OtherPredicates = [HasDot1Insts] in { defm V_DOT4_I32_I8 : VOP3PInst<"v_dot4_i32_i8", - VOP3P_Profile, int_amdgcn_sdot4, 1>; + VOP3P_Profile, int_amdgcn_sdot4, 1>; defm V_DOT8_I32_I4 : VOP3PInst<"v_dot8_i32_i4", - VOP3P_Profile, int_amdgcn_sdot8, 1>; + VOP3P_Profile, int_amdgcn_sdot8, 1>; } // End OtherPredicates = [HasDot1Insts] def DOT2_BF16_Profile @@ -433,7 +433,7 @@ defm V_DOT2_F32_BF16 : VOP3PInst<"v_dot2_f32_bf16", DOT2_BF16_Profile, multiclass VOP3PDOTIUInst { let IsDOT = 1 in - defm NAME : VOP3PInst, + defm NAME : VOP3PInst, null_frag, 1>; // Dot-iu instructions consider input as signed if imod neg bits are set. Thus // Dot-iu Intrinsics have extra operands and require separate codegen pattern. diff --git a/llvm/lib/Target/AMDGPU/VOPInstructions.td b/llvm/lib/Target/AMDGPU/VOPInstructions.td index 0f568ba90a9ef..d236907b0eec5 100644 --- a/llvm/lib/Target/AMDGPU/VOPInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOPInstructions.td @@ -1454,12 +1454,13 @@ class VOP3Features { bit IsMAI = MAI; } -def VOP3_REGULAR : VOP3Features<0, 0, 0, 0>; -def VOP3_CLAMP : VOP3Features<1, 0, 0, 0>; -def VOP3_OPSEL : VOP3Features<1, 1, 0, 0>; -def VOP3_PACKED : VOP3Features<1, 1, 1, 0>; -def VOP3_MAI : VOP3Features<0, 0, 0, 1>; -def VOP3_OPSEL_ONLY : VOP3Features<0, 1, 0, 0>; +def VOP3_REGULAR : VOP3Features<0, 0, 0, 0>; +def VOP3_CLAMP : VOP3Features<1, 0, 0, 0>; +def VOP3_OPSEL : VOP3Features<1, 1, 0, 0>; +def VOP3_PACKED : VOP3Features<1, 1, 1, 0>; +def VOP3_PACKED_NO_OPSEL : VOP3Features<1, 0, 1, 0>; +def VOP3_MAI : VOP3Features<0, 0, 0, 1>; +def VOP3_OPSEL_ONLY : VOP3Features<0, 1, 0, 0>; // Packed is misleading, but it enables the appropriate op_sel // modifiers. diff --git a/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx90a.mir b/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx90a.mir index 8be7308c8a6e0..3feccff715bc1 100644 --- a/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx90a.mir +++ b/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx90a.mir @@ -746,7 +746,7 @@ name: smfma4x4_write_vgpr_dot_write body: | bb.0: $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec - $vgpr1 = V_DOT8_I32_I4 0, $vgpr4, 0, $vgpr4, 0, $vgpr4, 0, 0, 0, 0, 0, implicit $mode, implicit $exec + $vgpr1 = V_DOT8_I32_I4 0, $vgpr4, 0, $vgpr4, 0, $vgpr4, 0, 0, 0, implicit $mode, implicit $exec ... # GCN-LABEL: name: smfma4x4_read_srcc_vgpr_valu_write # GCN: V_MFMA @@ -945,7 +945,7 @@ name: dot_write_vgpr_different_dot_read_srcc body: | bb.0: $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec - $vgpr1 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr4, 0, 0, 0, 0, 0, implicit $mode, implicit $exec + $vgpr1 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr4, 0, 0, 0, implicit $mode, implicit $exec ... # GCN-LABEL: name: dot_write_vgpr_different_dot_write # GCN: V_DOT @@ -955,7 +955,7 @@ name: dot_write_vgpr_different_dot_write body: | bb.0: $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec - $vgpr4 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec + $vgpr4 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec ... # GCN-LABEL: name: dot_write_vgpr_different_valu_read # GCN: V_DOT diff --git a/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir b/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir index d59bcfb16eece..52891989b88fb 100644 --- a/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir +++ b/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir @@ -1071,7 +1071,7 @@ name: xdl_smfma4x4_write_vgpr_dot_write body: | bb.0: $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_I32_4X4X4I8_vgprcd_e64 $vgpr1, $vgpr0, $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, 0, implicit $mode, implicit $exec - $vgpr1 = V_DOT8_I32_I4 0, $vgpr4, 0, $vgpr4, 0, $vgpr4, 0, 0, 0, 0, 0, implicit $mode, implicit $exec + $vgpr1 = V_DOT8_I32_I4 0, $vgpr4, 0, $vgpr4, 0, $vgpr4, 0, 0, 0, implicit $mode, implicit $exec ... # GCN-LABEL: name: nonxdl_smfma4x4_read_srcc_vgpr_valu_write # GCN: V_MFMA @@ -1265,7 +1265,7 @@ name: dot_write_vgpr_different_dot_read_srcc body: | bb.0: $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec - $vgpr1 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr4, 0, 0, 0, 0, 0, implicit $mode, implicit $exec + $vgpr1 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr4, 0, 0, 0, implicit $mode, implicit $exec ... # GCN-LABEL: name: dot_write_vgpr_different_dot_write # GCN: V_DOT @@ -1275,7 +1275,7 @@ name: dot_write_vgpr_different_dot_write body: | bb.0: $vgpr4 = V_DOT4C_I32_I8_e32 $vgpr0, $vgpr1, $vgpr4, implicit $exec - $vgpr4 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec + $vgpr4 = V_DOT8_I32_I4 0, $vgpr0, 0, $vgpr0, 0, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec ... # GCN-LABEL: name: dot_write_vgpr_different_valu_read # GCN: V_DOT diff --git a/llvm/test/MC/AMDGPU/dl-insts.s b/llvm/test/MC/AMDGPU/dl-insts.s index 00e9bec7eb0a2..599734aac829d 100644 --- a/llvm/test/MC/AMDGPU/dl-insts.s +++ b/llvm/test/MC/AMDGPU/dl-insts.s @@ -536,198 +536,6 @@ v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] // CHECK: encoding: [0x00,0x18,0xa7,0xd3,0x01,0x05,0x0e,0x1c] v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x40,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] -// CHECK: encoding: [0x00,0x50,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] -// CHECK: encoding: [0x00,0x48,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] -// CHECK: encoding: [0x00,0x58,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x40,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] -// CHECK: encoding: [0x00,0x50,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] -// CHECK: encoding: [0x00,0x48,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] -// CHECK: encoding: [0x00,0x58,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x04] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x14] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x40,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] -// CHECK: encoding: [0x00,0x50,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] -// CHECK: encoding: [0x00,0x48,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] -// CHECK: encoding: [0x00,0x58,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x40,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] -// CHECK: encoding: [0x00,0x50,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] -// CHECK: encoding: [0x00,0x48,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] -// CHECK: encoding: [0x00,0x58,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] -// CHECK: encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x04] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] -// CHECK: encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x14] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] -// CHECK: encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x0c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] -// CHECK: encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x1c] -v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] // // Test clamp. diff --git a/llvm/test/MC/AMDGPU/gfx1030_err.s b/llvm/test/MC/AMDGPU/gfx1030_err.s index 51498d3c86d7f..87a09875f75e9 100644 --- a/llvm/test/MC/AMDGPU/gfx1030_err.s +++ b/llvm/test/MC/AMDGPU/gfx1030_err.s @@ -211,3 +211,365 @@ image_bvh_intersect_ray v[39:42], [v50, v46, v23, v17, v16, v15, v21, v20], s[12 // missing dim image_msaa_load v[1:4], v[5:7], s[8:15] dmask:0xf glc // GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: missing dim operand + +// op_sel not allowed in dot opcodes with 4- or 8-bit packed data + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_err.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_err.s new file mode 100644 index 0000000000000..451627eb93246 --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3p_err.s @@ -0,0 +1,219 @@ +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 %s 2>&1 | FileCheck --check-prefix=GFX11 --implicit-check-not=error: %s + +// op_sel not allowed in dot opcodes with 4- or 8-bit packed data + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3p_err.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3p_err.s index a7d42c6b923a4..5ed2091d37e43 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3p_err.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3p_err.s @@ -131,3 +131,221 @@ v_dot4_f32_bf8_bf8 v0, v1, v2, v3 neg_hi:[1,0,0] v_dot4_f32_bf8_bf8 v0, v1, v2, v3 neg_hi:[0,1,0] // GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid neg_hi operand + +// op_sel not allowed in dot opcodes with 4- or 8-bit packed data + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_iu8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX12: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. diff --git a/llvm/test/MC/AMDGPU/gfx908_err.s b/llvm/test/MC/AMDGPU/gfx908_err.s new file mode 100644 index 0000000000000..d39e9b5068a4f --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx908_err.s @@ -0,0 +1,436 @@ +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck --check-prefix=GFX908 --implicit-check-not=error: %s + +// op_sel not allowed in dot opcodes with 4- or 8-bit packed data + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX908: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + diff --git a/llvm/test/MC/AMDGPU/gfx90a_err.s b/llvm/test/MC/AMDGPU/gfx90a_err.s index 7b2acc61cfa6f..a05c7fb1cc1c4 100644 --- a/llvm/test/MC/AMDGPU/gfx90a_err.s +++ b/llvm/test/MC/AMDGPU/gfx90a_err.s @@ -239,3 +239,438 @@ scratch_load_lds_dword v2, off ds_read_b32 v0, v1 gds // GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: gds modifier is not supported on this GPU + +// op_sel not allowed in dot opcodes with 4- or 8-bit packed data + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot4c_i32_i8 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[0,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,0] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[0,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +v_dot8c_i32_i4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] +// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx908-dl-insts.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx908-dl-insts.txt index aa3b4c7f03837..310e23f642e89 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/gfx908-dl-insts.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx908-dl-insts.txt @@ -778,291 +778,15 @@ # CHECK: v_dot4_i32_i8 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa8,0xd3,0x01,0x05,0x0e,0x1c] 0x00,0x40,0xa8,0xd3,0x01,0x05,0x0e,0x1c -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x50,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x48,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x58,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x10,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x08,0xa8,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_i32_i8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x18,0xa8,0xd3,0x01,0x05,0x0e,0x1c - # CHECK: v_dot4_u32_u8 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xa9,0xd3,0x01,0x05,0x0e,0x1c] 0x00,0x40,0xa9,0xd3,0x01,0x05,0x0e,0x1c -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x50,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x48,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x58,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x10,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x08,0xa9,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot4_u32_u8 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x18,0xa9,0xd3,0x01,0x05,0x0e,0x1c - # CHECK: v_dot8_i32_i4 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xaa,0xd3,0x01,0x05,0x0e,0x1c] 0x00,0x40,0xaa,0xd3,0x01,0x05,0x0e,0x1c -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x50,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x48,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x58,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x10,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x08,0xaa,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_i32_i4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x18,0xaa,0xd3,0x01,0x05,0x0e,0x1c - # CHECK: v_dot8_u32_u4 v0, v1, v2, v3 ; encoding: [0x00,0x40,0xab,0xd3,0x01,0x05,0x0e,0x1c] 0x00,0x40,0xab,0xd3,0x01,0x05,0x0e,0x1c -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x50,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x50,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x48,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x48,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x00,0x58,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x58,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel_hi:[1,1,0] ; encoding: [0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x00,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[0,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x10,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,0,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x08,0xab,0xd3,0x01,0x05,0x0e,0x1c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,0,0] ; encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x04] -0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x04 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[0,1,0] ; encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x14] -0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x14 - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,0,0] ; encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x0c] -0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x0c - -# CHECK: v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1,0] op_sel_hi:[1,1,0] ; encoding: [0x00,0x18,0xab,0xd3,0x01,0x05,0x0e,0x1c] -0x00,0x18,0xab,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