test_cases:
  -
    input:
      bytes: [ 0x00, 0x30, 0x40, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal s0, h0, v0.h[0]"

  -
    input:
      bytes: [ 0x27, 0x30, 0x74, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal s7, h1, v4.h[3]"

  -
    input:
      bytes: [ 0x0b, 0x3a, 0x48, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal s11, h16, v8.h[4]"

  -
    input:
      bytes: [ 0xde, 0x3b, 0x7f, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal s30, h30, v15.h[7]"

  -
    input:
      bytes: [ 0x00, 0x30, 0x83, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal d0, s0, v3.s[0]"

  -
    input:
      bytes: [ 0xde, 0x3b, 0xbe, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal d30, s30, v30.s[3]"

  -
    input:
      bytes: [ 0x28, 0x31, 0xae, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlal d8, s9, v14.s[1]"

  -
    input:
      bytes: [ 0x21, 0x70, 0x41, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl s1, h1, v1.h[0]"

  -
    input:
      bytes: [ 0x48, 0x70, 0x55, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl s8, h2, v5.h[1]"

  -
    input:
      bytes: [ 0xac, 0x71, 0x6e, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl s12, h13, v14.h[2]"

  -
    input:
      bytes: [ 0x9d, 0x7b, 0x7b, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl s29, h28, v11.h[7]"

  -
    input:
      bytes: [ 0x21, 0x70, 0x8d, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl d1, s1, v13.s[0]"

  -
    input:
      bytes: [ 0xff, 0x7b, 0x9f, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl d31, s31, v31.s[2]"

  -
    input:
      bytes: [ 0x50, 0x7a, 0xbc, 0x5f ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_NO_BRANCH_OFFSET", "aarch64-none-linux-gnu", "neon" ]
    expected:
      insns:
        -
          asm_text: "sqdmlsl d16, s18, v28.s[3]"
