| ; RUN: llc < %s -march=xcore -mcpu=xs1b-generic | FileCheck %s | |
| define i32 *@addr_G1() { | |
| entry: | |
| ; CHECK: addr_G1: | |
| ; CHECK: ldaw r0, dp[G1] | |
| ret i32* @G1 | |
| } | |
| define i32 *@addr_G2() { | |
| entry: | |
| ; CHECK: addr_G2: | |
| ; CHECK: ldaw r0, dp[G2] | |
| ret i32* @G2 | |
| } | |
| define i32 *@addr_G3() { | |
| entry: | |
| ; CHECK: addr_G3: | |
| ; CHECK: ldaw r11, cp[G3] | |
| ; CHECK: mov r0, r11 | |
| ret i32* @G3 | |
| } | |
| define i32 **@addr_G4() { | |
| entry: | |
| ; CHECK: addr_G4: | |
| ; CHECK: ldaw r0, dp[G4] | |
| ret i32** @G4 | |
| } | |
| define i32 **@addr_G5() { | |
| entry: | |
| ; CHECK: addr_G5: | |
| ; CHECK: ldaw r11, cp[G5] | |
| ; CHECK: mov r0, r11 | |
| ret i32** @G5 | |
| } | |
| define i32 **@addr_G6() { | |
| entry: | |
| ; CHECK: addr_G6: | |
| ; CHECK: ldaw r0, dp[G6] | |
| ret i32** @G6 | |
| } | |
| define i32 **@addr_G7() { | |
| entry: | |
| ; CHECK: addr_G7: | |
| ; CHECK: ldaw r11, cp[G7] | |
| ; CHECK: mov r0, r11 | |
| ret i32** @G7 | |
| } | |
| define i32 *@addr_G8() { | |
| entry: | |
| ; CHECK: addr_G8: | |
| ; CHECK: ldaw r0, dp[G8] | |
| ret i32* @G8 | |
| } | |
| @G1 = global i32 4712 | |
| ; CHECK: .section .dp.data,"awd",@progbits | |
| ; CHECK: G1: | |
| @G2 = global i32 0 | |
| ; CHECK: .section .dp.bss,"awd",@nobits | |
| ; CHECK: G2: | |
| @G3 = unnamed_addr constant i32 9401 | |
| ; CHECK: .section .cp.rodata.cst4,"aMc",@progbits,4 | |
| ; CHECK: G3: | |
| @G4 = global i32* @G1 | |
| ; CHECK: .section .dp.data,"awd",@progbits | |
| ; CHECK: G4: | |
| @G5 = unnamed_addr constant i32* @G1 | |
| ; CHECK: .section .cp.rodata,"ac",@progbits | |
| ; CHECK: G5: | |
| @G6 = global i32* @G8 | |
| ; CHECK: .section .dp.data,"awd",@progbits | |
| ; CHECK: G6: | |
| @G7 = unnamed_addr constant i32* @G8 | |
| ; CHECK: .section .cp.rodata,"ac",@progbits | |
| ; CHECK: G7: | |
| @G8 = internal global i32 9312 | |
| ; CHECK: .section .dp.data,"awd",@progbits | |
| ; CHECK: G8: |