brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · b0dba63 Raw
173 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme,-neon 2>&1 < %s| FileCheck %s2 3// ------------------------------------------------------------------------- //4// Check FABD is illegal in streaming mode5 6fabd s0, s1, s27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon8// CHECK-NEXT: fabd s0, s1, s29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11// ------------------------------------------------------------------------- //12// Check non-scalar v8.6a BFloat16 instructions are illegal in streaming mode13 14bfcvtn v5.4h, v5.4s15// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: bf16 neon16// CHECK-NEXT: bfcvtn v5.4h, v5.4s17// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:18 19// ------------------------------------------------------------------------- //20// Check non-zero index is illegal in streaming mode21// ------------------------------------------------------------------------- //22// SMOV 8-bit to 32-bit23 24smov w0, v0.b[1]25// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon26// CHECK-NEXT: smov w0, v0.b[1]27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:28 29smov w0, v0.b[7]30// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon31// CHECK-NEXT: smov w0, v0.b[7]32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:33 34smov w0, v0.b[15]35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon36// CHECK-NEXT: smov w0, v0.b[15]37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:38 39// ------------------------------------------------------------------------- //40// SMOV 8-bit to 64-bit41 42smov x0, v0.b[2]43// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon44// CHECK-NEXT: smov x0, v0.b[2]45// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:46 47smov x0, v0.b[6]48// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon49// CHECK-NEXT: smov x0, v0.b[6]50// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:51 52smov x0, v0.b[12]53// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon54// CHECK-NEXT: smov x0, v0.b[12]55// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:56 57// ------------------------------------------------------------------------- //58// SMOV 16-bit to 32-bit59 60smov w0, v0.h[1]61// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon62// CHECK-NEXT: smov w0, v0.h[1]63// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:64 65smov w0, v0.h[3]66// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon67// CHECK-NEXT: smov w0, v0.h[3]68// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:69 70smov w0, v0.h[7]71// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon72// CHECK-NEXT: smov w0, v0.h[7]73// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:74 75// ------------------------------------------------------------------------- //76// SMOV 16-bit to 64-bit77 78smov x0, v0.h[2]79// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon80// CHECK-NEXT: smov x0, v0.h[2]81// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:82 83smov x0, v0.h[4]84// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon85// CHECK-NEXT: smov x0, v0.h[4]86// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:87 88smov x0, v0.h[6]89// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon90// CHECK-NEXT: smov x0, v0.h[6]91// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:92 93// ------------------------------------------------------------------------- //94// SMOV 32-bit to 64-bit95 96smov x0, v0.s[1]97// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon98// CHECK-NEXT: smov x0, v0.s[1]99// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:100 101smov x0, v0.s[2]102// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon103// CHECK-NEXT: smov x0, v0.s[2]104// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:105 106smov x0, v0.s[3]107// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon108// CHECK-NEXT: smov x0, v0.s[3]109// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:110 111// ------------------------------------------------------------------------- //112// UMOV 8-bit to 32-bit113 114umov w0, v0.b[1]115// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon116// CHECK-NEXT: umov w0, v0.b[1]117// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:118 119umov w0, v0.b[7]120// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon121// CHECK-NEXT: umov w0, v0.b[7]122// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:123 124umov w0, v0.b[15]125// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon126// CHECK-NEXT: umov w0, v0.b[15]127// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:128 129// ------------------------------------------------------------------------- //130// UMOV 16-bit to 32-bit131 132umov w0, v0.h[1]133// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon134// CHECK-NEXT: umov w0, v0.h[1]135// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:136 137umov w0, v0.h[3]138// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon139// CHECK-NEXT: umov w0, v0.h[3]140// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:141 142umov w0, v0.h[7]143// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon144// CHECK-NEXT: umov w0, v0.h[7]145// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:146 147 148// ------------------------------------------------------------------------- //149// UMOV 32-bit to 32-bit150 151umov w0, v0.s[1]152// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon153// CHECK-NEXT: umov w0, v0.s[1]154// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:155 156umov w0, v0.s[2]157// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon158// CHECK-NEXT: umov w0, v0.s[2]159// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:160 161umov w0, v0.s[3]162// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon163// CHECK-NEXT: umov w0, v0.s[3]164// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:165 166// ------------------------------------------------------------------------- //167// UMOV 64-bit to 64-bit168 169umov x0, v0.d[1]170// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction requires: neon171// CHECK-NEXT: umov x0, v0.d[1]172// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:173