[ARM] Cortex-M4 schedule additions
[llvm-complete.git] / test / CodeGen / ARM / inlineasm-ldr-pseudo.ll
blob98665f056a21a88a75a2c4ce54efbecaab9fbc55
1 ; PR18354
2 ; We actually need to use -filetype=obj in this test because if we output
3 ; assembly, the current code path will bypass the parser and just write the
4 ; raw text out to the Streamer. We need to actually parse the inlineasm to
5 ; demonstrate the bug. Going the asm->obj route does not show the issue.
6 ; RUN: llc -mtriple=arm-none-linux   < %s -filetype=obj | llvm-objdump -d - | FileCheck %s
7 ; RUN: llc -mtriple=arm-apple-darwin < %s -filetype=obj | llvm-objdump -d - | FileCheck %s
8 ; CHECK-LABEL: foo:
9 ; CHECK: 0:       00 00 9f e5                                     ldr     r0, [pc]
10 ; CHECK: 4:       0e f0 a0 e1                                     mov     pc, lr
11 ; Make sure the constant pool entry comes after the return
12 ; CHECK: 8:       78 56 34 12
13 define i32 @foo() nounwind {
14 entry:
15   %0 = tail call i32 asm sideeffect "ldr $0,=0x12345678", "=r"() nounwind
16   ret i32 %0