zpu: managed to compile program that writes constant to global variable
[llvm/zpu.git] / test / CodeGen / ARM / globals.ll
blobccb14280df9bea85fe6b155be8841db742c5d42b
1 ; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=static | FileCheck %s -check-prefix=DarwinStatic
2 ; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=dynamic-no-pic | FileCheck %s -check-prefix=DarwinDynamic
3 ; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=pic | FileCheck %s -check-prefix=DarwinPIC
4 ; RUN: llc < %s -mtriple=arm-linux-gnueabi -relocation-model=pic | FileCheck %s -check-prefix=LinuxPIC
6 @G = external global i32
8 define i32 @test1() {
9         %tmp = load i32* @G
10         ret i32 %tmp
13 ; DarwinStatic: _test1:
14 ; DarwinStatic:         ldr r0, LCPI0_0
15 ; DarwinStatic:         ldr r0, [r0]
16 ; DarwinStatic:         bx lr
18 ; DarwinStatic:         .align  2
19 ; DarwinStatic: LCPI0_0:
20 ; DarwinStatic:         .long   {{_G$}}
23 ; DarwinDynamic: _test1:
24 ; DarwinDynamic:        ldr r0, LCPI0_0
25 ; DarwinDynamic:        ldr r0, [r0]
26 ; DarwinDynamic:        ldr r0, [r0]
27 ; DarwinDynamic:        bx lr
29 ; DarwinDynamic:        .align  2
30 ; DarwinDynamic:        LCPI0_0:
31 ; DarwinDynamic:        .long   L_G$non_lazy_ptr
33 ; DarwinDynamic:        .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
34 ; DarwinDynamic:        .align  2
35 ; DarwinDynamic: L_G$non_lazy_ptr:
36 ; DarwinDynamic:        .indirect_symbol _G
37 ; DarwinDynamic:        .long   0
41 ; DarwinPIC: _test1:
42 ; DarwinPIC:    ldr r0, LCPI0_0
43 ; DarwinPIC: LPC0_0:
44 ; DarwinPIC:    ldr r0, [pc, r0]
45 ; DarwinPIC:    ldr r0, [r0]
46 ; DarwinPIC:    bx lr
48 ; DarwinPIC:    .align  2
49 ; DarwinPIC: LCPI0_0:
50 ; DarwinPIC:    .long   L_G$non_lazy_ptr-(LPC0_0+8)
52 ; DarwinPIC:    .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
53 ; DarwinPIC:    .align  2
54 ; DarwinPIC: L_G$non_lazy_ptr:
55 ; DarwinPIC:    .indirect_symbol _G
56 ; DarwinPIC:    .long   0
60 ; LinuxPIC: test1:
61 ; LinuxPIC:     ldr r0, .LCPI0_0
62 ; LinuxPIC:     ldr r1, .LCPI0_1
63         
64 ; LinuxPIC: .LPC0_0:
65 ; LinuxPIC:     add r0, pc, r0
66 ; LinuxPIC:     ldr r0, [r1, r0]
67 ; LinuxPIC:     ldr r0, [r0]
68 ; LinuxPIC:     bx lr
70 ; LinuxPIC: .align 2
71 ; LinuxPIC: .LCPI0_0:
72 ; LinuxPIC:     .long _GLOBAL_OFFSET_TABLE_-(.LPC0_0+8)
73 ; LinuxPIC: .align 2
74 ; LinuxPIC: .LCPI0_1:
75 ; LinuxPIC:     .long   G(GOT)