Changes in directory llvm/test/CodeGen/X86:
fp-stack-ret.ll updated: 1.1 -> 1.2 --- Log message: verify that double is returned in XMM0 if the function is fastcc. --- Diffs of the changes: (+16 -3) fp-stack-ret.ll | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) Index: llvm/test/CodeGen/X86/fp-stack-ret.ll diff -u llvm/test/CodeGen/X86/fp-stack-ret.ll:1.1 llvm/test/CodeGen/X86/fp-stack-ret.ll:1.2 --- llvm/test/CodeGen/X86/fp-stack-ret.ll:1.1 Sun Feb 25 02:23:01 2007 +++ llvm/test/CodeGen/X86/fp-stack-ret.ll Sun Feb 25 03:30:03 2007 @@ -1,6 +1,7 @@ -; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin8 -march=x86 | grep fldl && -; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin8 -march=x86 | not grep xmm && -; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin8 -march=x86 | not grep 'sub.*esp' +; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin8 -mcpu=yonah -march=x86 > %t && +; RUN: grep fldl %t | wc -l | grep 1 && +; RUN: not grep xmm %t && +; RUN: grep 'sub.*esp' %t | wc -l | grep 1 ; These testcases shouldn't require loading into an XMM register then storing ; to memory, then reloading into an FPStack reg. @@ -10,3 +11,15 @@ ret double %A } +; fastcc should return a value +define fastcc double @test2(<2 x double> %A) { + %B = extractelement <2 x double> %A, i32 0 + ret double %B +} + +define fastcc double @test3(<4 x float> %A) { + %B = bitcast <4 x float> %A to <2 x double> + %C = call fastcc double @test2(<2 x double> %B) + ret double %C +} + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits