1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve 2>&1 < %s| FileCheck %s 2 3// ------------------------------------------------------------------------- // 4// Invalid result register 5 6uqincp sp, p0 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand 8// CHECK-NEXT: uqincp sp, p0 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11uqincp z0.b, p0 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width 13// CHECK-NEXT: uqincp z0.b, p0 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16uqincp x0, p0.b, w0 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand 18// CHECK-NEXT: uqincp x0, p0.b, w0 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21uqincp x0, p0.b, x1 22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand 23// CHECK-NEXT: uqincp x0, p0.b, x1 24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 25 26 27// ------------------------------------------------------------------------- // 28// Invalid predicate operand 29 30uqincp x0, p0 31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 32// CHECK-NEXT: uqincp x0, p0 33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 34 35uqincp x0, p0/z 36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 37// CHECK-NEXT: uqincp x0, p0/z 38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 39 40uqincp x0, p0/m 41// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 42// CHECK-NEXT: uqincp x0, p0/m 43// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 44 45uqincp x0, p0.q 46// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register 47// CHECK-NEXT: uqincp x0, p0.q 48// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 49 50 51// --------------------------------------------------------------------------// 52// Negative tests for instructions that are incompatible with movprfx 53 54movprfx z0.d, p0/z, z7.d 55uqincp z0.d, p0 56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx 57// CHECK-NEXT: uqincp z0.d, p0 58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 59