1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/test/CodeGen/X86/fp-stack-ret.ll
Matthias Braun f7935a3f63 X86: Do not use llc -march in tests.
`llc -march` is problematic because it only switches the target
architecture, but leaves the operating system unchanged. This
occasionally leads to indeterministic tests because the OS from
LLVM_DEFAULT_TARGET_TRIPLE is used.

However we can simply always use `llc -mtriple` instead. This changes
all the tests to do this to avoid people using -march when they copy and
paste parts of tests.

See also the discussion in https://reviews.llvm.org/D35287

llvm-svn: 309774
2017-08-02 00:28:10 +00:00

41 lines
932 B
LLVM

; RUN: llc < %s -mtriple=i686-apple-darwin8 -mcpu=yonah | FileCheck %s
; These testcases shouldn't require loading into an XMM register then storing
; to memory, then reloading into an FPStack reg.
; CHECK: test1
; CHECK: fldl
; CHECK-NEXT: ret
define double @test1(double *%P) {
%A = load double, double* %P
ret double %A
}
; fastcc should return a value
; CHECK: test2
; CHECK-NOT: xmm
; CHECK: ret
define fastcc double @test2(<2 x double> %A) {
%B = extractelement <2 x double> %A, i32 0
ret double %B
}
; CHECK: test3
; CHECK: sub{{.*}}%esp
; CHECK-NOT: xmm
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
}
; Clear the stack when not using a return value.
; CHECK: test4
; CHECK: call
; CHECK: fstp
; CHECK: ret
define void @test4(double *%P) {
%A = call double @test1(double *%P)
ret void
}