brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 3603cd4 Raw
124 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s2 3 4// ------------------------------------------------------------------------- //5// Invalid predicate6 7clastb   w0, p8, w0, z31.b8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)9// CHECK-NEXT: clastb   w0, p8, w0, z31.b10// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:11 12clastb   w0, p7.b, w0, z31.b13// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)14// CHECK-NEXT: clastb   w0, p7.b, w0, z31.b15// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:16 17clastb   w0, p7.q, w0, z31.b18// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)19// CHECK-NEXT: clastb   w0, p7.q, w0, z31.b20// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:21 22 23// ------------------------------------------------------------------------- //24// Invalid element width25 26clastb   w0, p7, x0, z31.b27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand28// CHECK-NEXT: clastb   w0, p7, x0, z31.b29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31clastb   x0, p7, x0, z31.b32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width33// CHECK-NEXT: clastb   x0, p7, x0, z31.b34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36clastb   x0, p7, x0, z31.h37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width38// CHECK-NEXT: clastb   x0, p7, x0, z31.h39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41clastb   x0, p7, x0, z31.s42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width43// CHECK-NEXT: clastb   x0, p7, x0, z31.s44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:45 46clastb   w0, p7, w0, z31.d47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width48// CHECK-NEXT: clastb   w0, p7, w0, z31.d49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:50 51clastb   b0, p7, b0, z31.h52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width53// CHECK-NEXT: clastb   b0, p7, b0, z31.h54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:55 56clastb   h0, p7, h0, z31.s57// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width58// CHECK-NEXT: clastb   h0, p7, h0, z31.s59// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:60 61clastb   s0, p7, s0, z31.d62// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width63// CHECK-NEXT: clastb   s0, p7, s0, z31.d64// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:65 66clastb   d0, p7, d0, z31.b67// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width68// CHECK-NEXT: clastb   d0, p7, d0, z31.b69// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:70 71clastb   z0.b, p7, z0.b, z31.h72// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width73// CHECK-NEXT: clastb   z0.b, p7, z0.b, z31.h74// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:75 76clastb   z0.h, p7, z0.h, z31.s77// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width78// CHECK-NEXT: clastb   z0.h, p7, z0.h, z31.s79// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:80 81clastb   z0.s, p7, z0.s, z31.d82// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width83// CHECK-NEXT: clastb   z0.s, p7, z0.s, z31.d84// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:85 86clastb   z0.d, p7, z0.d, z31.b87// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width88// CHECK-NEXT: clastb   z0.d, p7, z0.d, z31.b89// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:90 91 92// --------------------------------------------------------------------------//93// Negative tests for instructions that are incompatible with movprfx94 95movprfx z31.d, p7/z, z6.d96clastb   x0, p7, x0, z31.d97// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov98// CHECK-NEXT: clastb   x0, p7, x0, z31.d99// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:100 101movprfx z31, z6102clastb   x0, p7, x0, z31.d103// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov104// CHECK-NEXT: clastb   x0, p7, x0, z31.d105// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:106 107movprfx z31.d, p7/z, z6.d108clastb   d0, p7, d0, z31.d109// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov110// CHECK-NEXT: clastb   d0, p7, d0, z31.d111// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:112 113movprfx z31, z6114clastb   d0, p7, d0, z31.d115// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov116// CHECK-NEXT: clastb   d0, p7, d0, z31.d117// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:118 119movprfx z0.d, p7/z, z7.d120clastb   z0.d, p7, z0.d, z31.d121// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx122// CHECK-NEXT: clastb   z0.d, p7, z0.d, z31.d123// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:124