test_cases:
  -
    input:
      bytes: [ 0xdf, 0x33, 0x3e, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.b, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0x7e, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.h, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0xbe, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.s, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0xfe, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sve2" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.d, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0x3e, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.b, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0x7e, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.h, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0xbe, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.s, x30, x30"

  -
    input:
      bytes: [ 0xdf, 0x33, 0xfe, 0x25 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64", "sme" ]
    expected:
      insns:
        -
          asm_text: "whilerw p15.d, x30, x30"
