1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s 2 3// --------------------------------------------------------------------------// 4// Invalid vector lists 5 6pext {p0.h, p2.h}, pn8[0] 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 8// CHECK-NEXT: pext {p0.h, p2.h}, pn8[0] 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11pext {p15.h, p1.h}, pn8[0] 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 13// CHECK-NEXT: pext {p15.h, p1.h}, pn8[0] 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16pext {p0.h, p1.b}, pn8[0] 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix 18// CHECK-NEXT: pext {p0.h, p1.b}, pn8[0] 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21pext {p0.h, p1.h, p2.h, p3.h}, pn8[0] 22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 23// CHECK-NEXT: pext {p0.h, p1.h, p2.h, p3.h}, pn8[0] 24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 25 26pext {p0.h}, pn8[0] 27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 28// CHECK-NEXT: pext {p0.h}, pn8[0] 29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 30 31// --------------------------------------------------------------------------// 32// Invalid predicate as counter register 33 34pext p0.h, pn3[0] 35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate-as-counter register expected pn8..pn15 36// CHECK-NEXT: pext p0.h, pn3[0] 37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 38 39// --------------------------------------------------------------------------// 40// Invalid lane index 41 42pext {p0.h, p1.h}, pn8[2] 43// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1]. 44// CHECK-NEXT: pext {p0.h, p1.h}, pn8[2] 45// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 46 47pext {p0.h, p1.h}, pn8[-1] 48// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1]. 49// CHECK-NEXT: pext {p0.h, p1.h}, pn8[-1] 50// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 51 52pext p0.d, pn8[4] 53// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 54// CHECK-NEXT: pext p0.d, pn8[4] 55// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 56 57pext p0.b, pn8[-1] 58// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 59// CHECK-NEXT: pext p0.b, pn8[-1] 60// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 61