brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 099009b Raw
117 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Immediate not compatible with encode/decode function.5 6bic z5.b, z5.b, #0xfa7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate8// CHECK-NEXT: bic z5.b, z5.b, #0xfa9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11bic z5.b, z5.b, #0xfff912// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate13// CHECK-NEXT: bic z5.b, z5.b, #0xfff914// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16bic z5.h, z5.h, #0xfffa17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate18// CHECK-NEXT: bic z5.h, z5.h, #0xfffa19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21bic z5.h, z5.h, #0xfffffff922// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate23// CHECK-NEXT: bic z5.h, z5.h, #0xfffffff924// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26bic z5.s, z5.s, #0xfffffffa27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate28// CHECK-NEXT: bic z5.s, z5.s, #0xfffffffa29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31bic z5.s, z5.s, #0xffffffffffffff932// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate33// CHECK-NEXT: bic z5.s, z5.s, #0xffffffffffffff934// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36bic z15.d, z15.d, #0xfffffffffffffffa37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or logical immediate38// CHECK-NEXT: bic z15.d, z15.d, #0xfffffffffffffffa39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41// --------------------------------------------------------------------------//42// Source and Destination Registers must match43 44bic z7.d, z8.d, #25445// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register46// CHECK-NEXT: bic z7.d, z8.d, #25447// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:48 49bic z0.d, p0/m, z1.d, z2.d50// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register51// CHECK-NEXT: bic z0.d, p0/m, z1.d, z2.d52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:53 54// Element size specifiers should match.55bic z21.d, z5.d, z26.b56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width57// CHECK-NEXT: bic z21.d, z5.d, z26.b58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:59 60 61// --------------------------------------------------------------------------//62// Predicate out of restricted predicate range63 64bic z0.d, p8/z, z0.d, z1.d65// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)66// CHECK-NEXT: bic z0.d, p8/z, z0.d, z1.d67// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:68 69 70// --------------------------------------------------------------------------//71// Predicate register must have .b suffix72 73bic p0.h, p0/z, p0.h, p1.h74// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.75// CHECK-NEXT: bic p0.h, p0/z, p0.h, p1.h76// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:77 78bic p0.s, p0/z, p0.s, p1.s79// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.80// CHECK-NEXT: bic p0.s, p0/z, p0.s, p1.s81// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:82 83bic p0.d, p0/z, p0.d, p1.d84// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.85// CHECK-NEXT: bic p0.d, p0/z, p0.d, p1.d86// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:87 88// --------------------------------------------------------------------------//89// Operation only has zeroing predicate behaviour (p0/z).90 91bic p0.b, p0/m, p1.b, p2.b92// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand93// CHECK-NEXT: bic p0.b, p0/m, p1.b, p2.b94// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:95 96 97// --------------------------------------------------------------------------//98// Negative tests for instructions that are incompatible with movprfx99 100movprfx z0.d, p0/z, z7.d101bic     z0.d, z0.d, #0x6102// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx103// CHECK-NEXT: bic     z0.d, z0.d, #0x6104// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:105 106movprfx z23.d, p0/z, z30.d107bic     z23.d, z13.d, z8.d108// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov109// CHECK-NEXT: bic     z23.d, z13.d, z8.d110// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:111 112movprfx z23, z30113bic     z23.d, z13.d, z8.d114// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov115// CHECK-NEXT: bic     z23.d, z13.d, z8.d116// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:117