86 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve 2>&1 < %s| FileCheck %s2 3// ------------------------------------------------------------------------- //4// Invalid result register5 6incw w07// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand8// CHECK-NEXT: incw w09// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11incw sp12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand13// CHECK-NEXT: incw sp14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16// incw requires z0.s17incw z0.d18// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width19// CHECK-NEXT: incw z0.d20// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:21 22 23// ------------------------------------------------------------------------- //24// Immediate not compatible with encode/decode function.25 26incw x0, all, mul #-127// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]28// CHECK-NEXT: incw x0, all, mul #-129// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31incw x0, all, mul #032// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]33// CHECK-NEXT: incw x0, all, mul #034// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36incw x0, all, mul #1737// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]38// CHECK-NEXT: incw x0, all, mul #1739// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41 42// ------------------------------------------------------------------------- //43// Invalid predicate patterns44 45incw x0, vl51246// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand47// CHECK-NEXT: incw x0, vl51248// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:49 50incw x0, vl951// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand52// CHECK-NEXT: incw x0, vl953// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:54 55incw x0, #-156// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate pattern57// CHECK-NEXT: incw x0, #-158// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:59 60incw x0, #3261// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate pattern62// CHECK-NEXT: incw x0, #3263// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:64 65 66// --------------------------------------------------------------------------//67// Negative tests for instructions that are incompatible with movprfx68 69movprfx z0.s, p0/z, z7.s70incw z0.s71// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx72// CHECK-NEXT: incw z0.s73// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:74 75movprfx z0.s, p0/z, z7.s76incw z0.s, all, mul #1677// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx78// CHECK-NEXT: incw z0.s, all, mul #1679// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:80 81movprfx z0.s, p0/z, z7.s82incw z0.s, all83// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx84// CHECK-NEXT: incw z0.s, all85// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:86