39 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme 2>&1 < %s| FileCheck %s2 3// ------------------------------------------------------------------------- //4// Invalid predicate5 6// invalid range (expected: p0-p7)7revd z0.q, p8/m, z0.q8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)9// CHECK-NEXT: revd z0.q, p8/m, z0.q10// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:11 12// wrong predication qualifier, expected /m.13revd z0.q, p0/z, z0.q14// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: sme2p2 or sve2p215// CHECK-NEXT: revd z0.q, p0/z, z0.q16// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:17 18// ------------------------------------------------------------------------- //19// Invalid ZPR element width20 21revd z0.b, p0/m, z0.q22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width23// CHECK-NEXT: revd z0.b, p0/m, z0.q24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26revd z0.q, p0/m, z0.s27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width28// CHECK-NEXT: revd z0.q, p0/m, z0.s29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31// --------------------------------------------------------------------------//32// Negative tests for instructions that are incompatible with movprfx33 34movprfx z21, z2535revd z21.q, p5/m, z10.q36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov37// CHECK-NEXT: revd z21.q, p5/m, z10.q38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:39