61 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid vector lists5 6pext {p0.h, p2.h}, pn8[0]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// 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 instruction13// 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 suffix18// 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 instruction23// 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 instruction28// CHECK-NEXT: pext {p0.h}, pn8[0]29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31// --------------------------------------------------------------------------//32// Invalid predicate as counter register33 34pext p0.h, pn3[0]35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate-as-counter register expected pn8..pn1536// CHECK-NEXT: pext p0.h, pn3[0]37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:38 39// --------------------------------------------------------------------------//40// Invalid lane index41 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