xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/non-lazy-bind.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-apple-darwin < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdeclare void @lazy() nonlazybind
4*9880d681SAndroid Build Coastguard Workerdeclare void @not()
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: foo:
7*9880d681SAndroid Build Coastguard Worker; CHECK:  callq _not
8*9880d681SAndroid Build Coastguard Worker; CHECK:  callq *_lazy@GOTPCREL(%rip)
9*9880d681SAndroid Build Coastguard Workerdefine void @foo() nounwind {
10*9880d681SAndroid Build Coastguard Worker  call void @not()
11*9880d681SAndroid Build Coastguard Worker  call void @lazy()
12*9880d681SAndroid Build Coastguard Worker  ret void
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: tail_call_regular:
16*9880d681SAndroid Build Coastguard Worker; CHECK:   jmp _not
17*9880d681SAndroid Build Coastguard Workerdefine void @tail_call_regular() nounwind {
18*9880d681SAndroid Build Coastguard Worker  tail call void @not()
19*9880d681SAndroid Build Coastguard Worker  ret void
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: tail_call_eager:
23*9880d681SAndroid Build Coastguard Worker; CHECK:   jmpq *_lazy@GOTPCREL(%rip)
24*9880d681SAndroid Build Coastguard Workerdefine void @tail_call_eager() nounwind {
25*9880d681SAndroid Build Coastguard Worker  tail call void @lazy()
26*9880d681SAndroid Build Coastguard Worker  ret void
27*9880d681SAndroid Build Coastguard Worker}
28