Lines Matching full:fast
2 ; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefixes=X86,X86-FAST
4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefixes=X64,X64-FAST
45 ; X86-FAST-LABEL: var_shift_i16:
46 ; X86-FAST: # %bb.0:
47 ; X86-FAST-NEXT: movzwl {{[0-9]+}}(%esp), %edx
48 ; X86-FAST-NEXT: movzwl {{[0-9]+}}(%esp), %eax
49 ; X86-FAST-NEXT: movb {{[0-9]+}}(%esp), %cl
50 ; X86-FAST-NEXT: andb $15, %cl
51 ; X86-FAST-NEXT: shrdw %cl, %dx, %ax
52 ; X86-FAST-NEXT: retl
66 ; X64-FAST-LABEL: var_shift_i16:
67 ; X64-FAST: # %bb.0:
68 ; X64-FAST-NEXT: movl %edx, %ecx
69 ; X64-FAST-NEXT: movl %esi, %eax
70 ; X64-FAST-NEXT: andb $15, %cl
71 ; X64-FAST-NEXT: # kill: def $cl killed $cl killed $ecx
72 ; X64-FAST-NEXT: shrdw %cl, %di, %ax
73 ; X64-FAST-NEXT: # kill: def $ax killed $ax killed $eax
74 ; X64-FAST-NEXT: retq
92 ; X86-FAST-LABEL: var_shift_i32:
93 ; X86-FAST: # %bb.0:
94 ; X86-FAST-NEXT: movb {{[0-9]+}}(%esp), %cl
95 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %edx
96 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax
97 ; X86-FAST-NEXT: shrdl %cl, %edx, %eax
98 ; X86-FAST-NEXT: retl
112 ; X64-FAST-LABEL: var_shift_i32:
113 ; X64-FAST: # %bb.0:
114 ; X64-FAST-NEXT: movl %edx, %ecx
115 ; X64-FAST-NEXT: movl %esi, %eax
116 ; X64-FAST-NEXT: # kill: def $cl killed $cl killed $ecx
117 ; X64-FAST-NEXT: shrdl %cl, %edi, %eax
118 ; X64-FAST-NEXT: retq
176 ; X86-FAST-LABEL: var_shift_i64:
177 ; X86-FAST: # %bb.0:
178 ; X86-FAST-NEXT: pushl %ebp
179 ; X86-FAST-NEXT: pushl %ebx
180 ; X86-FAST-NEXT: pushl %edi
181 ; X86-FAST-NEXT: pushl %esi
182 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %esi
183 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %ebp
184 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax
185 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %edx
186 ; X86-FAST-NEXT: movb {{[0-9]+}}(%esp), %bl
187 ; X86-FAST-NEXT: movb %bl, %ch
188 ; X86-FAST-NEXT: notb %ch
189 ; X86-FAST-NEXT: shldl $1, %eax, %edx
190 ; X86-FAST-NEXT: addl %eax, %eax
191 ; X86-FAST-NEXT: movb %ch, %cl
192 ; X86-FAST-NEXT: shldl %cl, %eax, %edx
193 ; X86-FAST-NEXT: movl %ebp, %edi
194 ; X86-FAST-NEXT: movb %bl, %cl
195 ; X86-FAST-NEXT: shrl %cl, %edi
196 ; X86-FAST-NEXT: shrdl %cl, %ebp, %esi
197 ; X86-FAST-NEXT: testb $32, %bl
198 ; X86-FAST-NEXT: je .LBB5_2
199 ; X86-FAST-NEXT: # %bb.1:
200 ; X86-FAST-NEXT: movl %edi, %esi
201 ; X86-FAST-NEXT: xorl %edi, %edi
202 ; X86-FAST-NEXT: .LBB5_2:
203 ; X86-FAST-NEXT: movb %ch, %cl
204 ; X86-FAST-NEXT: shll %cl, %eax
205 ; X86-FAST-NEXT: testb $32, %ch
206 ; X86-FAST-NEXT: je .LBB5_4
207 ; X86-FAST-NEXT: # %bb.3:
208 ; X86-FAST-NEXT: movl %eax, %edx
209 ; X86-FAST-NEXT: xorl %eax, %eax
210 ; X86-FAST-NEXT: .LBB5_4:
211 ; X86-FAST-NEXT: orl %edi, %edx
212 ; X86-FAST-NEXT: orl %esi, %eax
213 ; X86-FAST-NEXT: popl %esi
214 ; X86-FAST-NEXT: popl %edi
215 ; X86-FAST-NEXT: popl %ebx
216 ; X86-FAST-NEXT: popl %ebp
217 ; X86-FAST-NEXT: retl
280 ; X64-FAST-LABEL: var_shift_i64:
281 ; X64-FAST: # %bb.0:
282 ; X64-FAST-NEXT: movq %rdx, %rcx
283 ; X64-FAST-NEXT: movq %rsi, %rax
284 ; X64-FAST-NEXT: # kill: def $cl killed $cl killed $rcx
285 ; X64-FAST-NEXT: shrdq %cl, %rdi, %rax
286 ; X64-FAST-NEXT: retq
329 ; X86-FAST-LABEL: const_shift_i16:
330 ; X86-FAST: # %bb.0:
331 ; X86-FAST-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
332 ; X86-FAST-NEXT: movzwl {{[0-9]+}}(%esp), %eax
333 ; X86-FAST-NEXT: shrdw $7, %cx, %ax
334 ; X86-FAST-NEXT: retl
346 ; X64-FAST-LABEL: const_shift_i16:
347 ; X64-FAST: # %bb.0:
348 ; X64-FAST-NEXT: movl %esi, %eax
349 ; X64-FAST-NEXT: shrdw $7, %di, %ax
350 ; X64-FAST-NEXT: # kill: def $ax killed $ax killed $eax
351 ; X64-FAST-NEXT: retq
366 ; X86-FAST-LABEL: const_shift_i32:
367 ; X86-FAST: # %bb.0:
368 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %ecx
369 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax
370 ; X86-FAST-NEXT: shrdl $7, %ecx, %eax
371 ; X86-FAST-NEXT: retl
382 ; X64-FAST-LABEL: const_shift_i32:
383 ; X64-FAST: # %bb.0:
384 ; X64-FAST-NEXT: movl %edi, %eax
385 ; X64-FAST-NEXT: shldl $25, %esi, %eax
386 ; X64-FAST-NEXT: retq
401 ; X86-FAST-LABEL: const_shift_i64:
402 ; X86-FAST: # %bb.0:
403 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %eax
404 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %ecx
405 ; X86-FAST-NEXT: movl {{[0-9]+}}(%esp), %edx
406 ; X86-FAST-NEXT: shldl $25, %ecx, %edx
407 ; X86-FAST-NEXT: shrdl $7, %ecx, %eax
408 ; X86-FAST-NEXT: retl
426 ; X64-FAST-LABEL: const_shift_i64:
427 ; X64-FAST: # %bb.0:
428 ; X64-FAST-NEXT: movq %rdi, %rax
429 ; X64-FAST-NEXT: shldq $57, %rsi, %rax
430 ; X64-FAST-NEXT: retq