Mercurial > hg > Members > tobaru > cbc > CbC_llvm
comparison test/CodeGen/AArch64/basic-pic.ll @ 95:afa8332a0e37
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 54457678186b |
children |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
3 @var = global i32 0 | 3 @var = global i32 0 |
4 | 4 |
5 define i32 @get_globalvar() { | 5 define i32 @get_globalvar() { |
6 ; CHECK-LABEL: get_globalvar: | 6 ; CHECK-LABEL: get_globalvar: |
7 | 7 |
8 %val = load i32* @var | 8 %val = load i32, i32* @var |
9 ; CHECK: adrp x[[GOTHI:[0-9]+]], :got:var | 9 ; CHECK: adrp x[[GOTHI:[0-9]+]], :got:var |
10 ; CHECK: ldr x[[GOTLOC:[0-9]+]], [x[[GOTHI]], {{#?}}:got_lo12:var] | 10 ; CHECK: ldr x[[GOTLOC:[0-9]+]], [x[[GOTHI]], {{#?}}:got_lo12:var] |
11 ; CHECK: ldr w0, [x[[GOTLOC]]] | 11 ; CHECK: ldr w0, [x[[GOTLOC]]] |
12 | 12 |
13 ret i32 %val | 13 ret i32 %val |
14 } | 14 } |
15 | 15 |
16 define i32* @get_globalvaraddr() { | 16 define i32* @get_globalvaraddr() { |
17 ; CHECK-LABEL: get_globalvaraddr: | 17 ; CHECK-LABEL: get_globalvaraddr: |
18 | 18 |
19 %val = load i32* @var | 19 %val = load i32, i32* @var |
20 ; CHECK: adrp x[[GOTHI:[0-9]+]], :got:var | 20 ; CHECK: adrp x[[GOTHI:[0-9]+]], :got:var |
21 ; CHECK: ldr x0, [x[[GOTHI]], {{#?}}:got_lo12:var] | 21 ; CHECK: ldr x0, [x[[GOTHI]], {{#?}}:got_lo12:var] |
22 | 22 |
23 ret i32* @var | 23 ret i32* @var |
24 } | 24 } |
26 @hiddenvar = hidden global i32 0 | 26 @hiddenvar = hidden global i32 0 |
27 | 27 |
28 define i32 @get_hiddenvar() { | 28 define i32 @get_hiddenvar() { |
29 ; CHECK-LABEL: get_hiddenvar: | 29 ; CHECK-LABEL: get_hiddenvar: |
30 | 30 |
31 %val = load i32* @hiddenvar | 31 %val = load i32, i32* @hiddenvar |
32 ; CHECK: adrp x[[HI:[0-9]+]], hiddenvar | 32 ; CHECK: adrp x[[HI:[0-9]+]], hiddenvar |
33 ; CHECK: ldr w0, [x[[HI]], {{#?}}:lo12:hiddenvar] | 33 ; CHECK: ldr w0, [x[[HI]], {{#?}}:lo12:hiddenvar] |
34 | 34 |
35 ret i32 %val | 35 ret i32 %val |
36 } | 36 } |
37 | 37 |
38 define i32* @get_hiddenvaraddr() { | 38 define i32* @get_hiddenvaraddr() { |
39 ; CHECK-LABEL: get_hiddenvaraddr: | 39 ; CHECK-LABEL: get_hiddenvaraddr: |
40 | 40 |
41 %val = load i32* @hiddenvar | 41 %val = load i32, i32* @hiddenvar |
42 ; CHECK: adrp [[HI:x[0-9]+]], hiddenvar | 42 ; CHECK: adrp [[HI:x[0-9]+]], hiddenvar |
43 ; CHECK: add x0, [[HI]], {{#?}}:lo12:hiddenvar | 43 ; CHECK: add x0, [[HI]], {{#?}}:lo12:hiddenvar |
44 | 44 |
45 ret i32* @hiddenvar | 45 ret i32* @hiddenvar |
46 } | 46 } |