1// PR19320 2// RUN: not llvm-mc -triple=armv7a-linux-gnueabi -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=V7 3// RUN: llvm-mc -triple=armv8a-linux-gnueabi -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=V8 4 .text 5 6// This tries to use the GNU ldrd/strd alias to create an ldrd/strd instruction 7// using the sp register. This is valid for V8, but not earlier architectures. 8 9 .arm 10 11// V7: error: invalid instruction 12// V8: ldrd r12, sp, [r0, #32] @ encoding: [0xd0,0xc2,0xc0,0xe1] 13 ldrd r12, [r0, #32] 14 15// V7: error: invalid instruction 16// V8: strd r12, sp, [r0, #32] @ encoding: [0xf0,0xc2,0xc0,0xe1] 17 strd r12, [r0, #32] 18 19 .thumb 20 21// V7: error: invalid instruction 22// V8: ldrd r12, sp, [r0, #32] @ encoding: [0xd0,0xe9,0x08,0xcd] 23 ldrd r12, [r0, #32] 24 25// V7: error: invalid instruction 26// V8: strd r12, sp, [r0, #32] @ encoding: [0xc0,0xe9,0x08,0xcd] 27 strd r12, [r0, #32] 28