1// RUN: not llvm-mc -triple=aarch64-none-linux-gnu -show-encoding -mattr=+sve 2>&1 < %s | FileCheck %s 2 3// ------------------------------------------------------------------------- // 4// Invalid predicate operand 5 6sel z0.b, p0.b, z0.b, z0.b 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 8// CHECK-NEXT: sel z0.b, p0.b, z0.b, z0.b 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11sel z0.b, p0.q, z0.b, z0.b 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 13// CHECK-NEXT: sel z0.b, p0.q, z0.b, z0.b 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16sel p0.b, p0.b, p0.b, p0.b 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 18// CHECK-NEXT: sel p0.b, p0.b, p0.b, p0.b 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21sel p0.b, p0.q, p0.b, p0.b 22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 23// CHECK-NEXT: sel p0.b, p0.q, p0.b, p0.b 24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 25 26 27// --------------------------------------------------------------------------// 28// Negative tests for instructions that are incompatible with movprfx 29 30movprfx z28.b, p7/z, z30.b 31sel z28.b, p7, z13.b, z8.b 32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov 33// CHECK-NEXT: sel z28.b, p7, z13.b, z8.b 34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 35 36movprfx z23, z30 37sel z23.b, p11, z13.b, z8.b 38// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov 39// CHECK-NEXT: sel z23.b, p11, z13.b, z8.b 40// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 41