// Tests for transactional memory extension instructions
// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=+tme < %s 2>&1 | FileCheck %s
tstart
// CHECK: error: too few operands for instruction
// CHECK-NEXT: tstart
tstart x4, x5
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: tstart x4, x5
tstart x4, #1
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: tstart x4, #1
tstart sp
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: tstart sp
ttest
// CHECK: error: too few operands for instruction
// CHECK-NEXT: ttest
ttest x4, x5
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: ttest x4, x5
ttest x4, #1
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: ttest x4, #1
ttest sp
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: ttest sp
tcommit x4
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: tcommit x4
tcommit sp
// CHECK: error: invalid operand for instruction
// CHECK-NEXT: tcommit sp
tcancel
// CHECK: error: too few operands for instruction
// CHECK-NEXT: tcancel
tcancel x0
// CHECK: error: immediate must be an integer in range
// CHECK-NEXT: tcancel
tcancel #65536
// CHECK: error: immediate must be an integer in range
// CHECK-NEXT: tcancel #65536