summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/sibcall.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/sibcall.ll')
-rw-r--r--test/CodeGen/X86/sibcall.ll22
1 files changed, 20 insertions, 2 deletions
diff --git a/test/CodeGen/X86/sibcall.ll b/test/CodeGen/X86/sibcall.ll
index 8e52a7cbfe783..4b27f2edb759b 100644
--- a/test/CodeGen/X86/sibcall.ll
+++ b/test/CodeGen/X86/sibcall.ll
@@ -1,5 +1,5 @@
-; RUN: llc < %s -march=x86 -asm-verbose=false | FileCheck %s -check-prefix=32
-; RUN: llc < %s -march=x86-64 -asm-verbose=false | FileCheck %s -check-prefix=64
+; RUN: llc < %s -march=x86 -mattr=+sse2 -asm-verbose=false | FileCheck %s -check-prefix=32
+; RUN: llc < %s -march=x86-64 -mattr=+sse2 -asm-verbose=false | FileCheck %s -check-prefix=64
define void @t1(i32 %x) nounwind ssp {
entry:
@@ -313,3 +313,21 @@ entry:
}
declare void @foo()
+
+; If caller / callee calling convention mismatch then check if the return
+; values are returned in the same registers.
+; rdar://7874780
+
+define double @t20(double %x) nounwind {
+entry:
+; 32: t20:
+; 32: call {{_?}}foo20
+; 32: fldl (%esp)
+
+; 64: t20:
+; 64: jmp {{_?}}foo20
+ %0 = tail call fastcc double @foo20(double %x) nounwind
+ ret double %0
+}
+
+declare fastcc double @foo20(double) nounwind