test_cases:
  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "dotprod" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a55" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a65ae" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a75" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a76" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a77" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-a78" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-x1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-e1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "neoverse-n2" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "tsv110" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "cortex-r82" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "v8r" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1a" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x2e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x0e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.8b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x6e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0x94, 0x82, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.16b"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0xa2, 0x0f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.2s, v1.8b, v2.4b[1]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0xa2, 0x4f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "sdot v0.4s, v1.16b, v2.4b[3]"

  -
    input:
      bytes: [ 0x20, 0xe0, 0x82, 0x2f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "udot v0.2s, v1.8b, v2.4b[0]"

  -
    input:
      bytes: [ 0x20, 0xe8, 0x82, 0x6f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64", "ampere1b" ]
    expected:
      insns:
        -
          asm_text: "udot v0.4s, v1.16b, v2.4b[2]"
