test_cases:
  -
    input:
      bytes: [ 0x20, 0x48, 0x28, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "aese v0.16b, v1.16b"

  -
    input:
      bytes: [ 0x20, 0x58, 0x28, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "aesd v0.16b, v1.16b"

  -
    input:
      bytes: [ 0x20, 0x68, 0x28, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "aesmc v0.16b, v1.16b"

  -
    input:
      bytes: [ 0x20, 0x78, 0x28, 0x4e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "aesimc v0.16b, v1.16b"

  -
    input:
      bytes: [ 0x20, 0x08, 0x28, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha1h s0, s1"

  -
    input:
      bytes: [ 0x20, 0x18, 0x28, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha1su1 v0.4s, v1.4s"

  -
    input:
      bytes: [ 0x20, 0x28, 0x28, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha256su0 v0.4s, v1.4s"

  -
    input:
      bytes: [ 0x20, 0x00, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha1c q0, s1, v2.4s"

  -
    input:
      bytes: [ 0x20, 0x10, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha1p q0, s1, v2.4s"

  -
    input:
      bytes: [ 0x20, 0x20, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha1m q0, s1, v2.4s"

  -
    input:
      bytes: [ 0x20, 0x30, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha1su0 v0.4s, v1.4s, v2.4s"

  -
    input:
      bytes: [ 0x20, 0x40, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha256h q0, q1, v2.4s"

  -
    input:
      bytes: [ 0x20, 0x50, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha256h2 q0, q1, v2.4s"

  -
    input:
      bytes: [ 0x20, 0x60, 0x02, 0x5e ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "arm64", "neon", "crypto" ]
    expected:
      insns:
        -
          asm_text: "sha256su1 v0.4s, v1.4s, v2.4s"
