@@ -113,97 +113,5 @@ entry:
113113 ret void
114114}
115115
116- declare void @llvm.memcpy.p0.p0.i64 (ptr noalias nocapture writeonly , ptr noalias nocapture readonly , i64 , i1 immarg)
117-
118- define void @lea_in_epilog (i1 %arg , ptr %arg1 , ptr %arg2 , i64 %arg3 , i64 %arg4 , i64 %arg5 , i64 %arg6 , i64 %arg7 , i64 %arg8 , i64 %arg9 , i64 %arg10 ) nounwind {
119- ; CHECK-LABEL: lea_in_epilog:
120- ; CHECK: # %bb.0: # %bb
121- ; CHECK-NEXT: testb $1, %dil
122- ; CHECK-NEXT: je .LBB6_5
123- ; CHECK-NEXT: # %bb.1: # %bb13
124- ; CHECK-NEXT: pushq %rbp
125- ; CHECK-NEXT: pushq %r15
126- ; CHECK-NEXT: pushq %r14
127- ; CHECK-NEXT: pushq %r13
128- ; CHECK-NEXT: pushq %r12
129- ; CHECK-NEXT: pushq %rbx
130- ; CHECK-NEXT: subq $16, %rsp
131- ; CHECK-NEXT: movq %r9, %r14
132- ; CHECK-NEXT: movq %rsi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
133- ; CHECK-NEXT: addq {{[0-9]+}}(%rsp), %r14
134- ; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %r13
135- ; CHECK-NEXT: addq %r14, %r13
136- ; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %r15
137- ; CHECK-NEXT: addq %r14, %r15
138- ; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %rbx
139- ; CHECK-NEXT: addq %r14, %rbx
140- ; CHECK-NEXT: xorl %ebp, %ebp
141- ; CHECK-NEXT: xorl %r12d, %r12d
142- ; CHECK-NEXT: movl %edi, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
143- ; CHECK-NEXT: .p2align 4
144- ; CHECK-NEXT: .LBB6_2: # %bb15
145- ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
146- ; CHECK-NEXT: incq %r12
147- ; CHECK-NEXT: movl $432, %edx # imm = 0x1B0
148- ; CHECK-NEXT: xorl %edi, %edi
149- ; CHECK-NEXT: movq %r15, %rsi
150- ; CHECK-NEXT: callq memcpy@PLT
151- ; CHECK-NEXT: movl {{[-0-9]+}}(%r{{[sb]}}p), %edi # 4-byte Reload
152- ; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %rax
153- ; CHECK-NEXT: addq %rax, %r13
154- ; CHECK-NEXT: addq %rax, %r15
155- ; CHECK-NEXT: addq %rax, %rbx
156- ; CHECK-NEXT: addq %rax, %r14
157- ; CHECK-NEXT: addq $8, %rbp
158- ; CHECK-NEXT: testb $1, %dil
159- ; CHECK-NEXT: je .LBB6_2
160- ; CHECK-NEXT: # %bb.3: # %bb11
161- ; CHECK-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %rax # 8-byte Reload
162- ; CHECK-NEXT: leaq {{[0-9]+}}(%rsp), %rsp
163- ; CHECK-NEXT: popq %rbx
164- ; CHECK-NEXT: popq %r12
165- ; CHECK-NEXT: popq %r13
166- ; CHECK-NEXT: popq %r14
167- ; CHECK-NEXT: popq %r15
168- ; CHECK-NEXT: popq %rbp
169- ; CHECK-NEXT: jne .LBB6_5
170- ; CHECK-NEXT: # %bb.4: # %bb12
171- ; CHECK-NEXT: movq $0, (%rax)
172- ; CHECK-NEXT: .LBB6_5: # %bb14
173- ; CHECK-NEXT: retq
174- bb:
175- br i1 %arg , label %bb13 , label %bb14
176-
177- bb11:
178- br i1 %arg , label %bb14 , label %bb12
179-
180- bb12:
181- store double 0 .000000e+00 , ptr %arg1 , align 8
182- br label %bb14
183-
184- bb13:
185- %getelementptr = getelementptr i8 , ptr null , i64 %arg5
186- br label %bb15
187-
188- bb14:
189- ret void
190-
191- bb15:
192- %phi = phi i64 [ 0 , %bb13 ], [ %add , %bb15 ]
193- %getelementptr16 = getelementptr double , ptr null , i64 %phi
194- %add = add i64 %phi , 1
195- %mul = mul i64 %arg6 , %add
196- %getelementptr17 = getelementptr i8 , ptr %getelementptr , i64 %mul
197- call void @llvm.memcpy.p0.p0.i64 (ptr %getelementptr16 , ptr %getelementptr17 , i64 0 , i1 false )
198- %getelementptr18 = getelementptr i8 , ptr %getelementptr17 , i64 %arg7
199- %getelementptr19 = getelementptr i8 , ptr %getelementptr17 , i64 %arg8
200- call void @llvm.memcpy.p0.p0.i64 (ptr null , ptr %getelementptr19 , i64 0 , i1 false )
201- %getelementptr20 = getelementptr i8 , ptr %getelementptr17 , i64 %arg9
202- call void @llvm.memcpy.p0.p0.i64 (ptr null , ptr %getelementptr20 , i64 432 , i1 false )
203- %getelementptr21 = getelementptr i8 , ptr %getelementptr17 , i64 %arg10
204- call void @llvm.memcpy.p0.p0.i64 (ptr null , ptr %getelementptr21 , i64 0 , i1 false )
205- br i1 %arg , label %bb11 , label %bb15
206- }
207-
208116!llvm.module.flags = !{!0 }
209117!0 = !{i32 1 , !"override-stack-alignment" , i32 8 }
0 commit comments