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