diff options
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r-- | llvm/test/CodeGen/X86/fp-stack-direct-ret.ll | 11 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/fp-stack-ret-conv.ll | 17 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/pr1505b.ll | 2 |
3 files changed, 29 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/X86/fp-stack-direct-ret.ll b/llvm/test/CodeGen/X86/fp-stack-direct-ret.ll new file mode 100644 index 00000000000..78be2a39def --- /dev/null +++ b/llvm/test/CodeGen/X86/fp-stack-direct-ret.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | llc -march=x86 | not grep fstp +; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | not grep movsd + +declare double @foo() + +define double @bar() { +entry: + %tmp5 = tail call double @foo() + ret double %tmp5 +} + diff --git a/llvm/test/CodeGen/X86/fp-stack-ret-conv.ll b/llvm/test/CodeGen/X86/fp-stack-ret-conv.ll new file mode 100644 index 00000000000..5254e1c89f6 --- /dev/null +++ b/llvm/test/CodeGen/X86/fp-stack-ret-conv.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | llc -mcpu=yonah | grep cvtss2sd +; RUN: llvm-as < %s | llc -mcpu=yonah | grep fstps +; RUN: llvm-as < %s | llc -mcpu=yonah | not grep cvtsd2ss + +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" +target triple = "i686-apple-darwin8" + +define void @test(double *%b) { +entry: + %tmp13 = tail call double @foo() + %tmp1314 = fptrunc double %tmp13 to float ; <float> [#uses=1] + %tmp3940 = fpext float %tmp1314 to double ; <double> [#uses=1] + volatile store double %tmp3940, double* %b + ret void +} + +declare double @foo() diff --git a/llvm/test/CodeGen/X86/pr1505b.ll b/llvm/test/CodeGen/X86/pr1505b.ll index d5e3507583a..73cb23e7ed4 100644 --- a/llvm/test/CodeGen/X86/pr1505b.ll +++ b/llvm/test/CodeGen/X86/pr1505b.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 3 +; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 4 ; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstps | count 3 ; PR1505 |