1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s 2 3// --------------------------------------------------------------------------// 4// Invalid Pattern 5 6whilelt pn8.b, x0, x0, vlx1 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand 8// CHECK-NEXT: whilelt pn8.b, x0, x0, vlx1 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11whilelt pn8.b, x0, x0 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction 13// CHECK-NEXT: whilelt pn8.b, x0, x0 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16// --------------------------------------------------------------------------// 17// Invalid use of predicate without suffix 18 19whilelt pn8, x0, x0, vlx2 20// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid predicate register, expected PN in range pn8..pn15 with element suffix. 21// CHECK-NEXT: whilelt pn8, x0, x0, vlx2 22// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 23 24// --------------------------------------------------------------------------// 25// Out of range Predicate register 26 27whilelt pn7.b, x0, x0, vlx2 28// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid predicate register, expected PN in range pn8..pn15 with element suffix. 29// CHECK-NEXT: whilelt pn7.b, x0, x0, vlx2 30// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 31 32whilelt { p0.b, p2.b }, x13, x8 33// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 34// CHECK-NEXT: whilelt { p0.b, p2.b }, x13, x8 35// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 36 37whilelt { p15.b, p0.b }, x13, x8 38// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive predicate registers, where the first vector is a multiple of 2 and with correct element type 39// CHECK-NEXT: whilelt { p15.b, p0.b }, x13, x8 40// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 41