1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
3
4addpd       %xmm0, %xmm2
5addpd       (%rax), %xmm2
6
7addsd       %xmm0, %xmm2
8addsd       (%rax), %xmm2
9
10andnpd      %xmm0, %xmm2
11andnpd      (%rax), %xmm2
12
13andpd       %xmm0, %xmm2
14andpd       (%rax), %xmm2
15
16clflush     (%rax)
17
18cmppd       $0, %xmm0, %xmm2
19cmppd       $0, (%rax), %xmm2
20
21cmpsd       $0, %xmm0, %xmm2
22cmpsd       $0, (%rax), %xmm2
23
24comisd      %xmm0, %xmm1
25comisd      (%rax), %xmm1
26
27cvtdq2pd    %xmm0, %xmm2
28cvtdq2pd    (%rax), %xmm2
29
30cvtdq2ps    %xmm0, %xmm2
31cvtdq2ps    (%rax), %xmm2
32
33cvtpd2dq    %xmm0, %xmm2
34cvtpd2dq    (%rax), %xmm2
35
36cvtpd2pi    %xmm0, %mm2
37cvtpd2pi    (%rax), %mm2
38
39cvtpd2ps    %xmm0, %xmm2
40cvtpd2ps    (%rax), %xmm2
41
42cvtpi2pd    %mm0, %xmm2
43cvtpi2pd    (%rax), %xmm2
44
45cvtps2dq    %xmm0, %xmm2
46cvtps2dq    (%rax), %xmm2
47
48cvtps2pd    %xmm0, %xmm2
49cvtps2pd    (%rax), %xmm2
50
51cvtsd2si    %xmm0, %ecx
52cvtsd2si    %xmm0, %rcx
53cvtsd2si    (%rax), %ecx
54cvtsd2si    (%rax), %rcx
55
56cvtsd2ss    %xmm0, %xmm2
57cvtsd2ss    (%rax), %xmm2
58
59cvtsi2sd    %ecx, %xmm2
60cvtsi2sd    %rcx, %xmm2
61cvtsi2sd    (%rax), %xmm2
62cvtsi2sd    (%rax), %xmm2
63
64cvtss2sd    %xmm0, %xmm2
65cvtss2sd    (%rax), %xmm2
66
67cvttpd2dq   %xmm0, %xmm2
68cvttpd2dq   (%rax), %xmm2
69
70cvttpd2pi   %xmm0, %mm2
71cvttpd2pi   (%rax), %mm2
72
73cvttps2dq   %xmm0, %xmm2
74cvttps2dq   (%rax), %xmm2
75
76cvttsd2si   %xmm0, %ecx
77cvttsd2si   %xmm0, %rcx
78cvttsd2si   (%rax), %ecx
79cvttsd2si   (%rax), %rcx
80
81divpd       %xmm0, %xmm2
82divpd       (%rax), %xmm2
83
84divsd       %xmm0, %xmm2
85divsd       (%rax), %xmm2
86
87lfence
88
89maskmovdqu  %xmm0, %xmm1
90
91maxpd       %xmm0, %xmm2
92maxpd       (%rax), %xmm2
93
94maxsd       %xmm0, %xmm2
95maxsd       (%rax), %xmm2
96
97mfence
98
99minpd       %xmm0, %xmm2
100minpd       (%rax), %xmm2
101
102minsd       %xmm0, %xmm2
103minsd       (%rax), %xmm2
104
105movapd      %xmm0, %xmm2
106movapd      %xmm0, (%rax)
107movapd      (%rax), %xmm2
108
109movd        %eax, %xmm2
110movd        (%rax), %xmm2
111
112movd        %xmm0, %ecx
113movd        %xmm0, (%rax)
114
115movdqa      %xmm0, %xmm2
116movdqa      %xmm0, (%rax)
117movdqa      (%rax), %xmm2
118
119movdqu      %xmm0, %xmm2
120movdqu      %xmm0, (%rax)
121movdqu      (%rax), %xmm2
122
123movdq2q     %xmm0, %mm2
124
125movhpd      %xmm0, (%rax)
126movhpd      (%rax), %xmm2
127
128movlpd      %xmm0, (%rax)
129movlpd      (%rax), %xmm2
130
131movmskpd    %xmm0, %rcx
132
133movntil     %eax, (%rax)
134movntiq     %rax, (%rax)
135
136movntdq     %xmm0, (%rax)
137movntpd     %xmm0, (%rax)
138
139movq        %xmm0, %xmm2
140
141movq        %rax, %xmm2
142movq        (%rax), %xmm2
143
144movq        %xmm0, %rcx
145movq        %xmm0, (%rax)
146
147movq2dq     %mm0, %xmm2
148
149movsd       %xmm0, %xmm2
150movsd       %xmm0, (%rax)
151movsd       (%rax), %xmm2
152
153movupd      %xmm0, %xmm2
154movupd      %xmm0, (%rax)
155movupd      (%rax), %xmm2
156
157mulpd       %xmm0, %xmm2
158mulpd       (%rax), %xmm2
159
160mulsd       %xmm0, %xmm2
161mulsd       (%rax), %xmm2
162
163orpd        %xmm0, %xmm2
164orpd        (%rax), %xmm2
165
166packssdw    %xmm0, %xmm2
167packssdw    (%rax), %xmm2
168
169packsswb    %xmm0, %xmm2
170packsswb    (%rax), %xmm2
171
172packuswb    %xmm0, %xmm2
173packuswb    (%rax), %xmm2
174
175paddb       %xmm0, %xmm2
176paddb       (%rax), %xmm2
177
178paddd       %xmm0, %xmm2
179paddd       (%rax), %xmm2
180
181paddq       %mm0, %mm2
182paddq       (%rax), %mm2
183
184paddq       %xmm0, %xmm2
185paddq       (%rax), %xmm2
186
187paddsb      %xmm0, %xmm2
188paddsb      (%rax), %xmm2
189
190paddsw      %xmm0, %xmm2
191paddsw      (%rax), %xmm2
192
193paddusb     %xmm0, %xmm2
194paddusb     (%rax), %xmm2
195
196paddusw     %xmm0, %xmm2
197paddusw     (%rax), %xmm2
198
199paddw       %xmm0, %xmm2
200paddw       (%rax), %xmm2
201
202pand        %xmm0, %xmm2
203pand        (%rax), %xmm2
204
205pandn       %xmm0, %xmm2
206pandn       (%rax), %xmm2
207
208pavgb       %xmm0, %xmm2
209pavgb       (%rax), %xmm2
210
211pavgw       %xmm0, %xmm2
212pavgw       (%rax), %xmm2
213
214pcmpeqb     %xmm0, %xmm2
215pcmpeqb     (%rax), %xmm2
216
217pcmpeqd     %xmm0, %xmm2
218pcmpeqd     (%rax), %xmm2
219
220pcmpeqw     %xmm0, %xmm2
221pcmpeqw     (%rax), %xmm2
222
223pcmpgtb     %xmm0, %xmm2
224pcmpgtb     (%rax), %xmm2
225
226pcmpgtd     %xmm0, %xmm2
227pcmpgtd     (%rax), %xmm2
228
229pcmpgtw     %xmm0, %xmm2
230pcmpgtw     (%rax), %xmm2
231
232pextrw      $1, %xmm0, %rcx
233
234pinsrw      $1, %rax, %xmm0
235pinsrw      $1, (%rax), %xmm0
236
237pmaddwd     %xmm0, %xmm2
238pmaddwd     (%rax), %xmm2
239
240pmaxsw      %xmm0, %xmm2
241pmaxsw      (%rax), %xmm2
242
243pmaxub      %xmm0, %xmm2
244pmaxub      (%rax), %xmm2
245
246pminsw      %xmm0, %xmm2
247pminsw      (%rax), %xmm2
248
249pminub      %xmm0, %xmm2
250pminub      (%rax), %xmm2
251
252pmovmskb    %xmm0, %rcx
253
254pmulhuw     %xmm0, %xmm2
255pmulhuw     (%rax), %xmm2
256
257pmulhw      %xmm0, %xmm2
258pmulhw      (%rax), %xmm2
259
260pmullw      %xmm0, %xmm2
261pmullw      (%rax), %xmm2
262
263pmuludq     %mm0, %mm2
264pmuludq     (%rax), %mm2
265
266pmuludq     %xmm0, %xmm2
267pmuludq     (%rax), %xmm2
268
269por         %xmm0, %xmm2
270por         (%rax), %xmm2
271
272psadbw      %xmm0, %xmm2
273psadbw      (%rax), %xmm2
274
275pshufd      $1, %xmm0, %xmm2
276pshufd      $1, (%rax), %xmm2
277
278pshufhw     $1, %xmm0, %xmm2
279pshufhw     $1, (%rax), %xmm2
280
281pshuflw     $1, %xmm0, %xmm2
282pshuflw     $1, (%rax), %xmm2
283
284pslld       $1, %xmm2
285pslld       %xmm0, %xmm2
286pslld       (%rax), %xmm2
287
288pslldq      $1, %xmm2
289
290psllq       $1, %xmm2
291psllq       %xmm0, %xmm2
292psllq       (%rax), %xmm2
293
294psllw       $1, %xmm2
295psllw       %xmm0, %xmm2
296psllw       (%rax), %xmm2
297
298psrad       $1, %xmm2
299psrad       %xmm0, %xmm2
300psrad       (%rax), %xmm2
301
302psraw       $1, %xmm2
303psraw       %xmm0, %xmm2
304psraw       (%rax), %xmm2
305
306psrld       $1, %xmm2
307psrld       %xmm0, %xmm2
308psrld       (%rax), %xmm2
309
310psrldq      $1, %xmm2
311
312psrlq       $1, %xmm2
313psrlq       %xmm0, %xmm2
314psrlq       (%rax), %xmm2
315
316psrlw       $1, %xmm2
317psrlw       %xmm0, %xmm2
318psrlw       (%rax), %xmm2
319
320psubb       %xmm0, %xmm2
321psubb       (%rax), %xmm2
322
323psubd       %xmm0, %xmm2
324psubd       (%rax), %xmm2
325
326psubq       %mm0, %mm2
327psubq       (%rax), %mm2
328
329psubq       %xmm0, %xmm2
330psubq       (%rax), %xmm2
331
332psubsb      %xmm0, %xmm2
333psubsb      (%rax), %xmm2
334
335psubsw      %xmm0, %xmm2
336psubsw      (%rax), %xmm2
337
338psubusb     %xmm0, %xmm2
339psubusb     (%rax), %xmm2
340
341psubusw     %xmm0, %xmm2
342psubusw     (%rax), %xmm2
343
344psubw       %xmm0, %xmm2
345psubw       (%rax), %xmm2
346
347punpckhbw   %xmm0, %xmm2
348punpckhbw   (%rax), %xmm2
349
350punpckhdq   %xmm0, %xmm2
351punpckhdq   (%rax), %xmm2
352
353punpckhqdq  %xmm0, %xmm2
354punpckhqdq  (%rax), %xmm2
355
356punpckhwd   %xmm0, %xmm2
357punpckhwd   (%rax), %xmm2
358
359punpcklbw   %xmm0, %xmm2
360punpcklbw   (%rax), %xmm2
361
362punpckldq   %xmm0, %xmm2
363punpckldq   (%rax), %xmm2
364
365punpcklqdq  %xmm0, %xmm2
366punpcklqdq  (%rax), %xmm2
367
368punpcklwd   %xmm0, %xmm2
369punpcklwd   (%rax), %xmm2
370
371pxor        %xmm0, %xmm2
372pxor        (%rax), %xmm2
373
374shufpd      $1, %xmm0, %xmm2
375shufpd      $1, (%rax), %xmm2
376
377sqrtpd      %xmm0, %xmm2
378sqrtpd      (%rax), %xmm2
379
380sqrtsd      %xmm0, %xmm2
381sqrtsd      (%rax), %xmm2
382
383subpd       %xmm0, %xmm2
384subpd       (%rax), %xmm2
385
386subsd       %xmm0, %xmm2
387subsd       (%rax), %xmm2
388
389ucomisd     %xmm0, %xmm1
390ucomisd     (%rax), %xmm1
391
392unpckhpd    %xmm0, %xmm2
393unpckhpd    (%rax), %xmm2
394
395unpcklpd    %xmm0, %xmm2
396unpcklpd    (%rax), %xmm2
397
398xorpd       %xmm0, %xmm2
399xorpd       (%rax), %xmm2
400
401# CHECK:      Instruction Info:
402# CHECK-NEXT: [1]: #uOps
403# CHECK-NEXT: [2]: Latency
404# CHECK-NEXT: [3]: RThroughput
405# CHECK-NEXT: [4]: MayLoad
406# CHECK-NEXT: [5]: MayStore
407# CHECK-NEXT: [6]: HasSideEffects (U)
408
409# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
410# CHECK-NEXT:  1      3     1.00                        addpd	%xmm0, %xmm2
411# CHECK-NEXT:  2      9     1.00    *                   addpd	(%rax), %xmm2
412# CHECK-NEXT:  1      3     1.00                        addsd	%xmm0, %xmm2
413# CHECK-NEXT:  2      9     1.00    *                   addsd	(%rax), %xmm2
414# CHECK-NEXT:  1      1     1.00                        andnpd	%xmm0, %xmm2
415# CHECK-NEXT:  2      7     1.00    *                   andnpd	(%rax), %xmm2
416# CHECK-NEXT:  1      1     1.00                        andpd	%xmm0, %xmm2
417# CHECK-NEXT:  2      7     1.00    *                   andpd	(%rax), %xmm2
418# CHECK-NEXT:  4      5     1.00    *      *      U     clflush	(%rax)
419# CHECK-NEXT:  1      3     1.00                        cmpeqpd	%xmm0, %xmm2
420# CHECK-NEXT:  2      9     1.00    *                   cmpeqpd	(%rax), %xmm2
421# CHECK-NEXT:  1      3     1.00                        cmpeqsd	%xmm0, %xmm2
422# CHECK-NEXT:  2      9     1.00    *                   cmpeqsd	(%rax), %xmm2
423# CHECK-NEXT:  2      2     1.00                        comisd	%xmm0, %xmm1
424# CHECK-NEXT:  3      8     1.00    *                   comisd	(%rax), %xmm1
425# CHECK-NEXT:  2      4     1.00                        cvtdq2pd	%xmm0, %xmm2
426# CHECK-NEXT:  3      10    1.00    *                   cvtdq2pd	(%rax), %xmm2
427# CHECK-NEXT:  1      3     1.00                        cvtdq2ps	%xmm0, %xmm2
428# CHECK-NEXT:  2      9     1.00    *                   cvtdq2ps	(%rax), %xmm2
429# CHECK-NEXT:  2      4     1.00                        cvtpd2dq	%xmm0, %xmm2
430# CHECK-NEXT:  3      10    1.00    *                   cvtpd2dq	(%rax), %xmm2
431# CHECK-NEXT:  2      4     1.00                        cvtpd2pi	%xmm0, %mm2
432# CHECK-NEXT:  3      10    1.00    *                   cvtpd2pi	(%rax), %mm2
433# CHECK-NEXT:  2      4     1.00                        cvtpd2ps	%xmm0, %xmm2
434# CHECK-NEXT:  3      10    1.00    *                   cvtpd2ps	(%rax), %xmm2
435# CHECK-NEXT:  2      4     1.00                        cvtpi2pd	%mm0, %xmm2
436# CHECK-NEXT:  3      10    1.00    *                   cvtpi2pd	(%rax), %xmm2
437# CHECK-NEXT:  1      3     1.00                        cvtps2dq	%xmm0, %xmm2
438# CHECK-NEXT:  2      9     1.00    *                   cvtps2dq	(%rax), %xmm2
439# CHECK-NEXT:  2      2     1.00                        cvtps2pd	%xmm0, %xmm2
440# CHECK-NEXT:  2      7     1.00    *                   cvtps2pd	(%rax), %xmm2
441# CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %ecx
442# CHECK-NEXT:  2      5     1.00                        cvtsd2si	%xmm0, %rcx
443# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %ecx
444# CHECK-NEXT:  3      9     1.00    *                   cvtsd2si	(%rax), %rcx
445# CHECK-NEXT:  2      4     1.00                        cvtsd2ss	%xmm0, %xmm2
446# CHECK-NEXT:  3      10    1.00    *                   cvtsd2ss	(%rax), %xmm2
447# CHECK-NEXT:  2      4     1.00                        cvtsi2sd	%ecx, %xmm2
448# CHECK-NEXT:  2      4     1.00                        cvtsi2sd	%rcx, %xmm2
449# CHECK-NEXT:  2      9     1.00    *                   cvtsi2sdl	(%rax), %xmm2
450# CHECK-NEXT:  2      9     1.00    *                   cvtsi2sdl	(%rax), %xmm2
451# CHECK-NEXT:  1      1     1.00                        cvtss2sd	%xmm0, %xmm2
452# CHECK-NEXT:  2      7     1.00    *                   cvtss2sd	(%rax), %xmm2
453# CHECK-NEXT:  2      4     1.00                        cvttpd2dq	%xmm0, %xmm2
454# CHECK-NEXT:  3      10    1.00    *                   cvttpd2dq	(%rax), %xmm2
455# CHECK-NEXT:  2      4     1.00                        cvttpd2pi	%xmm0, %mm2
456# CHECK-NEXT:  3      10    1.00    *                   cvttpd2pi	(%rax), %mm2
457# CHECK-NEXT:  1      3     1.00                        cvttps2dq	%xmm0, %xmm2
458# CHECK-NEXT:  2      9     1.00    *                   cvttps2dq	(%rax), %xmm2
459# CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %ecx
460# CHECK-NEXT:  2      5     1.00                        cvttsd2si	%xmm0, %rcx
461# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %ecx
462# CHECK-NEXT:  3      9     1.00    *                   cvttsd2si	(%rax), %rcx
463# CHECK-NEXT:  1      22    22.00                       divpd	%xmm0, %xmm2
464# CHECK-NEXT:  2      28    22.00   *                   divpd	(%rax), %xmm2
465# CHECK-NEXT:  1      22    22.00                       divsd	%xmm0, %xmm2
466# CHECK-NEXT:  2      28    22.00   *                   divsd	(%rax), %xmm2
467# CHECK-NEXT:  1      1     1.00    *      *      U     lfence
468# CHECK-NEXT:  1      1     1.00    *      *      U     maskmovdqu	%xmm0, %xmm1
469# CHECK-NEXT:  1      3     1.00                        maxpd	%xmm0, %xmm2
470# CHECK-NEXT:  2      9     1.00    *                   maxpd	(%rax), %xmm2
471# CHECK-NEXT:  1      3     1.00                        maxsd	%xmm0, %xmm2
472# CHECK-NEXT:  2      9     1.00    *                   maxsd	(%rax), %xmm2
473# CHECK-NEXT:  1      1     1.00    *      *      U     mfence
474# CHECK-NEXT:  1      3     1.00                        minpd	%xmm0, %xmm2
475# CHECK-NEXT:  2      9     1.00    *                   minpd	(%rax), %xmm2
476# CHECK-NEXT:  1      3     1.00                        minsd	%xmm0, %xmm2
477# CHECK-NEXT:  2      9     1.00    *                   minsd	(%rax), %xmm2
478# CHECK-NEXT:  1      1     1.00                        movapd	%xmm0, %xmm2
479# CHECK-NEXT:  1      1     1.00           *            movapd	%xmm0, (%rax)
480# CHECK-NEXT:  1      6     0.50    *                   movapd	(%rax), %xmm2
481# CHECK-NEXT:  1      1     1.00                        movd	%eax, %xmm2
482# CHECK-NEXT:  1      6     0.50    *                   movd	(%rax), %xmm2
483# CHECK-NEXT:  1      2     1.00                        movd	%xmm0, %ecx
484# CHECK-NEXT:  1      1     1.00           *            movd	%xmm0, (%rax)
485# CHECK-NEXT:  1      1     0.33                        movdqa	%xmm0, %xmm2
486# CHECK-NEXT:  1      1     1.00           *            movdqa	%xmm0, (%rax)
487# CHECK-NEXT:  1      6     0.50    *                   movdqa	(%rax), %xmm2
488# CHECK-NEXT:  1      1     0.33                        movdqu	%xmm0, %xmm2
489# CHECK-NEXT:  1      1     1.00           *            movdqu	%xmm0, (%rax)
490# CHECK-NEXT:  1      6     0.50    *                   movdqu	(%rax), %xmm2
491# CHECK-NEXT:  2      2     1.00                        movdq2q	%xmm0, %mm2
492# CHECK-NEXT:  1      1     1.00           *            movhpd	%xmm0, (%rax)
493# CHECK-NEXT:  2      7     1.00    *                   movhpd	(%rax), %xmm2
494# CHECK-NEXT:  1      1     1.00           *            movlpd	%xmm0, (%rax)
495# CHECK-NEXT:  2      7     1.00    *                   movlpd	(%rax), %xmm2
496# CHECK-NEXT:  1      2     1.00                        movmskpd	%xmm0, %ecx
497# CHECK-NEXT:  1      1     1.00           *            movntil	%eax, (%rax)
498# CHECK-NEXT:  1      1     1.00           *            movntiq	%rax, (%rax)
499# CHECK-NEXT:  1      1     1.00           *            movntdq	%xmm0, (%rax)
500# CHECK-NEXT:  1      1     1.00           *            movntpd	%xmm0, (%rax)
501# CHECK-NEXT:  1      1     0.33                        movq	%xmm0, %xmm2
502# CHECK-NEXT:  1      1     1.00                        movq	%rax, %xmm2
503# CHECK-NEXT:  1      6     0.50    *                   movq	(%rax), %xmm2
504# CHECK-NEXT:  1      2     1.00                        movq	%xmm0, %rcx
505# CHECK-NEXT:  1      1     1.00           *            movq	%xmm0, (%rax)
506# CHECK-NEXT:  1      1     0.33                        movq2dq	%mm0, %xmm2
507# CHECK-NEXT:  1      1     1.00                        movsd	%xmm0, %xmm2
508# CHECK-NEXT:  1      1     1.00           *            movsd	%xmm0, (%rax)
509# CHECK-NEXT:  1      6     0.50    *                   movsd	(%rax), %xmm2
510# CHECK-NEXT:  1      1     1.00                        movupd	%xmm0, %xmm2
511# CHECK-NEXT:  1      1     1.00           *            movupd	%xmm0, (%rax)
512# CHECK-NEXT:  1      6     0.50    *                   movupd	(%rax), %xmm2
513# CHECK-NEXT:  1      5     1.00                        mulpd	%xmm0, %xmm2
514# CHECK-NEXT:  2      11    1.00    *                   mulpd	(%rax), %xmm2
515# CHECK-NEXT:  1      5     1.00                        mulsd	%xmm0, %xmm2
516# CHECK-NEXT:  2      11    1.00    *                   mulsd	(%rax), %xmm2
517# CHECK-NEXT:  1      1     1.00                        orpd	%xmm0, %xmm2
518# CHECK-NEXT:  2      7     1.00    *                   orpd	(%rax), %xmm2
519# CHECK-NEXT:  1      1     0.50                        packssdw	%xmm0, %xmm2
520# CHECK-NEXT:  2      7     0.50    *                   packssdw	(%rax), %xmm2
521# CHECK-NEXT:  1      1     0.50                        packsswb	%xmm0, %xmm2
522# CHECK-NEXT:  2      7     0.50    *                   packsswb	(%rax), %xmm2
523# CHECK-NEXT:  1      1     0.50                        packuswb	%xmm0, %xmm2
524# CHECK-NEXT:  2      7     0.50    *                   packuswb	(%rax), %xmm2
525# CHECK-NEXT:  1      1     0.50                        paddb	%xmm0, %xmm2
526# CHECK-NEXT:  2      7     0.50    *                   paddb	(%rax), %xmm2
527# CHECK-NEXT:  1      1     0.50                        paddd	%xmm0, %xmm2
528# CHECK-NEXT:  2      7     0.50    *                   paddd	(%rax), %xmm2
529# CHECK-NEXT:  1      1     0.50                        paddq	%mm0, %mm2
530# CHECK-NEXT:  2      7     0.50    *                   paddq	(%rax), %mm2
531# CHECK-NEXT:  1      1     0.50                        paddq	%xmm0, %xmm2
532# CHECK-NEXT:  2      7     0.50    *                   paddq	(%rax), %xmm2
533# CHECK-NEXT:  1      1     0.50                        paddsb	%xmm0, %xmm2
534# CHECK-NEXT:  2      7     0.50    *                   paddsb	(%rax), %xmm2
535# CHECK-NEXT:  1      1     0.50                        paddsw	%xmm0, %xmm2
536# CHECK-NEXT:  2      7     0.50    *                   paddsw	(%rax), %xmm2
537# CHECK-NEXT:  1      1     0.50                        paddusb	%xmm0, %xmm2
538# CHECK-NEXT:  2      7     0.50    *                   paddusb	(%rax), %xmm2
539# CHECK-NEXT:  1      1     0.50                        paddusw	%xmm0, %xmm2
540# CHECK-NEXT:  2      7     0.50    *                   paddusw	(%rax), %xmm2
541# CHECK-NEXT:  1      1     0.50                        paddw	%xmm0, %xmm2
542# CHECK-NEXT:  2      7     0.50    *                   paddw	(%rax), %xmm2
543# CHECK-NEXT:  1      1     0.33                        pand	%xmm0, %xmm2
544# CHECK-NEXT:  2      7     0.50    *                   pand	(%rax), %xmm2
545# CHECK-NEXT:  1      1     0.33                        pandn	%xmm0, %xmm2
546# CHECK-NEXT:  2      7     0.50    *                   pandn	(%rax), %xmm2
547# CHECK-NEXT:  1      1     0.50                        pavgb	%xmm0, %xmm2
548# CHECK-NEXT:  2      7     0.50    *                   pavgb	(%rax), %xmm2
549# CHECK-NEXT:  1      1     0.50                        pavgw	%xmm0, %xmm2
550# CHECK-NEXT:  2      7     0.50    *                   pavgw	(%rax), %xmm2
551# CHECK-NEXT:  1      1     0.50                        pcmpeqb	%xmm0, %xmm2
552# CHECK-NEXT:  2      7     0.50    *                   pcmpeqb	(%rax), %xmm2
553# CHECK-NEXT:  1      1     0.50                        pcmpeqd	%xmm0, %xmm2
554# CHECK-NEXT:  2      7     0.50    *                   pcmpeqd	(%rax), %xmm2
555# CHECK-NEXT:  1      1     0.50                        pcmpeqw	%xmm0, %xmm2
556# CHECK-NEXT:  2      7     0.50    *                   pcmpeqw	(%rax), %xmm2
557# CHECK-NEXT:  1      1     0.50                        pcmpgtb	%xmm0, %xmm2
558# CHECK-NEXT:  2      7     0.50    *                   pcmpgtb	(%rax), %xmm2
559# CHECK-NEXT:  1      1     0.50                        pcmpgtd	%xmm0, %xmm2
560# CHECK-NEXT:  2      7     0.50    *                   pcmpgtd	(%rax), %xmm2
561# CHECK-NEXT:  1      1     0.50                        pcmpgtw	%xmm0, %xmm2
562# CHECK-NEXT:  2      7     0.50    *                   pcmpgtw	(%rax), %xmm2
563# CHECK-NEXT:  2      3     1.00                        pextrw	$1, %xmm0, %ecx
564# CHECK-NEXT:  2      2     1.00                        pinsrw	$1, %eax, %xmm0
565# CHECK-NEXT:  2      7     0.50    *                   pinsrw	$1, (%rax), %xmm0
566# CHECK-NEXT:  1      5     1.00                        pmaddwd	%xmm0, %xmm2
567# CHECK-NEXT:  2      11    1.00    *                   pmaddwd	(%rax), %xmm2
568# CHECK-NEXT:  1      1     0.50                        pmaxsw	%xmm0, %xmm2
569# CHECK-NEXT:  2      7     0.50    *                   pmaxsw	(%rax), %xmm2
570# CHECK-NEXT:  1      1     0.50                        pmaxub	%xmm0, %xmm2
571# CHECK-NEXT:  2      7     0.50    *                   pmaxub	(%rax), %xmm2
572# CHECK-NEXT:  1      1     0.50                        pminsw	%xmm0, %xmm2
573# CHECK-NEXT:  2      7     0.50    *                   pminsw	(%rax), %xmm2
574# CHECK-NEXT:  1      1     0.50                        pminub	%xmm0, %xmm2
575# CHECK-NEXT:  2      7     0.50    *                   pminub	(%rax), %xmm2
576# CHECK-NEXT:  1      2     1.00                        pmovmskb	%xmm0, %ecx
577# CHECK-NEXT:  1      5     1.00                        pmulhuw	%xmm0, %xmm2
578# CHECK-NEXT:  2      11    1.00    *                   pmulhuw	(%rax), %xmm2
579# CHECK-NEXT:  1      5     1.00                        pmulhw	%xmm0, %xmm2
580# CHECK-NEXT:  2      11    1.00    *                   pmulhw	(%rax), %xmm2
581# CHECK-NEXT:  1      5     1.00                        pmullw	%xmm0, %xmm2
582# CHECK-NEXT:  2      11    1.00    *                   pmullw	(%rax), %xmm2
583# CHECK-NEXT:  1      5     1.00                        pmuludq	%mm0, %mm2
584# CHECK-NEXT:  2      10    1.00    *                   pmuludq	(%rax), %mm2
585# CHECK-NEXT:  1      5     1.00                        pmuludq	%xmm0, %xmm2
586# CHECK-NEXT:  2      11    1.00    *                   pmuludq	(%rax), %xmm2
587# CHECK-NEXT:  1      1     0.33                        por	%xmm0, %xmm2
588# CHECK-NEXT:  2      7     0.50    *                   por	(%rax), %xmm2
589# CHECK-NEXT:  1      5     1.00                        psadbw	%xmm0, %xmm2
590# CHECK-NEXT:  2      11    1.00    *                   psadbw	(%rax), %xmm2
591# CHECK-NEXT:  1      1     0.50                        pshufd	$1, %xmm0, %xmm2
592# CHECK-NEXT:  2      7     0.50    *                   pshufd	$1, (%rax), %xmm2
593# CHECK-NEXT:  1      1     0.50                        pshufhw	$1, %xmm0, %xmm2
594# CHECK-NEXT:  2      7     0.50    *                   pshufhw	$1, (%rax), %xmm2
595# CHECK-NEXT:  1      1     0.50                        pshuflw	$1, %xmm0, %xmm2
596# CHECK-NEXT:  2      7     0.50    *                   pshuflw	$1, (%rax), %xmm2
597# CHECK-NEXT:  1      1     1.00                        pslld	$1, %xmm2
598# CHECK-NEXT:  2      2     1.00                        pslld	%xmm0, %xmm2
599# CHECK-NEXT:  3      8     1.00    *                   pslld	(%rax), %xmm2
600# CHECK-NEXT:  1      1     0.50                        pslldq	$1, %xmm2
601# CHECK-NEXT:  1      1     1.00                        psllq	$1, %xmm2
602# CHECK-NEXT:  2      2     1.00                        psllq	%xmm0, %xmm2
603# CHECK-NEXT:  3      8     1.00    *                   psllq	(%rax), %xmm2
604# CHECK-NEXT:  1      1     1.00                        psllw	$1, %xmm2
605# CHECK-NEXT:  2      2     1.00                        psllw	%xmm0, %xmm2
606# CHECK-NEXT:  3      8     1.00    *                   psllw	(%rax), %xmm2
607# CHECK-NEXT:  1      1     1.00                        psrad	$1, %xmm2
608# CHECK-NEXT:  2      2     1.00                        psrad	%xmm0, %xmm2
609# CHECK-NEXT:  3      8     1.00    *                   psrad	(%rax), %xmm2
610# CHECK-NEXT:  1      1     1.00                        psraw	$1, %xmm2
611# CHECK-NEXT:  2      2     1.00                        psraw	%xmm0, %xmm2
612# CHECK-NEXT:  3      8     1.00    *                   psraw	(%rax), %xmm2
613# CHECK-NEXT:  1      1     1.00                        psrld	$1, %xmm2
614# CHECK-NEXT:  2      2     1.00                        psrld	%xmm0, %xmm2
615# CHECK-NEXT:  3      8     1.00    *                   psrld	(%rax), %xmm2
616# CHECK-NEXT:  1      1     0.50                        psrldq	$1, %xmm2
617# CHECK-NEXT:  1      1     1.00                        psrlq	$1, %xmm2
618# CHECK-NEXT:  2      2     1.00                        psrlq	%xmm0, %xmm2
619# CHECK-NEXT:  3      8     1.00    *                   psrlq	(%rax), %xmm2
620# CHECK-NEXT:  1      1     1.00                        psrlw	$1, %xmm2
621# CHECK-NEXT:  2      2     1.00                        psrlw	%xmm0, %xmm2
622# CHECK-NEXT:  3      8     1.00    *                   psrlw	(%rax), %xmm2
623# CHECK-NEXT:  1      1     0.50                        psubb	%xmm0, %xmm2
624# CHECK-NEXT:  2      7     0.50    *                   psubb	(%rax), %xmm2
625# CHECK-NEXT:  1      1     0.50                        psubd	%xmm0, %xmm2
626# CHECK-NEXT:  2      7     0.50    *                   psubd	(%rax), %xmm2
627# CHECK-NEXT:  1      3     1.00                        psubq	%mm0, %mm2
628# CHECK-NEXT:  2      8     1.00    *                   psubq	(%rax), %mm2
629# CHECK-NEXT:  1      1     0.50                        psubq	%xmm0, %xmm2
630# CHECK-NEXT:  2      7     0.50    *                   psubq	(%rax), %xmm2
631# CHECK-NEXT:  1      1     0.50                        psubsb	%xmm0, %xmm2
632# CHECK-NEXT:  2      7     0.50    *                   psubsb	(%rax), %xmm2
633# CHECK-NEXT:  1      1     0.50                        psubsw	%xmm0, %xmm2
634# CHECK-NEXT:  2      7     0.50    *                   psubsw	(%rax), %xmm2
635# CHECK-NEXT:  1      1     0.50                        psubusb	%xmm0, %xmm2
636# CHECK-NEXT:  2      7     0.50    *                   psubusb	(%rax), %xmm2
637# CHECK-NEXT:  1      1     0.50                        psubusw	%xmm0, %xmm2
638# CHECK-NEXT:  2      7     0.50    *                   psubusw	(%rax), %xmm2
639# CHECK-NEXT:  1      1     0.50                        psubw	%xmm0, %xmm2
640# CHECK-NEXT:  2      7     0.50    *                   psubw	(%rax), %xmm2
641# CHECK-NEXT:  1      1     0.50                        punpckhbw	%xmm0, %xmm2
642# CHECK-NEXT:  2      7     0.50    *                   punpckhbw	(%rax), %xmm2
643# CHECK-NEXT:  1      1     0.50                        punpckhdq	%xmm0, %xmm2
644# CHECK-NEXT:  2      7     0.50    *                   punpckhdq	(%rax), %xmm2
645# CHECK-NEXT:  1      1     0.50                        punpckhqdq	%xmm0, %xmm2
646# CHECK-NEXT:  2      7     0.50    *                   punpckhqdq	(%rax), %xmm2
647# CHECK-NEXT:  1      1     0.50                        punpckhwd	%xmm0, %xmm2
648# CHECK-NEXT:  2      7     0.50    *                   punpckhwd	(%rax), %xmm2
649# CHECK-NEXT:  1      1     0.50                        punpcklbw	%xmm0, %xmm2
650# CHECK-NEXT:  2      7     0.50    *                   punpcklbw	(%rax), %xmm2
651# CHECK-NEXT:  1      1     0.50                        punpckldq	%xmm0, %xmm2
652# CHECK-NEXT:  2      7     0.50    *                   punpckldq	(%rax), %xmm2
653# CHECK-NEXT:  1      1     0.50                        punpcklqdq	%xmm0, %xmm2
654# CHECK-NEXT:  2      7     0.50    *                   punpcklqdq	(%rax), %xmm2
655# CHECK-NEXT:  1      1     0.50                        punpcklwd	%xmm0, %xmm2
656# CHECK-NEXT:  2      7     0.50    *                   punpcklwd	(%rax), %xmm2
657# CHECK-NEXT:  1      1     0.33                        pxor	%xmm0, %xmm2
658# CHECK-NEXT:  2      7     0.50    *                   pxor	(%rax), %xmm2
659# CHECK-NEXT:  1      1     1.00                        shufpd	$1, %xmm0, %xmm2
660# CHECK-NEXT:  2      7     1.00    *                   shufpd	$1, (%rax), %xmm2
661# CHECK-NEXT:  1      21    21.00                       sqrtpd	%xmm0, %xmm2
662# CHECK-NEXT:  2      27    21.00   *                   sqrtpd	(%rax), %xmm2
663# CHECK-NEXT:  1      21    21.00                       sqrtsd	%xmm0, %xmm2
664# CHECK-NEXT:  2      27    21.00   *                   sqrtsd	(%rax), %xmm2
665# CHECK-NEXT:  1      3     1.00                        subpd	%xmm0, %xmm2
666# CHECK-NEXT:  2      9     1.00    *                   subpd	(%rax), %xmm2
667# CHECK-NEXT:  1      3     1.00                        subsd	%xmm0, %xmm2
668# CHECK-NEXT:  2      9     1.00    *                   subsd	(%rax), %xmm2
669# CHECK-NEXT:  2      2     1.00                        ucomisd	%xmm0, %xmm1
670# CHECK-NEXT:  3      8     1.00    *                   ucomisd	(%rax), %xmm1
671# CHECK-NEXT:  1      1     1.00                        unpckhpd	%xmm0, %xmm2
672# CHECK-NEXT:  2      7     1.00    *                   unpckhpd	(%rax), %xmm2
673# CHECK-NEXT:  1      1     1.00                        unpcklpd	%xmm0, %xmm2
674# CHECK-NEXT:  2      7     1.00    *                   unpcklpd	(%rax), %xmm2
675# CHECK-NEXT:  1      1     1.00                        xorpd	%xmm0, %xmm2
676# CHECK-NEXT:  2      7     1.00    *                   xorpd	(%rax), %xmm2
677
678# CHECK:      Resources:
679# CHECK-NEXT: [0]   - SBDivider
680# CHECK-NEXT: [1]   - SBFPDivider
681# CHECK-NEXT: [2]   - SBPort0
682# CHECK-NEXT: [3]   - SBPort1
683# CHECK-NEXT: [4]   - SBPort4
684# CHECK-NEXT: [5]   - SBPort5
685# CHECK-NEXT: [6.0] - SBPort23
686# CHECK-NEXT: [6.1] - SBPort23
687
688# CHECK:      Resource pressure per iteration:
689# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
690# CHECK-NEXT:  -     172.00 75.83  118.33 17.00  100.83 67.00  67.00
691
692# CHECK:      Resource pressure by instruction:
693# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
694# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     addpd	%xmm0, %xmm2
695# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   addpd	(%rax), %xmm2
696# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     addsd	%xmm0, %xmm2
697# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   addsd	(%rax), %xmm2
698# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     andnpd	%xmm0, %xmm2
699# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andnpd	(%rax), %xmm2
700# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     andpd	%xmm0, %xmm2
701# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   andpd	(%rax), %xmm2
702# CHECK-NEXT:  -      -     0.50   0.50   1.00   1.00   0.50   0.50   clflush	(%rax)
703# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqpd	%xmm0, %xmm2
704# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqpd	(%rax), %xmm2
705# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cmpeqsd	%xmm0, %xmm2
706# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cmpeqsd	(%rax), %xmm2
707# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     comisd	%xmm0, %xmm1
708# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   comisd	(%rax), %xmm1
709# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtdq2pd	%xmm0, %xmm2
710# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvtdq2pd	(%rax), %xmm2
711# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtdq2ps	%xmm0, %xmm2
712# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cvtdq2ps	(%rax), %xmm2
713# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtpd2dq	%xmm0, %xmm2
714# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvtpd2dq	(%rax), %xmm2
715# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtpd2pi	%xmm0, %mm2
716# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvtpd2pi	(%rax), %mm2
717# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtpd2ps	%xmm0, %xmm2
718# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvtpd2ps	(%rax), %xmm2
719# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtpi2pd	%mm0, %xmm2
720# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvtpi2pd	(%rax), %xmm2
721# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvtps2dq	%xmm0, %xmm2
722# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cvtps2dq	(%rax), %xmm2
723# CHECK-NEXT:  -      -     1.00    -      -     1.00    -      -     cvtps2pd	%xmm0, %xmm2
724# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   cvtps2pd	(%rax), %xmm2
725# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     cvtsd2si	%xmm0, %ecx
726# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     cvtsd2si	%xmm0, %rcx
727# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   cvtsd2si	(%rax), %ecx
728# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   cvtsd2si	(%rax), %rcx
729# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtsd2ss	%xmm0, %xmm2
730# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvtsd2ss	(%rax), %xmm2
731# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtsi2sd	%ecx, %xmm2
732# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvtsi2sd	%rcx, %xmm2
733# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cvtsi2sdl	(%rax), %xmm2
734# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cvtsi2sdl	(%rax), %xmm2
735# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     cvtss2sd	%xmm0, %xmm2
736# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   cvtss2sd	(%rax), %xmm2
737# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvttpd2dq	%xmm0, %xmm2
738# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvttpd2dq	(%rax), %xmm2
739# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     cvttpd2pi	%xmm0, %mm2
740# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   cvttpd2pi	(%rax), %mm2
741# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cvttps2dq	%xmm0, %xmm2
742# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   cvttps2dq	(%rax), %xmm2
743# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     cvttsd2si	%xmm0, %ecx
744# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     cvttsd2si	%xmm0, %rcx
745# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   cvttsd2si	(%rax), %ecx
746# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   cvttsd2si	(%rax), %rcx
747# CHECK-NEXT:  -     22.00  1.00    -      -      -      -      -     divpd	%xmm0, %xmm2
748# CHECK-NEXT:  -     22.00  1.00    -      -      -     0.50   0.50   divpd	(%rax), %xmm2
749# CHECK-NEXT:  -     22.00  1.00    -      -      -      -      -     divsd	%xmm0, %xmm2
750# CHECK-NEXT:  -     22.00  1.00    -      -      -     0.50   0.50   divsd	(%rax), %xmm2
751# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   lfence
752# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   maskmovdqu	%xmm0, %xmm1
753# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     maxpd	%xmm0, %xmm2
754# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   maxpd	(%rax), %xmm2
755# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     maxsd	%xmm0, %xmm2
756# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   maxsd	(%rax), %xmm2
757# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   mfence
758# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     minpd	%xmm0, %xmm2
759# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   minpd	(%rax), %xmm2
760# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     minsd	%xmm0, %xmm2
761# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   minsd	(%rax), %xmm2
762# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movapd	%xmm0, %xmm2
763# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movapd	%xmm0, (%rax)
764# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movapd	(%rax), %xmm2
765# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movd	%eax, %xmm2
766# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movd	(%rax), %xmm2
767# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     movd	%xmm0, %ecx
768# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movd	%xmm0, (%rax)
769# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movdqa	%xmm0, %xmm2
770# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movdqa	%xmm0, (%rax)
771# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movdqa	(%rax), %xmm2
772# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movdqu	%xmm0, %xmm2
773# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movdqu	%xmm0, (%rax)
774# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movdqu	(%rax), %xmm2
775# CHECK-NEXT:  -      -     0.33   0.33    -     1.33    -      -     movdq2q	%xmm0, %mm2
776# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movhpd	%xmm0, (%rax)
777# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   movhpd	(%rax), %xmm2
778# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movlpd	%xmm0, (%rax)
779# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   movlpd	(%rax), %xmm2
780# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     movmskpd	%xmm0, %ecx
781# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movntil	%eax, (%rax)
782# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movntiq	%rax, (%rax)
783# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movntdq	%xmm0, (%rax)
784# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movntpd	%xmm0, (%rax)
785# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movq	%xmm0, %xmm2
786# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movq	%rax, %xmm2
787# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movq	(%rax), %xmm2
788# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     movq	%xmm0, %rcx
789# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movq	%xmm0, (%rax)
790# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     movq2dq	%mm0, %xmm2
791# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movsd	%xmm0, %xmm2
792# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movsd	%xmm0, (%rax)
793# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movsd	(%rax), %xmm2
794# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     movupd	%xmm0, %xmm2
795# CHECK-NEXT:  -      -      -      -     1.00    -     0.50   0.50   movupd	%xmm0, (%rax)
796# CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   movupd	(%rax), %xmm2
797# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     mulpd	%xmm0, %xmm2
798# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   mulpd	(%rax), %xmm2
799# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     mulsd	%xmm0, %xmm2
800# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   mulsd	(%rax), %xmm2
801# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     orpd	%xmm0, %xmm2
802# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   orpd	(%rax), %xmm2
803# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     packssdw	%xmm0, %xmm2
804# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   packssdw	(%rax), %xmm2
805# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     packsswb	%xmm0, %xmm2
806# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   packsswb	(%rax), %xmm2
807# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     packuswb	%xmm0, %xmm2
808# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   packuswb	(%rax), %xmm2
809# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddb	%xmm0, %xmm2
810# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddb	(%rax), %xmm2
811# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddd	%xmm0, %xmm2
812# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddd	(%rax), %xmm2
813# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddq	%mm0, %mm2
814# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddq	(%rax), %mm2
815# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddq	%xmm0, %xmm2
816# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddq	(%rax), %xmm2
817# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddsb	%xmm0, %xmm2
818# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddsb	(%rax), %xmm2
819# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddsw	%xmm0, %xmm2
820# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddsw	(%rax), %xmm2
821# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddusb	%xmm0, %xmm2
822# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddusb	(%rax), %xmm2
823# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddusw	%xmm0, %xmm2
824# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddusw	(%rax), %xmm2
825# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     paddw	%xmm0, %xmm2
826# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   paddw	(%rax), %xmm2
827# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     pand	%xmm0, %xmm2
828# CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   pand	(%rax), %xmm2
829# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     pandn	%xmm0, %xmm2
830# CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   pandn	(%rax), %xmm2
831# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pavgb	%xmm0, %xmm2
832# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pavgb	(%rax), %xmm2
833# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pavgw	%xmm0, %xmm2
834# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pavgw	(%rax), %xmm2
835# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpeqb	%xmm0, %xmm2
836# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpeqb	(%rax), %xmm2
837# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpeqd	%xmm0, %xmm2
838# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpeqd	(%rax), %xmm2
839# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpeqw	%xmm0, %xmm2
840# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpeqw	(%rax), %xmm2
841# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpgtb	%xmm0, %xmm2
842# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpgtb	(%rax), %xmm2
843# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpgtd	%xmm0, %xmm2
844# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpgtd	(%rax), %xmm2
845# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pcmpgtw	%xmm0, %xmm2
846# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pcmpgtw	(%rax), %xmm2
847# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     pextrw	$1, %xmm0, %ecx
848# CHECK-NEXT:  -      -      -     0.50    -     1.50    -      -     pinsrw	$1, %eax, %xmm0
849# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pinsrw	$1, (%rax), %xmm0
850# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmaddwd	%xmm0, %xmm2
851# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmaddwd	(%rax), %xmm2
852# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pmaxsw	%xmm0, %xmm2
853# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pmaxsw	(%rax), %xmm2
854# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pmaxub	%xmm0, %xmm2
855# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pmaxub	(%rax), %xmm2
856# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pminsw	%xmm0, %xmm2
857# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pminsw	(%rax), %xmm2
858# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pminub	%xmm0, %xmm2
859# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pminub	(%rax), %xmm2
860# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmovmskb	%xmm0, %ecx
861# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmulhuw	%xmm0, %xmm2
862# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmulhuw	(%rax), %xmm2
863# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmulhw	%xmm0, %xmm2
864# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmulhw	(%rax), %xmm2
865# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmullw	%xmm0, %xmm2
866# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmullw	(%rax), %xmm2
867# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmuludq	%mm0, %mm2
868# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmuludq	(%rax), %mm2
869# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pmuludq	%xmm0, %xmm2
870# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   pmuludq	(%rax), %xmm2
871# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     por	%xmm0, %xmm2
872# CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   por	(%rax), %xmm2
873# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psadbw	%xmm0, %xmm2
874# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   psadbw	(%rax), %xmm2
875# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pshufd	$1, %xmm0, %xmm2
876# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pshufd	$1, (%rax), %xmm2
877# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pshufhw	$1, %xmm0, %xmm2
878# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pshufhw	$1, (%rax), %xmm2
879# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pshuflw	$1, %xmm0, %xmm2
880# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   pshuflw	$1, (%rax), %xmm2
881# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     pslld	$1, %xmm2
882# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     pslld	%xmm0, %xmm2
883# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   pslld	(%rax), %xmm2
884# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     pslldq	$1, %xmm2
885# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psllq	$1, %xmm2
886# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psllq	%xmm0, %xmm2
887# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psllq	(%rax), %xmm2
888# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psllw	$1, %xmm2
889# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psllw	%xmm0, %xmm2
890# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psllw	(%rax), %xmm2
891# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psrad	$1, %xmm2
892# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psrad	%xmm0, %xmm2
893# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psrad	(%rax), %xmm2
894# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psraw	$1, %xmm2
895# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psraw	%xmm0, %xmm2
896# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psraw	(%rax), %xmm2
897# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psrld	$1, %xmm2
898# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psrld	%xmm0, %xmm2
899# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psrld	(%rax), %xmm2
900# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psrldq	$1, %xmm2
901# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psrlq	$1, %xmm2
902# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psrlq	%xmm0, %xmm2
903# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psrlq	(%rax), %xmm2
904# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     psrlw	$1, %xmm2
905# CHECK-NEXT:  -      -     1.00   0.50    -     0.50    -      -     psrlw	%xmm0, %xmm2
906# CHECK-NEXT:  -      -     1.00   0.50    -     0.50   0.50   0.50   psrlw	(%rax), %xmm2
907# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubb	%xmm0, %xmm2
908# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubb	(%rax), %xmm2
909# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubd	%xmm0, %xmm2
910# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubd	(%rax), %xmm2
911# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     psubq	%mm0, %mm2
912# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   psubq	(%rax), %mm2
913# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubq	%xmm0, %xmm2
914# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubq	(%rax), %xmm2
915# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubsb	%xmm0, %xmm2
916# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubsb	(%rax), %xmm2
917# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubsw	%xmm0, %xmm2
918# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubsw	(%rax), %xmm2
919# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubusb	%xmm0, %xmm2
920# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubusb	(%rax), %xmm2
921# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubusw	%xmm0, %xmm2
922# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubusw	(%rax), %xmm2
923# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     psubw	%xmm0, %xmm2
924# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   psubw	(%rax), %xmm2
925# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpckhbw	%xmm0, %xmm2
926# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpckhbw	(%rax), %xmm2
927# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpckhdq	%xmm0, %xmm2
928# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpckhdq	(%rax), %xmm2
929# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpckhqdq	%xmm0, %xmm2
930# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpckhqdq	(%rax), %xmm2
931# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpckhwd	%xmm0, %xmm2
932# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpckhwd	(%rax), %xmm2
933# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpcklbw	%xmm0, %xmm2
934# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpcklbw	(%rax), %xmm2
935# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpckldq	%xmm0, %xmm2
936# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpckldq	(%rax), %xmm2
937# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpcklqdq	%xmm0, %xmm2
938# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpcklqdq	(%rax), %xmm2
939# CHECK-NEXT:  -      -      -     0.50    -     0.50    -      -     punpcklwd	%xmm0, %xmm2
940# CHECK-NEXT:  -      -      -     0.50    -     0.50   0.50   0.50   punpcklwd	(%rax), %xmm2
941# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     pxor	%xmm0, %xmm2
942# CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   pxor	(%rax), %xmm2
943# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     shufpd	$1, %xmm0, %xmm2
944# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   shufpd	$1, (%rax), %xmm2
945# CHECK-NEXT:  -     21.00  1.00    -      -      -      -      -     sqrtpd	%xmm0, %xmm2
946# CHECK-NEXT:  -     21.00  1.00    -      -      -     0.50   0.50   sqrtpd	(%rax), %xmm2
947# CHECK-NEXT:  -     21.00  1.00    -      -      -      -      -     sqrtsd	%xmm0, %xmm2
948# CHECK-NEXT:  -     21.00  1.00    -      -      -     0.50   0.50   sqrtsd	(%rax), %xmm2
949# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     subpd	%xmm0, %xmm2
950# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   subpd	(%rax), %xmm2
951# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     subsd	%xmm0, %xmm2
952# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   subsd	(%rax), %xmm2
953# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     ucomisd	%xmm0, %xmm1
954# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   ucomisd	(%rax), %xmm1
955# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     unpckhpd	%xmm0, %xmm2
956# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   unpckhpd	(%rax), %xmm2
957# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     unpcklpd	%xmm0, %xmm2
958# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   unpcklpd	(%rax), %xmm2
959# CHECK-NEXT:  -      -      -      -      -     1.00    -      -     xorpd	%xmm0, %xmm2
960# CHECK-NEXT:  -      -      -      -      -     1.00   0.50   0.50   xorpd	(%rax), %xmm2
961