1; Shows that the ARM integrated assembler can translate a trivial,
2; bundle-aligned function.
3
4; REQUIRES: allow_dump
5
6; Compile using standalone assembler.
7; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \
8; RUN:   | FileCheck %s --check-prefix=ASM
9
10; Show bytes in assembled standalone code.
11; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
12; RUN:   --args -Om1 | FileCheck %s --check-prefix=DIS
13
14; Compile using integrated assembler.
15; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \
16; RUN:   | FileCheck %s --check-prefix=IASM
17
18; Show bytes in assembled integrated code.
19; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \
20; RUN:   --args -Om1 | FileCheck %s --check-prefix=DIS
21
22define internal void @f() {
23  ret void
24}
25
26; ASM-LABEL:f:
27; ASM-NEXT: .Lf$__0:
28; ASM-NEXT:     bx      lr
29
30; DIS-LABEL:00000000 <f>:
31; IASM-LABEL:f:
32; IASM-NEXT:.Lf$__0:
33
34; DIS-NEXT:   0:        e12fff1e
35; IASM-NEXT:    .byte 0x1e
36; IASM-NEXT:    .byte 0xff
37; IASM-NEXT:    .byte 0x2f
38; IASM-NEXT:    .byte 0xe1
39
40; DIS-NEXT:   4:        e7fedef0
41; IASM-NEXT:    .byte 0xf0
42; IASM-NEXT:    .byte 0xde
43; IASM-NEXT:    .byte 0xfe
44; IASM-NEXT:    .byte 0xe7
45
46; DIS-NEXT:   8:        e7fedef0
47; IASM-NEXT:    .byte 0xf0
48; IASM-NEXT:    .byte 0xde
49; IASM-NEXT:    .byte 0xfe
50; IASM-NEXT:    .byte 0xe7
51
52; DIS-NEXT:   c:        e7fedef0
53; IASM-NEXT:    .byte 0xf0
54; IASM-NEXT:    .byte 0xde
55; IASM-NEXT:    .byte 0xfe
56; IASM-NEXT:    .byte 0xe7
57
58define internal void @ignore() {
59  ret void
60}
61
62; ASM-LABEL:ignore:
63; DIS-LABEL:00000010 <ignore>:
64; IASM-LABEL:ignore:
65