1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
3
4emms
5
6movd        %eax, %mm2
7movd        (%rax), %mm2
8
9movd        %mm0, %ecx
10movd        %mm0, (%rax)
11
12movq        %rax, %mm2
13movq        (%rax), %mm2
14
15movq        %mm0, %rcx
16movq        %mm0, (%rax)
17
18packsswb    %mm0, %mm2
19packsswb    (%rax), %mm2
20
21packssdw    %mm0, %mm2
22packssdw    (%rax), %mm2
23
24packuswb    %mm0, %mm2
25packuswb    (%rax), %mm2
26
27paddb       %mm0, %mm2
28paddb       (%rax), %mm2
29
30paddd       %mm0, %mm2
31paddd       (%rax), %mm2
32
33paddsb      %mm0, %mm2
34paddsb      (%rax), %mm2
35
36paddsw      %mm0, %mm2
37paddsw      (%rax), %mm2
38
39paddusb     %mm0, %mm2
40paddusb     (%rax), %mm2
41
42paddusw     %mm0, %mm2
43paddusw     (%rax), %mm2
44
45paddw       %mm0, %mm2
46paddw       (%rax), %mm2
47
48pand        %mm0, %mm2
49pand        (%rax), %mm2
50
51pandn       %mm0, %mm2
52pandn       (%rax), %mm2
53
54pcmpeqb     %mm0, %mm2
55pcmpeqb     (%rax), %mm2
56
57pcmpeqd     %mm0, %mm2
58pcmpeqd     (%rax), %mm2
59
60pcmpeqw     %mm0, %mm2
61pcmpeqw     (%rax), %mm2
62
63pcmpgtb     %mm0, %mm2
64pcmpgtb     (%rax), %mm2
65
66pcmpgtd     %mm0, %mm2
67pcmpgtd     (%rax), %mm2
68
69pcmpgtw     %mm0, %mm2
70pcmpgtw     (%rax), %mm2
71
72pmaddwd     %mm0, %mm2
73pmaddwd     (%rax), %mm2
74
75pmulhw      %mm0, %mm2
76pmulhw      (%rax), %mm2
77
78pmullw      %mm0, %mm2
79pmullw      (%rax), %mm2
80
81por         %mm0, %mm2
82por         (%rax), %mm2
83
84pslld       $1, %mm2
85pslld       %mm0, %mm2
86pslld       (%rax), %mm2
87
88psllq       $1, %mm2
89psllq       %mm0, %mm2
90psllq       (%rax), %mm2
91
92psllw       $1, %mm2
93psllw       %mm0, %mm2
94psllw       (%rax), %mm2
95
96psrad       $1, %mm2
97psrad       %mm0, %mm2
98psrad       (%rax), %mm2
99
100psraw       $1, %mm2
101psraw       %mm0, %mm2
102psraw       (%rax), %mm2
103
104psrld       $1, %mm2
105psrld       %mm0, %mm2
106psrld       (%rax), %mm2
107
108psrlq       $1, %mm2
109psrlq       %mm0, %mm2
110psrlq       (%rax), %mm2
111
112psrlw       $1, %mm2
113psrlw       %mm0, %mm2
114psrlw       (%rax), %mm2
115
116psubb       %mm0, %mm2
117psubb       (%rax), %mm2
118
119psubd       %mm0, %mm2
120psubd       (%rax), %mm2
121
122psubsb      %mm0, %mm2
123psubsb      (%rax), %mm2
124
125psubsw      %mm0, %mm2
126psubsw      (%rax), %mm2
127
128psubusb     %mm0, %mm2
129psubusb     (%rax), %mm2
130
131psubusw     %mm0, %mm2
132psubusw     (%rax), %mm2
133
134psubw       %mm0, %mm2
135psubw       (%rax), %mm2
136
137punpckhbw   %mm0, %mm2
138punpckhbw   (%rax), %mm2
139
140punpckhdq   %mm0, %mm2
141punpckhdq   (%rax), %mm2
142
143punpckhwd   %mm0, %mm2
144punpckhwd   (%rax), %mm2
145
146punpcklbw   %mm0, %mm2
147punpcklbw   (%rax), %mm2
148
149punpckldq   %mm0, %mm2
150punpckldq   (%rax), %mm2
151
152punpcklwd   %mm0, %mm2
153punpcklwd   (%rax), %mm2
154
155pxor        %mm0, %mm2
156pxor        (%rax), %mm2
157
158# CHECK:      Instruction Info:
159# CHECK-NEXT: [1]: #uOps
160# CHECK-NEXT: [2]: Latency
161# CHECK-NEXT: [3]: RThroughput
162# CHECK-NEXT: [4]: MayLoad
163# CHECK-NEXT: [5]: MayStore
164# CHECK-NEXT: [6]: HasSideEffects (U)
165
166# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
167# CHECK-NEXT:  10     10    4.50    *      *      U     emms
168# CHECK-NEXT:  1      1     1.00                        movd	%eax, %mm2
169# CHECK-NEXT:  1      5     0.50    *                   movd	(%rax), %mm2
170# CHECK-NEXT:  1      2     1.00                        movd	%mm0, %ecx
171# CHECK-NEXT:  2      1     1.00           *      U     movd	%mm0, (%rax)
172# CHECK-NEXT:  1      1     1.00                        movq	%rax, %mm2
173# CHECK-NEXT:  1      5     0.50    *                   movq	(%rax), %mm2
174# CHECK-NEXT:  1      2     1.00                        movq	%mm0, %rcx
175# CHECK-NEXT:  2      1     1.00           *            movq	%mm0, (%rax)
176# CHECK-NEXT:  3      3     2.00                        packsswb	%mm0, %mm2
177# CHECK-NEXT:  3      7     2.00    *                   packsswb	(%rax), %mm2
178# CHECK-NEXT:  3      3     2.00                        packssdw	%mm0, %mm2
179# CHECK-NEXT:  3      7     2.00    *                   packssdw	(%rax), %mm2
180# CHECK-NEXT:  3      3     2.00                        packuswb	%mm0, %mm2
181# CHECK-NEXT:  3      7     2.00    *                   packuswb	(%rax), %mm2
182# CHECK-NEXT:  1      1     0.50                        paddb	%mm0, %mm2
183# CHECK-NEXT:  2      6     0.50    *                   paddb	(%rax), %mm2
184# CHECK-NEXT:  1      1     0.50                        paddd	%mm0, %mm2
185# CHECK-NEXT:  2      6     0.50    *                   paddd	(%rax), %mm2
186# CHECK-NEXT:  1      1     1.00                        paddsb	%mm0, %mm2
187# CHECK-NEXT:  2      6     1.00    *                   paddsb	(%rax), %mm2
188# CHECK-NEXT:  1      1     1.00                        paddsw	%mm0, %mm2
189# CHECK-NEXT:  2      6     1.00    *                   paddsw	(%rax), %mm2
190# CHECK-NEXT:  1      1     1.00                        paddusb	%mm0, %mm2
191# CHECK-NEXT:  2      6     1.00    *                   paddusb	(%rax), %mm2
192# CHECK-NEXT:  1      1     1.00                        paddusw	%mm0, %mm2
193# CHECK-NEXT:  2      6     1.00    *                   paddusw	(%rax), %mm2
194# CHECK-NEXT:  1      1     0.50                        paddw	%mm0, %mm2
195# CHECK-NEXT:  2      6     0.50    *                   paddw	(%rax), %mm2
196# CHECK-NEXT:  1      1     0.50                        pand	%mm0, %mm2
197# CHECK-NEXT:  2      6     0.50    *                   pand	(%rax), %mm2
198# CHECK-NEXT:  1      1     0.50                        pandn	%mm0, %mm2
199# CHECK-NEXT:  2      6     0.50    *                   pandn	(%rax), %mm2
200# CHECK-NEXT:  1      1     1.00                        pcmpeqb	%mm0, %mm2
201# CHECK-NEXT:  2      6     1.00    *                   pcmpeqb	(%rax), %mm2
202# CHECK-NEXT:  1      1     1.00                        pcmpeqd	%mm0, %mm2
203# CHECK-NEXT:  2      6     1.00    *                   pcmpeqd	(%rax), %mm2
204# CHECK-NEXT:  1      1     1.00                        pcmpeqw	%mm0, %mm2
205# CHECK-NEXT:  2      6     1.00    *                   pcmpeqw	(%rax), %mm2
206# CHECK-NEXT:  1      1     1.00                        pcmpgtb	%mm0, %mm2
207# CHECK-NEXT:  2      6     1.00    *                   pcmpgtb	(%rax), %mm2
208# CHECK-NEXT:  1      1     1.00                        pcmpgtd	%mm0, %mm2
209# CHECK-NEXT:  2      6     1.00    *                   pcmpgtd	(%rax), %mm2
210# CHECK-NEXT:  1      1     1.00                        pcmpgtw	%mm0, %mm2
211# CHECK-NEXT:  2      6     1.00    *                   pcmpgtw	(%rax), %mm2
212# CHECK-NEXT:  1      4     1.00                        pmaddwd	%mm0, %mm2
213# CHECK-NEXT:  2      9     1.00    *                   pmaddwd	(%rax), %mm2
214# CHECK-NEXT:  1      4     1.00                        pmulhw	%mm0, %mm2
215# CHECK-NEXT:  2      9     1.00    *                   pmulhw	(%rax), %mm2
216# CHECK-NEXT:  1      4     1.00                        pmullw	%mm0, %mm2
217# CHECK-NEXT:  2      9     1.00    *                   pmullw	(%rax), %mm2
218# CHECK-NEXT:  1      1     0.50                        por	%mm0, %mm2
219# CHECK-NEXT:  2      6     0.50    *                   por	(%rax), %mm2
220# CHECK-NEXT:  1      1     1.00                        pslld	$1, %mm2
221# CHECK-NEXT:  1      1     1.00                        pslld	%mm0, %mm2
222# CHECK-NEXT:  2      6     1.00    *                   pslld	(%rax), %mm2
223# CHECK-NEXT:  1      1     1.00                        psllq	$1, %mm2
224# CHECK-NEXT:  1      1     1.00                        psllq	%mm0, %mm2
225# CHECK-NEXT:  2      6     1.00    *                   psllq	(%rax), %mm2
226# CHECK-NEXT:  1      1     1.00                        psllw	$1, %mm2
227# CHECK-NEXT:  1      1     1.00                        psllw	%mm0, %mm2
228# CHECK-NEXT:  2      6     1.00    *                   psllw	(%rax), %mm2
229# CHECK-NEXT:  1      1     1.00                        psrad	$1, %mm2
230# CHECK-NEXT:  1      1     1.00                        psrad	%mm0, %mm2
231# CHECK-NEXT:  2      6     1.00    *                   psrad	(%rax), %mm2
232# CHECK-NEXT:  1      1     1.00                        psraw	$1, %mm2
233# CHECK-NEXT:  1      1     1.00                        psraw	%mm0, %mm2
234# CHECK-NEXT:  2      6     1.00    *                   psraw	(%rax), %mm2
235# CHECK-NEXT:  1      1     1.00                        psrld	$1, %mm2
236# CHECK-NEXT:  1      1     1.00                        psrld	%mm0, %mm2
237# CHECK-NEXT:  2      6     1.00    *                   psrld	(%rax), %mm2
238# CHECK-NEXT:  1      1     1.00                        psrlq	$1, %mm2
239# CHECK-NEXT:  1      1     1.00                        psrlq	%mm0, %mm2
240# CHECK-NEXT:  2      6     1.00    *                   psrlq	(%rax), %mm2
241# CHECK-NEXT:  1      1     1.00                        psrlw	$1, %mm2
242# CHECK-NEXT:  1      1     1.00                        psrlw	%mm0, %mm2
243# CHECK-NEXT:  2      6     1.00    *                   psrlw	(%rax), %mm2
244# CHECK-NEXT:  1      1     0.50                        psubb	%mm0, %mm2
245# CHECK-NEXT:  2      6     0.50    *                   psubb	(%rax), %mm2
246# CHECK-NEXT:  1      1     0.50                        psubd	%mm0, %mm2
247# CHECK-NEXT:  2      6     0.50    *                   psubd	(%rax), %mm2
248# CHECK-NEXT:  1      1     1.00                        psubsb	%mm0, %mm2
249# CHECK-NEXT:  2      6     1.00    *                   psubsb	(%rax), %mm2
250# CHECK-NEXT:  1      1     1.00                        psubsw	%mm0, %mm2
251# CHECK-NEXT:  2      6     1.00    *                   psubsw	(%rax), %mm2
252# CHECK-NEXT:  1      1     1.00                        psubusb	%mm0, %mm2
253# CHECK-NEXT:  2      6     1.00    *                   psubusb	(%rax), %mm2
254# CHECK-NEXT:  1      1     1.00                        psubusw	%mm0, %mm2
255# CHECK-NEXT:  2      6     1.00    *                   psubusw	(%rax), %mm2
256# CHECK-NEXT:  1      1     0.50                        psubw	%mm0, %mm2
257# CHECK-NEXT:  2      6     0.50    *                   psubw	(%rax), %mm2
258# CHECK-NEXT:  1      1     1.00                        punpckhbw	%mm0, %mm2
259# CHECK-NEXT:  2      6     1.00    *                   punpckhbw	(%rax), %mm2
260# CHECK-NEXT:  1      1     1.00                        punpckhdq	%mm0, %mm2
261# CHECK-NEXT:  2      6     1.00    *                   punpckhdq	(%rax), %mm2
262# CHECK-NEXT:  1      1     1.00                        punpckhwd	%mm0, %mm2
263# CHECK-NEXT:  2      6     1.00    *                   punpckhwd	(%rax), %mm2
264# CHECK-NEXT:  1      1     1.00                        punpcklbw	%mm0, %mm2
265# CHECK-NEXT:  2      6     1.00    *                   punpcklbw	(%rax), %mm2
266# CHECK-NEXT:  1      1     1.00                        punpckldq	%mm0, %mm2
267# CHECK-NEXT:  2      6     1.00    *                   punpckldq	(%rax), %mm2
268# CHECK-NEXT:  1      1     1.00                        punpcklwd	%mm0, %mm2
269# CHECK-NEXT:  2      6     1.00    *                   punpcklwd	(%rax), %mm2
270# CHECK-NEXT:  1      1     0.50                        pxor	%mm0, %mm2
271# CHECK-NEXT:  2      6     0.50    *                   pxor	(%rax), %mm2
272
273# CHECK:      Resources:
274# CHECK-NEXT: [0]   - SKXDivider
275# CHECK-NEXT: [1]   - SKXFPDivider
276# CHECK-NEXT: [2]   - SKXPort0
277# CHECK-NEXT: [3]   - SKXPort1
278# CHECK-NEXT: [4]   - SKXPort2
279# CHECK-NEXT: [5]   - SKXPort3
280# CHECK-NEXT: [6]   - SKXPort4
281# CHECK-NEXT: [7]   - SKXPort5
282# CHECK-NEXT: [8]   - SKXPort6
283# CHECK-NEXT: [9]   - SKXPort7
284
285# CHECK:      Resource pressure per iteration:
286# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
287# CHECK-NEXT:  -      -     75.50  1.00   23.67  23.67  2.00   41.50  1.00   0.67
288
289# CHECK:      Resource pressure by instruction:
290# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
291# CHECK-NEXT:  -      -     4.75   0.25    -      -      -     4.75   0.25    -     emms
292# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     movd	%eax, %mm2
293# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     movd	(%rax), %mm2
294# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     movd	%mm0, %ecx
295# CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   movd	%mm0, (%rax)
296# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     movq	%rax, %mm2
297# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     movq	(%rax), %mm2
298# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     movq	%mm0, %rcx
299# CHECK-NEXT:  -      -      -      -     0.33   0.33   1.00    -      -     0.33   movq	%mm0, (%rax)
300# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     2.25   0.25    -     packsswb	%mm0, %mm2
301# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     packsswb	(%rax), %mm2
302# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     2.25   0.25    -     packssdw	%mm0, %mm2
303# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     packssdw	(%rax), %mm2
304# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     2.25   0.25    -     packuswb	%mm0, %mm2
305# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     2.00    -      -     packuswb	(%rax), %mm2
306# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     paddb	%mm0, %mm2
307# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     paddb	(%rax), %mm2
308# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     paddd	%mm0, %mm2
309# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     paddd	(%rax), %mm2
310# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     paddsb	%mm0, %mm2
311# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     paddsb	(%rax), %mm2
312# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     paddsw	%mm0, %mm2
313# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     paddsw	(%rax), %mm2
314# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     paddusb	%mm0, %mm2
315# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     paddusb	(%rax), %mm2
316# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     paddusw	%mm0, %mm2
317# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     paddusw	(%rax), %mm2
318# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     paddw	%mm0, %mm2
319# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     paddw	(%rax), %mm2
320# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     pand	%mm0, %mm2
321# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     pand	(%rax), %mm2
322# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     pandn	%mm0, %mm2
323# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     pandn	(%rax), %mm2
324# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pcmpeqb	%mm0, %mm2
325# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pcmpeqb	(%rax), %mm2
326# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pcmpeqd	%mm0, %mm2
327# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pcmpeqd	(%rax), %mm2
328# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pcmpeqw	%mm0, %mm2
329# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pcmpeqw	(%rax), %mm2
330# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pcmpgtb	%mm0, %mm2
331# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pcmpgtb	(%rax), %mm2
332# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pcmpgtd	%mm0, %mm2
333# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pcmpgtd	(%rax), %mm2
334# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pcmpgtw	%mm0, %mm2
335# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pcmpgtw	(%rax), %mm2
336# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmaddwd	%mm0, %mm2
337# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmaddwd	(%rax), %mm2
338# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmulhw	%mm0, %mm2
339# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmulhw	(%rax), %mm2
340# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pmullw	%mm0, %mm2
341# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pmullw	(%rax), %mm2
342# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     por	%mm0, %mm2
343# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     por	(%rax), %mm2
344# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pslld	$1, %mm2
345# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     pslld	%mm0, %mm2
346# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     pslld	(%rax), %mm2
347# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psllq	$1, %mm2
348# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psllq	%mm0, %mm2
349# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psllq	(%rax), %mm2
350# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psllw	$1, %mm2
351# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psllw	%mm0, %mm2
352# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psllw	(%rax), %mm2
353# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrad	$1, %mm2
354# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrad	%mm0, %mm2
355# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psrad	(%rax), %mm2
356# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psraw	$1, %mm2
357# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psraw	%mm0, %mm2
358# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psraw	(%rax), %mm2
359# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrld	$1, %mm2
360# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrld	%mm0, %mm2
361# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psrld	(%rax), %mm2
362# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrlq	$1, %mm2
363# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrlq	%mm0, %mm2
364# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psrlq	(%rax), %mm2
365# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrlw	$1, %mm2
366# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psrlw	%mm0, %mm2
367# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psrlw	(%rax), %mm2
368# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     psubb	%mm0, %mm2
369# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     psubb	(%rax), %mm2
370# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     psubd	%mm0, %mm2
371# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     psubd	(%rax), %mm2
372# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psubsb	%mm0, %mm2
373# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psubsb	(%rax), %mm2
374# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psubsw	%mm0, %mm2
375# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psubsw	(%rax), %mm2
376# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psubusb	%mm0, %mm2
377# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psubusb	(%rax), %mm2
378# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -     psubusw	%mm0, %mm2
379# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -     psubusw	(%rax), %mm2
380# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     psubw	%mm0, %mm2
381# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     psubw	(%rax), %mm2
382# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     punpckhbw	%mm0, %mm2
383# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     punpckhbw	(%rax), %mm2
384# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     punpckhdq	%mm0, %mm2
385# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     punpckhdq	(%rax), %mm2
386# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     punpckhwd	%mm0, %mm2
387# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     punpckhwd	(%rax), %mm2
388# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     punpcklbw	%mm0, %mm2
389# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     punpcklbw	(%rax), %mm2
390# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     punpckldq	%mm0, %mm2
391# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     punpckldq	(%rax), %mm2
392# CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -     punpcklwd	%mm0, %mm2
393# CHECK-NEXT:  -      -      -      -     0.50   0.50    -     1.00    -      -     punpcklwd	(%rax), %mm2
394# CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     pxor	%mm0, %mm2
395# CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -     0.50    -      -     pxor	(%rax), %mm2
396