| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc < %s -mtriple=x86_64-linux-gnu | FileCheck %s |
| ; We should be able to bypass the load values to their corresponding |
| define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d) { |
| ; CHECK: # %bb.0: # %entry |
| ; CHECK-NEXT: # kill: def $ecx killed $ecx def $rcx |
| ; CHECK-NEXT: # kill: def $edx killed $edx def $rdx |
| ; CHECK-NEXT: # kill: def $esi killed $esi def $rsi |
| ; CHECK-NEXT: # kill: def $edi killed $edi def $rdi |
| ; CHECK-NEXT: movl %esi, -{{[0-9]+}}(%rsp) |
| ; CHECK-NEXT: movl %ecx, -{{[0-9]+}}(%rsp) |
| ; CHECK-NEXT: movl %edi, -{{[0-9]+}}(%rsp) |
| ; CHECK-NEXT: movl %edx, -{{[0-9]+}}(%rsp) |
| ; CHECK-NEXT: addl %edi, %esi |
| ; CHECK-NEXT: leal (%rdx,%rcx), %eax |
| ; CHECK-NEXT: addl %esi, %eax |
| %add0 = add nsw i32 %l0, %l1 |
| %add1 = add nsw i32 %add0, %l2 |
| %add2 = add nsw i32 %add1, %l3 |