Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / Mips / gpreg-lazy-binding.ll
blob35cebdf302b5daaa65dfe2e09d2ec6cce3895749
1 ; RUN: llc -march=mipsel -disable-mips-delay-filler -relocation-model=pic -mips-tail-calls=1 < %s | FileCheck %s
3 @g = external global i32
5 ; CHECK:     move  $gp
6 ; CHECK:     jalr  $25
7 ; CHECK:     nop
8 ; CHECK-NOT: move  $gp
9 ; CHECK:     jr    $25
11 define void @f0() nounwind {
12 entry:
13   tail call void @externalFunc() nounwind
14   tail call fastcc void @internalFunc()
15   ret void
18 declare void @externalFunc()
20 define internal fastcc void @internalFunc() nounwind noinline {
21 entry:
22   %0 = load i32, ptr @g, align 4
23   %inc = add nsw i32 %0, 1
24   store i32 %inc, ptr @g, align 4
25   ret void
28 define void @no_lazy(ptr %pf) {
30 ; CHECK-LABEL:  no_lazy
31 ; CHECK-NOT:    gp_disp
33   tail call void %pf(i32 1)
34   ret void