| ; RUN: llc -mtriple=x86_64-apple-darwin < %s | FileCheck %s |
| |
| declare void @lazy() nonlazybind |
| declare void @not() |
| |
| ; CHECK: foo: |
| ; CHECK: callq _not |
| ; CHECK: callq *_lazy@GOTPCREL(%rip) |
| define void @foo() nounwind { |
| call void @not() |
| call void @lazy() |
| ret void |
| } |
| |
| ; CHECK: tail_call_regular: |
| ; CHECK: jmp _not |
| define void @tail_call_regular() nounwind { |
| tail call void @not() |
| ret void |
| } |
| |
| ; CHECK: tail_call_eager: |
| ; CHECK: jmpq *_lazy@GOTPCREL(%rip) |
| define void @tail_call_eager() nounwind { |
| tail call void @lazy() |
| ret void |
| } |