1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
// RUN: not llvm-mc -triple aarch64 \
// RUN: -mattr=+crc,+sm4,+sha3,+sha2,+aes,+fp,+neon,+ras,+lse,+predres,+ccdp,+mte,+tlb-rmi,+pan-rwv,+ccpp,+rcpc,+ls64,+flagm,+hbc,+mops \
// RUN: -filetype asm -o - %s 2>&1 | FileCheck %s
.arch_extension axp64
// CHECK: error: unknown architectural extension: axp64
// CHECK-NEXT: .arch_extension axp64
crc32cx w0, w1, x3
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: crc
.arch_extension nocrc
crc32cx w0, w1, x3
// CHECK: [[@LINE-1]]:1: error: instruction requires: crc
// CHECK-NEXT: crc32cx w0, w1, x3
sm4e v2.4s, v15.4s
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: sm4
.arch_extension nosm4
sm4e v2.4s, v15.4s
// CHECK: [[@LINE-1]]:1: error: instruction requires: sm4
// CHECK-NEXT: sm4e v2.4s, v15.4s
sha512h q0, q1, v2.2d
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: sha3
.arch_extension nosha3
sha512h q0, q1, v2.2d
// CHECK: [[@LINE-1]]:1: error: instruction requires: sha3
// CHECK-NEXT: sha512h q0, q1, v2.2d
sha1h s0, s1
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: sha2
.arch_extension nosha2
sha1h s0, s1
// CHECK: [[@LINE-1]]:1: error: instruction requires: sha2
// CHECK-NEXT: sha1h s0, s1
aese v0.16b, v1.16b
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: aes
.arch_extension noaes
aese v0.16b, v1.16b
// CHECK: [[@LINE-1]]:1: error: instruction requires: aes
// CHECK-NEXT: aese v0.16b, v1.16b
fminnm d0, d0, d1
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: fp
.arch_extension nofp
fminnm d0, d0, d1
// CHECK: [[@LINE-1]]:1: error: instruction requires: fp
// CHECK-NEXT: fminnm d0, d0, d1
addp v0.4s, v0.4s, v0.4s
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: neon
.arch_extension nosimd
addp v0.4s, v0.4s, v0.4s
// CHECK: [[@LINE-1]]:1: error: instruction requires: neon
// CHECK-NEXT: addp v0.4s, v0.4s, v0.4s
esb
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: ras
.arch_extension noras
esb
// CHECK: [[@LINE-1]]:1: error: instruction requires: ras
// CHECK-NEXT: esb
casa w5, w7, [x20]
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: lse
.arch_extension nolse
casa w5, w7, [x20]
// CHECK: [[@LINE-1]]:1: error: instruction requires: lse
// CHECK-NEXT: casa w5, w7, [x20]
cfp rctx, x0
// CHECK-NOT: [[@LINE-1]]:5: error: CFPRCTX requires: predres
.arch_extension nopredres
cfp rctx, x0
// CHECK: [[@LINE-1]]:5: error: CFPRCTX requires: predres
// CHECK-NEXT: cfp rctx, x0
dc cvadp, x7
// CHECK-NOT: [[@LINE-1]]:4: error: DC CVADP requires: ccdp
.arch_extension noccdp
dc cvadp, x7
// CHECK: [[@LINE-1]]:4: error: DC CVADP requires: ccdp
// CHECK-NEXT: dc cvadp, x7
irg x0, x1
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: mte
.arch_extension nomte
irg x0, x1
// CHECK: [[@LINE-1]]:1: error: instruction requires: mte
// CHECK-NEXT: irg x0, x1
tlbi vmalle1os
// CHECK-NOT: [[@LINE-1]]:6: error: TLBI VMALLE1OS requires: tlb-rmi
.arch_extension notlb-rmi
tlbi vmalle1os
// CHECK: [[@LINE-1]]:6: error: TLBI VMALLE1OS requires: tlb-rmi
// CHECK-NEXT: tlbi vmalle1os
at s1e1wp, x2
// CHECK-NOT: [[@LINE-1]]:4: error: AT S1E1WP requires: pan-rwv
.arch_extension nopan-rwv
at s1e1wp, x2
// CHECK: [[@LINE-1]]:4: error: AT S1E1WP requires: pan-rwv
// CHECK-NEXT: at s1e1wp, x2
dc cvap, x7
// CHECK-NOT: [[@LINE-1]]:4: error: DC CVAP requires: ccpp
.arch_extension noccpp
dc cvap, x7
// CHECK: [[@LINE-1]]:4: error: DC CVAP requires: ccpp
// CHECK-NEXT: dc cvap, x7
ldapr x0, [x1]
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: rcpc
.arch_extension norcpc
ldapr x0, [x1]
// CHECK: [[@LINE-1]]:1: error: instruction requires: rcpc
// CHECK-NEXT: ldapr x0, [x1]
ld64b x0, [x13]
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: ls64
.arch_extension nols64
ld64b x0, [x13]
// CHECK: [[@LINE-1]]:1: error: instruction requires: ls64
// CHECK-NEXT: ld64b x0, [x13]
cfinv
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: flagm
.arch_extension noflagm
cfinv
// CHECK: [[@LINE-1]]:1: error: instruction requires: flagm
// CHECK-NEXT: cfinv
lbl:
bc.eq lbl
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: hbc
.arch_extension nohbc
bc.eq lbl
// CHECK: [[@LINE-1]]:1: error: instruction requires: hbc
// CHECK-NEXT: bc.eq lbl
cpyfp [x0]!, [x1]!, x2!
// CHECK-NOT: [[@LINE-1]]:1: error: instruction requires: mops
.arch_extension nomops
cpyfp [x0]!, [x1]!, x2!
// CHECK: [[@LINE-1]]:1: error: instruction requires: mops
// CHECK-NEXT: cpyfp [x0]!, [x1]!, x2!
|