These are aliases for instructions which are are only available when the fp-armv8 or neon features are enabled, so their predicates should be set appropriately.
364 lines
13 KiB
ArmAsm
364 lines
13 KiB
ArmAsm
// RUN: not llvm-mc -triple aarch64-none-eabi -mattr=-fp-armv8 < %s 2>&1 | FileCheck %s --implicit-check-not error
|
|
|
|
ldr s0, [x0]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
fmov d0, xzr
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldnp s0, s1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldnp d0, d1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldnp q0, q1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldp s0, s1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldp d0, d1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldp q0, q1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldp s0, s1, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldp d0, d1, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldp q0, q1, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldp s0, s1, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldp d0, d1, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldp q0, q1, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
|
|
ldr b0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr h0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr s0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr d0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr q0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldr b0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr h0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr s0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr d0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr q0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldr b0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr h0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr s0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr d0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr q0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldr b0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr h0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr s0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr d0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr q0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
ldr b0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr h0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr s0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr d0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr q0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
label:
|
|
ldr s0, label
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr d0, label
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
ldr q0, label
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
stnp s0, s1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stnp d0, d1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stnp q0, q1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
stp s0, s1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stp d0, d1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stp q0, q1, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
stp s0, s1, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stp d0, d1, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stp q0, q1, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
stp s0, s1, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stp d0, d1, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
stp q0, q1, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
str b0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str h0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str s0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str d0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0], #16
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
str b0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str h0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str s0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str d0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0, #16]!
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
str b0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str h0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str s0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str d0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0, #16]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
str b0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str h0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str s0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str d0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0, x1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
str b0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str h0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str s0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str d0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0, w1, sxtw]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
mrs x0, FPCR
|
|
// CHECK: [[@LINE-1]]:11: error: expected readable system register
|
|
mrs x0, FPSR
|
|
// CHECK: [[@LINE-1]]:11: error: expected readable system register
|
|
msr FPCR, x0
|
|
// CHECK: [[@LINE-1]]:7: error: expected writable system register or pstate
|
|
msr FPSR, x0
|
|
// CHECK: [[@LINE-1]]:7: error: expected writable system register or pstate
|
|
|
|
ldr s0, [x0, #1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
str q0, [x0, #1]
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
fmov s0, #0.0
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
fmov d0, #0.0
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
mvn v0.8b, v1.8b
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvn v0.16b, v1.16b
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
mov v0.16b, v1.16b
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mov v0.8h, v1.8h
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mov v0.4s, v1.4s
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mov v0.2d, v1.2d
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
mov v0.8b, v1.8b
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mov v0.4h, v1.4h
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mov v0.2s, v1.2s
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mov v0.1d, v1.1d
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
faclt v0.4h, v1.4h, v2.4h
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fullfp16 neon
|
|
faclt v0.8h, v1.8h, v2.8h
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fullfp16 neon
|
|
faclt v0.2s, v1.2s, v2.2s
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
faclt v0.4s, v1.4s, v2.4s
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
faclt v0.2d, v1.2d, v2.2d
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
cmls d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
cmle d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
cmlo d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
cmlt d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
fcmle s0, s1, s2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
fcmle d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
fcmlt s0, s1, s2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
fcmlt d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
facle s0, s1, s2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
facle d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
faclt s0, s1, s2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
faclt d0, d1, d2
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8
|
|
|
|
bic v0.4h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
bic v0.8h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
bic v0.2s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
bic v0.4s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
bic.4h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
bic.8h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
bic.2s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
bic.4s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
orr v0.4h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
orr v0.8h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
orr v0.2s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
orr v0.4s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
orr.4h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
orr.8h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
orr.2s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
orr.4s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
movi v0.4h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
movi v0.8h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
movi v0.2s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
movi v0.4s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
movi.4h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
movi.8h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
movi.2s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
movi.4s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
mvni v0.4h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvni v0.8h, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvni v0.2s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvni v0.4s, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
mvni.4h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvni.8h v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvni.2s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
mvni.4s v0, #42
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
sxtl.8h v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
sxtl.4s v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
sxtl.2d v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
sxtl2.8h v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
sxtl2.4s v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
sxtl2.2d v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
uxtl.8h v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
uxtl.4s v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
uxtl.2d v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
|
|
uxtl2.8h v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
uxtl2.4s v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|
|
uxtl2.2d v0, v1
|
|
// CHECK: [[@LINE-1]]:3: error: instruction requires: neon
|