// 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