test_cases:
  -
    input:
      bytes: [ 0x7c, 0x20, 0x05, 0x1d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tbegin. 1"

  -
    input:
      bytes: [ 0x7c, 0x00, 0x05, 0x1d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tbegin. 0"

  -
    input:
      bytes: [ 0x7c, 0x00, 0x05, 0x5d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tend."

  -
    input:
      bytes: [ 0x7e, 0x00, 0x05, 0x5d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tendall."

  -
    input:
      bytes: [ 0x7c, 0x03, 0x07, 0x1d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tabort. 3"

  -
    input:
      bytes: [ 0x7d, 0x20, 0x06, 0x5d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tabortdc. 9, 0, 0"

  -
    input:
      bytes: [ 0x7c, 0x20, 0x1e, 0xdd ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tabortdci. 1, 0, 3"

  -
    input:
      bytes: [ 0x7c, 0x04, 0x1e, 0x1d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tabortwc. 0, 4, 3"

  -
    input:
      bytes: [ 0x7c, 0x04, 0x16, 0x9d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tabortwci. 0, 4, 2"

  -
    input:
      bytes: [ 0x7c, 0x20, 0x05, 0xdd ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tresume."

  -
    input:
      bytes: [ 0x7c, 0x00, 0x05, 0xdd ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tsuspend."

  -
    input:
      bytes: [ 0x7c, 0x00, 0x05, 0x9c ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "tcheck 0"

  -
    input:
      bytes: [ 0x7c, 0x03, 0x07, 0x5d ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "treclaim. 3"

  -
    input:
      bytes: [ 0x7c, 0x00, 0x07, 0xdd ]
      arch: "CS_ARCH_PPC"
      options: [ "CS_OPT_ONLY_OFFSET_BRANCH", "CS_OPT_SYNTAX_NOREGNAME", "CS_MODE_BIG_ENDIAN", "CS_MODE_64", "CS_MODE_PWR8" ]
    expected:
      insns:
        -
          asm_text: "trechkpt."
