verify that double is returned in XMM0 if the function is fastcc.

llvm-svn: 34591
This commit is contained in:
Chris Lattner 2007-02-25 09:30:03 +00:00
parent 9d9cc84f5b
commit 2b8b520e53
1 changed files with 16 additions and 3 deletions

View File

@ -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 @@ define double @test1(double *%P) {
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
}