[PowerPC] Load BlockAddress values from the TOC in 64-bit SVR4 code
[oota-llvm.git] / test / CodeGen / PowerPC / blockaddress.ll
1 ; RUN: llc < %s -code-model=small -march=ppc64 -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s -check-prefix=SMALL
2 ; RUN: llc < %s -code-model=medium -march=ppc64 -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s -check-prefix=MEDIUM
3 ; RUN: llc < %s -code-model=large -march=ppc64 -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s -check-prefix=MEDIUM
4 ; RUN: llc < %s -code-model=small -march=ppc64 -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=SMALL
5 ; RUN: llc < %s -code-model=medium -march=ppc64 -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=MEDIUM
6 ; RUN: llc < %s -code-model=large -march=ppc64 -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=MEDIUM
7
8 define i8* @test() {
9 entry:
10   br label %here
11
12 here:                                             ; preds = %entry
13 ; MEDIUM: .Ltmp[[TMP0:[0-9]+]]:
14 ; MEDIUM: addis [[R0:[0-9]+]], 2, .LC[[LC0:[0-9]+]]@toc@ha
15 ; MEDIUM: ld 3, .LC[[LC0]]@toc@l([[R0]])
16 ; MEDIUM: blr
17 ; MEDIUM: .LC[[LC0]]:
18 ; MEDIUM: .tc .Ltmp[[TMP0]][TC],.Ltmp[[TMP0]]
19 ; SMALL: .Ltmp[[TMP0:[0-9]+]]:
20 ; SMALL: ld 3, .LC[[LC0:[0-9]+]]@toc(2)
21 ; SMALL: blr
22 ; SMALL: .LC[[LC0]]:
23 ; SMALL: .tc .Ltmp[[TMP0]][TC],.Ltmp[[TMP0]]
24   ret i8* blockaddress(@test, %here)
25 }
26