62 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Restricted predicate out of range.5 6match p0.b, p8/z, z0.b, z0.b7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)8// CHECK-NEXT: match p0.b, p8/z, z0.b, z0.b9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11 12// --------------------------------------------------------------------------//13// Invalid predicate operation14 15match p0.b, p0/m, z0.b, z0.b16// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction17// CHECK-NEXT: match p0.b, p0/m, z0.b, z0.b18// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:19 20 21// --------------------------------------------------------------------------//22// Invalid destination predicate register23 24match p0.s, p0/z, z0.b, z0.b25// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.26// CHECK-NEXT: match p0.s, p0/z, z0.b, z0.b27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:28 29match p0.d, p0/z, z0.b, z0.b30// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.31// CHECK-NEXT: match p0.d, p0/z, z0.b, z0.b32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:33 34// --------------------------------------------------------------------------//35// Invalid element width36 37match p0.b, p0/z, z0.s, z0.s38// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width39// CHECK-NEXT: match p0.b, p0/z, z0.s, z0.s40// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:41 42match p0.b, p0/z, z0.d, z0.d43// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width44// CHECK-NEXT: match p0.b, p0/z, z0.d, z0.d45// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:46 47 48// --------------------------------------------------------------------------//49// Negative tests for instructions that are incompatible with movprfx50 51movprfx z0.b, p0/z, z7.b52match p0.b, p0/z, z0.b, z0.b53// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov54// CHECK-NEXT: match p0.b, p0/z, z0.b, z0.b55// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:56 57movprfx z0, z758match p0.b, p0/z, z0.b, z0.b59// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov60// CHECK-NEXT: match p0.b, p0/z, z0.b, z0.b61// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:62