Lines Matching refs:AVX
3 ; RUN: llc < %s -mtriple=i686-linux -mattr=+avx | FileCheck %s --check-prefix=X86-AVX
4 ; RUN: llc < %s -mtriple=i686-linux -mattr=+avx2 | FileCheck %s --check-prefix=X86-AVX
6 ; RUN: llc < %s -mtriple=x86_64-linux -mattr=+avx | FileCheck %s --check-prefix=X64-AVX
7 ; RUN: llc < %s -mtriple=x86_64-linux -mattr=+avx2 | FileCheck %s --check-prefix=X64-AVX
28 ; X86-AVX-LABEL: load7_aligned:
29 ; X86-AVX: # %bb.0:
30 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
31 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
32 ; X86-AVX-NEXT: vmovaps (%ecx), %ymm0
33 ; X86-AVX-NEXT: vmovaps 48(%ecx), %xmm1
34 ; X86-AVX-NEXT: vextractps $1, %xmm1, 52(%eax)
35 ; X86-AVX-NEXT: vmovss %xmm1, 48(%eax)
36 ; X86-AVX-NEXT: vmovaps 32(%ecx), %xmm1
37 ; X86-AVX-NEXT: vmovaps %xmm1, 32(%eax)
38 ; X86-AVX-NEXT: vmovaps %ymm0, (%eax)
39 ; X86-AVX-NEXT: vzeroupper
40 ; X86-AVX-NEXT: retl $4
55 ; X64-AVX-LABEL: load7_aligned:
56 ; X64-AVX: # %bb.0:
57 ; X64-AVX-NEXT: movq %rdi, %rax
58 ; X64-AVX-NEXT: vmovaps (%rsi), %ymm0
59 ; X64-AVX-NEXT: movq 48(%rsi), %rcx
60 ; X64-AVX-NEXT: movq %rcx, 48(%rdi)
61 ; X64-AVX-NEXT: vmovaps 32(%rsi), %xmm1
62 ; X64-AVX-NEXT: vmovaps %xmm1, 32(%rdi)
63 ; X64-AVX-NEXT: vmovaps %ymm0, (%rdi)
64 ; X64-AVX-NEXT: vzeroupper
65 ; X64-AVX-NEXT: retq
87 ; X86-AVX-LABEL: load7_unaligned:
88 ; X86-AVX: # %bb.0:
89 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
90 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
91 ; X86-AVX-NEXT: vmovups (%ecx), %ymm0
92 ; X86-AVX-NEXT: vmovups 32(%ecx), %xmm1
93 ; X86-AVX-NEXT: movl 48(%ecx), %edx
94 ; X86-AVX-NEXT: movl 52(%ecx), %ecx
95 ; X86-AVX-NEXT: movl %ecx, 52(%eax)
96 ; X86-AVX-NEXT: movl %edx, 48(%eax)
97 ; X86-AVX-NEXT: vmovaps %xmm1, 32(%eax)
98 ; X86-AVX-NEXT: vmovaps %ymm0, (%eax)
99 ; X86-AVX-NEXT: vzeroupper
100 ; X86-AVX-NEXT: retl $4
115 ; X64-AVX-LABEL: load7_unaligned:
116 ; X64-AVX: # %bb.0:
117 ; X64-AVX-NEXT: movq %rdi, %rax
118 ; X64-AVX-NEXT: vmovups (%rsi), %ymm0
119 ; X64-AVX-NEXT: vmovups 32(%rsi), %xmm1
120 ; X64-AVX-NEXT: movq 48(%rsi), %rcx
121 ; X64-AVX-NEXT: movq %rcx, 48(%rdi)
122 ; X64-AVX-NEXT: vmovaps %xmm1, 32(%rdi)
123 ; X64-AVX-NEXT: vmovaps %ymm0, (%rdi)
124 ; X64-AVX-NEXT: vzeroupper
125 ; X64-AVX-NEXT: retq
144 ; X86-AVX-LABEL: load_split:
145 ; X86-AVX: # %bb.0:
146 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
147 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
148 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %edx
149 ; X86-AVX-NEXT: vmovups (%edx), %ymm0
150 ; X86-AVX-NEXT: vmovups %xmm0, (%ecx)
151 ; X86-AVX-NEXT: vextractf128 $1, %ymm0, (%eax)
152 ; X86-AVX-NEXT: vzeroupper
153 ; X86-AVX-NEXT: retl
163 ; X64-AVX-LABEL: load_split:
164 ; X64-AVX: # %bb.0:
165 ; X64-AVX-NEXT: vmovups (%rdi), %ymm0
166 ; X64-AVX-NEXT: vmovups %xmm0, (%rsi)
167 ; X64-AVX-NEXT: vextractf128 $1, %ymm0, (%rdx)
168 ; X64-AVX-NEXT: vzeroupper
169 ; X64-AVX-NEXT: retq
192 ; X86-AVX-LABEL: load_split_more:
193 ; X86-AVX: # %bb.0:
194 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
195 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
196 ; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %edx
197 ; X86-AVX-NEXT: vmovups (%edx), %ymm0
198 ; X86-AVX-NEXT: movl (%ecx), %edx
199 ; X86-AVX-NEXT: vmovups %xmm0, (%eax,%edx,4)
200 ; X86-AVX-NEXT: movl 4(%ecx), %ecx
201 ; X86-AVX-NEXT: vextractf128 $1, %ymm0, (%eax,%ecx,4)
202 ; X86-AVX-NEXT: vzeroupper
203 ; X86-AVX-NEXT: retl
215 ; X64-AVX-LABEL: load_split_more:
216 ; X64-AVX: # %bb.0:
217 ; X64-AVX-NEXT: vmovups (%rdi), %ymm0
218 ; X64-AVX-NEXT: movslq (%rsi), %rax
219 ; X64-AVX-NEXT: vmovups %xmm0, (%rdx,%rax,4)
220 ; X64-AVX-NEXT: movslq 4(%rsi), %rax
221 ; X64-AVX-NEXT: vextractf128 $1, %ymm0, (%rdx,%rax,4)
222 ; X64-AVX-NEXT: vzeroupper
223 ; X64-AVX-NEXT: retq