41 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid Pattern5 6whilehs pn8.b, x0, x0, vlx17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand8// CHECK-NEXT: whilehs pn8.b, x0, x0, vlx19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11whilehs pn8.b, x0, x012// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction13// CHECK-NEXT: whilehs pn8.b, x0, x014// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16// --------------------------------------------------------------------------//17// Invalid use of predicate without suffix18 19whilehs pn8, x0, x0, vlx220// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid predicate register, expected PN in range pn8..pn15 with element suffix.21// CHECK-NEXT: whilehs pn8, x0, x0, vlx222// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:23 24// --------------------------------------------------------------------------//25// Out of range Predicate register26 27whilehs pn7.b, x0, x0, vlx228// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid predicate register, expected PN in range pn8..pn15 with element suffix.29// CHECK-NEXT: whilehs pn7.b, x0, x0, vlx230// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:31 32whilehs { p0.b, p2.b }, x13, x833// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction34// CHECK-NEXT: whilehs { p0.b, p2.b }, x13, x835// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:36 37whilehs { p15.b, p0.b }, x13, x838// 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 type39// CHECK-NEXT: whilehs { p15.b, p0.b }, x13, x840// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:41