58 lines · plain
1 2// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p2 2>&1 < %s| FileCheck %s3// ------------------------------------------------------------------------- //4 5// Invalid predicate6 7revh z0.s, p8/z, z0.s8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)9// CHECK-NEXT: revh z0.s, p8/z, z0.s10// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:11 12revh z0.d, p8/z, z0.d13// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)14// CHECK-NEXT: revh z0.d, p8/z, z0.d15// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:16 17// --------------------------------------------------------------------------//18// Invalid element widths19 20revh z0.b, p7/z, z0.b21// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width22// CHECK-NEXT: revh z0.b, p7/z, z0.b23// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:24 25revh z0.h, p7/z, z0.h26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width27// CHECK-NEXT: revh z0.h, p7/z, z0.h28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:29 30revh z0.q, p7/z, z0.q31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width32// CHECK-NEXT: revh z0.q, p7/z, z0.q33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:34 35revh z0.s, p7/z, z0.h36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width37// CHECK-NEXT: revh z0.s, p7/z, z0.h38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:39 40revh z0.d, p7/z, z0.s41// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width42// CHECK-NEXT: revh z0.d, p7/z, z0.s43// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:44 45// --------------------------------------------------------------------------//46// Negative tests for instructions that are incompatible with movprfx47 48movprfx z0.s, p0/z, z7.s49revh z0.s, p0/z, z0.s50// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov51// CHECK-NEXT: revh z0.s, p0/z, z0.s52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:53 54movprfx z0, z755revh z0.d, p0/z, z0.d56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov57// CHECK-NEXT: revh z0.d, p0/z, z0.d58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: