brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 0ad3624 Raw
104 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s2 3// ------------------------------------------------------------------------- //4// Invalid result register5 6uqincw wsp7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand8// CHECK-NEXT: uqincw wsp9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11uqincw sp12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand13// CHECK-NEXT: uqincw sp14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16uqincw z0.d17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width18// CHECK-NEXT: uqincw z0.d19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21 22// ------------------------------------------------------------------------- //23// Operands not matching up (unsigned inc only has one register operand)24 25uqincw x0, w026// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand27// CHECK-NEXT: uqincw x0, w028// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:29 30uqincw w0, w031// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand32// CHECK-NEXT: uqincw w0, w033// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:34 35uqincw x0, x036// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand37// CHECK-NEXT: uqincw x0, x038// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:39 40 41// ------------------------------------------------------------------------- //42// Immediate not compatible with encode/decode function.43 44uqincw x0, all, mul #-145// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]46// CHECK-NEXT: uqincw x0, all, mul #-147// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:48 49uqincw x0, all, mul #050// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]51// CHECK-NEXT: uqincw x0, all, mul #052// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:53 54uqincw x0, all, mul #1755// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]56// CHECK-NEXT: uqincw x0, all, mul #1757// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:58 59 60// ------------------------------------------------------------------------- //61// Invalid predicate patterns62 63uqincw x0, vl51264// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand65// CHECK-NEXT: uqincw x0, vl51266// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:67 68uqincw x0, vl969// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand70// CHECK-NEXT: uqincw x0, vl971// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:72 73uqincw x0, #-174// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate pattern75// CHECK-NEXT: uqincw x0, #-176// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:77 78uqincw x0, #3279// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate pattern80// CHECK-NEXT: uqincw x0, #3281// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:82 83 84// --------------------------------------------------------------------------//85// Negative tests for instructions that are incompatible with movprfx86 87movprfx z0.s, p0/z, z7.s88uqincw  z0.s89// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx90// CHECK-NEXT: uqincw  z0.s91// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:92 93movprfx z0.s, p0/z, z7.s94uqincw  z0.s, pow2, mul #1695// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx96// CHECK-NEXT: uqincw  z0.s, pow2, mul #1697// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:98 99movprfx z0.s, p0/z, z7.s100uqincw  z0.s, pow2101// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx102// CHECK-NEXT: uqincw  z0.s, pow2103// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:104