llvm/test/CodeGen/Mips/gpreg-lazy-binding.ll
Simon Dardis fbff6d5f71 [mips] Disable tail calls temporarily
Disable tail calls while the remaining bugs are fixed. Enable only for tests.

Reviewers: vkalintiris

Differential Review: https://reviews.llvm.org/D24912


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282487 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-27 13:15:54 +00:00

36 lines
724 B
LLVM

; RUN: llc -march=mipsel -disable-mips-delay-filler -relocation-model=pic -mips-tail-calls=1 < %s | FileCheck %s
@g = external global i32
; CHECK: move $gp
; CHECK: jalr $25
; CHECK: nop
; CHECK-NOT: move $gp
; CHECK: jr $25
define void @f0() nounwind {
entry:
tail call void @externalFunc() nounwind
tail call fastcc void @internalFunc()
ret void
}
declare void @externalFunc()
define internal fastcc void @internalFunc() nounwind noinline {
entry:
%0 = load i32, i32* @g, align 4
%inc = add nsw i32 %0, 1
store i32 %inc, i32* @g, align 4
ret void
}
define void @no_lazy(void (i32)* %pf) {
; CHECK-LABEL: no_lazy
; CHECK-NOT: gp_disp
tail call void %pf(i32 1)
ret void
}