| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 |
| ; RUN: llc < %s -mtriple=x86_64-linux-gnu -mattr=-sse,-avx | FileCheck %s |
| |
| @.str = private unnamed_addr constant [6 x i8] c"%d %d\00", align 1 |
| |
| define void @caller(i32 %0, i32 %1) #0 { |
| ; CHECK-LABEL: caller: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: pushq %r11 |
| ; CHECK-NEXT: pushq %r10 |
| ; CHECK-NEXT: pushq %r9 |
| ; CHECK-NEXT: pushq %r8 |
| ; CHECK-NEXT: pushq %rdx |
| ; CHECK-NEXT: pushq %rcx |
| ; CHECK-NEXT: pushq %rax |
| ; CHECK-NEXT: movl %esi, %edx |
| ; CHECK-NEXT: movl %edi, %esi |
| ; CHECK-NEXT: movl $.L.str, %edi |
| ; CHECK-NEXT: callq printf@PLT |
| ; CHECK-NEXT: popq %rax |
| ; CHECK-NEXT: popq %rcx |
| ; CHECK-NEXT: popq %rdx |
| ; CHECK-NEXT: popq %r8 |
| ; CHECK-NEXT: popq %r9 |
| ; CHECK-NEXT: popq %r10 |
| ; CHECK-NEXT: popq %r11 |
| ; CHECK-NEXT: retq |
| %3 = tail call i32 @printf(ptr @.str, i32 %0, i32 %1) |
| ret void |
| } |
| |
| declare i32 @printf(ptr, ...) nounwind |
| |
| attributes #0 = { mustprogress nounwind "no_caller_saved_registers" } |