test_cases:
  -
    input:
      bytes: [ 0x20, 0x20, 0xc0, 0xda ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "abs x0, x1"

  -
    input:
      bytes: [ 0x20, 0x20, 0xc0, 0x5a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "abs w0, w1"

  -
    input:
      bytes: [ 0x20, 0x1c, 0xc0, 0xda ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "cnt x0, x1"

  -
    input:
      bytes: [ 0x20, 0x1c, 0xc0, 0x5a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "cnt w0, w1"

  -
    input:
      bytes: [ 0x20, 0x18, 0xc0, 0xda ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "ctz x0, x1"

  -
    input:
      bytes: [ 0x20, 0x18, 0xc0, 0x5a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "ctz w0, w1"

  -
    input:
      bytes: [ 0x41, 0x60, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smax x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc0, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smax x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x60, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smax w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc0, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smax w1, w2, #3"

  -
    input:
      bytes: [ 0x41, 0x68, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smin x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc8, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smin x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x68, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smin w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc8, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smin w1, w2, #3"

  -
    input:
      bytes: [ 0x41, 0x64, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umax x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc4, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umax x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x64, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umax w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc4, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umax w1, w2, #3"

  -
    input:
      bytes: [ 0x41, 0x6c, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umin x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xcc, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umin x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x6c, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umin w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xcc, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umin w1, w2, #3"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc7, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umax wzr, wzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc7, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umax xzr, xzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcf, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umin xzr, xzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcf, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "umin wzr, wzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc3, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smax xzr, xzr, #-1"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc3, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smax wzr, wzr, #-1"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcb, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smin xzr, xzr, #-1"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcb, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v9.4a" ]
    expected:
      insns:
        -
          asm_text: "smin wzr, wzr, #-1"

  -
    input:
      bytes: [ 0x20, 0x20, 0xc0, 0xda ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "abs x0, x1"

  -
    input:
      bytes: [ 0x20, 0x20, 0xc0, 0x5a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "abs w0, w1"

  -
    input:
      bytes: [ 0x20, 0x1c, 0xc0, 0xda ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "cnt x0, x1"

  -
    input:
      bytes: [ 0x20, 0x1c, 0xc0, 0x5a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "cnt w0, w1"

  -
    input:
      bytes: [ 0x20, 0x18, 0xc0, 0xda ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "ctz x0, x1"

  -
    input:
      bytes: [ 0x20, 0x18, 0xc0, 0x5a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "ctz w0, w1"

  -
    input:
      bytes: [ 0x41, 0x60, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smax x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc0, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smax x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x60, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smax w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc0, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smax w1, w2, #3"

  -
    input:
      bytes: [ 0x41, 0x68, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smin x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc8, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smin x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x68, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smin w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc8, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smin w1, w2, #3"

  -
    input:
      bytes: [ 0x41, 0x64, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umax x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc4, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umax x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x64, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umax w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xc4, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umax w1, w2, #3"

  -
    input:
      bytes: [ 0x41, 0x6c, 0xc3, 0x9a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umin x1, x2, x3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xcc, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umin x1, x2, #3"

  -
    input:
      bytes: [ 0x41, 0x6c, 0xc3, 0x1a ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umin w1, w2, w3"

  -
    input:
      bytes: [ 0x41, 0x0c, 0xcc, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umin w1, w2, #3"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc7, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umax wzr, wzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc7, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umax xzr, xzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcf, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umin xzr, xzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcf, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "umin wzr, wzr, #255"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc3, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smax xzr, xzr, #-1"

  -
    input:
      bytes: [ 0xff, 0xff, 0xc3, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smax wzr, wzr, #-1"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcb, 0x91 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smin xzr, xzr, #-1"

  -
    input:
      bytes: [ 0xff, 0xff, 0xcb, 0x11 ]
      arch: "CS_ARCH_AARCH64"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "aarch64-none-linux-gnu", "v8.9a" ]
    expected:
      insns:
        -
          asm_text: "smin wzr, wzr, #-1"
