Lines Matching refs:SSE2
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefix=SSE2
6 ; SSE2-LABEL: zext_and_v8i32:
7 ; SSE2: # %bb.0:
8 ; SSE2-NEXT: pand %xmm0, %xmm1
9 ; SSE2-NEXT: pxor %xmm2, %xmm2
10 ; SSE2-NEXT: movdqa %xmm1, %xmm0
11 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
12 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],x…
13 ; SSE2-NEXT: retq
27 ; SSE2-LABEL: zext_or_v8i32:
28 ; SSE2: # %bb.0:
29 ; SSE2-NEXT: por %xmm0, %xmm1
30 ; SSE2-NEXT: pxor %xmm2, %xmm2
31 ; SSE2-NEXT: movdqa %xmm1, %xmm0
32 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
33 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],x…
34 ; SSE2-NEXT: retq
48 ; SSE2-LABEL: zext_xor_v8i32:
49 ; SSE2: # %bb.0:
50 ; SSE2-NEXT: pxor %xmm0, %xmm1
51 ; SSE2-NEXT: pxor %xmm2, %xmm2
52 ; SSE2-NEXT: movdqa %xmm1, %xmm0
53 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
54 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],x…
55 ; SSE2-NEXT: retq
69 ; SSE2-LABEL: sext_and_v8i32:
70 ; SSE2: # %bb.0:
71 ; SSE2-NEXT: pand %xmm1, %xmm0
72 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],x…
73 ; SSE2-NEXT: psrad $16, %xmm2
74 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],x…
75 ; SSE2-NEXT: psrad $16, %xmm1
76 ; SSE2-NEXT: movdqa %xmm2, %xmm0
77 ; SSE2-NEXT: retq
91 ; SSE2-LABEL: sext_or_v8i32:
92 ; SSE2: # %bb.0:
93 ; SSE2-NEXT: por %xmm1, %xmm0
94 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],x…
95 ; SSE2-NEXT: psrad $16, %xmm2
96 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],x…
97 ; SSE2-NEXT: psrad $16, %xmm1
98 ; SSE2-NEXT: movdqa %xmm2, %xmm0
99 ; SSE2-NEXT: retq
113 ; SSE2-LABEL: sext_xor_v8i32:
114 ; SSE2: # %bb.0:
115 ; SSE2-NEXT: pxor %xmm1, %xmm0
116 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],x…
117 ; SSE2-NEXT: psrad $16, %xmm2
118 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],x…
119 ; SSE2-NEXT: psrad $16, %xmm1
120 ; SSE2-NEXT: movdqa %xmm2, %xmm0
121 ; SSE2-NEXT: retq
135 ; SSE2-LABEL: zext_and_v8i16:
136 ; SSE2: # %bb.0:
137 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
138 ; SSE2-NEXT: pxor %xmm2, %xmm2
139 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],x…
140 ; SSE2-NEXT: pand %xmm1, %xmm0
141 ; SSE2-NEXT: retq
156 ; SSE2-LABEL: zext_or_v8i16:
157 ; SSE2: # %bb.0:
158 ; SSE2-NEXT: pxor %xmm2, %xmm2
159 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
160 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],x…
161 ; SSE2-NEXT: por %xmm1, %xmm0
162 ; SSE2-NEXT: retq
177 ; SSE2-LABEL: zext_xor_v8i16:
178 ; SSE2: # %bb.0:
179 ; SSE2-NEXT: pxor %xmm2, %xmm2
180 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
181 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],x…
182 ; SSE2-NEXT: pxor %xmm1, %xmm0
183 ; SSE2-NEXT: retq
198 ; SSE2-LABEL: sext_and_v8i16:
199 ; SSE2: # %bb.0:
200 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],x…
201 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],x…
202 ; SSE2-NEXT: pand %xmm2, %xmm0
203 ; SSE2-NEXT: psraw $8, %xmm0
204 ; SSE2-NEXT: retq
219 ; SSE2-LABEL: sext_or_v8i16:
220 ; SSE2: # %bb.0:
221 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],x…
222 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],x…
223 ; SSE2-NEXT: por %xmm2, %xmm0
224 ; SSE2-NEXT: psraw $8, %xmm0
225 ; SSE2-NEXT: retq
240 ; SSE2-LABEL: sext_xor_v8i16:
241 ; SSE2: # %bb.0:
242 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1],xmm2[2],xmm0[2],xmm2[3],x…
243 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],x…
244 ; SSE2-NEXT: pxor %xmm2, %xmm0
245 ; SSE2-NEXT: psraw $8, %xmm0
246 ; SSE2-NEXT: retq
261 ; SSE2-LABEL: bool_zext_and:
262 ; SSE2: # %bb.0:
263 ; SSE2-NEXT: movdqa %xmm0, %xmm3
264 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4,4,5,5,6,6,7,7]
265 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]
266 ; SSE2-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
267 ; SSE2-NEXT: pxor %xmm4, %xmm4
268 ; SSE2-NEXT: movdqa %xmm1, %xmm2
269 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],x…
270 ; SSE2-NEXT: pand %xmm3, %xmm2
271 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],x…
272 ; SSE2-NEXT: pand %xmm1, %xmm0
273 ; SSE2-NEXT: movdqa %xmm2, %xmm1
274 ; SSE2-NEXT: retq
290 ; SSE2-LABEL: bool_zext_or:
291 ; SSE2: # %bb.0:
292 ; SSE2-NEXT: por %xmm0, %xmm1
293 ; SSE2-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
294 ; SSE2-NEXT: pxor %xmm2, %xmm2
295 ; SSE2-NEXT: movdqa %xmm1, %xmm0
296 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
297 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],x…
298 ; SSE2-NEXT: retq
313 ; SSE2-LABEL: bool_zext_xor:
314 ; SSE2: # %bb.0:
315 ; SSE2-NEXT: pxor %xmm0, %xmm1
316 ; SSE2-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
317 ; SSE2-NEXT: pxor %xmm2, %xmm2
318 ; SSE2-NEXT: movdqa %xmm1, %xmm0
319 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1],xmm0[2],xmm2[2],xmm0[3],x…
320 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],x…
321 ; SSE2-NEXT: retq
336 ; SSE2-LABEL: bool_sext_and:
337 ; SSE2: # %bb.0:
338 ; SSE2-NEXT: movdqa %xmm1, %xmm3
339 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4,4,5,5,6,6,7,7]
340 ; SSE2-NEXT: movdqa %xmm0, %xmm2
341 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4,4,5,5,6,6,7,7]
342 ; SSE2-NEXT: pand %xmm3, %xmm2
343 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3]
344 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]
345 ; SSE2-NEXT: pand %xmm1, %xmm0
346 ; SSE2-NEXT: pslld $31, %xmm0
347 ; SSE2-NEXT: psrad $31, %xmm0
348 ; SSE2-NEXT: pslld $31, %xmm2
349 ; SSE2-NEXT: psrad $31, %xmm2
350 ; SSE2-NEXT: movdqa %xmm2, %xmm1
351 ; SSE2-NEXT: retq
367 ; SSE2-LABEL: bool_sext_or:
368 ; SSE2: # %bb.0:
369 ; SSE2-NEXT: movdqa %xmm1, %xmm3
370 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4,4,5,5,6,6,7,7]
371 ; SSE2-NEXT: movdqa %xmm0, %xmm2
372 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4,4,5,5,6,6,7,7]
373 ; SSE2-NEXT: por %xmm3, %xmm2
374 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3]
375 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]
376 ; SSE2-NEXT: por %xmm1, %xmm0
377 ; SSE2-NEXT: pslld $31, %xmm0
378 ; SSE2-NEXT: psrad $31, %xmm0
379 ; SSE2-NEXT: pslld $31, %xmm2
380 ; SSE2-NEXT: psrad $31, %xmm2
381 ; SSE2-NEXT: movdqa %xmm2, %xmm1
382 ; SSE2-NEXT: retq
398 ; SSE2-LABEL: bool_sext_xor:
399 ; SSE2: # %bb.0:
400 ; SSE2-NEXT: movdqa %xmm1, %xmm3
401 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm3 = xmm3[4,4,5,5,6,6,7,7]
402 ; SSE2-NEXT: movdqa %xmm0, %xmm2
403 ; SSE2-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4,4,5,5,6,6,7,7]
404 ; SSE2-NEXT: pxor %xmm3, %xmm2
405 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3]
406 ; SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]
407 ; SSE2-NEXT: pxor %xmm1, %xmm0
408 ; SSE2-NEXT: pslld $31, %xmm0
409 ; SSE2-NEXT: psrad $31, %xmm0
410 ; SSE2-NEXT: pslld $31, %xmm2
411 ; SSE2-NEXT: psrad $31, %xmm2
412 ; SSE2-NEXT: movdqa %xmm2, %xmm1
413 ; SSE2-NEXT: retq