1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme 2>&1 < %s| FileCheck %s 2 3// ------------------------------------------------------------------------- // 4// Invalid predicate 5 6// missing element type suffix 7psel p0, p0, p0[w12] 8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register. 9// CHECK-NEXT: psel p0, p0, p0[w12] 10// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 11 12// ------------------------------------------------------------------------- // 13// Invalid index base register register (w12-w15) 14 15psel p0, p0, p0.b[w11] 16// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must be a register in range [w12, w15] 17// CHECK-NEXT: psel p0, p0, p0.b[w11] 18// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 19 20psel p0, p0, p0.b[w16] 21// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must be a register in range [w12, w15] 22// CHECK-NEXT: psel p0, p0, p0.b[w16] 23// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 24 25// --------------------------------------------------------------------------// 26// Invalid immediates 27 28psel p0, p0, p0.b[w12, #16] 29// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 15]. 30// CHECK-NEXT: psel p0, p0, p0.b[w12, #16] 31// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 32 33psel p0, p0, p0.h[w12, #8] 34// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7]. 35// CHECK-NEXT: psel p0, p0, p0.h[w12, #8] 36// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 37 38psel p0, p0, p0.s[w12, #4] 39// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 3]. 40// CHECK-NEXT: psel p0, p0, p0.s[w12, #4] 41// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 42 43psel p0, p0, p0.d[w12, #2] 44// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 1]. 45// CHECK-NEXT: psel p0, p0, p0.d[w12, #2] 46// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 47