1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i686-- | FileCheck %s
3 ; Don't accidentally add the offset twice for trailing bytes.
5 %struct.S63 = type { [63 x i8] }
6 @g1s63 = external dso_local global %struct.S63 ; <ptr> [#uses=1]
8 declare void @test63(ptr byval(%struct.S63) align 4 ) nounwind
10 define void @testit63_entry_2E_ce() nounwind {
11 ; CHECK-LABEL: testit63_entry_2E_ce:
13 ; CHECK-NEXT: pushl %edi
14 ; CHECK-NEXT: pushl %esi
15 ; CHECK-NEXT: subl $64, %esp
16 ; CHECK-NEXT: movl $15, %ecx
17 ; CHECK-NEXT: movl %esp, %edi
18 ; CHECK-NEXT: movl $g1s63, %esi
19 ; CHECK-NEXT: rep;movsl (%esi), %es:(%edi)
20 ; CHECK-NEXT: movzbl g1s63+62, %eax
21 ; CHECK-NEXT: movb %al, {{[0-9]+}}(%esp)
22 ; CHECK-NEXT: movzwl g1s63+60, %eax
23 ; CHECK-NEXT: movw %ax, {{[0-9]+}}(%esp)
24 ; CHECK-NEXT: calll test63@PLT
25 ; CHECK-NEXT: addl $64, %esp
26 ; CHECK-NEXT: popl %esi
27 ; CHECK-NEXT: popl %edi
29 tail call void @test63(ptr byval(%struct.S63) align 4 @g1s63) nounwind