| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc < %s -mtriple=i686-- | FileCheck %s |
| ; Don't accidentally add the offset twice for trailing bytes. |
| |
| %struct.S63 = type { [63 x i8] } |
| @g1s63 = external dso_local global %struct.S63 ; <%struct.S63*> [#uses=1] |
| |
| declare void @test63(%struct.S63* byval(%struct.S63) align 4 ) nounwind |
| |
| define void @testit63_entry_2E_ce() nounwind { |
| ; CHECK-LABEL: testit63_entry_2E_ce: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: pushl %edi |
| ; CHECK-NEXT: pushl %esi |
| ; CHECK-NEXT: subl $64, %esp |
| ; CHECK-NEXT: movl $15, %ecx |
| ; CHECK-NEXT: movl %esp, %edi |
| ; CHECK-NEXT: movl $g1s63, %esi |
| ; CHECK-NEXT: rep;movsl (%esi), %es:(%edi) |
| ; CHECK-NEXT: movb g1s63+62, %al |
| ; CHECK-NEXT: movb %al, {{[0-9]+}}(%esp) |
| ; CHECK-NEXT: movzwl g1s63+60, %eax |
| ; CHECK-NEXT: movw %ax, {{[0-9]+}}(%esp) |
| ; CHECK-NEXT: calll test63 |
| ; CHECK-NEXT: addl $64, %esp |
| ; CHECK-NEXT: popl %esi |
| ; CHECK-NEXT: popl %edi |
| ; CHECK-NEXT: retl |
| tail call void @test63(%struct.S63* byval(%struct.S63) align 4 @g1s63) nounwind |
| ret void |
| } |