Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/tail-call-got.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 95c75e76d11b |
children |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
1 ; RUN: llc < %s -relocation-model=pic -mattr=+sse2 | FileCheck %s | 1 ; RUN: llc < %s -relocation-model=pic -mattr=+sse2 | FileCheck %s |
2 | |
3 ; We used to do tail calls through the GOT for these symbols, but it was | |
4 ; disabled due to PR15086. | |
2 | 5 |
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" | 6 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" |
4 target triple = "i386-unknown-freebsd9.0" | 7 target triple = "i386-unknown-freebsd9.0" |
5 | 8 |
6 define double @test1(double %x) nounwind readnone { | 9 define double @test1(double %x) nounwind readnone { |
7 ; CHECK-LABEL: test1: | 10 ; CHECK-LABEL: test1: |
8 ; CHECK: movl foo@GOT | 11 ; CHECK: calll foo@PLT |
9 ; CHECK-NEXT: jmpl | |
10 %1 = tail call double @foo(double %x) nounwind readnone | 12 %1 = tail call double @foo(double %x) nounwind readnone |
11 ret double %1 | 13 ret double %1 |
12 } | 14 } |
13 | 15 |
14 declare double @foo(double) readnone | 16 declare double @foo(double) readnone |
15 | 17 |
16 define double @test2(double %x) nounwind readnone { | 18 define double @test2(double %x) nounwind readnone { |
17 ; CHECK-LABEL: test2: | 19 ; CHECK-LABEL: test2: |
18 ; CHECK: movl sin@GOT | 20 ; CHECK: calll sin@PLT |
19 ; CHECK-NEXT: jmpl | |
20 %1 = tail call double @sin(double %x) nounwind readnone | 21 %1 = tail call double @sin(double %x) nounwind readnone |
21 ret double %1 | 22 ret double %1 |
22 } | 23 } |
23 | 24 |
24 declare double @sin(double) readnone | 25 declare double @sin(double) readnone |
26 | |
27 define double @test3(double %x) nounwind readnone { | |
28 ; CHECK-LABEL: test3: | |
29 ; CHECK: calll sin2@PLT | |
30 %1 = tail call double @sin2(double %x) nounwind readnone | |
31 ret double %1 | |
32 } | |
33 | |
34 declare double @sin2(double) readnone |