1; Test branching instructions. 2; TODO(kschimpf): Get this working. 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 @simple_uncond_branch() { 23; DIS-LABEL: 00000000 <simple_uncond_branch>: 24; ASM-LABEL: simple_uncond_branch: 25; IASM-LABEL:simple_uncond_branch: 26 27; ASM-NEXT: .Lsimple_uncond_branch$__0: 28; IASM-NEXT: .Lsimple_uncond_branch$__0: 29 30 br label %l2 31; ASM-NEXT: b .Lsimple_uncond_branch$l2 32; IASM-NEXT: .byte 0x0 33; IASM-NEXT: .byte 0x0 34; IASM-NEXT: .byte 0x0 35; IASM-NEXT: .byte 0xea 36; DIS-NEXT: 0: ea000000 37 38l1: 39; ASM-NEXT: .Lsimple_uncond_branch$l1: 40; IASM-NEXT: .Lsimple_uncond_branch$l1: 41 42 br label %l3 43; ASM-NEXT: b .Lsimple_uncond_branch$l3 44; IASM-NEXT: .byte 0x0 45; IASM-NEXT: .byte 0x0 46; IASM-NEXT: .byte 0x0 47; IASM-NEXT: .byte 0xea 48; DIS-NEXT: 4: ea000000 49 50l2: 51; ASM-NEXT: .Lsimple_uncond_branch$l2: 52; IASM-NEXT: .Lsimple_uncond_branch$l2: 53 54 br label %l1 55; ASM-NEXT: b .Lsimple_uncond_branch$l1 56; IASM-NEXT: .byte 0xfd 57; IASM-NEXT: .byte 0xff 58; IASM-NEXT: .byte 0xff 59; IASM-NEXT: .byte 0xea 60; DIS-NEXT: 8: eafffffd 61 62l3: 63; ASM-NEXT: .Lsimple_uncond_branch$l3: 64; IASM-NEXT: .Lsimple_uncond_branch$l3: 65 66 ret void 67; ASM-NEXT: bx lr 68; IASM-NEXT: .byte 0x1e 69; IASM-NEXT: .byte 0xff 70; IASM-NEXT: .byte 0x2f 71; IASM-NEXT: .byte 0xe1 72; DIS-NEXT: c: e12fff1e 73 74} 75