diff --git a/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td b/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td --- a/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td @@ -452,6 +452,11 @@ defm SDOT_VG4_M4ZZ_HtoS : sme2_int_dot_array_vg4_single_HtoS<"sdot", 0b0>; defm SDOT_VG2_M2Z2Z_HtoS : sme2_int_dot_array_vg2_multi_HtoS<"sdot", 0b0>; defm SDOT_VG4_M4Z4Z_HtoS : sme2_int_dot_array_vg4_multi_HtoS<"sdot", 0b0>; +defm SDOT_VG2_M2ZZ_BtoS : sme2_int_dot_array_vg2_single_BtoS<"sdot", 0b0>; +defm SDOT_VG4_M4ZZ_BtoS : sme2_int_dot_array_vg4_single_BtoS<"sdot", 0b0>; +defm SDOT_VG2_M2Z2Z_BtoS : sme2_int_dot_array_vg2_multi_BtoS<"sdot", 0b0>; +defm SDOT_VG4_M4Z4Z_BtoS : sme2_int_dot_array_vg4_multi_BtoS<"sdot", 0b0>; + defm SUDOT_VG2_M2ZZI : sme2_dot_array_vg2_index_BToS<"sudot", 0b1111>; defm SUDOT_VG4_M4ZZI : sme2_dot_array_vg4_index_BtoS<"sudot", 0b1111>; @@ -470,6 +475,10 @@ defm UDOT_VG4_M4ZZ_HtoS : sme2_int_dot_array_vg4_single_HtoS<"udot", 0b1>; defm UDOT_VG2_M2Z2Z_HtoS : sme2_int_dot_array_vg2_multi_HtoS<"udot", 0b1>; defm UDOT_VG4_M4Z4Z_HtoS : sme2_int_dot_array_vg4_multi_HtoS<"udot", 0b1>; +defm UDOT_VG2_M2ZZ_BtoS : sme2_int_dot_array_vg2_single_BtoS<"udot", 0b1>; +defm UDOT_VG4_M4ZZ_BtoS : sme2_int_dot_array_vg4_single_BtoS<"udot", 0b1>; +defm UDOT_VG2_M2Z2Z_BtoS : sme2_int_dot_array_vg2_multi_BtoS<"udot", 0b1>; +defm UDOT_VG4_M4Z4Z_BtoS : sme2_int_dot_array_vg4_multi_BtoS<"udot", 0b1>; defm USDOT_VG2_M2ZZI : sme2_dot_array_vg2_index_BToS<"usdot", 0b1101>; defm USDOT_VG4_M4ZZI : sme2_dot_array_vg4_index_BtoS<"usdot", 0b1101>; @@ -504,9 +513,19 @@ defm SDOT_VG2_M2ZZI_HtoD : sme2_dot_array_vg2_index<"sdot", 0b01>; defm SDOT_VG4_M4ZZI_HtoD : sme2_dot_array_vg4_index<"sdot", 0b001>; +defm SDOT_VG2_M2ZZ_HtoD : sme2_int_dot_array_vg2_single_HtoD<"sdot", 0b0>; +defm SDOT_VG4_M4ZZ_HtoD : sme2_int_dot_array_vg4_single_HtoD<"sdot", 0b0>; +defm SDOT_VG2_M2Z2Z_HtoD : sme2_int_dot_array_vg2_multi_HtoD<"sdot", 0b0>; +defm SDOT_VG4_M4Z4Z_HtoD : sme2_int_dot_array_vg4_multi_HtoD<"sdot", 0b0>; + defm SVDOT_VG4_M4ZZI_HtoD : sme2_dot_array_vg4_index<"svdot", 0b101>; defm UDOT_VG2_M2ZZI_HtoD : sme2_dot_array_vg2_index<"udot", 0b11>; defm UDOT_VG4_M4ZZI_HtoD : sme2_dot_array_vg4_index<"udot", 0b011>; +defm UDOT_VG2_M2ZZ_HtoD : sme2_int_dot_array_vg2_single_HtoD<"udot", 0b1>; +defm UDOT_VG4_M4ZZ_HtoD : sme2_int_dot_array_vg4_single_HtoD<"udot", 0b1>; +defm UDOT_VG2_M2Z2Z_HtoD : sme2_int_dot_array_vg2_multi_HtoD<"udot", 0b1>; +defm UDOT_VG4_M4Z4Z_HtoD : sme2_int_dot_array_vg4_multi_HtoD<"udot", 0b1>; + defm UVDOT_VG4_M4ZZI_HtoD : sme2_dot_array_vg4_index<"uvdot", 0b111>; } diff --git a/llvm/lib/Target/AArch64/SMEInstrFormats.td b/llvm/lib/Target/AArch64/SMEInstrFormats.td --- a/llvm/lib/Target/AArch64/SMEInstrFormats.td +++ b/llvm/lib/Target/AArch64/SMEInstrFormats.td @@ -2386,6 +2386,67 @@ (!cast(NAME # _BtoS) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZZZ_b:$Zn, ZPR4b8:$Zm), 0>; } +class sme2_int_dot_array_vg24_single_4way + : I<(outs matrix_ty:$ZAda), + (ins matrix_ty:$_ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, + multi_vector_ty:$Zn, zpr_ty:$Zm), + mnemonic, "\t$ZAda[$Rv, $imm3, " # !if(vg4, "vgx4", "vgx2") # "], $Zn, $Zm", + "", []>, Sched<[]> { + bits<4> Zm; + bits<2> Rv; + bits<5> Zn; + bits<3> imm3; + let Inst{31-23} = 0b110000010; + let Inst{22} = sz; + let Inst{21} = 0b1; + let Inst{20} = vg4; + let Inst{19-16} = Zm; + let Inst{15} = 0b0; + let Inst{14-13} = Rv; + let Inst{12-10} = 0b101; + let Inst{9-5} = Zn; + let Inst{4} = u; + let Inst{3} = 0b0; + let Inst{2-0} = imm3; + + let Constraints = "$ZAda = $_ZAda"; +} + +// SME2 single-multi four-way dot product two registers + +multiclass sme2_int_dot_array_vg2_single_BtoS { + def NAME : sme2_int_dot_array_vg24_single_4way<0b0, 0b0, u, MatrixOp32, ZZ_b, ZPR4b8, mnemonic>; + + def : InstAlias(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZ_b:$Zn, ZPR4b8:$Zm), 0>; +} + +multiclass sme2_int_dot_array_vg2_single_HtoD { + def NAME : sme2_int_dot_array_vg24_single_4way<0b1, 0b0, u, MatrixOp64, ZZ_h, ZPR4b16, mnemonic>; + + def : InstAlias(NAME) MatrixOp64:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZ_h:$Zn, ZPR4b16:$Zm), 0>; +} + +// SME2 single-multi four-way dot product four registers + +multiclass sme2_int_dot_array_vg4_single_BtoS { + def NAME : sme2_int_dot_array_vg24_single_4way<0b0, 0b1, u, MatrixOp32, ZZZZ_b, ZPR4b8, mnemonic>; + + def : InstAlias(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZZZ_b:$Zn, ZPR4b8:$Zm), 0>; +} +multiclass sme2_int_dot_array_vg4_single_HtoD { + def NAME : sme2_int_dot_array_vg24_single_4way<0b1, 0b1, u, MatrixOp64, ZZZZ_h, ZPR4b16, mnemonic>; + + def : InstAlias(NAME) MatrixOp64:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZZZ_h:$Zn, ZPR4b16:$Zm), 0>; +} + class sme2_int_dot_array_vg24_multi_2way : I<(outs MatrixOp32:$ZAda), @@ -2474,4 +2535,87 @@ (!cast(NAME # _BtoS) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZZZ_b_mul_r:$Zn, ZZZZ_b_mul_r:$Zm), 0>; } +class sme2_int_dot_array_vg24_multi_4way + : I<(outs matrix_ty:$ZAda), + (ins matrix_ty:$_ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, + multi_vector_ty:$Zn, multi_vector_ty:$Zm), + mnemonic, "\t$ZAda[$Rv, $imm3, " # vg_acronym # "], $Zn, $Zm", + "", []>, Sched<[]> { + bits<2> Rv; + bits<3> imm3; + let Inst{31-23} = 0b110000011; + let Inst{22} = sz; + let Inst{21} = 0b1; + let Inst{15} = 0b0; + let Inst{14-13} = Rv; + let Inst{12-10} = 0b101; + let Inst{5} = 0b0; + let Inst{4} = u; + let Inst{3} = 0b0; + let Inst{2-0} = imm3; + + let Constraints = "$ZAda = $_ZAda"; +} + +// SME2 multi four-way dot product two registers + +multiclass sme2_int_dot_array_vg2_multi_BtoS { + def NAME : sme2_int_dot_array_vg24_multi_4way<0b0, u, MatrixOp32, ZZ_b_mul_r, + mnemonic, "vgx2"> { + bits<4> Zm; + bits<4> Zn; + let Inst{20-17} = Zm; + let Inst{16} = 0b0; + let Inst{9-6} = Zn; + } + def : InstAlias(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZ_b_mul_r:$Zn, ZZ_b_mul_r:$Zm), 0>; +} + +multiclass sme2_int_dot_array_vg2_multi_HtoD { + def NAME : sme2_int_dot_array_vg24_multi_4way<0b1, u, MatrixOp64, ZZ_h_mul_r, + mnemonic, "vgx2"> { + bits<4> Zm; + bits<4> Zn; + let Inst{20-17} = Zm; + let Inst{16} = 0b0; + let Inst{9-6} = Zn; + } + + def : InstAlias(NAME) MatrixOp64:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZ_h_mul_r:$Zn, ZZ_h_mul_r:$Zm), 0>; +} + +// SME2 multi four-way dot product four registers +multiclass sme2_int_dot_array_vg4_multi_BtoS { + def NAME : sme2_int_dot_array_vg24_multi_4way<0b0, u, MatrixOp32, ZZZZ_b_mul_r, + mnemonic, "vgx4"> { + bits<3> Zm; + bits<3> Zn; + let Inst{20-18} = Zm; + let Inst{17-16} = 0b01; + let Inst{9-7} = Zn; + let Inst{6} = 0b0; + } + def : InstAlias(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZZZ_b_mul_r:$Zn, ZZZZ_b_mul_r:$Zm), 0>; +} + +multiclass sme2_int_dot_array_vg4_multi_HtoD { + def NAME : sme2_int_dot_array_vg24_multi_4way<0b1, u, MatrixOp64, ZZZZ_h_mul_r, + mnemonic, "vgx4"> { + bits<3> Zm; + bits<3> Zn; + let Inst{20-18} = Zm; + let Inst{17-16} = 0b01; + let Inst{9-7} = Zn; + let Inst{6} = 0b0; + } + + def : InstAlias(NAME) MatrixOp64:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3, ZZZZ_h_mul_r:$Zn, ZZZZ_h_mul_r:$Zm), 0>; +} diff --git a/llvm/test/MC/AArch64/SME2/sdot.s b/llvm/test/MC/AArch64/SME2/sdot.s --- a/llvm/test/MC/AArch64/SME2/sdot.s +++ b/llvm/test/MC/AArch64/SME2/sdot.s @@ -447,6 +447,152 @@ // CHECK-UNKNOWN: c1ea358f + +sdot za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b // 11000001-00100000-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b +// CHECK-ENCODING: [0x00,0x14,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201400 + +sdot za.s[w8, 0], {z0.b, z1.b}, z0.b // 11000001-00100000-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b +// CHECK-ENCODING: [0x00,0x14,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201400 + +sdot za.s[w10, 5, vgx2], {z10.b, z11.b}, z5.b // 11000001-00100101-01010101-01000101 +// CHECK-INST: sdot za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b +// CHECK-ENCODING: [0x45,0x55,0x25,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1255545 + +sdot za.s[w10, 5], {z10.b, z11.b}, z5.b // 11000001-00100101-01010101-01000101 +// CHECK-INST: sdot za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b +// CHECK-ENCODING: [0x45,0x55,0x25,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1255545 + +sdot za.s[w11, 7, vgx2], {z13.b, z14.b}, z8.b // 11000001-00101000-01110101-10100111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b +// CHECK-ENCODING: [0xa7,0x75,0x28,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12875a7 + +sdot za.s[w11, 7], {z13.b, z14.b}, z8.b // 11000001-00101000-01110101-10100111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b +// CHECK-ENCODING: [0xa7,0x75,0x28,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12875a7 + +sdot za.s[w11, 7, vgx2], {z31.b, z0.b}, z15.b // 11000001-00101111-01110111-11100111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b +// CHECK-ENCODING: [0xe7,0x77,0x2f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12f77e7 + +sdot za.s[w11, 7], {z31.b, z0.b}, z15.b // 11000001-00101111-01110111-11100111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b +// CHECK-ENCODING: [0xe7,0x77,0x2f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12f77e7 + +sdot za.s[w8, 5, vgx2], {z17.b, z18.b}, z0.b // 11000001-00100000-00010110-00100101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b +// CHECK-ENCODING: [0x25,0x16,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201625 + +sdot za.s[w8, 5], {z17.b, z18.b}, z0.b // 11000001-00100000-00010110-00100101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b +// CHECK-ENCODING: [0x25,0x16,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201625 + +sdot za.s[w8, 1, vgx2], {z1.b, z2.b}, z14.b // 11000001-00101110-00010100-00100001 +// CHECK-INST: sdot za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b +// CHECK-ENCODING: [0x21,0x14,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e1421 + +sdot za.s[w8, 1], {z1.b, z2.b}, z14.b // 11000001-00101110-00010100-00100001 +// CHECK-INST: sdot za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b +// CHECK-ENCODING: [0x21,0x14,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e1421 + +sdot za.s[w10, 0, vgx2], {z19.b, z20.b}, z4.b // 11000001-00100100-01010110-01100000 +// CHECK-INST: sdot za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b +// CHECK-ENCODING: [0x60,0x56,0x24,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1245660 + +sdot za.s[w10, 0], {z19.b, z20.b}, z4.b // 11000001-00100100-01010110-01100000 +// CHECK-INST: sdot za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b +// CHECK-ENCODING: [0x60,0x56,0x24,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1245660 + +sdot za.s[w8, 0, vgx2], {z12.b, z13.b}, z2.b // 11000001-00100010-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b +// CHECK-ENCODING: [0x80,0x15,0x22,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1221580 + +sdot za.s[w8, 0], {z12.b, z13.b}, z2.b // 11000001-00100010-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b +// CHECK-ENCODING: [0x80,0x15,0x22,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1221580 + +sdot za.s[w10, 1, vgx2], {z1.b, z2.b}, z10.b // 11000001-00101010-01010100-00100001 +// CHECK-INST: sdot za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b +// CHECK-ENCODING: [0x21,0x54,0x2a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12a5421 + +sdot za.s[w10, 1], {z1.b, z2.b}, z10.b // 11000001-00101010-01010100-00100001 +// CHECK-INST: sdot za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b +// CHECK-ENCODING: [0x21,0x54,0x2a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12a5421 + +sdot za.s[w8, 5, vgx2], {z22.b, z23.b}, z14.b // 11000001-00101110-00010110-11000101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b +// CHECK-ENCODING: [0xc5,0x16,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e16c5 + +sdot za.s[w8, 5], {z22.b, z23.b}, z14.b // 11000001-00101110-00010110-11000101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b +// CHECK-ENCODING: [0xc5,0x16,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e16c5 + +sdot za.s[w11, 2, vgx2], {z9.b, z10.b}, z1.b // 11000001-00100001-01110101-00100010 +// CHECK-INST: sdot za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b +// CHECK-ENCODING: [0x22,0x75,0x21,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1217522 + +sdot za.s[w11, 2], {z9.b, z10.b}, z1.b // 11000001-00100001-01110101-00100010 +// CHECK-INST: sdot za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b +// CHECK-ENCODING: [0x22,0x75,0x21,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1217522 + +sdot za.s[w9, 7, vgx2], {z12.b, z13.b}, z11.b // 11000001-00101011-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b +// CHECK-ENCODING: [0x87,0x35,0x2b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12b3587 + +sdot za.s[w9, 7], {z12.b, z13.b}, z11.b // 11000001-00101011-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b +// CHECK-ENCODING: [0x87,0x35,0x2b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12b3587 + + sdot za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b[0] // 11000001-01010000-00010000-00100000 // CHECK-INST: sdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] // CHECK-ENCODING: [0x20,0x10,0x50,0xc1] @@ -592,6 +738,297 @@ // CHECK-UNKNOWN: c15b39a7 + +sdot za.s[w8, 0, vgx2], {z0.b, z1.b}, {z0.b, z1.b} // 11000001-10100000-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x00,0x14,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a01400 + +sdot za.s[w8, 0], {z0.b, z1.b}, {z0.b, z1.b} // 11000001-10100000-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x00,0x14,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a01400 + +sdot za.s[w10, 5, vgx2], {z10.b, z11.b}, {z20.b, z21.b} // 11000001-10110100-01010101-01000101 +// CHECK-INST: sdot za.s[w10, 5, vgx2], { z10.b, z11.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x45,0x55,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45545 + +sdot za.s[w10, 5], {z10.b, z11.b}, {z20.b, z21.b} // 11000001-10110100-01010101-01000101 +// CHECK-INST: sdot za.s[w10, 5, vgx2], { z10.b, z11.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x45,0x55,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45545 + +sdot za.s[w11, 7, vgx2], {z12.b, z13.b}, {z8.b, z9.b} // 11000001-10101000-01110101-10000111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z12.b, z13.b }, { z8.b, z9.b } +// CHECK-ENCODING: [0x87,0x75,0xa8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a87587 + +sdot za.s[w11, 7], {z12.b, z13.b}, {z8.b, z9.b} // 11000001-10101000-01110101-10000111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z12.b, z13.b }, { z8.b, z9.b } +// CHECK-ENCODING: [0x87,0x75,0xa8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a87587 + +sdot za.s[w11, 7, vgx2], {z30.b, z31.b}, {z30.b, z31.b} // 11000001-10111110-01110111-11000111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xc7,0x77,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be77c7 + +sdot za.s[w11, 7], {z30.b, z31.b}, {z30.b, z31.b} // 11000001-10111110-01110111-11000111 +// CHECK-INST: sdot za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xc7,0x77,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be77c7 + +sdot za.s[w8, 5, vgx2], {z16.b, z17.b}, {z16.b, z17.b} // 11000001-10110000-00010110-00000101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z16.b, z17.b }, { z16.b, z17.b } +// CHECK-ENCODING: [0x05,0x16,0xb0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b01605 + +sdot za.s[w8, 5], {z16.b, z17.b}, {z16.b, z17.b} // 11000001-10110000-00010110-00000101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z16.b, z17.b }, { z16.b, z17.b } +// CHECK-ENCODING: [0x05,0x16,0xb0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b01605 + +sdot za.s[w8, 1, vgx2], {z0.b, z1.b}, {z30.b, z31.b} // 11000001-10111110-00010100-00000001 +// CHECK-INST: sdot za.s[w8, 1, vgx2], { z0.b, z1.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0x01,0x14,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be1401 + +sdot za.s[w8, 1], {z0.b, z1.b}, {z30.b, z31.b} // 11000001-10111110-00010100-00000001 +// CHECK-INST: sdot za.s[w8, 1, vgx2], { z0.b, z1.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0x01,0x14,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be1401 + +sdot za.s[w10, 0, vgx2], {z18.b, z19.b}, {z20.b, z21.b} // 11000001-10110100-01010110-01000000 +// CHECK-INST: sdot za.s[w10, 0, vgx2], { z18.b, z19.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x40,0x56,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45640 + +sdot za.s[w10, 0], {z18.b, z19.b}, {z20.b, z21.b} // 11000001-10110100-01010110-01000000 +// CHECK-INST: sdot za.s[w10, 0, vgx2], { z18.b, z19.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x40,0x56,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45640 + +sdot za.s[w8, 0, vgx2], {z12.b, z13.b}, {z2.b, z3.b} // 11000001-10100010-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z12.b, z13.b }, { z2.b, z3.b } +// CHECK-ENCODING: [0x80,0x15,0xa2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a21580 + +sdot za.s[w8, 0], {z12.b, z13.b}, {z2.b, z3.b} // 11000001-10100010-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx2], { z12.b, z13.b }, { z2.b, z3.b } +// CHECK-ENCODING: [0x80,0x15,0xa2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a21580 + +sdot za.s[w10, 1, vgx2], {z0.b, z1.b}, {z26.b, z27.b} // 11000001-10111010-01010100-00000001 +// CHECK-INST: sdot za.s[w10, 1, vgx2], { z0.b, z1.b }, { z26.b, z27.b } +// CHECK-ENCODING: [0x01,0x54,0xba,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ba5401 + +sdot za.s[w10, 1], {z0.b, z1.b}, {z26.b, z27.b} // 11000001-10111010-01010100-00000001 +// CHECK-INST: sdot za.s[w10, 1, vgx2], { z0.b, z1.b }, { z26.b, z27.b } +// CHECK-ENCODING: [0x01,0x54,0xba,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ba5401 + +sdot za.s[w8, 5, vgx2], {z22.b, z23.b}, {z30.b, z31.b} // 11000001-10111110-00010110-11000101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z22.b, z23.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xc5,0x16,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be16c5 + +sdot za.s[w8, 5], {z22.b, z23.b}, {z30.b, z31.b} // 11000001-10111110-00010110-11000101 +// CHECK-INST: sdot za.s[w8, 5, vgx2], { z22.b, z23.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xc5,0x16,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be16c5 + +sdot za.s[w11, 2, vgx2], {z8.b, z9.b}, {z0.b, z1.b} // 11000001-10100000-01110101-00000010 +// CHECK-INST: sdot za.s[w11, 2, vgx2], { z8.b, z9.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x02,0x75,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a07502 + +sdot za.s[w11, 2], {z8.b, z9.b}, {z0.b, z1.b} // 11000001-10100000-01110101-00000010 +// CHECK-INST: sdot za.s[w11, 2, vgx2], { z8.b, z9.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x02,0x75,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a07502 + +sdot za.s[w9, 7, vgx2], {z12.b, z13.b}, {z10.b, z11.b} // 11000001-10101010-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx2], { z12.b, z13.b }, { z10.b, z11.b } +// CHECK-ENCODING: [0x87,0x35,0xaa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1aa3587 + +sdot za.s[w9, 7], {z12.b, z13.b}, {z10.b, z11.b} // 11000001-10101010-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx2], { z12.b, z13.b }, { z10.b, z11.b } +// CHECK-ENCODING: [0x87,0x35,0xaa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1aa3587 + + +sdot za.d[w8, 0, vgx2], {z0.h, z1.h}, z0.h // 11000001-01100000-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z0.h, z1.h }, z0.h +// CHECK-ENCODING: [0x00,0x14,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601400 + +sdot za.d[w8, 0], {z0.h, z1.h}, z0.h // 11000001-01100000-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z0.h, z1.h }, z0.h +// CHECK-ENCODING: [0x00,0x14,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601400 + +sdot za.d[w10, 5, vgx2], {z10.h, z11.h}, z5.h // 11000001-01100101-01010101-01000101 +// CHECK-INST: sdot za.d[w10, 5, vgx2], { z10.h, z11.h }, z5.h +// CHECK-ENCODING: [0x45,0x55,0x65,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1655545 + +sdot za.d[w10, 5], {z10.h, z11.h}, z5.h // 11000001-01100101-01010101-01000101 +// CHECK-INST: sdot za.d[w10, 5, vgx2], { z10.h, z11.h }, z5.h +// CHECK-ENCODING: [0x45,0x55,0x65,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1655545 + +sdot za.d[w11, 7, vgx2], {z13.h, z14.h}, z8.h // 11000001-01101000-01110101-10100111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z13.h, z14.h }, z8.h +// CHECK-ENCODING: [0xa7,0x75,0x68,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16875a7 + +sdot za.d[w11, 7], {z13.h, z14.h}, z8.h // 11000001-01101000-01110101-10100111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z13.h, z14.h }, z8.h +// CHECK-ENCODING: [0xa7,0x75,0x68,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16875a7 + +sdot za.d[w11, 7, vgx2], {z31.h, z0.h}, z15.h // 11000001-01101111-01110111-11100111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z31.h, z0.h }, z15.h +// CHECK-ENCODING: [0xe7,0x77,0x6f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16f77e7 + +sdot za.d[w11, 7], {z31.h, z0.h}, z15.h // 11000001-01101111-01110111-11100111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z31.h, z0.h }, z15.h +// CHECK-ENCODING: [0xe7,0x77,0x6f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16f77e7 + +sdot za.d[w8, 5, vgx2], {z17.h, z18.h}, z0.h // 11000001-01100000-00010110-00100101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z17.h, z18.h }, z0.h +// CHECK-ENCODING: [0x25,0x16,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601625 + +sdot za.d[w8, 5], {z17.h, z18.h}, z0.h // 11000001-01100000-00010110-00100101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z17.h, z18.h }, z0.h +// CHECK-ENCODING: [0x25,0x16,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601625 + +sdot za.d[w8, 1, vgx2], {z1.h, z2.h}, z14.h // 11000001-01101110-00010100-00100001 +// CHECK-INST: sdot za.d[w8, 1, vgx2], { z1.h, z2.h }, z14.h +// CHECK-ENCODING: [0x21,0x14,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e1421 + +sdot za.d[w8, 1], {z1.h, z2.h}, z14.h // 11000001-01101110-00010100-00100001 +// CHECK-INST: sdot za.d[w8, 1, vgx2], { z1.h, z2.h }, z14.h +// CHECK-ENCODING: [0x21,0x14,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e1421 + +sdot za.d[w10, 0, vgx2], {z19.h, z20.h}, z4.h // 11000001-01100100-01010110-01100000 +// CHECK-INST: sdot za.d[w10, 0, vgx2], { z19.h, z20.h }, z4.h +// CHECK-ENCODING: [0x60,0x56,0x64,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1645660 + +sdot za.d[w10, 0], {z19.h, z20.h}, z4.h // 11000001-01100100-01010110-01100000 +// CHECK-INST: sdot za.d[w10, 0, vgx2], { z19.h, z20.h }, z4.h +// CHECK-ENCODING: [0x60,0x56,0x64,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1645660 + +sdot za.d[w8, 0, vgx2], {z12.h, z13.h}, z2.h // 11000001-01100010-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z12.h, z13.h }, z2.h +// CHECK-ENCODING: [0x80,0x15,0x62,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1621580 + +sdot za.d[w8, 0], {z12.h, z13.h}, z2.h // 11000001-01100010-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z12.h, z13.h }, z2.h +// CHECK-ENCODING: [0x80,0x15,0x62,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1621580 + +sdot za.d[w10, 1, vgx2], {z1.h, z2.h}, z10.h // 11000001-01101010-01010100-00100001 +// CHECK-INST: sdot za.d[w10, 1, vgx2], { z1.h, z2.h }, z10.h +// CHECK-ENCODING: [0x21,0x54,0x6a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16a5421 + +sdot za.d[w10, 1], {z1.h, z2.h}, z10.h // 11000001-01101010-01010100-00100001 +// CHECK-INST: sdot za.d[w10, 1, vgx2], { z1.h, z2.h }, z10.h +// CHECK-ENCODING: [0x21,0x54,0x6a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16a5421 + +sdot za.d[w8, 5, vgx2], {z22.h, z23.h}, z14.h // 11000001-01101110-00010110-11000101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z22.h, z23.h }, z14.h +// CHECK-ENCODING: [0xc5,0x16,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e16c5 + +sdot za.d[w8, 5], {z22.h, z23.h}, z14.h // 11000001-01101110-00010110-11000101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z22.h, z23.h }, z14.h +// CHECK-ENCODING: [0xc5,0x16,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e16c5 + +sdot za.d[w11, 2, vgx2], {z9.h, z10.h}, z1.h // 11000001-01100001-01110101-00100010 +// CHECK-INST: sdot za.d[w11, 2, vgx2], { z9.h, z10.h }, z1.h +// CHECK-ENCODING: [0x22,0x75,0x61,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1617522 + +sdot za.d[w11, 2], {z9.h, z10.h}, z1.h // 11000001-01100001-01110101-00100010 +// CHECK-INST: sdot za.d[w11, 2, vgx2], { z9.h, z10.h }, z1.h +// CHECK-ENCODING: [0x22,0x75,0x61,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1617522 + +sdot za.d[w9, 7, vgx2], {z12.h, z13.h}, z11.h // 11000001-01101011-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx2], { z12.h, z13.h }, z11.h +// CHECK-ENCODING: [0x87,0x35,0x6b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16b3587 + +sdot za.d[w9, 7], {z12.h, z13.h}, z11.h // 11000001-01101011-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx2], { z12.h, z13.h }, z11.h +// CHECK-ENCODING: [0x87,0x35,0x6b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16b3587 + + sdot za.d[w8, 0, vgx2], {z0.h, z1.h}, z0.h[0] // 11000001-11010000-00000000-00001000 // CHECK-INST: sdot za.d[w8, 0, vgx2], { z0.h, z1.h }, z0.h[0] // CHECK-ENCODING: [0x08,0x00,0xd0,0xc1] @@ -737,6 +1174,151 @@ // CHECK-UNKNOWN: c1db218f +sdot za.d[w8, 0, vgx2], {z0.h, z1.h}, {z0.h, z1.h} // 11000001-11100000-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z0.h, z1.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x00,0x14,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e01400 + +sdot za.d[w8, 0], {z0.h, z1.h}, {z0.h, z1.h} // 11000001-11100000-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z0.h, z1.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x00,0x14,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e01400 + +sdot za.d[w10, 5, vgx2], {z10.h, z11.h}, {z20.h, z21.h} // 11000001-11110100-01010101-01000101 +// CHECK-INST: sdot za.d[w10, 5, vgx2], { z10.h, z11.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x45,0x55,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45545 + +sdot za.d[w10, 5], {z10.h, z11.h}, {z20.h, z21.h} // 11000001-11110100-01010101-01000101 +// CHECK-INST: sdot za.d[w10, 5, vgx2], { z10.h, z11.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x45,0x55,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45545 + +sdot za.d[w11, 7, vgx2], {z12.h, z13.h}, {z8.h, z9.h} // 11000001-11101000-01110101-10000111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z12.h, z13.h }, { z8.h, z9.h } +// CHECK-ENCODING: [0x87,0x75,0xe8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e87587 + +sdot za.d[w11, 7], {z12.h, z13.h}, {z8.h, z9.h} // 11000001-11101000-01110101-10000111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z12.h, z13.h }, { z8.h, z9.h } +// CHECK-ENCODING: [0x87,0x75,0xe8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e87587 + +sdot za.d[w11, 7, vgx2], {z30.h, z31.h}, {z30.h, z31.h} // 11000001-11111110-01110111-11000111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z30.h, z31.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xc7,0x77,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe77c7 + +sdot za.d[w11, 7], {z30.h, z31.h}, {z30.h, z31.h} // 11000001-11111110-01110111-11000111 +// CHECK-INST: sdot za.d[w11, 7, vgx2], { z30.h, z31.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xc7,0x77,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe77c7 + +sdot za.d[w8, 5, vgx2], {z16.h, z17.h}, {z16.h, z17.h} // 11000001-11110000-00010110-00000101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z16.h, z17.h }, { z16.h, z17.h } +// CHECK-ENCODING: [0x05,0x16,0xf0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f01605 + +sdot za.d[w8, 5], {z16.h, z17.h}, {z16.h, z17.h} // 11000001-11110000-00010110-00000101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z16.h, z17.h }, { z16.h, z17.h } +// CHECK-ENCODING: [0x05,0x16,0xf0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f01605 + +sdot za.d[w8, 1, vgx2], {z0.h, z1.h}, {z30.h, z31.h} // 11000001-11111110-00010100-00000001 +// CHECK-INST: sdot za.d[w8, 1, vgx2], { z0.h, z1.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0x01,0x14,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe1401 + +sdot za.d[w8, 1], {z0.h, z1.h}, {z30.h, z31.h} // 11000001-11111110-00010100-00000001 +// CHECK-INST: sdot za.d[w8, 1, vgx2], { z0.h, z1.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0x01,0x14,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe1401 + +sdot za.d[w10, 0, vgx2], {z18.h, z19.h}, {z20.h, z21.h} // 11000001-11110100-01010110-01000000 +// CHECK-INST: sdot za.d[w10, 0, vgx2], { z18.h, z19.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x40,0x56,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45640 + +sdot za.d[w10, 0], {z18.h, z19.h}, {z20.h, z21.h} // 11000001-11110100-01010110-01000000 +// CHECK-INST: sdot za.d[w10, 0, vgx2], { z18.h, z19.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x40,0x56,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45640 + +sdot za.d[w8, 0, vgx2], {z12.h, z13.h}, {z2.h, z3.h} // 11000001-11100010-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z12.h, z13.h }, { z2.h, z3.h } +// CHECK-ENCODING: [0x80,0x15,0xe2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e21580 + +sdot za.d[w8, 0], {z12.h, z13.h}, {z2.h, z3.h} // 11000001-11100010-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx2], { z12.h, z13.h }, { z2.h, z3.h } +// CHECK-ENCODING: [0x80,0x15,0xe2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e21580 + +sdot za.d[w10, 1, vgx2], {z0.h, z1.h}, {z26.h, z27.h} // 11000001-11111010-01010100-00000001 +// CHECK-INST: sdot za.d[w10, 1, vgx2], { z0.h, z1.h }, { z26.h, z27.h } +// CHECK-ENCODING: [0x01,0x54,0xfa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fa5401 + +sdot za.d[w10, 1], {z0.h, z1.h}, {z26.h, z27.h} // 11000001-11111010-01010100-00000001 +// CHECK-INST: sdot za.d[w10, 1, vgx2], { z0.h, z1.h }, { z26.h, z27.h } +// CHECK-ENCODING: [0x01,0x54,0xfa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fa5401 + +sdot za.d[w8, 5, vgx2], {z22.h, z23.h}, {z30.h, z31.h} // 11000001-11111110-00010110-11000101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z22.h, z23.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xc5,0x16,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe16c5 + +sdot za.d[w8, 5], {z22.h, z23.h}, {z30.h, z31.h} // 11000001-11111110-00010110-11000101 +// CHECK-INST: sdot za.d[w8, 5, vgx2], { z22.h, z23.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xc5,0x16,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe16c5 + +sdot za.d[w11, 2, vgx2], {z8.h, z9.h}, {z0.h, z1.h} // 11000001-11100000-01110101-00000010 +// CHECK-INST: sdot za.d[w11, 2, vgx2], { z8.h, z9.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x02,0x75,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e07502 + +sdot za.d[w11, 2], {z8.h, z9.h}, {z0.h, z1.h} // 11000001-11100000-01110101-00000010 +// CHECK-INST: sdot za.d[w11, 2, vgx2], { z8.h, z9.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x02,0x75,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e07502 + +sdot za.d[w9, 7, vgx2], {z12.h, z13.h}, {z10.h, z11.h} // 11000001-11101010-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx2], { z12.h, z13.h }, { z10.h, z11.h } +// CHECK-ENCODING: [0x87,0x35,0xea,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ea3587 + +sdot za.d[w9, 7], {z12.h, z13.h}, {z10.h, z11.h} // 11000001-11101010-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx2], { z12.h, z13.h }, { z10.h, z11.h } +// CHECK-ENCODING: [0x87,0x35,0xea,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ea3587 + + sdot za.s[w8, 0, vgx4], {z0.h - z3.h}, z0.h // 11000001-01110000-00010100-00001000 // CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.h - z3.h }, z0.h // CHECK-ENCODING: [0x08,0x14,0x70,0xc1] @@ -1026,7 +1608,6 @@ // CHECK-ERROR: instruction requires: sme2 // CHECK-UNKNOWN: c15bb987 - sdot za.s[w8, 0, vgx4], {z0.h - z3.h}, {z0.h - z3.h} // 11000001-11100001-00010100-00001000 // CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.h - z3.h }, { z0.h - z3.h } // CHECK-ENCODING: [0x08,0x14,0xe1,0xc1] @@ -1172,6 +1753,151 @@ // CHECK-UNKNOWN: c1e9358f +sdot za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b // 11000001-00110000-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b +// CHECK-ENCODING: [0x00,0x14,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301400 + +sdot za.s[w8, 0], {z0.b - z3.b}, z0.b // 11000001-00110000-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b +// CHECK-ENCODING: [0x00,0x14,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301400 + +sdot za.s[w10, 5, vgx4], {z10.b - z13.b}, z5.b // 11000001-00110101-01010101-01000101 +// CHECK-INST: sdot za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b +// CHECK-ENCODING: [0x45,0x55,0x35,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1355545 + +sdot za.s[w10, 5], {z10.b - z13.b}, z5.b // 11000001-00110101-01010101-01000101 +// CHECK-INST: sdot za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b +// CHECK-ENCODING: [0x45,0x55,0x35,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1355545 + +sdot za.s[w11, 7, vgx4], {z13.b - z16.b}, z8.b // 11000001-00111000-01110101-10100111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b +// CHECK-ENCODING: [0xa7,0x75,0x38,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13875a7 + +sdot za.s[w11, 7], {z13.b - z16.b}, z8.b // 11000001-00111000-01110101-10100111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b +// CHECK-ENCODING: [0xa7,0x75,0x38,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13875a7 + +sdot za.s[w11, 7, vgx4], {z31.b - z2.b}, z15.b // 11000001-00111111-01110111-11100111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b +// CHECK-ENCODING: [0xe7,0x77,0x3f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13f77e7 + +sdot za.s[w11, 7], {z31.b - z2.b}, z15.b // 11000001-00111111-01110111-11100111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b +// CHECK-ENCODING: [0xe7,0x77,0x3f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13f77e7 + +sdot za.s[w8, 5, vgx4], {z17.b - z20.b}, z0.b // 11000001-00110000-00010110-00100101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b +// CHECK-ENCODING: [0x25,0x16,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301625 + +sdot za.s[w8, 5], {z17.b - z20.b}, z0.b // 11000001-00110000-00010110-00100101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b +// CHECK-ENCODING: [0x25,0x16,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301625 + +sdot za.s[w8, 1, vgx4], {z1.b - z4.b}, z14.b // 11000001-00111110-00010100-00100001 +// CHECK-INST: sdot za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b +// CHECK-ENCODING: [0x21,0x14,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e1421 + +sdot za.s[w8, 1], {z1.b - z4.b}, z14.b // 11000001-00111110-00010100-00100001 +// CHECK-INST: sdot za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b +// CHECK-ENCODING: [0x21,0x14,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e1421 + +sdot za.s[w10, 0, vgx4], {z19.b - z22.b}, z4.b // 11000001-00110100-01010110-01100000 +// CHECK-INST: sdot za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b +// CHECK-ENCODING: [0x60,0x56,0x34,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1345660 + +sdot za.s[w10, 0], {z19.b - z22.b}, z4.b // 11000001-00110100-01010110-01100000 +// CHECK-INST: sdot za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b +// CHECK-ENCODING: [0x60,0x56,0x34,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1345660 + +sdot za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b // 11000001-00110010-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b +// CHECK-ENCODING: [0x80,0x15,0x32,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1321580 + +sdot za.s[w8, 0], {z12.b - z15.b}, z2.b // 11000001-00110010-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b +// CHECK-ENCODING: [0x80,0x15,0x32,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1321580 + +sdot za.s[w10, 1, vgx4], {z1.b - z4.b}, z10.b // 11000001-00111010-01010100-00100001 +// CHECK-INST: sdot za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b +// CHECK-ENCODING: [0x21,0x54,0x3a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13a5421 + +sdot za.s[w10, 1], {z1.b - z4.b}, z10.b // 11000001-00111010-01010100-00100001 +// CHECK-INST: sdot za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b +// CHECK-ENCODING: [0x21,0x54,0x3a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13a5421 + +sdot za.s[w8, 5, vgx4], {z22.b - z25.b}, z14.b // 11000001-00111110-00010110-11000101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b +// CHECK-ENCODING: [0xc5,0x16,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e16c5 + +sdot za.s[w8, 5], {z22.b - z25.b}, z14.b // 11000001-00111110-00010110-11000101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b +// CHECK-ENCODING: [0xc5,0x16,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e16c5 + +sdot za.s[w11, 2, vgx4], {z9.b - z12.b}, z1.b // 11000001-00110001-01110101-00100010 +// CHECK-INST: sdot za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b +// CHECK-ENCODING: [0x22,0x75,0x31,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1317522 + +sdot za.s[w11, 2], {z9.b - z12.b}, z1.b // 11000001-00110001-01110101-00100010 +// CHECK-INST: sdot za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b +// CHECK-ENCODING: [0x22,0x75,0x31,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1317522 + +sdot za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b // 11000001-00111011-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b +// CHECK-ENCODING: [0x87,0x35,0x3b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13b3587 + +sdot za.s[w9, 7], {z12.b - z15.b}, z11.b // 11000001-00111011-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b +// CHECK-ENCODING: [0x87,0x35,0x3b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13b3587 + + sdot za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b[0] // 11000001-01010000-10010000-00100000 // CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0] // CHECK-ENCODING: [0x20,0x90,0x50,0xc1] @@ -1317,6 +2043,296 @@ // CHECK-UNKNOWN: c15bb9a7 +sdot za.s[w8, 0, vgx4], {z0.b - z3.b}, {z0.b - z3.b} // 11000001-10100001-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x00,0x14,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11400 + +sdot za.s[w8, 0], {z0.b - z3.b}, {z0.b - z3.b} // 11000001-10100001-00010100-00000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x00,0x14,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11400 + +sdot za.s[w10, 5, vgx4], {z8.b - z11.b}, {z20.b - z23.b} // 11000001-10110101-01010101-00000101 +// CHECK-INST: sdot za.s[w10, 5, vgx4], { z8.b - z11.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x05,0x55,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55505 + +sdot za.s[w10, 5], {z8.b - z11.b}, {z20.b - z23.b} // 11000001-10110101-01010101-00000101 +// CHECK-INST: sdot za.s[w10, 5, vgx4], { z8.b - z11.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x05,0x55,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55505 + +sdot za.s[w11, 7, vgx4], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-01110101-10000111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x87,0x75,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a97587 + +sdot za.s[w11, 7], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-01110101-10000111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x87,0x75,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a97587 + +sdot za.s[w11, 7, vgx4], {z28.b - z31.b}, {z28.b - z31.b} // 11000001-10111101-01110111-10000111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x87,0x77,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd7787 + +sdot za.s[w11, 7], {z28.b - z31.b}, {z28.b - z31.b} // 11000001-10111101-01110111-10000111 +// CHECK-INST: sdot za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x87,0x77,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd7787 + +sdot za.s[w8, 5, vgx4], {z16.b - z19.b}, {z16.b - z19.b} // 11000001-10110001-00010110-00000101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z16.b - z19.b }, { z16.b - z19.b } +// CHECK-ENCODING: [0x05,0x16,0xb1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b11605 + +sdot za.s[w8, 5], {z16.b - z19.b}, {z16.b - z19.b} // 11000001-10110001-00010110-00000101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z16.b - z19.b }, { z16.b - z19.b } +// CHECK-ENCODING: [0x05,0x16,0xb1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b11605 + +sdot za.s[w8, 1, vgx4], {z0.b - z3.b}, {z28.b - z31.b} // 11000001-10111101-00010100-00000001 +// CHECK-INST: sdot za.s[w8, 1, vgx4], { z0.b - z3.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x01,0x14,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1401 + +sdot za.s[w8, 1], {z0.b - z3.b}, {z28.b - z31.b} // 11000001-10111101-00010100-00000001 +// CHECK-INST: sdot za.s[w8, 1, vgx4], { z0.b - z3.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x01,0x14,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1401 + +sdot za.s[w10, 0, vgx4], {z16.b - z19.b}, {z20.b - z23.b} // 11000001-10110101-01010110-00000000 +// CHECK-INST: sdot za.s[w10, 0, vgx4], { z16.b - z19.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x00,0x56,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55600 + +sdot za.s[w10, 0], {z16.b - z19.b}, {z20.b - z23.b} // 11000001-10110101-01010110-00000000 +// CHECK-INST: sdot za.s[w10, 0, vgx4], { z16.b - z19.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x00,0x56,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55600 + +sdot za.s[w8, 0, vgx4], {z12.b - z15.b}, {z0.b - z3.b} // 11000001-10100001-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z12.b - z15.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x80,0x15,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11580 + +sdot za.s[w8, 0], {z12.b - z15.b}, {z0.b - z3.b} // 11000001-10100001-00010101-10000000 +// CHECK-INST: sdot za.s[w8, 0, vgx4], { z12.b - z15.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x80,0x15,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11580 + +sdot za.s[w10, 1, vgx4], {z0.b - z3.b}, {z24.b - z27.b} // 11000001-10111001-01010100-00000001 +// CHECK-INST: sdot za.s[w10, 1, vgx4], { z0.b - z3.b }, { z24.b - z27.b } +// CHECK-ENCODING: [0x01,0x54,0xb9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b95401 + +sdot za.s[w10, 1], {z0.b - z3.b}, {z24.b - z27.b} // 11000001-10111001-01010100-00000001 +// CHECK-INST: sdot za.s[w10, 1, vgx4], { z0.b - z3.b }, { z24.b - z27.b } +// CHECK-ENCODING: [0x01,0x54,0xb9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b95401 + +sdot za.s[w8, 5, vgx4], {z20.b - z23.b}, {z28.b - z31.b} // 11000001-10111101-00010110-10000101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z20.b - z23.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x85,0x16,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1685 + +sdot za.s[w8, 5], {z20.b - z23.b}, {z28.b - z31.b} // 11000001-10111101-00010110-10000101 +// CHECK-INST: sdot za.s[w8, 5, vgx4], { z20.b - z23.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x85,0x16,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1685 + +sdot za.s[w11, 2, vgx4], {z8.b - z11.b}, {z0.b - z3.b} // 11000001-10100001-01110101-00000010 +// CHECK-INST: sdot za.s[w11, 2, vgx4], { z8.b - z11.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x02,0x75,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a17502 + +sdot za.s[w11, 2], {z8.b - z11.b}, {z0.b - z3.b} // 11000001-10100001-01110101-00000010 +// CHECK-INST: sdot za.s[w11, 2, vgx4], { z8.b - z11.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x02,0x75,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a17502 + +sdot za.s[w9, 7, vgx4], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x87,0x35,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a93587 + +sdot za.s[w9, 7], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-00110101-10000111 +// CHECK-INST: sdot za.s[w9, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x87,0x35,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a93587 + + +sdot za.d[w8, 0, vgx4], {z0.h - z3.h}, z0.h // 11000001-01110000-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h +// CHECK-ENCODING: [0x00,0x14,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701400 + +sdot za.d[w8, 0], {z0.h - z3.h}, z0.h // 11000001-01110000-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h +// CHECK-ENCODING: [0x00,0x14,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701400 + +sdot za.d[w10, 5, vgx4], {z10.h - z13.h}, z5.h // 11000001-01110101-01010101-01000101 +// CHECK-INST: sdot za.d[w10, 5, vgx4], { z10.h - z13.h }, z5.h +// CHECK-ENCODING: [0x45,0x55,0x75,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1755545 + +sdot za.d[w10, 5], {z10.h - z13.h}, z5.h // 11000001-01110101-01010101-01000101 +// CHECK-INST: sdot za.d[w10, 5, vgx4], { z10.h - z13.h }, z5.h +// CHECK-ENCODING: [0x45,0x55,0x75,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1755545 + +sdot za.d[w11, 7, vgx4], {z13.h - z16.h}, z8.h // 11000001-01111000-01110101-10100111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z13.h - z16.h }, z8.h +// CHECK-ENCODING: [0xa7,0x75,0x78,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17875a7 + +sdot za.d[w11, 7], {z13.h - z16.h}, z8.h // 11000001-01111000-01110101-10100111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z13.h - z16.h }, z8.h +// CHECK-ENCODING: [0xa7,0x75,0x78,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17875a7 + +sdot za.d[w11, 7, vgx4], {z31.h - z2.h}, z15.h // 11000001-01111111-01110111-11100111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z31.h, z0.h, z1.h, z2.h }, z15.h +// CHECK-ENCODING: [0xe7,0x77,0x7f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17f77e7 + +sdot za.d[w11, 7], {z31.h - z2.h}, z15.h // 11000001-01111111-01110111-11100111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z31.h, z0.h, z1.h, z2.h }, z15.h +// CHECK-ENCODING: [0xe7,0x77,0x7f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17f77e7 + +sdot za.d[w8, 5, vgx4], {z17.h - z20.h}, z0.h // 11000001-01110000-00010110-00100101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z17.h - z20.h }, z0.h +// CHECK-ENCODING: [0x25,0x16,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701625 + +sdot za.d[w8, 5], {z17.h - z20.h}, z0.h // 11000001-01110000-00010110-00100101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z17.h - z20.h }, z0.h +// CHECK-ENCODING: [0x25,0x16,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701625 + +sdot za.d[w8, 1, vgx4], {z1.h - z4.h}, z14.h // 11000001-01111110-00010100-00100001 +// CHECK-INST: sdot za.d[w8, 1, vgx4], { z1.h - z4.h }, z14.h +// CHECK-ENCODING: [0x21,0x14,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e1421 + +sdot za.d[w8, 1], {z1.h - z4.h}, z14.h // 11000001-01111110-00010100-00100001 +// CHECK-INST: sdot za.d[w8, 1, vgx4], { z1.h - z4.h }, z14.h +// CHECK-ENCODING: [0x21,0x14,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e1421 + +sdot za.d[w10, 0, vgx4], {z19.h - z22.h}, z4.h // 11000001-01110100-01010110-01100000 +// CHECK-INST: sdot za.d[w10, 0, vgx4], { z19.h - z22.h }, z4.h +// CHECK-ENCODING: [0x60,0x56,0x74,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1745660 + +sdot za.d[w10, 0], {z19.h - z22.h}, z4.h // 11000001-01110100-01010110-01100000 +// CHECK-INST: sdot za.d[w10, 0, vgx4], { z19.h - z22.h }, z4.h +// CHECK-ENCODING: [0x60,0x56,0x74,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1745660 + +sdot za.d[w8, 0, vgx4], {z12.h - z15.h}, z2.h // 11000001-01110010-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z12.h - z15.h }, z2.h +// CHECK-ENCODING: [0x80,0x15,0x72,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1721580 + +sdot za.d[w8, 0], {z12.h - z15.h}, z2.h // 11000001-01110010-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z12.h - z15.h }, z2.h +// CHECK-ENCODING: [0x80,0x15,0x72,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1721580 + +sdot za.d[w10, 1, vgx4], {z1.h - z4.h}, z10.h // 11000001-01111010-01010100-00100001 +// CHECK-INST: sdot za.d[w10, 1, vgx4], { z1.h - z4.h }, z10.h +// CHECK-ENCODING: [0x21,0x54,0x7a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17a5421 + +sdot za.d[w10, 1], {z1.h - z4.h}, z10.h // 11000001-01111010-01010100-00100001 +// CHECK-INST: sdot za.d[w10, 1, vgx4], { z1.h - z4.h }, z10.h +// CHECK-ENCODING: [0x21,0x54,0x7a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17a5421 + +sdot za.d[w8, 5, vgx4], {z22.h - z25.h}, z14.h // 11000001-01111110-00010110-11000101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z22.h - z25.h }, z14.h +// CHECK-ENCODING: [0xc5,0x16,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e16c5 + +sdot za.d[w8, 5], {z22.h - z25.h}, z14.h // 11000001-01111110-00010110-11000101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z22.h - z25.h }, z14.h +// CHECK-ENCODING: [0xc5,0x16,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e16c5 + +sdot za.d[w11, 2, vgx4], {z9.h - z12.h}, z1.h // 11000001-01110001-01110101-00100010 +// CHECK-INST: sdot za.d[w11, 2, vgx4], { z9.h - z12.h }, z1.h +// CHECK-ENCODING: [0x22,0x75,0x71,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1717522 + +sdot za.d[w11, 2], {z9.h - z12.h}, z1.h // 11000001-01110001-01110101-00100010 +// CHECK-INST: sdot za.d[w11, 2, vgx4], { z9.h - z12.h }, z1.h +// CHECK-ENCODING: [0x22,0x75,0x71,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1717522 + +sdot za.d[w9, 7, vgx4], {z12.h - z15.h}, z11.h // 11000001-01111011-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx4], { z12.h - z15.h }, z11.h +// CHECK-ENCODING: [0x87,0x35,0x7b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17b3587 + +sdot za.d[w9, 7], {z12.h - z15.h}, z11.h // 11000001-01111011-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx4], { z12.h - z15.h }, z11.h +// CHECK-ENCODING: [0x87,0x35,0x7b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17b3587 + + sdot za.d[w8, 0, vgx4], {z0.h - z3.h}, z0.h[0] // 11000001-11010000-10000000-00001000 // CHECK-INST: sdot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h[0] // CHECK-ENCODING: [0x08,0x80,0xd0,0xc1] @@ -1462,3 +2478,147 @@ // CHECK-UNKNOWN: c1dba18f +sdot za.d[w8, 0, vgx4], {z0.h - z3.h}, {z0.h - z3.h} // 11000001-11100001-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z0.h - z3.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x00,0x14,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11400 + +sdot za.d[w8, 0], {z0.h - z3.h}, {z0.h - z3.h} // 11000001-11100001-00010100-00000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z0.h - z3.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x00,0x14,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11400 + +sdot za.d[w10, 5, vgx4], {z8.h - z11.h}, {z20.h - z23.h} // 11000001-11110101-01010101-00000101 +// CHECK-INST: sdot za.d[w10, 5, vgx4], { z8.h - z11.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x05,0x55,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55505 + +sdot za.d[w10, 5], {z8.h - z11.h}, {z20.h - z23.h} // 11000001-11110101-01010101-00000101 +// CHECK-INST: sdot za.d[w10, 5, vgx4], { z8.h - z11.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x05,0x55,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55505 + +sdot za.d[w11, 7, vgx4], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-01110101-10000111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x87,0x75,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e97587 + +sdot za.d[w11, 7], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-01110101-10000111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x87,0x75,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e97587 + +sdot za.d[w11, 7, vgx4], {z28.h - z31.h}, {z28.h - z31.h} // 11000001-11111101-01110111-10000111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z28.h - z31.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x87,0x77,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd7787 + +sdot za.d[w11, 7], {z28.h - z31.h}, {z28.h - z31.h} // 11000001-11111101-01110111-10000111 +// CHECK-INST: sdot za.d[w11, 7, vgx4], { z28.h - z31.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x87,0x77,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd7787 + +sdot za.d[w8, 5, vgx4], {z16.h - z19.h}, {z16.h - z19.h} // 11000001-11110001-00010110-00000101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z16.h - z19.h }, { z16.h - z19.h } +// CHECK-ENCODING: [0x05,0x16,0xf1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f11605 + +sdot za.d[w8, 5], {z16.h - z19.h}, {z16.h - z19.h} // 11000001-11110001-00010110-00000101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z16.h - z19.h }, { z16.h - z19.h } +// CHECK-ENCODING: [0x05,0x16,0xf1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f11605 + +sdot za.d[w8, 1, vgx4], {z0.h - z3.h}, {z28.h - z31.h} // 11000001-11111101-00010100-00000001 +// CHECK-INST: sdot za.d[w8, 1, vgx4], { z0.h - z3.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x01,0x14,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1401 + +sdot za.d[w8, 1], {z0.h - z3.h}, {z28.h - z31.h} // 11000001-11111101-00010100-00000001 +// CHECK-INST: sdot za.d[w8, 1, vgx4], { z0.h - z3.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x01,0x14,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1401 + +sdot za.d[w10, 0, vgx4], {z16.h - z19.h}, {z20.h - z23.h} // 11000001-11110101-01010110-00000000 +// CHECK-INST: sdot za.d[w10, 0, vgx4], { z16.h - z19.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x00,0x56,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55600 + +sdot za.d[w10, 0], {z16.h - z19.h}, {z20.h - z23.h} // 11000001-11110101-01010110-00000000 +// CHECK-INST: sdot za.d[w10, 0, vgx4], { z16.h - z19.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x00,0x56,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55600 + +sdot za.d[w8, 0, vgx4], {z12.h - z15.h}, {z0.h - z3.h} // 11000001-11100001-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z12.h - z15.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x80,0x15,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11580 + +sdot za.d[w8, 0], {z12.h - z15.h}, {z0.h - z3.h} // 11000001-11100001-00010101-10000000 +// CHECK-INST: sdot za.d[w8, 0, vgx4], { z12.h - z15.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x80,0x15,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11580 + +sdot za.d[w10, 1, vgx4], {z0.h - z3.h}, {z24.h - z27.h} // 11000001-11111001-01010100-00000001 +// CHECK-INST: sdot za.d[w10, 1, vgx4], { z0.h - z3.h }, { z24.h - z27.h } +// CHECK-ENCODING: [0x01,0x54,0xf9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f95401 + +sdot za.d[w10, 1], {z0.h - z3.h}, {z24.h - z27.h} // 11000001-11111001-01010100-00000001 +// CHECK-INST: sdot za.d[w10, 1, vgx4], { z0.h - z3.h }, { z24.h - z27.h } +// CHECK-ENCODING: [0x01,0x54,0xf9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f95401 + +sdot za.d[w8, 5, vgx4], {z20.h - z23.h}, {z28.h - z31.h} // 11000001-11111101-00010110-10000101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z20.h - z23.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x85,0x16,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1685 + +sdot za.d[w8, 5], {z20.h - z23.h}, {z28.h - z31.h} // 11000001-11111101-00010110-10000101 +// CHECK-INST: sdot za.d[w8, 5, vgx4], { z20.h - z23.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x85,0x16,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1685 + +sdot za.d[w11, 2, vgx4], {z8.h - z11.h}, {z0.h - z3.h} // 11000001-11100001-01110101-00000010 +// CHECK-INST: sdot za.d[w11, 2, vgx4], { z8.h - z11.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x02,0x75,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e17502 + +sdot za.d[w11, 2], {z8.h - z11.h}, {z0.h - z3.h} // 11000001-11100001-01110101-00000010 +// CHECK-INST: sdot za.d[w11, 2, vgx4], { z8.h - z11.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x02,0x75,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e17502 + +sdot za.d[w9, 7, vgx4], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x87,0x35,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e93587 + +sdot za.d[w9, 7], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-00110101-10000111 +// CHECK-INST: sdot za.d[w9, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x87,0x35,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e93587 + diff --git a/llvm/test/MC/AArch64/SME2/udot.s b/llvm/test/MC/AArch64/SME2/udot.s --- a/llvm/test/MC/AArch64/SME2/udot.s +++ b/llvm/test/MC/AArch64/SME2/udot.s @@ -1461,3 +1461,1166 @@ // CHECK-ERROR: instruction requires: sme2 // CHECK-UNKNOWN: c1dba19f + +udot za.s[w8, 0, vgx2], {z0.b, z1.b}, z0.b // 11000001-00100000-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b +// CHECK-ENCODING: [0x10,0x14,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201410 + +udot za.s[w8, 0], {z0.b - z1.b}, z0.b // 11000001-00100000-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b +// CHECK-ENCODING: [0x10,0x14,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201410 + +udot za.s[w10, 5, vgx2], {z10.b, z11.b}, z5.b // 11000001-00100101-01010101-01010101 +// CHECK-INST: udot za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b +// CHECK-ENCODING: [0x55,0x55,0x25,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1255555 + +udot za.s[w10, 5], {z10.b - z11.b}, z5.b // 11000001-00100101-01010101-01010101 +// CHECK-INST: udot za.s[w10, 5, vgx2], { z10.b, z11.b }, z5.b +// CHECK-ENCODING: [0x55,0x55,0x25,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1255555 + +udot za.s[w11, 7, vgx2], {z13.b, z14.b}, z8.b // 11000001-00101000-01110101-10110111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b +// CHECK-ENCODING: [0xb7,0x75,0x28,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12875b7 + +udot za.s[w11, 7], {z13.b - z14.b}, z8.b // 11000001-00101000-01110101-10110111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z13.b, z14.b }, z8.b +// CHECK-ENCODING: [0xb7,0x75,0x28,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12875b7 + +udot za.s[w11, 7, vgx2], {z31.b, z0.b}, z15.b // 11000001-00101111-01110111-11110111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b +// CHECK-ENCODING: [0xf7,0x77,0x2f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12f77f7 + +udot za.s[w11, 7], {z31.b - z0.b}, z15.b // 11000001-00101111-01110111-11110111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b +// CHECK-ENCODING: [0xf7,0x77,0x2f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12f77f7 + +udot za.s[w8, 5, vgx2], {z17.b, z18.b}, z0.b // 11000001-00100000-00010110-00110101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b +// CHECK-ENCODING: [0x35,0x16,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201635 + +udot za.s[w8, 5], {z17.b - z18.b}, z0.b // 11000001-00100000-00010110-00110101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z17.b, z18.b }, z0.b +// CHECK-ENCODING: [0x35,0x16,0x20,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1201635 + +udot za.s[w8, 1, vgx2], {z1.b, z2.b}, z14.b // 11000001-00101110-00010100-00110001 +// CHECK-INST: udot za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b +// CHECK-ENCODING: [0x31,0x14,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e1431 + +udot za.s[w8, 1], {z1.b - z2.b}, z14.b // 11000001-00101110-00010100-00110001 +// CHECK-INST: udot za.s[w8, 1, vgx2], { z1.b, z2.b }, z14.b +// CHECK-ENCODING: [0x31,0x14,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e1431 + +udot za.s[w10, 0, vgx2], {z19.b, z20.b}, z4.b // 11000001-00100100-01010110-01110000 +// CHECK-INST: udot za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b +// CHECK-ENCODING: [0x70,0x56,0x24,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1245670 + +udot za.s[w10, 0], {z19.b - z20.b}, z4.b // 11000001-00100100-01010110-01110000 +// CHECK-INST: udot za.s[w10, 0, vgx2], { z19.b, z20.b }, z4.b +// CHECK-ENCODING: [0x70,0x56,0x24,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1245670 + +udot za.s[w8, 0, vgx2], {z12.b, z13.b}, z2.b // 11000001-00100010-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b +// CHECK-ENCODING: [0x90,0x15,0x22,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1221590 + +udot za.s[w8, 0], {z12.b - z13.b}, z2.b // 11000001-00100010-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z12.b, z13.b }, z2.b +// CHECK-ENCODING: [0x90,0x15,0x22,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1221590 + +udot za.s[w10, 1, vgx2], {z1.b, z2.b}, z10.b // 11000001-00101010-01010100-00110001 +// CHECK-INST: udot za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b +// CHECK-ENCODING: [0x31,0x54,0x2a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12a5431 + +udot za.s[w10, 1], {z1.b - z2.b}, z10.b // 11000001-00101010-01010100-00110001 +// CHECK-INST: udot za.s[w10, 1, vgx2], { z1.b, z2.b }, z10.b +// CHECK-ENCODING: [0x31,0x54,0x2a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12a5431 + +udot za.s[w8, 5, vgx2], {z22.b, z23.b}, z14.b // 11000001-00101110-00010110-11010101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b +// CHECK-ENCODING: [0xd5,0x16,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e16d5 + +udot za.s[w8, 5], {z22.b - z23.b}, z14.b // 11000001-00101110-00010110-11010101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z22.b, z23.b }, z14.b +// CHECK-ENCODING: [0xd5,0x16,0x2e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12e16d5 + +udot za.s[w11, 2, vgx2], {z9.b, z10.b}, z1.b // 11000001-00100001-01110101-00110010 +// CHECK-INST: udot za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b +// CHECK-ENCODING: [0x32,0x75,0x21,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1217532 + +udot za.s[w11, 2], {z9.b - z10.b}, z1.b // 11000001-00100001-01110101-00110010 +// CHECK-INST: udot za.s[w11, 2, vgx2], { z9.b, z10.b }, z1.b +// CHECK-ENCODING: [0x32,0x75,0x21,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1217532 + +udot za.s[w9, 7, vgx2], {z12.b, z13.b}, z11.b // 11000001-00101011-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b +// CHECK-ENCODING: [0x97,0x35,0x2b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12b3597 + +udot za.s[w9, 7], {z12.b - z13.b}, z11.b // 11000001-00101011-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx2], { z12.b, z13.b }, z11.b +// CHECK-ENCODING: [0x97,0x35,0x2b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c12b3597 + +udot za.s[w8, 0, vgx2], {z0.b, z1.b}, {z0.b, z1.b} // 11000001-10100000-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x10,0x14,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a01410 + +udot za.s[w8, 0], {z0.b - z1.b}, {z0.b - z1.b} // 11000001-10100000-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x10,0x14,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a01410 + +udot za.s[w10, 5, vgx2], {z10.b, z11.b}, {z20.b, z21.b} // 11000001-10110100-01010101-01010101 +// CHECK-INST: udot za.s[w10, 5, vgx2], { z10.b, z11.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x55,0x55,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45555 + +udot za.s[w10, 5], {z10.b - z11.b}, {z20.b - z21.b} // 11000001-10110100-01010101-01010101 +// CHECK-INST: udot za.s[w10, 5, vgx2], { z10.b, z11.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x55,0x55,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45555 + +udot za.s[w11, 7, vgx2], {z12.b, z13.b}, {z8.b, z9.b} // 11000001-10101000-01110101-10010111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z12.b, z13.b }, { z8.b, z9.b } +// CHECK-ENCODING: [0x97,0x75,0xa8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a87597 + +udot za.s[w11, 7], {z12.b - z13.b}, {z8.b - z9.b} // 11000001-10101000-01110101-10010111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z12.b, z13.b }, { z8.b, z9.b } +// CHECK-ENCODING: [0x97,0x75,0xa8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a87597 + +udot za.s[w11, 7, vgx2], {z30.b, z31.b}, {z30.b, z31.b} // 11000001-10111110-01110111-11010111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xd7,0x77,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be77d7 + +udot za.s[w11, 7], {z30.b - z31.b}, {z30.b - z31.b} // 11000001-10111110-01110111-11010111 +// CHECK-INST: udot za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xd7,0x77,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be77d7 + +udot za.s[w8, 5, vgx2], {z16.b, z17.b}, {z16.b, z17.b} // 11000001-10110000-00010110-00010101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z16.b, z17.b }, { z16.b, z17.b } +// CHECK-ENCODING: [0x15,0x16,0xb0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b01615 + +udot za.s[w8, 5], {z16.b - z17.b}, {z16.b - z17.b} // 11000001-10110000-00010110-00010101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z16.b, z17.b }, { z16.b, z17.b } +// CHECK-ENCODING: [0x15,0x16,0xb0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b01615 + +udot za.s[w8, 1, vgx2], {z0.b, z1.b}, {z30.b, z31.b} // 11000001-10111110-00010100-00010001 +// CHECK-INST: udot za.s[w8, 1, vgx2], { z0.b, z1.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0x11,0x14,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be1411 + +udot za.s[w8, 1], {z0.b - z1.b}, {z30.b - z31.b} // 11000001-10111110-00010100-00010001 +// CHECK-INST: udot za.s[w8, 1, vgx2], { z0.b, z1.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0x11,0x14,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be1411 + +udot za.s[w10, 0, vgx2], {z18.b, z19.b}, {z20.b, z21.b} // 11000001-10110100-01010110-01010000 +// CHECK-INST: udot za.s[w10, 0, vgx2], { z18.b, z19.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x50,0x56,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45650 + +udot za.s[w10, 0], {z18.b - z19.b}, {z20.b - z21.b} // 11000001-10110100-01010110-01010000 +// CHECK-INST: udot za.s[w10, 0, vgx2], { z18.b, z19.b }, { z20.b, z21.b } +// CHECK-ENCODING: [0x50,0x56,0xb4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b45650 + +udot za.s[w8, 0, vgx2], {z12.b, z13.b}, {z2.b, z3.b} // 11000001-10100010-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z12.b, z13.b }, { z2.b, z3.b } +// CHECK-ENCODING: [0x90,0x15,0xa2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a21590 + +udot za.s[w8, 0], {z12.b - z13.b}, {z2.b - z3.b} // 11000001-10100010-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx2], { z12.b, z13.b }, { z2.b, z3.b } +// CHECK-ENCODING: [0x90,0x15,0xa2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a21590 + +udot za.s[w10, 1, vgx2], {z0.b, z1.b}, {z26.b, z27.b} // 11000001-10111010-01010100-00010001 +// CHECK-INST: udot za.s[w10, 1, vgx2], { z0.b, z1.b }, { z26.b, z27.b } +// CHECK-ENCODING: [0x11,0x54,0xba,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ba5411 + +udot za.s[w10, 1], {z0.b - z1.b}, {z26.b - z27.b} // 11000001-10111010-01010100-00010001 +// CHECK-INST: udot za.s[w10, 1, vgx2], { z0.b, z1.b }, { z26.b, z27.b } +// CHECK-ENCODING: [0x11,0x54,0xba,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ba5411 + +udot za.s[w8, 5, vgx2], {z22.b, z23.b}, {z30.b, z31.b} // 11000001-10111110-00010110-11010101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z22.b, z23.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xd5,0x16,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be16d5 + +udot za.s[w8, 5], {z22.b - z23.b}, {z30.b - z31.b} // 11000001-10111110-00010110-11010101 +// CHECK-INST: udot za.s[w8, 5, vgx2], { z22.b, z23.b }, { z30.b, z31.b } +// CHECK-ENCODING: [0xd5,0x16,0xbe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1be16d5 + +udot za.s[w11, 2, vgx2], {z8.b, z9.b}, {z0.b, z1.b} // 11000001-10100000-01110101-00010010 +// CHECK-INST: udot za.s[w11, 2, vgx2], { z8.b, z9.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x12,0x75,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a07512 + +udot za.s[w11, 2], {z8.b - z9.b}, {z0.b - z1.b} // 11000001-10100000-01110101-00010010 +// CHECK-INST: udot za.s[w11, 2, vgx2], { z8.b, z9.b }, { z0.b, z1.b } +// CHECK-ENCODING: [0x12,0x75,0xa0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a07512 + +udot za.s[w9, 7, vgx2], {z12.b, z13.b}, {z10.b, z11.b} // 11000001-10101010-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx2], { z12.b, z13.b }, { z10.b, z11.b } +// CHECK-ENCODING: [0x97,0x35,0xaa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1aa3597 + +udot za.s[w9, 7], {z12.b - z13.b}, {z10.b - z11.b} // 11000001-10101010-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx2], { z12.b, z13.b }, { z10.b, z11.b } +// CHECK-ENCODING: [0x97,0x35,0xaa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1aa3597 + + +udot za.d[w8, 0, vgx2], {z0.h, z1.h}, z0.h // 11000001-01100000-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z0.h, z1.h }, z0.h +// CHECK-ENCODING: [0x10,0x14,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601410 + +udot za.d[w8, 0], {z0.h - z1.h}, z0.h // 11000001-01100000-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z0.h, z1.h }, z0.h +// CHECK-ENCODING: [0x10,0x14,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601410 + +udot za.d[w10, 5, vgx2], {z10.h, z11.h}, z5.h // 11000001-01100101-01010101-01010101 +// CHECK-INST: udot za.d[w10, 5, vgx2], { z10.h, z11.h }, z5.h +// CHECK-ENCODING: [0x55,0x55,0x65,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1655555 + +udot za.d[w10, 5], {z10.h - z11.h}, z5.h // 11000001-01100101-01010101-01010101 +// CHECK-INST: udot za.d[w10, 5, vgx2], { z10.h, z11.h }, z5.h +// CHECK-ENCODING: [0x55,0x55,0x65,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1655555 + +udot za.d[w11, 7, vgx2], {z13.h, z14.h}, z8.h // 11000001-01101000-01110101-10110111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z13.h, z14.h }, z8.h +// CHECK-ENCODING: [0xb7,0x75,0x68,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16875b7 + +udot za.d[w11, 7], {z13.h - z14.h}, z8.h // 11000001-01101000-01110101-10110111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z13.h, z14.h }, z8.h +// CHECK-ENCODING: [0xb7,0x75,0x68,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16875b7 + +udot za.d[w11, 7, vgx2], {z31.h, z0.h}, z15.h // 11000001-01101111-01110111-11110111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z31.h, z0.h }, z15.h +// CHECK-ENCODING: [0xf7,0x77,0x6f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16f77f7 + +udot za.d[w11, 7], {z31.h - z0.h}, z15.h // 11000001-01101111-01110111-11110111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z31.h, z0.h }, z15.h +// CHECK-ENCODING: [0xf7,0x77,0x6f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16f77f7 + +udot za.d[w8, 5, vgx2], {z17.h, z18.h}, z0.h // 11000001-01100000-00010110-00110101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z17.h, z18.h }, z0.h +// CHECK-ENCODING: [0x35,0x16,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601635 + +udot za.d[w8, 5], {z17.h - z18.h}, z0.h // 11000001-01100000-00010110-00110101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z17.h, z18.h }, z0.h +// CHECK-ENCODING: [0x35,0x16,0x60,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1601635 + +udot za.d[w8, 1, vgx2], {z1.h, z2.h}, z14.h // 11000001-01101110-00010100-00110001 +// CHECK-INST: udot za.d[w8, 1, vgx2], { z1.h, z2.h }, z14.h +// CHECK-ENCODING: [0x31,0x14,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e1431 + +udot za.d[w8, 1], {z1.h - z2.h}, z14.h // 11000001-01101110-00010100-00110001 +// CHECK-INST: udot za.d[w8, 1, vgx2], { z1.h, z2.h }, z14.h +// CHECK-ENCODING: [0x31,0x14,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e1431 + +udot za.d[w10, 0, vgx2], {z19.h, z20.h}, z4.h // 11000001-01100100-01010110-01110000 +// CHECK-INST: udot za.d[w10, 0, vgx2], { z19.h, z20.h }, z4.h +// CHECK-ENCODING: [0x70,0x56,0x64,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1645670 + +udot za.d[w10, 0], {z19.h - z20.h}, z4.h // 11000001-01100100-01010110-01110000 +// CHECK-INST: udot za.d[w10, 0, vgx2], { z19.h, z20.h }, z4.h +// CHECK-ENCODING: [0x70,0x56,0x64,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1645670 + +udot za.d[w8, 0, vgx2], {z12.h, z13.h}, z2.h // 11000001-01100010-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z12.h, z13.h }, z2.h +// CHECK-ENCODING: [0x90,0x15,0x62,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1621590 + +udot za.d[w8, 0], {z12.h - z13.h}, z2.h // 11000001-01100010-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z12.h, z13.h }, z2.h +// CHECK-ENCODING: [0x90,0x15,0x62,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1621590 + +udot za.d[w10, 1, vgx2], {z1.h, z2.h}, z10.h // 11000001-01101010-01010100-00110001 +// CHECK-INST: udot za.d[w10, 1, vgx2], { z1.h, z2.h }, z10.h +// CHECK-ENCODING: [0x31,0x54,0x6a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16a5431 + +udot za.d[w10, 1], {z1.h - z2.h}, z10.h // 11000001-01101010-01010100-00110001 +// CHECK-INST: udot za.d[w10, 1, vgx2], { z1.h, z2.h }, z10.h +// CHECK-ENCODING: [0x31,0x54,0x6a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16a5431 + +udot za.d[w8, 5, vgx2], {z22.h, z23.h}, z14.h // 11000001-01101110-00010110-11010101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z22.h, z23.h }, z14.h +// CHECK-ENCODING: [0xd5,0x16,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e16d5 + +udot za.d[w8, 5], {z22.h - z23.h}, z14.h // 11000001-01101110-00010110-11010101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z22.h, z23.h }, z14.h +// CHECK-ENCODING: [0xd5,0x16,0x6e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16e16d5 + +udot za.d[w11, 2, vgx2], {z9.h, z10.h}, z1.h // 11000001-01100001-01110101-00110010 +// CHECK-INST: udot za.d[w11, 2, vgx2], { z9.h, z10.h }, z1.h +// CHECK-ENCODING: [0x32,0x75,0x61,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1617532 + +udot za.d[w11, 2], {z9.h - z10.h}, z1.h // 11000001-01100001-01110101-00110010 +// CHECK-INST: udot za.d[w11, 2, vgx2], { z9.h, z10.h }, z1.h +// CHECK-ENCODING: [0x32,0x75,0x61,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1617532 + +udot za.d[w9, 7, vgx2], {z12.h, z13.h}, z11.h // 11000001-01101011-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx2], { z12.h, z13.h }, z11.h +// CHECK-ENCODING: [0x97,0x35,0x6b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16b3597 + +udot za.d[w9, 7], {z12.h - z13.h}, z11.h // 11000001-01101011-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx2], { z12.h, z13.h }, z11.h +// CHECK-ENCODING: [0x97,0x35,0x6b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16b3597 + +udot za.d[w9, 7], {z12.h - z13.h}, z11.h // 11000001-01101011-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx2], { z12.h, z13.h }, z11.h +// CHECK-ENCODING: [0x97,0x35,0x6b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c16b3597 + + +udot za.d[w8, 0, vgx2], {z0.h, z1.h}, {z0.h, z1.h} // 11000001-11100000-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z0.h, z1.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x10,0x14,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e01410 + +udot za.d[w8, 0], {z0.h - z1.h}, {z0.h - z1.h} // 11000001-11100000-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z0.h, z1.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x10,0x14,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e01410 + +udot za.d[w10, 5, vgx2], {z10.h, z11.h}, {z20.h, z21.h} // 11000001-11110100-01010101-01010101 +// CHECK-INST: udot za.d[w10, 5, vgx2], { z10.h, z11.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x55,0x55,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45555 + +udot za.d[w10, 5], {z10.h - z11.h}, {z20.h - z21.h} // 11000001-11110100-01010101-01010101 +// CHECK-INST: udot za.d[w10, 5, vgx2], { z10.h, z11.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x55,0x55,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45555 + +udot za.d[w11, 7, vgx2], {z12.h, z13.h}, {z8.h, z9.h} // 11000001-11101000-01110101-10010111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z12.h, z13.h }, { z8.h, z9.h } +// CHECK-ENCODING: [0x97,0x75,0xe8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e87597 + +udot za.d[w11, 7], {z12.h - z13.h}, {z8.h - z9.h} // 11000001-11101000-01110101-10010111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z12.h, z13.h }, { z8.h, z9.h } +// CHECK-ENCODING: [0x97,0x75,0xe8,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e87597 + +udot za.d[w11, 7, vgx2], {z30.h, z31.h}, {z30.h, z31.h} // 11000001-11111110-01110111-11010111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z30.h, z31.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xd7,0x77,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe77d7 + +udot za.d[w11, 7], {z30.h - z31.h}, {z30.h - z31.h} // 11000001-11111110-01110111-11010111 +// CHECK-INST: udot za.d[w11, 7, vgx2], { z30.h, z31.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xd7,0x77,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe77d7 + +udot za.d[w8, 5, vgx2], {z16.h, z17.h}, {z16.h, z17.h} // 11000001-11110000-00010110-00010101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z16.h, z17.h }, { z16.h, z17.h } +// CHECK-ENCODING: [0x15,0x16,0xf0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f01615 + +udot za.d[w8, 5], {z16.h - z17.h}, {z16.h - z17.h} // 11000001-11110000-00010110-00010101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z16.h, z17.h }, { z16.h, z17.h } +// CHECK-ENCODING: [0x15,0x16,0xf0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f01615 + +udot za.d[w8, 1, vgx2], {z0.h, z1.h}, {z30.h, z31.h} // 11000001-11111110-00010100-00010001 +// CHECK-INST: udot za.d[w8, 1, vgx2], { z0.h, z1.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0x11,0x14,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe1411 + +udot za.d[w8, 1], {z0.h - z1.h}, {z30.h - z31.h} // 11000001-11111110-00010100-00010001 +// CHECK-INST: udot za.d[w8, 1, vgx2], { z0.h, z1.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0x11,0x14,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe1411 + +udot za.d[w10, 0, vgx2], {z18.h, z19.h}, {z20.h, z21.h} // 11000001-11110100-01010110-01010000 +// CHECK-INST: udot za.d[w10, 0, vgx2], { z18.h, z19.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x50,0x56,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45650 + +udot za.d[w10, 0], {z18.h - z19.h}, {z20.h - z21.h} // 11000001-11110100-01010110-01010000 +// CHECK-INST: udot za.d[w10, 0, vgx2], { z18.h, z19.h }, { z20.h, z21.h } +// CHECK-ENCODING: [0x50,0x56,0xf4,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f45650 + +udot za.d[w8, 0, vgx2], {z12.h, z13.h}, {z2.h, z3.h} // 11000001-11100010-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z12.h, z13.h }, { z2.h, z3.h } +// CHECK-ENCODING: [0x90,0x15,0xe2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e21590 + +udot za.d[w8, 0], {z12.h - z13.h}, {z2.h - z3.h} // 11000001-11100010-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx2], { z12.h, z13.h }, { z2.h, z3.h } +// CHECK-ENCODING: [0x90,0x15,0xe2,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e21590 + +udot za.d[w10, 1, vgx2], {z0.h, z1.h}, {z26.h, z27.h} // 11000001-11111010-01010100-00010001 +// CHECK-INST: udot za.d[w10, 1, vgx2], { z0.h, z1.h }, { z26.h, z27.h } +// CHECK-ENCODING: [0x11,0x54,0xfa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fa5411 + +udot za.d[w10, 1], {z0.h - z1.h}, {z26.h - z27.h} // 11000001-11111010-01010100-00010001 +// CHECK-INST: udot za.d[w10, 1, vgx2], { z0.h, z1.h }, { z26.h, z27.h } +// CHECK-ENCODING: [0x11,0x54,0xfa,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fa5411 + +udot za.d[w8, 5, vgx2], {z22.h, z23.h}, {z30.h, z31.h} // 11000001-11111110-00010110-11010101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z22.h, z23.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xd5,0x16,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe16d5 + +udot za.d[w8, 5], {z22.h - z23.h}, {z30.h - z31.h} // 11000001-11111110-00010110-11010101 +// CHECK-INST: udot za.d[w8, 5, vgx2], { z22.h, z23.h }, { z30.h, z31.h } +// CHECK-ENCODING: [0xd5,0x16,0xfe,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fe16d5 + +udot za.d[w11, 2, vgx2], {z8.h, z9.h}, {z0.h, z1.h} // 11000001-11100000-01110101-00010010 +// CHECK-INST: udot za.d[w11, 2, vgx2], { z8.h, z9.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x12,0x75,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e07512 + +udot za.d[w11, 2], {z8.h - z9.h}, {z0.h - z1.h} // 11000001-11100000-01110101-00010010 +// CHECK-INST: udot za.d[w11, 2, vgx2], { z8.h, z9.h }, { z0.h, z1.h } +// CHECK-ENCODING: [0x12,0x75,0xe0,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e07512 + +udot za.d[w9, 7, vgx2], {z12.h, z13.h}, {z10.h, z11.h} // 11000001-11101010-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx2], { z12.h, z13.h }, { z10.h, z11.h } +// CHECK-ENCODING: [0x97,0x35,0xea,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ea3597 + +udot za.d[w9, 7], {z12.h - z13.h}, {z10.h - z11.h} // 11000001-11101010-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx2], { z12.h, z13.h }, { z10.h, z11.h } +// CHECK-ENCODING: [0x97,0x35,0xea,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1ea3597 + + +udot za.s[w8, 0, vgx4], {z0.b - z3.b}, z0.b // 11000001-00110000-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b +// CHECK-ENCODING: [0x10,0x14,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301410 + +udot za.s[w8, 0], {z0.b - z3.b}, z0.b // 11000001-00110000-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b +// CHECK-ENCODING: [0x10,0x14,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301410 + +udot za.s[w10, 5, vgx4], {z10.b - z13.b}, z5.b // 11000001-00110101-01010101-01010101 +// CHECK-INST: udot za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b +// CHECK-ENCODING: [0x55,0x55,0x35,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1355555 + +udot za.s[w10, 5], {z10.b - z13.b}, z5.b // 11000001-00110101-01010101-01010101 +// CHECK-INST: udot za.s[w10, 5, vgx4], { z10.b - z13.b }, z5.b +// CHECK-ENCODING: [0x55,0x55,0x35,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1355555 + +udot za.s[w11, 7, vgx4], {z13.b - z16.b}, z8.b // 11000001-00111000-01110101-10110111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b +// CHECK-ENCODING: [0xb7,0x75,0x38,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13875b7 + +udot za.s[w11, 7], {z13.b - z16.b}, z8.b // 11000001-00111000-01110101-10110111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z13.b - z16.b }, z8.b +// CHECK-ENCODING: [0xb7,0x75,0x38,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13875b7 + +udot za.s[w11, 7, vgx4], {z31.b - z2.b}, z15.b // 11000001-00111111-01110111-11110111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b +// CHECK-ENCODING: [0xf7,0x77,0x3f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13f77f7 + +udot za.s[w11, 7], {z31.b - z2.b}, z15.b // 11000001-00111111-01110111-11110111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b +// CHECK-ENCODING: [0xf7,0x77,0x3f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13f77f7 + +udot za.s[w8, 5, vgx4], {z17.b - z20.b}, z0.b // 11000001-00110000-00010110-00110101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b +// CHECK-ENCODING: [0x35,0x16,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301635 + +udot za.s[w8, 5], {z17.b - z20.b}, z0.b // 11000001-00110000-00010110-00110101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z17.b - z20.b }, z0.b +// CHECK-ENCODING: [0x35,0x16,0x30,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1301635 + +udot za.s[w8, 1, vgx4], {z1.b - z4.b}, z14.b // 11000001-00111110-00010100-00110001 +// CHECK-INST: udot za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b +// CHECK-ENCODING: [0x31,0x14,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e1431 + +udot za.s[w8, 1], {z1.b - z4.b}, z14.b // 11000001-00111110-00010100-00110001 +// CHECK-INST: udot za.s[w8, 1, vgx4], { z1.b - z4.b }, z14.b +// CHECK-ENCODING: [0x31,0x14,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e1431 + +udot za.s[w10, 0, vgx4], {z19.b - z22.b}, z4.b // 11000001-00110100-01010110-01110000 +// CHECK-INST: udot za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b +// CHECK-ENCODING: [0x70,0x56,0x34,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1345670 + +udot za.s[w10, 0], {z19.b - z22.b}, z4.b // 11000001-00110100-01010110-01110000 +// CHECK-INST: udot za.s[w10, 0, vgx4], { z19.b - z22.b }, z4.b +// CHECK-ENCODING: [0x70,0x56,0x34,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1345670 + +udot za.s[w8, 0, vgx4], {z12.b - z15.b}, z2.b // 11000001-00110010-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b +// CHECK-ENCODING: [0x90,0x15,0x32,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1321590 + +udot za.s[w8, 0], {z12.b - z15.b}, z2.b // 11000001-00110010-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z12.b - z15.b }, z2.b +// CHECK-ENCODING: [0x90,0x15,0x32,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1321590 + +udot za.s[w10, 1, vgx4], {z1.b - z4.b}, z10.b // 11000001-00111010-01010100-00110001 +// CHECK-INST: udot za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b +// CHECK-ENCODING: [0x31,0x54,0x3a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13a5431 + +udot za.s[w10, 1], {z1.b - z4.b}, z10.b // 11000001-00111010-01010100-00110001 +// CHECK-INST: udot za.s[w10, 1, vgx4], { z1.b - z4.b }, z10.b +// CHECK-ENCODING: [0x31,0x54,0x3a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13a5431 + +udot za.s[w8, 5, vgx4], {z22.b - z25.b}, z14.b // 11000001-00111110-00010110-11010101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b +// CHECK-ENCODING: [0xd5,0x16,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e16d5 + +udot za.s[w8, 5], {z22.b - z25.b}, z14.b // 11000001-00111110-00010110-11010101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z22.b - z25.b }, z14.b +// CHECK-ENCODING: [0xd5,0x16,0x3e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13e16d5 + +udot za.s[w11, 2, vgx4], {z9.b - z12.b}, z1.b // 11000001-00110001-01110101-00110010 +// CHECK-INST: udot za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b +// CHECK-ENCODING: [0x32,0x75,0x31,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1317532 + +udot za.s[w11, 2], {z9.b - z12.b}, z1.b // 11000001-00110001-01110101-00110010 +// CHECK-INST: udot za.s[w11, 2, vgx4], { z9.b - z12.b }, z1.b +// CHECK-ENCODING: [0x32,0x75,0x31,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1317532 + +udot za.s[w9, 7, vgx4], {z12.b - z15.b}, z11.b // 11000001-00111011-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b +// CHECK-ENCODING: [0x97,0x35,0x3b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13b3597 + +udot za.s[w9, 7], {z12.b - z15.b}, z11.b // 11000001-00111011-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx4], { z12.b - z15.b }, z11.b +// CHECK-ENCODING: [0x97,0x35,0x3b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c13b3597 + + +udot za.s[w8, 0, vgx4], {z0.b - z3.b}, {z0.b - z3.b} // 11000001-10100001-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x10,0x14,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11410 + +udot za.s[w8, 0], {z0.b - z3.b}, {z0.b - z3.b} // 11000001-10100001-00010100-00010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x10,0x14,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11410 + +udot za.s[w10, 5, vgx4], {z8.b - z11.b}, {z20.b - z23.b} // 11000001-10110101-01010101-00010101 +// CHECK-INST: udot za.s[w10, 5, vgx4], { z8.b - z11.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x15,0x55,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55515 + +udot za.s[w10, 5], {z8.b - z11.b}, {z20.b - z23.b} // 11000001-10110101-01010101-00010101 +// CHECK-INST: udot za.s[w10, 5, vgx4], { z8.b - z11.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x15,0x55,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55515 + +udot za.s[w11, 7, vgx4], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-01110101-10010111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x97,0x75,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a97597 + +udot za.s[w11, 7], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-01110101-10010111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x97,0x75,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a97597 + +udot za.s[w11, 7, vgx4], {z28.b - z31.b}, {z28.b - z31.b} // 11000001-10111101-01110111-10010111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x97,0x77,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd7797 + +udot za.s[w11, 7], {z28.b - z31.b}, {z28.b - z31.b} // 11000001-10111101-01110111-10010111 +// CHECK-INST: udot za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x97,0x77,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd7797 + +udot za.s[w8, 5, vgx4], {z16.b - z19.b}, {z16.b - z19.b} // 11000001-10110001-00010110-00010101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z16.b - z19.b }, { z16.b - z19.b } +// CHECK-ENCODING: [0x15,0x16,0xb1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b11615 + +udot za.s[w8, 5], {z16.b - z19.b}, {z16.b - z19.b} // 11000001-10110001-00010110-00010101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z16.b - z19.b }, { z16.b - z19.b } +// CHECK-ENCODING: [0x15,0x16,0xb1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b11615 + +udot za.s[w8, 1, vgx4], {z0.b - z3.b}, {z28.b - z31.b} // 11000001-10111101-00010100-00010001 +// CHECK-INST: udot za.s[w8, 1, vgx4], { z0.b - z3.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x11,0x14,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1411 + +udot za.s[w8, 1], {z0.b - z3.b}, {z28.b - z31.b} // 11000001-10111101-00010100-00010001 +// CHECK-INST: udot za.s[w8, 1, vgx4], { z0.b - z3.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x11,0x14,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1411 + +udot za.s[w10, 0, vgx4], {z16.b - z19.b}, {z20.b - z23.b} // 11000001-10110101-01010110-00010000 +// CHECK-INST: udot za.s[w10, 0, vgx4], { z16.b - z19.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x10,0x56,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55610 + +udot za.s[w10, 0], {z16.b - z19.b}, {z20.b - z23.b} // 11000001-10110101-01010110-00010000 +// CHECK-INST: udot za.s[w10, 0, vgx4], { z16.b - z19.b }, { z20.b - z23.b } +// CHECK-ENCODING: [0x10,0x56,0xb5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b55610 + +udot za.s[w8, 0, vgx4], {z12.b - z15.b}, {z0.b - z3.b} // 11000001-10100001-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z12.b - z15.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x90,0x15,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11590 +udot za.s[w8, 0], {z12.b - z15.b}, {z0.b - z3.b} // 11000001-10100001-00010101-10010000 +// CHECK-INST: udot za.s[w8, 0, vgx4], { z12.b - z15.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x90,0x15,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a11590 + +udot za.s[w10, 1, vgx4], {z0.b - z3.b}, {z24.b - z27.b} // 11000001-10111001-01010100-00010001 +// CHECK-INST: udot za.s[w10, 1, vgx4], { z0.b - z3.b }, { z24.b - z27.b } +// CHECK-ENCODING: [0x11,0x54,0xb9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b95411 + +udot za.s[w10, 1], {z0.b - z3.b}, {z24.b - z27.b} // 11000001-10111001-01010100-00010001 +// CHECK-INST: udot za.s[w10, 1, vgx4], { z0.b - z3.b }, { z24.b - z27.b } +// CHECK-ENCODING: [0x11,0x54,0xb9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1b95411 + +udot za.s[w8, 5, vgx4], {z20.b - z23.b}, {z28.b - z31.b} // 11000001-10111101-00010110-10010101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z20.b - z23.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x95,0x16,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1695 + +udot za.s[w8, 5], {z20.b - z23.b}, {z28.b - z31.b} // 11000001-10111101-00010110-10010101 +// CHECK-INST: udot za.s[w8, 5, vgx4], { z20.b - z23.b }, { z28.b - z31.b } +// CHECK-ENCODING: [0x95,0x16,0xbd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1bd1695 + +udot za.s[w11, 2, vgx4], {z8.b - z11.b}, {z0.b - z3.b} // 11000001-10100001-01110101-00010010 +// CHECK-INST: udot za.s[w11, 2, vgx4], { z8.b - z11.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x12,0x75,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a17512 + +udot za.s[w11, 2], {z8.b - z11.b}, {z0.b - z3.b} // 11000001-10100001-01110101-00010010 +// CHECK-INST: udot za.s[w11, 2, vgx4], { z8.b - z11.b }, { z0.b - z3.b } +// CHECK-ENCODING: [0x12,0x75,0xa1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a17512 + +udot za.s[w9, 7, vgx4], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x97,0x35,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a93597 + +udot za.s[w9, 7], {z12.b - z15.b}, {z8.b - z11.b} // 11000001-10101001-00110101-10010111 +// CHECK-INST: udot za.s[w9, 7, vgx4], { z12.b - z15.b }, { z8.b - z11.b } +// CHECK-ENCODING: [0x97,0x35,0xa9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1a93597 + + +udot za.d[w8, 0, vgx4], {z0.h - z3.h}, z0.h // 11000001-01110000-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h +// CHECK-ENCODING: [0x10,0x14,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701410 + +udot za.d[w8, 0], {z0.h - z3.h}, z0.h // 11000001-01110000-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z0.h - z3.h }, z0.h +// CHECK-ENCODING: [0x10,0x14,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701410 + +udot za.d[w10, 5, vgx4], {z10.h - z13.h}, z5.h // 11000001-01110101-01010101-01010101 +// CHECK-INST: udot za.d[w10, 5, vgx4], { z10.h - z13.h }, z5.h +// CHECK-ENCODING: [0x55,0x55,0x75,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1755555 + +udot za.d[w10, 5], {z10.h - z13.h}, z5.h // 11000001-01110101-01010101-01010101 +// CHECK-INST: udot za.d[w10, 5, vgx4], { z10.h - z13.h }, z5.h +// CHECK-ENCODING: [0x55,0x55,0x75,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1755555 + +udot za.d[w11, 7, vgx4], {z13.h - z16.h}, z8.h // 11000001-01111000-01110101-10110111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z13.h - z16.h }, z8.h +// CHECK-ENCODING: [0xb7,0x75,0x78,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17875b7 + +udot za.d[w11, 7], {z13.h - z16.h}, z8.h // 11000001-01111000-01110101-10110111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z13.h - z16.h }, z8.h +// CHECK-ENCODING: [0xb7,0x75,0x78,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17875b7 + +udot za.d[w11, 7, vgx4], {z31.h - z2.h}, z15.h // 11000001-01111111-01110111-11110111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z31.h, z0.h, z1.h, z2.h }, z15.h +// CHECK-ENCODING: [0xf7,0x77,0x7f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17f77f7 + +udot za.d[w11, 7], {z31.h - z2.h}, z15.h // 11000001-01111111-01110111-11110111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z31.h, z0.h, z1.h, z2.h }, z15.h +// CHECK-ENCODING: [0xf7,0x77,0x7f,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17f77f7 + +udot za.d[w8, 5, vgx4], {z17.h - z20.h}, z0.h // 11000001-01110000-00010110-00110101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z17.h - z20.h }, z0.h +// CHECK-ENCODING: [0x35,0x16,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701635 + +udot za.d[w8, 5], {z17.h - z20.h}, z0.h // 11000001-01110000-00010110-00110101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z17.h - z20.h }, z0.h +// CHECK-ENCODING: [0x35,0x16,0x70,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1701635 + +udot za.d[w8, 1, vgx4], {z1.h - z4.h}, z14.h // 11000001-01111110-00010100-00110001 +// CHECK-INST: udot za.d[w8, 1, vgx4], { z1.h - z4.h }, z14.h +// CHECK-ENCODING: [0x31,0x14,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e1431 + +udot za.d[w8, 1], {z1.h - z4.h}, z14.h // 11000001-01111110-00010100-00110001 +// CHECK-INST: udot za.d[w8, 1, vgx4], { z1.h - z4.h }, z14.h +// CHECK-ENCODING: [0x31,0x14,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e1431 + +udot za.d[w10, 0, vgx4], {z19.h - z22.h}, z4.h // 11000001-01110100-01010110-01110000 +// CHECK-INST: udot za.d[w10, 0, vgx4], { z19.h - z22.h }, z4.h +// CHECK-ENCODING: [0x70,0x56,0x74,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1745670 + +udot za.d[w10, 0], {z19.h - z22.h}, z4.h // 11000001-01110100-01010110-01110000 +// CHECK-INST: udot za.d[w10, 0, vgx4], { z19.h - z22.h }, z4.h +// CHECK-ENCODING: [0x70,0x56,0x74,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1745670 + +udot za.d[w8, 0, vgx4], {z12.h - z15.h}, z2.h // 11000001-01110010-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z12.h - z15.h }, z2.h +// CHECK-ENCODING: [0x90,0x15,0x72,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1721590 + +udot za.d[w8, 0], {z12.h - z15.h}, z2.h // 11000001-01110010-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z12.h - z15.h }, z2.h +// CHECK-ENCODING: [0x90,0x15,0x72,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1721590 + +udot za.d[w10, 1, vgx4], {z1.h - z4.h}, z10.h // 11000001-01111010-01010100-00110001 +// CHECK-INST: udot za.d[w10, 1, vgx4], { z1.h - z4.h }, z10.h +// CHECK-ENCODING: [0x31,0x54,0x7a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17a5431 + +udot za.d[w10, 1], {z1.h - z4.h}, z10.h // 11000001-01111010-01010100-00110001 +// CHECK-INST: udot za.d[w10, 1, vgx4], { z1.h - z4.h }, z10.h +// CHECK-ENCODING: [0x31,0x54,0x7a,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17a5431 + +udot za.d[w8, 5, vgx4], {z22.h - z25.h}, z14.h // 11000001-01111110-00010110-11010101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z22.h - z25.h }, z14.h +// CHECK-ENCODING: [0xd5,0x16,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e16d5 + +udot za.d[w8, 5], {z22.h - z25.h}, z14.h // 11000001-01111110-00010110-11010101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z22.h - z25.h }, z14.h +// CHECK-ENCODING: [0xd5,0x16,0x7e,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17e16d5 + +udot za.d[w11, 2, vgx4], {z9.h - z12.h}, z1.h // 11000001-01110001-01110101-00110010 +// CHECK-INST: udot za.d[w11, 2, vgx4], { z9.h - z12.h }, z1.h +// CHECK-ENCODING: [0x32,0x75,0x71,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1717532 + +udot za.d[w11, 2], {z9.h - z12.h}, z1.h // 11000001-01110001-01110101-00110010 +// CHECK-INST: udot za.d[w11, 2, vgx4], { z9.h - z12.h }, z1.h +// CHECK-ENCODING: [0x32,0x75,0x71,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1717532 + +udot za.d[w9, 7, vgx4], {z12.h - z15.h}, z11.h // 11000001-01111011-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx4], { z12.h - z15.h }, z11.h +// CHECK-ENCODING: [0x97,0x35,0x7b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17b3597 + +udot za.d[w9, 7], {z12.h - z15.h}, z11.h // 11000001-01111011-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx4], { z12.h - z15.h }, z11.h +// CHECK-ENCODING: [0x97,0x35,0x7b,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c17b3597 + +udot za.d[w8, 0, vgx4], {z0.h - z3.h}, {z0.h - z3.h} // 11000001-11100001-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z0.h - z3.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x10,0x14,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11410 + +udot za.d[w8, 0], {z0.h - z3.h}, {z0.h - z3.h} // 11000001-11100001-00010100-00010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z0.h - z3.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x10,0x14,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11410 + +udot za.d[w10, 5, vgx4], {z8.h - z11.h}, {z20.h - z23.h} // 11000001-11110101-01010101-00010101 +// CHECK-INST: udot za.d[w10, 5, vgx4], { z8.h - z11.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x15,0x55,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55515 + +udot za.d[w10, 5], {z8.h - z11.h}, {z20.h - z23.h} // 11000001-11110101-01010101-00010101 +// CHECK-INST: udot za.d[w10, 5, vgx4], { z8.h - z11.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x15,0x55,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55515 + +udot za.d[w11, 7, vgx4], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-01110101-10010111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x97,0x75,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e97597 + +udot za.d[w11, 7], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-01110101-10010111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x97,0x75,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e97597 + +udot za.d[w11, 7, vgx4], {z28.h - z31.h}, {z28.h - z31.h} // 11000001-11111101-01110111-10010111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z28.h - z31.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x97,0x77,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd7797 + +udot za.d[w11, 7], {z28.h - z31.h}, {z28.h - z31.h} // 11000001-11111101-01110111-10010111 +// CHECK-INST: udot za.d[w11, 7, vgx4], { z28.h - z31.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x97,0x77,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd7797 + +udot za.d[w8, 5, vgx4], {z16.h - z19.h}, {z16.h - z19.h} // 11000001-11110001-00010110-00010101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z16.h - z19.h }, { z16.h - z19.h } +// CHECK-ENCODING: [0x15,0x16,0xf1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f11615 + +udot za.d[w8, 5], {z16.h - z19.h}, {z16.h - z19.h} // 11000001-11110001-00010110-00010101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z16.h - z19.h }, { z16.h - z19.h } +// CHECK-ENCODING: [0x15,0x16,0xf1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f11615 + +udot za.d[w8, 1, vgx4], {z0.h - z3.h}, {z28.h - z31.h} // 11000001-11111101-00010100-00010001 +// CHECK-INST: udot za.d[w8, 1, vgx4], { z0.h - z3.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x11,0x14,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1411 + +udot za.d[w8, 1], {z0.h - z3.h}, {z28.h - z31.h} // 11000001-11111101-00010100-00010001 +// CHECK-INST: udot za.d[w8, 1, vgx4], { z0.h - z3.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x11,0x14,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1411 + +udot za.d[w10, 0, vgx4], {z16.h - z19.h}, {z20.h - z23.h} // 11000001-11110101-01010110-00010000 +// CHECK-INST: udot za.d[w10, 0, vgx4], { z16.h - z19.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x10,0x56,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55610 +udot za.d[w10, 0], {z16.h - z19.h}, {z20.h - z23.h} // 11000001-11110101-01010110-00010000 +// CHECK-INST: udot za.d[w10, 0, vgx4], { z16.h - z19.h }, { z20.h - z23.h } +// CHECK-ENCODING: [0x10,0x56,0xf5,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f55610 + +udot za.d[w8, 0, vgx4], {z12.h - z15.h}, {z0.h - z3.h} // 11000001-11100001-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z12.h - z15.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x90,0x15,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11590 + +udot za.d[w8, 0], {z12.h - z15.h}, {z0.h - z3.h} // 11000001-11100001-00010101-10010000 +// CHECK-INST: udot za.d[w8, 0, vgx4], { z12.h - z15.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x90,0x15,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e11590 + +udot za.d[w10, 1, vgx4], {z0.h - z3.h}, {z24.h - z27.h} // 11000001-11111001-01010100-00010001 +// CHECK-INST: udot za.d[w10, 1, vgx4], { z0.h - z3.h }, { z24.h - z27.h } +// CHECK-ENCODING: [0x11,0x54,0xf9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f95411 + +udot za.d[w10, 1], {z0.h - z3.h}, {z24.h - z27.h} // 11000001-11111001-01010100-00010001 +// CHECK-INST: udot za.d[w10, 1, vgx4], { z0.h - z3.h }, { z24.h - z27.h } +// CHECK-ENCODING: [0x11,0x54,0xf9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1f95411 + +udot za.d[w8, 5, vgx4], {z20.h - z23.h}, {z28.h - z31.h} // 11000001-11111101-00010110-10010101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z20.h - z23.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x95,0x16,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1695 + +udot za.d[w8, 5], {z20.h - z23.h}, {z28.h - z31.h} // 11000001-11111101-00010110-10010101 +// CHECK-INST: udot za.d[w8, 5, vgx4], { z20.h - z23.h }, { z28.h - z31.h } +// CHECK-ENCODING: [0x95,0x16,0xfd,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1fd1695 + +udot za.d[w11, 2, vgx4], {z8.h - z11.h}, {z0.h - z3.h} // 11000001-11100001-01110101-00010010 +// CHECK-INST: udot za.d[w11, 2, vgx4], { z8.h - z11.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x12,0x75,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e17512 + +udot za.d[w11, 2], {z8.h - z11.h}, {z0.h - z3.h} // 11000001-11100001-01110101-00010010 +// CHECK-INST: udot za.d[w11, 2, vgx4], { z8.h - z11.h }, { z0.h - z3.h } +// CHECK-ENCODING: [0x12,0x75,0xe1,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e17512 + +udot za.d[w9, 7, vgx4], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x97,0x35,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e93597 + +udot za.d[w9, 7], {z12.h - z15.h}, {z8.h - z11.h} // 11000001-11101001-00110101-10010111 +// CHECK-INST: udot za.d[w9, 7, vgx4], { z12.h - z15.h }, { z8.h - z11.h } +// CHECK-ENCODING: [0x97,0x35,0xe9,0xc1] +// CHECK-ERROR: instruction requires: sme2 +// CHECK-UNKNOWN: c1e93597 + +