[X86] AMD Genoa (znver4) Scheduler model update
authorGanesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
Tue, 14 Feb 2023 14:24:39 +0000 (19:54 +0530)
committerGanesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
Wed, 8 Mar 2023 19:33:23 +0000 (01:03 +0530)
74 files changed:
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86PfmCounters.td
llvm/lib/Target/X86/X86ScheduleZnver4.td [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/independent-load-stores.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-adx.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-aes.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx1.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bitalg.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bitalgvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bw.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512cd.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512cdvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512dq.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512dqvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512gfni.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512gfnivl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512ifma.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512ifmavl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vaes.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vaesvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2vl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmivl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vnni.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vnnivl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vp2intersect.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vp2intersectvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpclmulqdq.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpclmulqdqvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpopcntdq.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpopcntdqvl.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avxgfni.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-avxvnni.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-bmi1.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-bmi2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-clflushopt.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-clwb.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-cmov.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-cmpxchg.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-f16c.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-fma.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-fsgsbase.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-gfni.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-lea.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-lzcnt.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-mmx.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-movbe.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-pclmul.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-popcnt.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-prefetchw.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-rdrand.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-rdseed.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-sse1.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-sse2.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-sse3.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-sse41.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-sse42.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-ssse3.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-vaes.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-vpclmulqdq.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-x86_32.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-x86_64.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-x87.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/resources-xsave.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/Znver4/zero-idioms.s [new file with mode: 0644]
llvm/test/tools/llvm-mca/X86/cpus.s
llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/register-file-statistics.s
llvm/test/tools/llvm-mca/X86/scheduler-queue-usage.s

index bff9ac9..0f0ee6c 100644 (file)
@@ -724,6 +724,7 @@ include "X86ScheduleSLM.td"
 include "X86ScheduleZnver1.td"
 include "X86ScheduleZnver2.td"
 include "X86ScheduleZnver3.td"
+include "X86ScheduleZnver4.td"
 include "X86ScheduleBdVer2.td"
 include "X86ScheduleBtVer2.td"
 include "X86SchedSkylakeClient.td"
@@ -1728,7 +1729,7 @@ def : ProcModel<"znver2", Znver2Model, ProcessorFeatures.ZN2Features,
                 ProcessorFeatures.ZN2Tuning>;
 def : ProcModel<"znver3", Znver3Model, ProcessorFeatures.ZN3Features,
                 ProcessorFeatures.ZN3Tuning>;
-def : Proc<"znver4",ProcessorFeatures.ZN4Features,
+def : ProcModel<"znver4", Znver4Model, ProcessorFeatures.ZN4Features,
            ProcessorFeatures.ZN4Tuning>;
 
 def : Proc<"geode",           [FeatureX87, FeatureCX8, Feature3DNowA],
index d2460e1..49ef6ef 100644 (file)
@@ -290,4 +290,17 @@ def ZnVer3PfmCounters : ProcPfmCounters {
   ];
 }
 def : PfmCountersBinding<"znver3", ZnVer3PfmCounters>;
-def : PfmCountersBinding<"znver4", ZnVer3PfmCounters>;
+
+def ZnVer4PfmCounters : ProcPfmCounters {
+  let CycleCounter = PfmCounter<"cycles_not_in_halt">;
+  let UopsCounter = PfmCounter<"retired_ops">;
+  let IssueCounters = [
+    PfmIssueCounter<"Zn4Int", "ops_type_dispatched_from_decoder:int_disp_retire_mode">,
+    PfmIssueCounter<"Zn4FPU", "ops_type_dispatched_from_decoder:fp_disp_retire_mode">,
+    PfmIssueCounter<"Zn4Load", "ls_dispatch:ld_dispatch">,
+    PfmIssueCounter<"Zn4Store", "ls_dispatch:store_dispatch">,
+    PfmIssueCounter<"Zn4Divider", "div_op_count">,
+    PfmIssueCounter<"Zn4AGU", "ls_dispatch:ld_st_dispatch + ls_dispatch:ld_dispatch + ls_dispatch:store_dispatch">
+  ];
+}
+def : PfmCountersBinding<"znver4", ZnVer4PfmCounters>;
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver4.td b/llvm/lib/Target/X86/X86ScheduleZnver4.td
new file mode 100644 (file)
index 0000000..c3f0899
--- /dev/null
@@ -0,0 +1,1957 @@
+//=- X86ScheduleZnver4.td - X86 Znver4 Scheduling ------------*- tablegen -*-=//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the machine model for Znver4 to support instruction
+// scheduling and other instruction cost heuristics.
+// Based on:
+//  * AMD Software Optimization Guide for AMD Family 19h Processors.
+//    https://www.amd.com/system/files/TechDocs/56665.zip
+//===----------------------------------------------------------------------===//
+
+def Znver4Model : SchedMachineModel {
+  // AMD SOG 19h, 2.9.6 Dispatch
+  // The processor may dispatch up to 6 macro ops per cycle
+  // into the execution engine.
+  let IssueWidth = 6;
+  // AMD SOG 19h, 2.10.3
+  // The retire control unit (RCU) tracks the completion status of all
+  // outstanding operations (integer, load/store, and floating-point) and is
+  // the final arbiter for exception processing and recovery.
+  // The unit can receive up to 6 macro ops dispatched per cycle and track up
+  // to 320 macro ops in-flight in non-SMT mode or 160 per thread in SMT mode.
+  let MicroOpBufferSize = 320;
+  // AMD SOG 19h, 2.9.1 Op Cache
+  // The op cache is organized as an associative cache with 64 sets and 8 ways.
+  // At each set-way intersection is an entry containing up to 8 macro ops.
+  // The maximum capacity of the op cache is 4K ops.
+  // Agner, 22.5 Âµop cache
+  // The size of the Âµop cache is big enough for holding most critical loops.
+  // FIXME: PR50584: MachineScheduler/PostRAScheduler have quadradic complexity,
+  //        with large values here the compilation of certain loops
+  //        ends up taking way too long.
+  // Ideally for znver4, we should have 6.75K. However we don't add that
+  // considerting the impact compile time and prefer using default values 
+  // instead.
+  // let LoopMicroOpBufferSize = 6750;
+  // AMD SOG 19h, 2.6.2 L1 Data Cache
+  // The L1 data cache has a 4- or 5- cycle integer load-to-use latency.
+  // AMD SOG 19h, 2.12 L1 Data Cache
+  // The AGU and LS pipelines are optimized for simple address generation modes.
+  // <...> and can achieve 4-cycle load-to-use integer load latency.
+  let LoadLatency = 4;
+  // AMD SOG 19h, 2.12 L1 Data Cache
+  // The AGU and LS pipelines are optimized for simple address generation modes.
+  // <...> and can achieve <...> 7-cycle load-to-use FP load latency.
+  int VecLoadLatency = 7;
+  // Latency of a simple store operation.
+  int StoreLatency = 1;
+  // FIXME:
+  let HighLatency = 25; // FIXME: any better choice?
+  // AMD SOG 19h, 2.8 Optimizing Branching
+  // The branch misprediction penalty is in the range from 11 to 18 cycles,
+  // <...>. The common case penalty is 13 cycles.
+  let MispredictPenalty = 13;
+
+  let PostRAScheduler = 1; // Enable Post RegAlloc Scheduler pass.
+
+  let CompleteModel = 1;
+}
+
+let SchedModel = Znver4Model in {
+
+
+//===----------------------------------------------------------------------===//
+// RCU
+//===----------------------------------------------------------------------===//
+
+// AMD SOG 19h, 2.10.3 Retire Control Unit
+// The unit can receive up to 6 macro ops dispatched per cycle and track up to
+// 320 macro ops in-flight in non-SMT mode or 128 per thread in SMT mode. <...>
+// The retire unit handles in-order commit of up to nine macro ops per cycle.
+def Zn4RCU : RetireControlUnit<Znver4Model.MicroOpBufferSize, 9>;
+
+//===----------------------------------------------------------------------===//
+// Integer Execution Unit
+//
+
+// AMD SOG 19h, 2.4 Superscalar Organization
+// The processor uses four decoupled independent integer scheduler queues,
+// each one servicing one ALU pipeline and one or two other pipelines
+
+//
+// Execution pipes
+//===----------------------------------------------------------------------===//
+
+// AMD SOG 19h, 2.10.2 Execution Units
+// The processor contains 4 general purpose integer execution pipes.
+// Each pipe has an ALU capable of general purpose integer operations.
+def Zn4ALU0 : ProcResource<1>;
+def Zn4ALU1 : ProcResource<1>;
+def Zn4ALU2 : ProcResource<1>;
+def Zn4ALU3 : ProcResource<1>;
+
+// AMD SOG 19h, 2.10.2 Execution Units
+// There is also a separate branch execution unit.
+def Zn4BRU1 : ProcResource<1>;
+
+// AMD SOG 19h, 2.10.2 Execution Units
+// There are three Address Generation Units (AGUs) for all load and store
+// address generation. There are also 3 store data movement units
+// associated with the same schedulers as the AGUs.
+def Zn4AGU0 : ProcResource<1>;
+def Zn4AGU1 : ProcResource<1>;
+def Zn4AGU2 : ProcResource<1>;
+
+//
+// Execution Units
+//===----------------------------------------------------------------------===//
+
+// AMD SOG 19h, 2.10.2 Execution Units
+// ALU0 additionally has divide <...> execution capability.
+defvar Zn4Divider = Zn4ALU0;
+
+// AMD SOG 19h, 2.10.2 Execution Units
+// ALU0 additionally has <...> branch execution capability.
+defvar Zn4BRU0 = Zn4ALU0;
+
+// Integer Multiplication issued on ALU1.
+defvar Zn4Multiplier = Zn4ALU1;
+
+// Execution pipeline grouping
+//===----------------------------------------------------------------------===//
+
+// General ALU operations
+def Zn4ALU0123 : ProcResGroup<[Zn4ALU0, Zn4ALU1, Zn4ALU2, Zn4ALU3]>;
+
+// General AGU operations
+def Zn4AGU012 : ProcResGroup<[Zn4AGU0, Zn4AGU1, Zn4AGU2]>;
+
+// Control flow: jumps, calls
+def Zn4BRU01 : ProcResGroup<[Zn4BRU0, Zn4BRU1]>;
+
+// Everything that isn't control flow, but still needs to access CC register,
+// namely: conditional moves, SETcc.
+def Zn4ALU03 : ProcResGroup<[Zn4ALU0, Zn4ALU3]>;
+
+// Zn4ALU1 handles complex bit twiddling: CRC/PDEP/PEXT
+
+// Simple bit twiddling: bit test, shift/rotate, bit extraction
+def Zn4ALU12 : ProcResGroup<[Zn4ALU1, Zn4ALU2]>;
+
+
+//
+// Scheduling
+//===----------------------------------------------------------------------===//
+
+// AMD SOG 19h, 2.10.3 Retire Control Unit
+// The integer physical register file (PRF) consists of 224 registers.
+def Zn4IntegerPRF : RegisterFile<224, [GR64, CCR], [1, 1], [1, 0],
+                              6,  // Max moves that can be eliminated per cycle.
+                              0>; // Restrict move elimination to zero regs.
+
+// anandtech, The integer scheduler has a 4*24 entry macro op capacity.
+// AMD SOG 19h, 2.10.1 Schedulers
+// The schedulers can receive up to six macro ops per cycle, with a limit of
+// two per scheduler. Each scheduler can issue one micro op per cycle into
+// each of its associated pipelines
+def Zn4Int : ProcResGroup<[Zn4ALU0, Zn4AGU0, Zn4BRU0, // scheduler 0
+                           Zn4ALU1, Zn4AGU1,          // scheduler 1
+                           Zn4ALU2, Zn4AGU2,          // scheduler 2
+                           Zn4ALU3,          Zn4BRU1  // scheduler 3
+                          ]> {
+  let BufferSize = !mul(4, 24);
+}
+
+
+//===----------------------------------------------------------------------===//
+// Floating-Point Unit
+//
+
+// AMD SOG 19h, 2.4 Superscalar Organization
+// The processor uses <...> two decoupled independent floating point schedulers
+// each servicing two FP pipelines and one store or FP-to-integer pipeline.
+
+//
+// Execution pipes
+//===----------------------------------------------------------------------===//
+
+// AMD SOG 19h, 2.10.1 Schedulers
+// <...>, and six FPU pipes.
+// Agner, 22.10 Floating point execution pipes
+// There are six floating point/vector execution pipes,
+def Zn4FP0  : ProcResource<1>;
+def Zn4FP1  : ProcResource<1>;
+def Zn4FP2  : ProcResource<1>;
+def Zn4FP3  : ProcResource<1>;
+def Zn4FP45 : ProcResource<2>;
+
+//
+// Execution Units
+//===----------------------------------------------------------------------===//
+// AMD SOG 19h, 2.11.1 Floating Point Execution Resources
+
+// (v)FMUL*, (v)FMA*, Floating Point Compares, Blendv(DQ)
+defvar Zn4FPFMul0 = Zn4FP0;
+defvar Zn4FPFMul1 = Zn4FP1;
+
+// (v)FADD*
+defvar Zn4FPFAdd0 = Zn4FP2;
+defvar Zn4FPFAdd1 = Zn4FP3;
+
+// All convert operations except pack/unpack
+defvar Zn4FPFCvt0 = Zn4FP2;
+defvar Zn4FPFCvt1 = Zn4FP3;
+
+// All Divide and Square Root except Reciprocal Approximation
+// AMD SOG 19h, 2.11.1 Floating Point Execution Resources
+// FDIV unit can support 2 simultaneous operations in flight
+// even though it occupies a single pipe.
+// FIXME: BufferSize=2 ?
+defvar Zn4FPFDiv = Zn4FP1;
+
+// Moves and Logical operations on Floating Point Data Types
+defvar Zn4FPFMisc0 = Zn4FP0;
+defvar Zn4FPFMisc1 = Zn4FP1;
+defvar Zn4FPFMisc2 = Zn4FP2;
+defvar Zn4FPFMisc3 = Zn4FP3;
+
+// Integer Adds, Subtracts, and Compares
+// Some complex VADD operations are not available in all pipes.
+defvar Zn4FPVAdd0 = Zn4FP0;
+defvar Zn4FPVAdd1 = Zn4FP1;
+defvar Zn4FPVAdd2 = Zn4FP2;
+defvar Zn4FPVAdd3 = Zn4FP3;
+
+// Integer Multiplies, SAD, Blendvb
+defvar Zn4FPVMul0 = Zn4FP0;
+defvar Zn4FPVMul1 = Zn4FP3;
+
+// Data Shuffles, Packs, Unpacks, Permute
+// Some complex shuffle operations are only available in pipe1.
+defvar Zn4FPVShuf = Zn4FP1;
+defvar Zn4FPVShufAux = Zn4FP2;
+
+// Bit Shift Left/Right operations
+defvar Zn4FPVShift0 = Zn4FP1;
+defvar Zn4FPVShift1 = Zn4FP2;
+
+// Moves and Logical operations on Packed Integer Data Types
+defvar Zn4FPVMisc0 = Zn4FP0;
+defvar Zn4FPVMisc1 = Zn4FP1;
+defvar Zn4FPVMisc2 = Zn4FP2;
+defvar Zn4FPVMisc3 = Zn4FP3;
+
+// *AES*
+defvar Zn4FPAES0 = Zn4FP0;
+defvar Zn4FPAES1 = Zn4FP1;
+
+// *CLM*
+defvar Zn4FPCLM0 = Zn4FP0;
+defvar Zn4FPCLM1 = Zn4FP1;
+
+// Execution pipeline grouping
+//===----------------------------------------------------------------------===//
+
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// Stores and floating point to general purpose register transfer
+// have 2 dedicated pipelines (pipe 5 and 6).
+def Zn4FPU0123 : ProcResGroup<[Zn4FP0, Zn4FP1, Zn4FP2, Zn4FP3]>;
+
+// (v)FMUL*, (v)FMA*, Floating Point Compares, Blendv(DQ)
+def Zn4FPFMul01 : ProcResGroup<[Zn4FPFMul0, Zn4FPFMul1]>;
+
+// (v)FADD*
+// Some complex VADD operations are not available in all pipes.
+def Zn4FPFAdd01 : ProcResGroup<[Zn4FPFAdd0, Zn4FPFAdd1]>;
+
+// All convert operations except pack/unpack
+def Zn4FPFCvt01 : ProcResGroup<[Zn4FPFCvt0, Zn4FPFCvt1]>;
+
+// All Divide and Square Root except Reciprocal Approximation
+// def Zn4FPFDiv : ProcResGroup<[Zn4FPFDiv]>;
+
+// Moves and Logical operations on Floating Point Data Types
+def Zn4FPFMisc0123 : ProcResGroup<[Zn4FPFMisc0, Zn4FPFMisc1, Zn4FPFMisc2, Zn4FPFMisc3]>;
+
+// FIXUP and RANGE use FP01 pipelines
+def Zn4FPFMisc01 : ProcResGroup<[Zn4FPFMisc0, Zn4FPFMisc1]>;
+def Zn4FPFMisc12 : ProcResGroup<[Zn4FPFMisc1, Zn4FPFMisc2]>;
+// SCALE instructions use FP23 pipelines
+def Zn4FPFMisc23 : ProcResGroup<[Zn4FPFMisc2, Zn4FPFMisc3]>;
+def Zn4FPFMisc123 : ProcResGroup<[Zn4FPFMisc1,Zn4FPFMisc2, Zn4FPFMisc3]>;
+
+// Loads, Stores and Move to General Register (EX) Operations
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// Stores and floating point to general purpose register transfer
+// have 2 dedicated pipelines (pipe 5 and 6).
+defvar Zn4FPLd01 = Zn4FP45;
+
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// Note that FP stores are supported on two pipelines,
+// but throughput is limited to one per cycle.
+let Super = Zn4FP45 in
+def Zn4FPSt : ProcResource<1>;
+
+// Integer Adds, Subtracts, and Compares
+// Some complex VADD operations are not available in all pipes.
+def Zn4FPVAdd0123 : ProcResGroup<[Zn4FPVAdd0, Zn4FPVAdd1, Zn4FPVAdd2, Zn4FPVAdd3]>;
+
+def Zn4FPVAdd01: ProcResGroup<[Zn4FPVAdd0, Zn4FPVAdd1]>;
+def Zn4FPVAdd12: ProcResGroup<[Zn4FPVAdd1, Zn4FPVAdd2]>;
+
+// AVX512 Opmask pipelines
+def Zn4FPOpMask01: ProcResGroup<[Zn4FP2, Zn4FP3]>;
+def Zn4FPOpMask4: ProcResGroup<[Zn4FP45]>;
+
+// Integer Multiplies, SAD, Blendvb
+def Zn4FPVMul01 : ProcResGroup<[Zn4FPVMul0, Zn4FPVMul1]>;
+
+// Data Shuffles, Packs, Unpacks, Permute
+// Some complex shuffle operations are only available in pipe1.
+def Zn4FPVShuf01 : ProcResGroup<[Zn4FPVShuf, Zn4FPVShufAux]>;
+
+// Bit Shift Left/Right operations
+def Zn4FPVShift01 : ProcResGroup<[Zn4FPVShift0, Zn4FPVShift1]>;
+
+// Moves and Logical operations on Packed Integer Data Types
+def Zn4FPVMisc0123 : ProcResGroup<[Zn4FPVMisc0, Zn4FPVMisc1, Zn4FPVMisc2, Zn4FPVMisc3]>;
+
+// *AES*
+def Zn4FPAES01 : ProcResGroup<[Zn4FPAES0, Zn4FPAES1]>;
+
+// *CLM*
+def Zn4FPCLM01 : ProcResGroup<[Zn4FPCLM0, Zn4FPCLM1]>;
+
+
+//
+// Scheduling
+//===----------------------------------------------------------------------===//
+
+// Agner, 21.8 Register renaming and out-of-order schedulers
+// The floating point register file has 192 vector registers
+// of 512b each in zen4.
+def Zn4FpPRF : RegisterFile<192, [VR64, VR128, VR256, VR512], [1, 1, 1, 1], [0, 1, 1],
+                            6,  // Max moves that can be eliminated per cycle.
+                            0>; // Restrict move elimination to zero regs.
+
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// The floating-point scheduler has a 2*32 entry macro op capacity.
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// <...> the scheduler can issue 1 micro op per cycle for each pipe.
+// FIXME: those are two separate schedulers, not a single big one.
+def Zn4FP : ProcResGroup<[Zn4FP0, Zn4FP2,          /*Zn4FP4,*/ // scheduler 0
+                          Zn4FP1, Zn4FP3, Zn4FP45 /*Zn4FP5*/  // scheduler 1
+                         ]> {
+  let BufferSize = !mul(2, 32);
+}
+
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// Macro ops can be dispatched to the 64 entry Non Scheduling Queue (NSQ)
+// even if floating-point scheduler is full.
+// FIXME: how to model this properly?
+
+
+//===----------------------------------------------------------------------===//
+// Load-Store Unit
+//
+
+// AMD SOG 19h, 2.12 Load-Store Unit
+// The LS unit contains three largely independent pipe-lines
+// enabling the execution of three 256-bit memory operations per cycle.
+def Zn4LSU : ProcResource<3>;
+
+// AMD SOG 19h, 2.12 Load-Store Unit
+// All three memory operations can be loads.
+let Super = Zn4LSU in
+def Zn4Load : ProcResource<3> {
+  // AMD SOG 19h, 2.12 Load-Store Unit
+  // The LS unit can process up to 72 out-of-order loads.
+  let BufferSize = 72;
+}
+
+def Zn4LoadQueue : LoadQueue<Zn4Load>;
+
+// AMD SOG 19h, 2.12 Load-Store Unit
+// A maximum of two of the memory operations can be stores.
+let Super = Zn4LSU in
+def Zn4Store : ProcResource<2> {
+  // AMD SOG 19h, 2.12 Load-Store Unit
+  // The LS unit utilizes a 64-entry store queue (STQ).
+  let BufferSize = 64;
+}
+
+def Zn4StoreQueue : StoreQueue<Zn4Store>;
+
+//===----------------------------------------------------------------------===//
+// Basic helper classes.
+//===----------------------------------------------------------------------===//
+
+// Many SchedWrites are defined in pairs with and without a folded load.
+// Instructions with folded loads are usually micro-fused, so they only appear
+// as two micro-ops when dispatched by the schedulers.
+// This multiclass defines the resource usage for variants with and without
+// folded loads.
+
+multiclass __Zn4WriteRes<SchedWrite SchedRW, list<ProcResourceKind> ExePorts,
+                         int Lat = 1, list<int> Res = [], int UOps = 1> {
+  def : WriteRes<SchedRW, ExePorts> {
+    let Latency = Lat;
+    let ResourceCycles = Res;
+    let NumMicroOps = UOps;
+  }
+}
+
+multiclass __Zn4WriteResPair<X86FoldableSchedWrite SchedRW,
+                             list<ProcResourceKind> ExePorts, int Lat,
+                             list<int> Res, int UOps, int LoadLat, int LoadUOps,
+                             ProcResourceKind AGU, int LoadRes> {
+  defm : __Zn4WriteRes<SchedRW, ExePorts, Lat, Res, UOps>;
+
+  defm : __Zn4WriteRes<SchedRW.Folded,
+                       !listconcat([AGU, Zn4Load], ExePorts),
+                       !add(Lat, LoadLat),
+                       !if(!and(!empty(Res), !eq(LoadRes, 1)),
+                         [],
+                         !listconcat([1, LoadRes],
+                           !if(!empty(Res),
+                             !listsplat(1, !size(ExePorts)),
+                             Res))),
+                       !add(UOps, LoadUOps)>;
+}
+
+// For classes without folded loads.
+multiclass Zn4WriteResInt<SchedWrite SchedRW,
+                          list<ProcResourceKind> ExePorts, int Lat = 1,
+                          list<int> Res = [], int UOps = 1> {
+  defm : __Zn4WriteRes<SchedRW, ExePorts, Lat, Res, UOps>;
+}
+
+multiclass Zn4WriteResXMM<SchedWrite SchedRW,
+                          list<ProcResourceKind> ExePorts, int Lat = 1,
+                          list<int> Res = [], int UOps = 1> {
+  defm : __Zn4WriteRes<SchedRW, ExePorts, Lat, Res, UOps>;
+}
+
+multiclass Zn4WriteResYMM<SchedWrite SchedRW,
+                          list<ProcResourceKind> ExePorts, int Lat = 1,
+                          list<int> Res = [], int UOps = 1> {
+  defm : __Zn4WriteRes<SchedRW, ExePorts, Lat, Res, UOps>;
+}
+
+multiclass Zn4WriteResZMM<SchedWrite SchedRW,
+                          list<ProcResourceKind> ExePorts, int Lat = 1,
+                          list<int> Res = [], int UOps = 1> {
+  defm : __Zn4WriteRes<SchedRW, ExePorts, Lat, Res, UOps>;
+}
+
+// For classes with folded loads.
+multiclass Zn4WriteResIntPair<X86FoldableSchedWrite SchedRW,
+                              list<ProcResourceKind> ExePorts, int Lat = 1,
+                              list<int> Res = [], int UOps = 1,
+                              int LoadUOps = 0, int LoadRes = 1> {
+  defm : __Zn4WriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
+                           Znver4Model.LoadLatency,
+                           LoadUOps, Zn4AGU012, LoadRes>;
+}
+
+multiclass Zn4WriteResXMMPair<X86FoldableSchedWrite SchedRW,
+                              list<ProcResourceKind> ExePorts, int Lat = 1,
+                              list<int> Res = [], int UOps = 1,
+                              int LoadUOps = 0, int LoadRes = 1> {
+  defm : __Zn4WriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
+                           Znver4Model.VecLoadLatency,
+                           LoadUOps, Zn4FPLd01, LoadRes>;
+}
+
+multiclass Zn4WriteResYMMPair<X86FoldableSchedWrite SchedRW,
+                              list<ProcResourceKind> ExePorts, int Lat = 1,
+                              list<int> Res = [], int UOps = 1,
+                              int LoadUOps = 0, int LoadRes = 1> {
+  defm : __Zn4WriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
+                           Znver4Model.VecLoadLatency,
+                           LoadUOps, Zn4FPLd01, LoadRes>;
+}
+
+multiclass Zn4WriteResZMMPair<X86FoldableSchedWrite SchedRW,
+                              list<ProcResourceKind> ExePorts, int Lat = 1,
+                              list<int> Res = [], int UOps = 2,
+                              int LoadUOps = 0, int LoadRes = 1> {
+  defm : __Zn4WriteResPair<SchedRW, ExePorts, Lat, Res, UOps,
+                           Znver4Model.VecLoadLatency,
+                           LoadUOps, Zn4FPLd01, LoadRes>;
+}
+
+//===----------------------------------------------------------------------===//
+// Here be dragons.
+//===----------------------------------------------------------------------===//
+
+def : ReadAdvance<ReadAfterLd, Znver4Model.LoadLatency>;
+
+def : ReadAdvance<ReadAfterVecLd, Znver4Model.VecLoadLatency>;
+def : ReadAdvance<ReadAfterVecXLd, Znver4Model.VecLoadLatency>;
+def : ReadAdvance<ReadAfterVecYLd, Znver4Model.VecLoadLatency>;
+
+// AMD SOG 19h, 2.11 Floating-Point Unit
+// There is 1 cycle of added latency for a result to cross
+// from F to I or I to F domain.
+def : ReadAdvance<ReadInt2Fpu, -1>;
+
+// Instructions with both a load and a store folded are modeled as a folded
+// load + WriteRMW.
+defm : Zn4WriteResInt<WriteRMW, [Zn4AGU012, Zn4Store], Znver4Model.StoreLatency, [1, 1], 0>;
+
+// Loads, stores, and moves, not folded with other operations.
+defm : Zn4WriteResInt<WriteLoad, [Zn4AGU012, Zn4Load], !add(Znver4Model.LoadLatency, 1), [1, 1], 1>;
+
+// Model the effect of clobbering the read-write mask operand of the GATHER operation.
+// Does not cost anything by itself, only has latency, matching that of the WriteLoad,
+defm : Zn4WriteResInt<WriteVecMaskedGatherWriteback, [], !add(Znver4Model.LoadLatency, 1), [], 0>;
+
+def Zn4WriteMOVSlow : SchedWriteRes<[Zn4AGU012, Zn4Load]> {
+  let Latency = !add(Znver4Model.LoadLatency, 1);
+  let ResourceCycles = [3, 1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteMOVSlow], (instrs MOV8rm, MOV8rm_NOREX, MOV16rm, MOVSX16rm16, MOVSX16rm32, MOVZX16rm16, MOVSX16rm8, MOVZX16rm8)>;
+
+defm : Zn4WriteResInt<WriteStore, [Zn4AGU012, Zn4Store], Znver4Model.StoreLatency, [1, 2], 1>;
+defm : Zn4WriteResInt<WriteStoreNT, [Zn4AGU012, Zn4Store], Znver4Model.StoreLatency, [1, 2], 1>;
+defm : Zn4WriteResInt<WriteMove, [Zn4ALU0123], 1, [4], 1>;
+
+// Treat misc copies as a move.
+def : InstRW<[WriteMove], (instrs COPY)>;
+
+def Zn4WriteMOVBE16rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU0123]> {
+  let Latency = Znver4Model.LoadLatency;
+  let ResourceCycles = [1, 1, 4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteMOVBE16rm], (instrs MOVBE16rm)>;
+
+def Zn4WriteMOVBEmr : SchedWriteRes<[Zn4ALU0123, Zn4AGU012, Zn4Store]> {
+  let Latency = Znver4Model.StoreLatency;
+  let ResourceCycles = [4, 1, 1];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteMOVBEmr], (instrs MOVBE16mr, MOVBE32mr, MOVBE64mr)>;
+
+// Arithmetic.
+defm : Zn4WriteResIntPair<WriteALU, [Zn4ALU0123], 1, [1], 1>; // Simple integer ALU op.
+
+def Zn4WriteALUSlow : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteALUSlow], (instrs ADD8i8, ADD16i16, ADD32i32, ADD64i32,
+                                        AND8i8, AND16i16, AND32i32, AND64i32,
+                                         OR8i8,  OR16i16,  OR32i32,  OR64i32,
+                                        SUB8i8, SUB16i16, SUB32i32, SUB64i32,
+                                        XOR8i8, XOR16i16, XOR32i32, XOR64i32)>;
+
+def Zn4WriteMoveExtend : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteMoveExtend], (instrs MOVSX16rr16, MOVSX16rr32, MOVZX16rr16, MOVSX16rr8, MOVZX16rr8)>;
+
+def Zn4WriteMaterialize32bitImm: SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteMaterialize32bitImm], (instrs MOV32ri, MOV32ri_alt, MOV64ri32)>;
+
+def Zn4WritePDEP_PEXT : SchedWriteRes<[Zn4ALU1]> {
+  let Latency = 3;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WritePDEP_PEXT], (instrs PDEP32rr, PDEP64rr,
+                                          PEXT32rr, PEXT64rr)>;
+
+defm : Zn4WriteResIntPair<WriteADC, [Zn4ALU0123], 1, [4], 1>; // Integer ALU + flags op.
+
+def Zn4WriteADC8mr_SBB8mr : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU0123, Zn4Store]> {
+  let Latency = 1;
+  let ResourceCycles = [1, 1, 7, 1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteADC8mr_SBB8mr], (instrs ADC8mr, SBB8mr)>;
+
+// This is for simple LEAs with one or two input operands.
+defm : Zn4WriteResInt<WriteLEA, [Zn4AGU012], 1, [1], 1>;     // LEA instructions can't fold loads.
+
+// This write is used for slow LEA instructions.
+def Zn4Write3OpsLEA : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 2;
+  let ResourceCycles = [1];
+  let NumMicroOps = 2;
+}
+
+// On Znver4, a slow LEA is either a 3Ops LEA (base, index, offset),
+// or an LEA with a `Scale` value different than 1.
+def Zn4SlowLEAPredicate : MCSchedPredicate<
+  CheckAny<[
+    // A 3-operand LEA (base, index, offset).
+    IsThreeOperandsLEAFn,
+    // An LEA with a "Scale" different than 1.
+    CheckAll<[
+      CheckIsImmOperand<2>,
+      CheckNot<CheckImmOperand<2, 1>>
+    ]>
+  ]>
+>;
+
+def Zn4WriteLEA : SchedWriteVariant<[
+    SchedVar<Zn4SlowLEAPredicate, [Zn4Write3OpsLEA]>,
+    SchedVar<NoSchedPred,         [WriteLEA]>
+]>;
+
+def : InstRW<[Zn4WriteLEA], (instrs LEA32r, LEA64r, LEA64_32r)>;
+
+def Zn4SlowLEA16r : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 2; // FIXME: not from llvm-exegesis
+  let ResourceCycles = [4];
+  let NumMicroOps = 2;
+}
+
+def : InstRW<[Zn4SlowLEA16r], (instrs LEA16r)>;
+
+// Integer multiplication
+defm : Zn4WriteResIntPair<WriteIMul8, [Zn4Multiplier], 3, [3], 1>; // Integer 8-bit multiplication.
+defm : Zn4WriteResIntPair<WriteIMul16, [Zn4Multiplier], 3, [3], 3, /*LoadUOps=*/1>; // Integer 16-bit multiplication.
+defm : Zn4WriteResIntPair<WriteIMul16Imm, [Zn4Multiplier], 4, [4], 2>; // Integer 16-bit multiplication by immediate.
+defm : Zn4WriteResIntPair<WriteIMul16Reg, [Zn4Multiplier], 3, [1], 1>; // Integer 16-bit multiplication by register.
+defm : Zn4WriteResIntPair<WriteIMul32, [Zn4Multiplier], 3, [3], 2>;    // Integer 32-bit multiplication.
+defm : Zn4WriteResIntPair<WriteMULX32, [Zn4Multiplier], 3, [1], 2>;    // Integer 32-bit Unsigned Multiply Without Affecting Flags.
+defm : Zn4WriteResIntPair<WriteIMul32Imm, [Zn4Multiplier], 3, [1], 1>; // Integer 32-bit multiplication by immediate.
+defm : Zn4WriteResIntPair<WriteIMul32Reg, [Zn4Multiplier], 3, [1], 1>; // Integer 32-bit multiplication by register.
+defm : Zn4WriteResIntPair<WriteIMul64, [Zn4Multiplier], 3, [3], 2>;    // Integer 64-bit multiplication.
+defm : Zn4WriteResIntPair<WriteMULX64, [Zn4Multiplier], 3, [1], 2>;    // Integer 32-bit Unsigned Multiply Without Affecting Flags.
+defm : Zn4WriteResIntPair<WriteIMul64Imm, [Zn4Multiplier], 3, [1], 1>; // Integer 64-bit multiplication by immediate.
+defm : Zn4WriteResIntPair<WriteIMul64Reg, [Zn4Multiplier], 3, [1], 1>; // Integer 64-bit multiplication by register.
+defm : Zn4WriteResInt<WriteIMulHLd, [], !add(4, Znver4Model.LoadLatency), [], 0>;  // Integer multiplication, high part.
+defm : Zn4WriteResInt<WriteIMulH, [], 4, [], 0>;  // Integer multiplication, high part.
+
+defm : Zn4WriteResInt<WriteBSWAP32, [Zn4ALU0123], 1, [1], 1>; // Byte Order (Endianness) 32-bit Swap.
+defm : Zn4WriteResInt<WriteBSWAP64, [Zn4ALU0123], 1, [1], 1>; // Byte Order (Endianness) 64-bit Swap.
+
+defm : Zn4WriteResIntPair<WriteCMPXCHG, [Zn4ALU0123], 3, [12], 5>; // Compare and set, compare and swap.
+
+def Zn4WriteCMPXCHG8rr : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 3;
+  let ResourceCycles = [12];
+  let NumMicroOps = 3;
+}
+def : InstRW<[Zn4WriteCMPXCHG8rr], (instrs CMPXCHG8rr)>;
+
+defm : Zn4WriteResInt<WriteCMPXCHGRMW, [Zn4ALU0123], 3, [12], 6>;     // Compare and set, compare and swap.
+
+def Zn4WriteCMPXCHG8rm_LCMPXCHG8 : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteCMPXCHG8rr.Latency);
+  let ResourceCycles = [1, 1, 12];
+  let NumMicroOps = !add(Zn4WriteCMPXCHG8rr.NumMicroOps, 2);
+}
+def : InstRW<[Zn4WriteCMPXCHG8rm_LCMPXCHG8], (instrs CMPXCHG8rm, LCMPXCHG8)>;
+
+def Zn4WriteCMPXCHG8B : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 3; // FIXME: not from llvm-exegesis
+  let ResourceCycles = [24];
+  let NumMicroOps = 19;
+}
+def : InstRW<[Zn4WriteCMPXCHG8B], (instrs CMPXCHG8B)>;
+
+def Zn4WriteCMPXCHG16B_LCMPXCHG16B : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 4; // FIXME: not from llvm-exegesis
+  let ResourceCycles = [59];
+  let NumMicroOps = 28;
+}
+def : InstRW<[Zn4WriteCMPXCHG16B_LCMPXCHG16B], (instrs CMPXCHG16B, LCMPXCHG16B)>;
+
+def Zn4WriteWriteXCHGUnrenameable : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [2];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteWriteXCHGUnrenameable], (instrs XCHG8rr, XCHG16rr, XCHG16ar)>;
+
+def Zn4WriteXCHG8rm_XCHG16rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, 3); // FIXME: not from llvm-exegesis
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = 5;
+}
+def : InstRW<[Zn4WriteXCHG8rm_XCHG16rm], (instrs XCHG8rm, XCHG16rm)>;
+
+def Zn4WriteXCHG32rm_XCHG64rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, 2); // FIXME: not from llvm-exegesis
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteXCHG32rm_XCHG64rm], (instrs XCHG32rm, XCHG64rm)>;
+
+// Integer division.
+// FIXME: uops for 8-bit division measures as 2. for others it's a guess.
+// FIXME: latency for 8-bit division measures as 10. for others it's a guess.
+defm : Zn4WriteResIntPair<WriteDiv8, [Zn4Divider], 10, [10], 2>;
+defm : Zn4WriteResIntPair<WriteDiv16, [Zn4Divider], 11, [11], 2>;
+defm : Zn4WriteResIntPair<WriteDiv32, [Zn4Divider], 13, [13], 2>;
+defm : Zn4WriteResIntPair<WriteDiv64, [Zn4Divider], 17, [17], 2>;
+defm : Zn4WriteResIntPair<WriteIDiv8, [Zn4Divider], 10, [10], 2>;
+defm : Zn4WriteResIntPair<WriteIDiv16, [Zn4Divider], 11, [11], 2>;
+defm : Zn4WriteResIntPair<WriteIDiv32, [Zn4Divider], 13, [13], 2>;
+defm : Zn4WriteResIntPair<WriteIDiv64, [Zn4Divider], 17, [17], 2>;
+
+defm : Zn4WriteResIntPair<WriteBSF, [Zn4ALU1], 1, [1], 6, /*LoadUOps=*/1>; // Bit scan forward.
+defm : Zn4WriteResIntPair<WriteBSR, [Zn4ALU1], 1, [1], 6, /*LoadUOps=*/1>; // Bit scan reverse.
+
+defm : Zn4WriteResIntPair<WritePOPCNT, [Zn4ALU0123], 1, [1], 1>; // Bit population count.
+
+def Zn4WritePOPCNT16rr : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WritePOPCNT16rr], (instrs POPCNT16rr)>;
+
+defm : Zn4WriteResIntPair<WriteLZCNT, [Zn4ALU0123], 1, [1], 1>; // Leading zero count.
+
+def Zn4WriteLZCNT16rr : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteLZCNT16rr], (instrs LZCNT16rr)>;
+
+defm : Zn4WriteResIntPair<WriteTZCNT, [Zn4ALU12], 2, [1], 2>; // Trailing zero count.
+
+def Zn4WriteTZCNT16rr : SchedWriteRes<[Zn4ALU0123]> {
+  let Latency = 2;
+  let ResourceCycles = [4];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteTZCNT16rr], (instrs TZCNT16rr)>;
+
+defm : Zn4WriteResIntPair<WriteCMOV, [Zn4ALU03], 1, [1], 1>; // Conditional move.
+defm : Zn4WriteResInt<WriteFCMOV, [Zn4ALU0123], 7, [28], 7>; // FIXME: not from llvm-exegesis // X87 conditional move.
+defm : Zn4WriteResInt<WriteSETCC, [Zn4ALU03], 1, [2], 1>; // Set register based on condition code.
+defm : Zn4WriteResInt<WriteSETCCStore, [Zn4ALU03, Zn4AGU012, Zn4Store], 2, [2, 1, 1], 2>; // FIXME: latency not from llvm-exegesis
+defm : Zn4WriteResInt<WriteLAHFSAHF, [Zn4ALU3], 1, [1], 1>; // Load/Store flags in AH.
+
+defm : Zn4WriteResInt<WriteBitTest, [Zn4ALU12], 1, [1], 1>; // Bit Test
+defm : Zn4WriteResInt<WriteBitTestImmLd, [Zn4AGU012, Zn4Load, Zn4ALU12], !add(Znver4Model.LoadLatency, 1), [1, 1, 1], 2>;
+defm : Zn4WriteResInt<WriteBitTestRegLd, [Zn4AGU012, Zn4Load, Zn4ALU12], !add(Znver4Model.LoadLatency, 1), [1, 1, 1], 7>;
+
+defm : Zn4WriteResInt<WriteBitTestSet, [Zn4ALU12], 2, [2], 2>; // Bit Test + Set
+defm : Zn4WriteResInt<WriteBitTestSetImmLd, [Zn4AGU012, Zn4Load, Zn4ALU12], !add(Znver4Model.LoadLatency, 2), [1, 1, 1], 4>;
+defm : Zn4WriteResInt<WriteBitTestSetRegLd, [Zn4AGU012, Zn4Load, Zn4ALU12], !add(Znver4Model.LoadLatency, 2), [1, 1, 1], 9>;
+
+// Integer shifts and rotates.
+defm : Zn4WriteResIntPair<WriteShift, [Zn4ALU12], 1, [1], 1, /*LoadUOps=*/1>;
+defm : Zn4WriteResIntPair<WriteShiftCL, [Zn4ALU12], 1, [1], 1, /*LoadUOps=*/1>;
+defm : Zn4WriteResIntPair<WriteRotate, [Zn4ALU12], 1, [1], 1, /*LoadUOps=*/1>;
+
+def Zn4WriteRotateR1 : SchedWriteRes<[Zn4ALU12]> {
+  let Latency = 1;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteRotateR1], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+                                         RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def Zn4WriteRotateM1 : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU12]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteRotateR1.Latency);
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = !add(Zn4WriteRotateR1.NumMicroOps, 1);
+}
+def : InstRW<[Zn4WriteRotateM1], (instrs RCL8m1, RCL16m1, RCL32m1, RCL64m1,
+                                         RCR8m1, RCR16m1, RCR32m1, RCR64m1)>;
+
+def Zn4WriteRotateRightRI : SchedWriteRes<[Zn4ALU12]> {
+  let Latency = 3;
+  let ResourceCycles = [6];
+  let NumMicroOps = 7;
+}
+def : InstRW<[Zn4WriteRotateRightRI], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def Zn4WriteRotateRightMI : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU12]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteRotateRightRI.Latency);
+  let ResourceCycles = [1, 1, 8];
+  let NumMicroOps = !add(Zn4WriteRotateRightRI.NumMicroOps, 3);
+}
+def : InstRW<[Zn4WriteRotateRightMI], (instrs RCR8mi, RCR16mi, RCR32mi, RCR64mi)>;
+
+def Zn4WriteRotateLeftRI : SchedWriteRes<[Zn4ALU12]> {
+  let Latency = 4;
+  let ResourceCycles = [8];
+  let NumMicroOps = 9;
+}
+def : InstRW<[Zn4WriteRotateLeftRI], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
+
+def Zn4WriteRotateLeftMI : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU12]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteRotateLeftRI.Latency);
+  let ResourceCycles = [1, 1, 8];
+  let NumMicroOps = !add(Zn4WriteRotateLeftRI.NumMicroOps, 2);
+}
+def : InstRW<[Zn4WriteRotateLeftMI], (instrs RCL8mi, RCL16mi, RCL32mi, RCL64mi)>;
+
+defm : Zn4WriteResIntPair<WriteRotateCL, [Zn4ALU12], 1, [1], 1, /*LoadUOps=*/1>;
+
+def Zn4WriteRotateRightRCL : SchedWriteRes<[Zn4ALU12]> {
+  let Latency = 3;
+  let ResourceCycles = [6];
+  let NumMicroOps = 7;
+}
+def : InstRW<[Zn4WriteRotateRightRCL], (instrs RCR8rCL, RCR16rCL, RCR32rCL, RCR64rCL)>;
+
+def Zn4WriteRotateRightMCL : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU12]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteRotateRightRCL.Latency);
+  let ResourceCycles = [1, 1, 8];
+  let NumMicroOps = !add(Zn4WriteRotateRightRCL.NumMicroOps, 2);
+}
+def : InstRW<[Zn4WriteRotateRightMCL], (instrs RCR8mCL, RCR16mCL, RCR32mCL, RCR64mCL)>;
+
+def Zn4WriteRotateLeftRCL : SchedWriteRes<[Zn4ALU12]> {
+  let Latency = 4;
+  let ResourceCycles = [8];
+  let NumMicroOps = 9;
+}
+def : InstRW<[Zn4WriteRotateLeftRCL], (instrs RCL8rCL, RCL16rCL, RCL32rCL, RCL64rCL)>;
+
+def Zn4WriteRotateLeftMCL : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4ALU12]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteRotateLeftRCL.Latency);
+  let ResourceCycles = [1, 1, 8];
+  let NumMicroOps = !add(Zn4WriteRotateLeftRCL.NumMicroOps, 2);
+}
+def : InstRW<[Zn4WriteRotateLeftMCL], (instrs RCL8mCL, RCL16mCL, RCL32mCL, RCL64mCL)>;
+
+// Double shift instructions.
+defm : Zn4WriteResInt<WriteSHDrri, [Zn4ALU12], 2, [3], 4>;
+defm : Zn4WriteResInt<WriteSHDrrcl, [Zn4ALU12], 2, [3], 5>;
+defm : Zn4WriteResInt<WriteSHDmri, [Zn4AGU012, Zn4Load, Zn4ALU12], !add(Znver4Model.LoadLatency, 2), [1, 1, 4], 6>;
+defm : Zn4WriteResInt<WriteSHDmrcl, [Zn4AGU012, Zn4Load, Zn4ALU12], !add(Znver4Model.LoadLatency, 2), [1, 1, 4], 6>;
+
+// BMI1 BEXTR/BLS, BMI2 BZHI
+defm : Zn4WriteResIntPair<WriteBEXTR, [Zn4ALU12], 1, [1], 1, /*LoadUOps=*/1>;
+defm : Zn4WriteResIntPair<WriteBLS, [Zn4ALU0123], 1, [1], 1, /*LoadUOps=*/1>;
+defm : Zn4WriteResIntPair<WriteBZHI, [Zn4ALU12], 1, [1], 1, /*LoadUOps=*/1>;
+
+// Idioms that clear a register, like xorps %xmm0, %xmm0.
+// These can often bypass execution ports completely.
+defm : Zn4WriteResInt<WriteZero, [Zn4ALU0123], 0, [0], 1>;
+
+// Branches don't produce values, so they have no latency, but they still
+// consume resources. Indirect branches can fold loads.
+defm : Zn4WriteResIntPair<WriteJump, [Zn4BRU01], 1, [1], 1>; // FIXME: not from llvm-exegesis
+
+// Floating point. This covers both scalar and vector operations.
+defm : Zn4WriteResInt<WriteFLD0, [Zn4FPLd01, Zn4Load, Zn4FP1], !add(Znver4Model.LoadLatency, 4), [1, 1, 1], 1>;
+defm : Zn4WriteResInt<WriteFLD1, [Zn4FPLd01, Zn4Load, Zn4FP1], !add(Znver4Model.LoadLatency, 7), [1, 1, 1], 1>;
+defm : Zn4WriteResInt<WriteFLDC, [Zn4FPLd01, Zn4Load, Zn4FP1], !add(Znver4Model.LoadLatency, 7), [1, 1, 1], 1>;
+defm : Zn4WriteResXMM<WriteFLoad, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteFLoadX, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteFLoadY, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteFMaskedLoad, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteFMaskedLoadY, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteFStore, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+
+def Zn4WriteWriteFStoreMMX : SchedWriteRes<[Zn4FPSt, Zn4Store]> {
+  let Latency = 2; // FIXME: not from llvm-exegesis
+  let ResourceCycles = [1, 1];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteWriteFStoreMMX], (instrs MOVHPDmr,  MOVHPSmr,
+                                               VMOVHPDmr, VMOVHPSmr)>;
+
+defm : Zn4WriteResXMM<WriteFStoreX, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteFStoreY, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteFStoreNT, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteFStoreNTX, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteFStoreNTY, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+
+defm : Zn4WriteResXMM<WriteFMaskedStore32, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [6, 1], 18>;
+defm : Zn4WriteResXMM<WriteFMaskedStore64, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [4, 1], 10>;
+defm : Zn4WriteResYMM<WriteFMaskedStore32Y, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [12, 1], 42>;
+defm : Zn4WriteResYMM<WriteFMaskedStore64Y, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [6, 1], 18>;
+
+defm : Zn4WriteResXMMPair<WriteFAdd, [Zn4FPFAdd01], 3, [1], 1>;  // Floating point add/sub.
+
+def Zn4WriteX87Arith : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, 1); // FIXME: not from llvm-exegesis
+  let ResourceCycles = [1, 1, 24];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteX87Arith], (instrs ADD_FI16m, ADD_FI32m,
+                                         SUB_FI16m, SUB_FI32m,
+                                         SUBR_FI16m, SUBR_FI32m,
+                                         MUL_FI16m, MUL_FI32m)>;
+
+def Zn4WriteX87Div : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, 1); // FIXME: not from llvm-exegesis
+  let ResourceCycles = [1, 1, 62];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteX87Div], (instrs DIV_FI16m, DIV_FI32m,
+                                       DIVR_FI16m, DIVR_FI32m)>;
+
+defm : Zn4WriteResXMMPair<WriteFAddX, [Zn4FPFAdd01], 3, [1], 1>; // Floating point add/sub (XMM).
+defm : Zn4WriteResYMMPair<WriteFAddY, [Zn4FPFAdd01], 3, [1], 1>; // Floating point add/sub (YMM).
+defm : Zn4WriteResZMMPair<WriteFAddZ, [Zn4FPFAdd01], 3, [2], 1>; // Floating point add/sub (ZMM).
+defm : Zn4WriteResXMMPair<WriteFAdd64, [Zn4FPFAdd01], 3, [1], 1>;  // Floating point double add/sub.
+defm : Zn4WriteResXMMPair<WriteFAdd64X, [Zn4FPFAdd01], 3, [1], 1>; // Floating point double add/sub (XMM).
+defm : Zn4WriteResYMMPair<WriteFAdd64Y, [Zn4FPFAdd01], 3, [1], 1>; // Floating point double add/sub (YMM).
+defm : Zn4WriteResZMMPair<WriteFAdd64Z, [Zn4FPFAdd01], 3, [2], 1>; // Floating point double add/sub (ZMM).
+defm : Zn4WriteResXMMPair<WriteFCmp, [Zn4FPFMul01], 2, [2], 1>;  // Floating point compare.
+defm : Zn4WriteResXMMPair<WriteFCmpX, [Zn4FPFMul01], 1, [1], 1>; // Floating point compare (XMM).
+defm : Zn4WriteResYMMPair<WriteFCmpY, [Zn4FPFMul01], 2, [2], 1>; // Floating point compare (YMM).
+defm : Zn4WriteResZMMPair<WriteFCmpZ, [Zn4FPFMul01], 2, [4], 1>; // Floating point compare (ZMM).
+defm : Zn4WriteResXMMPair<WriteFCmp64, [Zn4FPFMul01], 1, [1], 1>;  // Floating point double compare.
+defm : Zn4WriteResXMMPair<WriteFCmp64X, [Zn4FPFMul01], 1, [1], 1>; // Floating point double compare (XMM).
+defm : Zn4WriteResYMMPair<WriteFCmp64Y, [Zn4FPFMul01], 2, [2], 1>; // Floating point double compare (YMM).
+defm : Zn4WriteResZMMPair<WriteFCmp64Z, [Zn4FPFMul01], 2, [4], 1>; // Floating point double compare (ZMM).
+defm : Zn4WriteResXMMPair<WriteFCom, [Zn4FPFMul01], 3, [2], 1>; // FIXME: latency not from llvm-exegesis  // Floating point compare to flags (X87).
+defm : Zn4WriteResXMMPair<WriteFComX, [Zn4FPFMul01], 4, [2], 2>;  // FIXME: latency not from llvm-exegesis // Floating point compare to flags (SSE).
+defm : Zn4WriteResXMMPair<WriteFMul, [Zn4FPFMul01], 3, [1], 1>;  // Floating point multiplication.
+defm : Zn4WriteResXMMPair<WriteFMulX, [Zn4FPFMul01], 3, [1], 1>; // Floating point multiplication (XMM).
+defm : Zn4WriteResYMMPair<WriteFMulY, [Zn4FPFMul01], 3, [1], 1>; // Floating point multiplication (YMM).
+defm : Zn4WriteResZMMPair<WriteFMulZ, [Zn4FPFMul01], 3, [2], 1>; // Floating point multiplication (ZMM).
+defm : Zn4WriteResXMMPair<WriteFMul64, [Zn4FPFMul01], 3, [1], 1>;  // Floating point double multiplication.
+defm : Zn4WriteResXMMPair<WriteFMul64X, [Zn4FPFMul01], 3, [1], 1>; // Floating point double multiplication (XMM).
+defm : Zn4WriteResYMMPair<WriteFMul64Y, [Zn4FPFMul01], 3, [1], 1>; // Floating point double multiplication (YMM).
+defm : Zn4WriteResZMMPair<WriteFMul64Z, [Zn4FPFMul01], 3, [2], 1>; // Floating point double multiplication (ZMM).
+defm : Zn4WriteResXMMPair<WriteFDiv, [Zn4FPFDiv], 11, [3], 1>;  // Floating point division.
+defm : Zn4WriteResXMMPair<WriteFDivX, [Zn4FPFDiv], 11, [3], 1>; // Floating point division (XMM).
+defm : Zn4WriteResYMMPair<WriteFDivY, [Zn4FPFDiv], 11, [3], 1>; // Floating point division (YMM).
+defm : Zn4WriteResZMMPair<WriteFDivZ, [Zn4FPFDiv], 11, [6], 1>; // Floating point division (ZMM).
+defm : Zn4WriteResXMMPair<WriteFDiv64, [Zn4FPFDiv], 13, [5], 1>;  // Floating point double division.
+defm : Zn4WriteResXMMPair<WriteFDiv64X, [Zn4FPFDiv], 13, [5], 1>; // Floating point double division (XMM).
+defm : Zn4WriteResYMMPair<WriteFDiv64Y, [Zn4FPFDiv], 13, [5], 1>; // Floating point double division (YMM).
+defm : Zn4WriteResZMMPair<WriteFDiv64Z, [Zn4FPFDiv], 13, [10], 1>; // Floating point double division (ZMM).
+defm : Zn4WriteResXMMPair<WriteFSqrt, [Zn4FPFDiv], 15, [5], 1>;   // Floating point square root.
+defm : Zn4WriteResXMMPair<WriteFSqrtX, [Zn4FPFDiv], 15, [5], 1>;  // Floating point square root (XMM).
+defm : Zn4WriteResYMMPair<WriteFSqrtY, [Zn4FPFDiv], 15, [5], 1>;  // Floating point square root (YMM).
+defm : Zn4WriteResZMMPair<WriteFSqrtZ, [Zn4FPFDiv], 15, [10], 1>;  // Floating point square root (ZMM).
+defm : Zn4WriteResXMMPair<WriteFSqrt64, [Zn4FPFDiv], 21, [9], 1>;  // Floating point double square root.
+defm : Zn4WriteResXMMPair<WriteFSqrt64X, [Zn4FPFDiv], 21, [9], 1>; // Floating point double square root (XMM).
+defm : Zn4WriteResYMMPair<WriteFSqrt64Y, [Zn4FPFDiv], 21, [9], 1>; // Floating point double square root (YMM).
+defm : Zn4WriteResZMMPair<WriteFSqrt64Z, [Zn4FPFDiv], 21, [18], 1>; // Floating point double square root (ZMM).
+defm : Zn4WriteResXMMPair<WriteFSqrt80, [Zn4FPFDiv], 22, [23], 1>; // FIXME: latency not from llvm-exegesis  // Floating point long double square root.
+defm : Zn4WriteResXMMPair<WriteFRcp, [Zn4FPFMul01], 4, [1], 1>;  // Floating point reciprocal estimate.
+defm : Zn4WriteResXMMPair<WriteFRcpX, [Zn4FPFMul01], 4, [1], 1>; // Floating point reciprocal estimate (XMM).
+defm : Zn4WriteResYMMPair<WriteFRcpY, [Zn4FPFMul01], 5, [1], 1>; // Floating point reciprocal estimate (YMM).
+defm : Zn4WriteResZMMPair<WriteFRcpZ, [Zn4FPFMul01], 5, [2], 1>; // Floating point reciprocal estimate (ZMM).
+defm : Zn4WriteResXMMPair<WriteFRsqrt, [Zn4FPFDiv], 4, [1], 1>;  // Floating point reciprocal square root estimate.
+defm : Zn4WriteResXMMPair<WriteFRsqrtX, [Zn4FPFDiv], 4, [1], 1>; // Floating point reciprocal square root estimate (XMM).
+defm : Zn4WriteResYMMPair<WriteFRsqrtY, [Zn4FPFDiv], 4, [1], 1>; // Floating point reciprocal square root estimate (YMM).
+defm : Zn4WriteResZMMPair<WriteFRsqrtZ, [Zn4FPFDiv], 5, [2], 1>; // Floating point reciprocal square root estimate (ZMM).
+defm : Zn4WriteResXMMPair<WriteFMA, [Zn4FPFMul01], 4, [2], 1>;  // Fused Multiply Add.
+defm : Zn4WriteResXMMPair<WriteFMAX, [Zn4FPFMul01], 4, [2], 1>; // Fused Multiply Add (XMM).
+defm : Zn4WriteResYMMPair<WriteFMAY, [Zn4FPFMul01], 4, [2], 1>; // Fused Multiply Add (YMM).
+defm : Zn4WriteResZMMPair<WriteFMAZ, [Zn4FPFMul01], 4, [4], 1>; // Fused Multiply Add (ZMM).
+defm : Zn4WriteResXMMPair<WriteDPPD, [Zn4FPFMul01], 7, [6], 3, /*LoadUOps=*/2>; // Floating point double dot product.
+defm : Zn4WriteResXMMPair<WriteDPPS, [Zn4FPFMul01], 11, [8], 8, /*LoadUOps=*/2>; // Floating point single dot product.
+defm : Zn4WriteResYMMPair<WriteDPPSY, [Zn4FPFMul01], 11, [8], 7, /*LoadUOps=*/1>; // Floating point single dot product (YMM).
+defm : Zn4WriteResXMMPair<WriteFSign, [Zn4FPFMul01], 1, [2], 1>; // FIXME: latency not from llvm-exegesis  // Floating point fabs/fchs.
+defm : Zn4WriteResXMMPair<WriteFRnd, [Zn4FPFCvt01], 3, [1], 1>; // Floating point rounding.
+defm : Zn4WriteResYMMPair<WriteFRndY, [Zn4FPFCvt01], 3, [1], 1>; // Floating point rounding (YMM).
+defm : Zn4WriteResZMMPair<WriteFRndZ, [Zn4FPFCvt01], 3, [2], 1>; // Floating point rounding (ZMM).
+
+defm : Zn4WriteResXMMPair<WriteFLogic, [Zn4FPVMisc0123], 1, [1], 1>; // Floating point and/or/xor logicals.
+defm : Zn4WriteResYMMPair<WriteFLogicY, [Zn4FPVMisc0123], 1, [1], 1>; // Floating point and/or/xor logicals (YMM).
+defm : Zn4WriteResZMMPair<WriteFLogicZ, [Zn4FPVMisc0123], 1, [2], 1>; // Floating point and/or/xor logicals (ZMM).
+defm : Zn4WriteResXMMPair<WriteFTest, [Zn4FPFMisc12], 1, [2], 2>; // FIXME: latency not from llvm-exegesis // Floating point TEST instructions.
+defm : Zn4WriteResYMMPair<WriteFTestY, [Zn4FPFMisc12], 1, [2], 2>; // FIXME: latency not from llvm-exegesis // Floating point TEST instructions (YMM).
+defm : Zn4WriteResZMMPair<WriteFTestZ, [Zn4FPFMisc12], 1, [4], 1>; // FIXME: latency not from llvm-exegesis // Floating point TEST instructions (ZMM).
+defm : Zn4WriteResXMMPair<WriteFShuffle, [Zn4FPVShuf01], 1, [1], 1>; // Floating point vector shuffles.
+defm : Zn4WriteResYMMPair<WriteFShuffleY, [Zn4FPVShuf01], 1, [1], 1>; // Floating point vector shuffles (YMM).
+defm : Zn4WriteResZMMPair<WriteFShuffleZ, [Zn4FPVShuf01], 1, [2], 1>; // Floating point vector shuffles (ZMM).
+defm : Zn4WriteResXMMPair<WriteFVarShuffle, [Zn4FPVShuf01], 3, [1], 1>; // Floating point vector variable shuffles.
+defm : Zn4WriteResYMMPair<WriteFVarShuffleY, [Zn4FPVShuf01], 3, [1], 1>; // Floating point vector variable shuffles (YMM).
+defm : Zn4WriteResZMMPair<WriteFVarShuffleZ, [Zn4FPVShuf01], 3, [2], 1>; // Floating point vector variable shuffles (ZMM).
+defm : Zn4WriteResXMMPair<WriteFBlend, [Zn4FPFMul01], 1, [1], 1>; // Floating point vector blends.
+defm : Zn4WriteResYMMPair<WriteFBlendY, [Zn4FPFMul01], 1, [1], 1>; // Floating point vector blends (YMM).
+defm : Zn4WriteResZMMPair<WriteFBlendZ, [Zn4FPFMul01], 1, [2], 1>; // Floating point vector blends (ZMM).
+defm : Zn4WriteResXMMPair<WriteFVarBlend, [Zn4FPFMul01], 1, [1], 1>; // Fp vector variable blends.
+defm : Zn4WriteResYMMPair<WriteFVarBlendY, [Zn4FPFMul01], 1, [1], 1>; // Fp vector variable blends (YMM).
+defm : Zn4WriteResZMMPair<WriteFVarBlendZ, [Zn4FPFMul01], 1, [2], 1>; // Fp vector variable blends (ZMM).
+
+// Horizontal Add/Sub (float and integer)
+defm : Zn4WriteResXMMPair<WriteFHAdd, [Zn4FPFAdd0], 4, [2], 3>;
+defm : Zn4WriteResYMMPair<WriteFHAddY, [Zn4FPFAdd0], 4, [2], 3, /*LoadUOps=*/1>;
+defm : Zn4WriteResZMMPair<WriteFHAddZ, [Zn4FPFAdd0], 6, [4], 3, /*LoadUOps=*/1>;
+defm : Zn4WriteResXMMPair<WritePHAdd, [Zn4FPVAdd0], 2, [2], 3, /*LoadUOps=*/1>;
+defm : Zn4WriteResXMMPair<WritePHAddX, [Zn4FPVAdd0], 2, [2], 3>;
+defm : Zn4WriteResYMMPair<WritePHAddY, [Zn4FPVAdd0], 3, [3], 3, /*LoadUOps=*/1>;
+defm : Zn4WriteResZMMPair<WritePHAddZ, [Zn4FPVAdd0], 2, [4], 3, /*LoadUOps=*/1>;
+
+// Vector integer operations.
+defm : Zn4WriteResXMM<WriteVecLoad, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecLoadX, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteVecLoadY, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecLoadNT, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteVecLoadNTY, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecMaskedLoad, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteVecMaskedLoadY, [Zn4FPLd01, Zn4Load], !add(Znver4Model.VecLoadLatency, 1), [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecStore, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecStoreX, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+
+def Zn4WriteVEXTRACTF128rr_VEXTRACTI128rr : SchedWriteRes<[Zn4FPFMisc0]> {
+  let Latency = 4;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVEXTRACTF128rr_VEXTRACTI128rr], (instrs VEXTRACTF128rr, VEXTRACTI128rr)>;
+
+def Zn4WriteVEXTRACTI128mr : SchedWriteRes<[Zn4FPFMisc0, Zn4FPSt, Zn4Store]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteVEXTRACTF128rr_VEXTRACTI128rr.Latency);
+  let ResourceCycles = [1, 1, 1];
+  let NumMicroOps = !add(Zn4WriteVEXTRACTF128rr_VEXTRACTI128rr.NumMicroOps, 1);
+}
+def : InstRW<[Zn4WriteVEXTRACTI128mr], (instrs VEXTRACTI128mr, VEXTRACTF128mr)>;
+
+def Zn4WriteVINSERTF128rmr : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPFMisc0]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteVEXTRACTF128rr_VEXTRACTI128rr.Latency);
+  let ResourceCycles = [1, 1, 1];
+  let NumMicroOps = !add(Zn4WriteVEXTRACTF128rr_VEXTRACTI128rr.NumMicroOps, 0);
+}
+def : InstRW<[Zn4WriteVINSERTF128rmr], (instrs VINSERTF128rm)>;
+
+defm : Zn4WriteResYMM<WriteVecStoreY, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecStoreNT, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResYMM<WriteVecStoreNTY, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [1, 1], 1>;
+defm : Zn4WriteResXMM<WriteVecMaskedStore32, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [6, 1], 18>;
+defm : Zn4WriteResXMM<WriteVecMaskedStore64, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [4, 1], 10>;
+defm : Zn4WriteResYMM<WriteVecMaskedStore32Y, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [12, 1], 42>;
+defm : Zn4WriteResYMM<WriteVecMaskedStore64Y, [Zn4FPSt, Zn4Store], Znver4Model.StoreLatency, [6, 1], 18>;
+
+defm : Zn4WriteResXMM<WriteVecMoveToGpr, [Zn4FPLd01], 1, [2], 1>;
+defm : Zn4WriteResXMM<WriteVecMoveFromGpr, [Zn4FPLd01], 1, [2], 1>;
+
+def Zn4WriteMOVMMX : SchedWriteRes<[Zn4FPLd01, Zn4FPFMisc0123]> {
+  let Latency = 1;
+  let ResourceCycles = [1, 2];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteMOVMMX], (instrs MMX_MOVQ2FR64rr, MMX_MOVQ2DQrr)>;
+
+def Zn4WriteMOVMMXSlow : SchedWriteRes<[Zn4FPLd01, Zn4FPFMisc0123]> {
+  let Latency = 1;
+  let ResourceCycles = [1, 4];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteMOVMMXSlow], (instrs MMX_MOVD64rr, MMX_MOVD64to64rr)>;
+
+defm : Zn4WriteResXMMPair<WriteVecALU, [Zn4FPVAdd0123], 1, [1], 1>;  // Vector integer ALU op, no logicals.
+
+def Zn4WriteEXTRQ_INSERTQ : SchedWriteRes<[Zn4FPVShuf01, Zn4FPLd01]> {
+  let Latency = 3;
+  let ResourceCycles = [1, 1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteEXTRQ_INSERTQ], (instrs EXTRQ, INSERTQ)>;
+
+def Zn4WriteEXTRQI_INSERTQI : SchedWriteRes<[Zn4FPVShuf01, Zn4FPLd01]> {
+  let Latency = 3;
+  let ResourceCycles = [1, 1];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteEXTRQI_INSERTQI], (instrs EXTRQI, INSERTQI)>;
+
+defm : Zn4WriteResXMMPair<WriteVecALUX, [Zn4FPVAdd0123], 1, [1], 1>; // Vector integer ALU op, no logicals (XMM).
+
+def Zn4WriteVecALUXSlow : SchedWriteRes<[Zn4FPVAdd01]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVecALUXSlow], (instrs PABSBrr, PABSDrr, PABSWrr,
+                                            PADDSBrr, PADDSWrr, PADDUSBrr, PADDUSWrr,
+                                            PAVGBrr, PAVGWrr,
+                                            PSIGNBrr, PSIGNDrr, PSIGNWrr,
+                                            VPABSBrr, VPABSDrr, VPABSWrr,
+                                            VPADDSBrr, VPADDSWrr, VPADDUSBrr, VPADDUSWrr,
+                                            VPAVGBrr, VPAVGWrr,
+                                            VPCMPEQQrr,
+                                            VPSIGNBrr, VPSIGNDrr, VPSIGNWrr,
+                                            PSUBSBrr, PSUBSWrr, PSUBUSBrr, PSUBUSWrr, VPSUBSBrr, VPSUBSWrr, VPSUBUSBrr, VPSUBUSWrr)>;
+
+def Zn4WriteVecOpMask : SchedWriteRes<[Zn4FPOpMask01]> {
+  let Latency = 1;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVecOpMask], (instrs   KADDBrr, KADDDrr, KADDQrr, KADDWrr,
+                                            KANDBrr, KANDDrr, KANDQrr, KANDWrr,
+                                            KANDNBrr, KANDNDrr, KANDNQrr, KANDNWrr,
+                                            KMOVBkk, KMOVDkk, KMOVQkk, KMOVWkk,
+                                            KMOVBrk, KMOVDrk, KMOVQrk, KMOVWrk,
+                                            KNOTBrr, KNOTDrr, KNOTQrr, KNOTWrr,
+                                            KORBrr, KORDrr, KORQrr, KORWrr,
+                                            KORTESTBrr, KORTESTDrr, KORTESTQrr, KORTESTWrr,
+                                            KTESTBrr, KTESTDrr, KTESTQrr, KTESTWrr,
+                                            KUNPCKBWrr, KUNPCKDQrr, KUNPCKWDrr,
+                                            KXNORBrr, KXNORDrr, KXNORQrr, KXNORWrr,
+                                            KXORBrr, KXORDrr, KXORQrr, KXORWrr)>;
+
+def Zn4WriteVecOpMaskMemMov : SchedWriteRes<[Zn4FPOpMask4]> {
+  let Latency = 1;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVecOpMaskMemMov], (instrs KMOVBmk, KMOVDmk, KMOVQmk, KMOVWmk)>;
+
+def Zn4WriteVecOpMaskKRMov : SchedWriteRes<[Zn4FPOpMask4]> {
+  let Latency = 1;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVecOpMaskKRMov], (instrs KMOVBkr, KMOVDkr, KMOVQkr, KMOVWkr)>;
+
+def Zn4WriteVecALU2Slow : SchedWriteRes<[Zn4FPVAdd12]> {
+  // TODO: All align instructions are expected to be of 4 cycle latency
+  let Latency = 4;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVecALU2Slow], (instrs VALIGNDZrri, VALIGNDZ128rri, VALIGNDZ256rri,
+                                            VALIGNQZrri, VALIGNQZ128rri, VALIGNQZ256rri)
+                                            >;
+defm : Zn4WriteResYMMPair<WriteVecALUY, [Zn4FPVAdd0123], 1, [1], 1>; // Vector integer ALU op, no logicals (YMM).
+
+def Zn4WriteVecALUYSlow : SchedWriteRes<[Zn4FPVAdd01]> {
+  let Latency = 1;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVecALUYSlow], (instrs VPABSBYrr, VPABSDYrr, VPABSWYrr,
+                                            VPADDSBYrr, VPADDSWYrr, VPADDUSBYrr, VPADDUSWYrr,
+                                            VPSUBSBYrr, VPSUBSWYrr, VPSUBUSBYrr, VPSUBUSWYrr,
+                                            VPAVGBYrr, VPAVGWYrr,
+                                            VPCMPEQQYrr,
+                                            VPSIGNBYrr, VPSIGNDYrr, VPSIGNWYrr)>;
+
+defm : Zn4WriteResZMMPair<WriteVecALUZ, [Zn4FPVAdd0123], 1, [2], 1>; // Vector integer ALU op, no logicals (ZMM).
+
+defm : Zn4WriteResXMMPair<WriteVecLogic, [Zn4FPVMisc0123], 1, [1], 1>;  // Vector integer and/or/xor logicals.
+defm : Zn4WriteResXMMPair<WriteVecLogicX, [Zn4FPVMisc0123], 1, [1], 1>; // Vector integer and/or/xor logicals (XMM).
+defm : Zn4WriteResYMMPair<WriteVecLogicY, [Zn4FPVMisc0123], 1, [1], 1>; // Vector integer and/or/xor logicals (YMM).
+defm : Zn4WriteResZMMPair<WriteVecLogicZ, [Zn4FPVMisc0123], 1, [2], 1>; // Vector integer and/or/xor logicals (ZMM).
+defm : Zn4WriteResXMMPair<WriteVecTest, [Zn4FPVAdd12, Zn4FPSt], 1, [1, 1], 2>;  // FIXME: latency not from llvm-exegesis // Vector integer TEST instructions.
+defm : Zn4WriteResYMMPair<WriteVecTestY, [Zn4FPVAdd12, Zn4FPSt], 1, [1, 1], 2>; // FIXME: latency not from llvm-exegesis  // Vector integer TEST instructions (YMM).
+defm : Zn4WriteResZMMPair<WriteVecTestZ, [Zn4FPVAdd12, Zn4FPSt], 1, [2, 2], 2>; // FIXME: latency not from llvm-exegesis  // Vector integer TEST instructions (ZMM).
+defm : Zn4WriteResXMMPair<WriteVecShift, [Zn4FPVShift01], 1, [1], 1>;  // Vector integer shifts (default).
+defm : Zn4WriteResXMMPair<WriteVecShiftX, [Zn4FPVShift01], 2, [2], 1>; // Vector integer shifts (XMM).
+defm : Zn4WriteResYMMPair<WriteVecShiftY, [Zn4FPVShift01], 1, [1], 1>; // Vector integer shifts (YMM).
+defm : Zn4WriteResZMMPair<WriteVecShiftZ, [Zn4FPVShift01], 1, [2], 1>; // Vector integer shifts (ZMM).
+defm : Zn4WriteResXMMPair<WriteVecShiftImm, [Zn4FPVShift01], 1, [1], 1>;  // Vector integer immediate shifts (default).
+defm : Zn4WriteResXMMPair<WriteVecShiftImmX, [Zn4FPVShift01], 1, [1], 1>; // Vector integer immediate shifts (XMM).
+defm : Zn4WriteResYMMPair<WriteVecShiftImmY, [Zn4FPVShift01], 1, [1], 1>; // Vector integer immediate shifts (YMM).
+defm : Zn4WriteResZMMPair<WriteVecShiftImmZ, [Zn4FPVShift01], 1, [2], 1>; // Vector integer immediate shifts (ZMM).
+defm : Zn4WriteResXMMPair<WriteVecIMul, [Zn4FPVMul01], 3, [1], 1>;  // Vector integer multiply (default).
+defm : Zn4WriteResXMMPair<WriteVecIMulX, [Zn4FPVMul01], 3, [1], 1>; // Vector integer multiply (XMM).
+defm : Zn4WriteResYMMPair<WriteVecIMulY, [Zn4FPVMul01], 3, [1], 1>; // Vector integer multiply (YMM).
+defm : Zn4WriteResZMMPair<WriteVecIMulZ, [Zn4FPVMul01], 3, [2], 1>; // Vector integer multiply (ZMM).
+defm : Zn4WriteResXMMPair<WritePMULLD, [Zn4FPVMul01], 3, [1], 1>; // Vector PMULLD.
+defm : Zn4WriteResYMMPair<WritePMULLDY, [Zn4FPVMul01], 3, [1], 1>; // Vector PMULLD (YMM).
+defm : Zn4WriteResZMMPair<WritePMULLDZ, [Zn4FPVMul01], 3, [2], 1>; // Vector PMULLD (ZMM).
+defm : Zn4WriteResXMMPair<WriteShuffle, [Zn4FPVShuf01], 1, [1], 1>;  // Vector shuffles.
+defm : Zn4WriteResXMMPair<WriteShuffleX, [Zn4FPVShuf01], 1, [1], 1>; // Vector shuffles (XMM).
+defm : Zn4WriteResYMMPair<WriteShuffleY, [Zn4FPVShuf01], 1, [1], 1>; // Vector shuffles (YMM).
+defm : Zn4WriteResZMMPair<WriteShuffleZ, [Zn4FPVShuf01], 1, [2], 1>; // Vector shuffles (ZMM).
+defm : Zn4WriteResXMMPair<WriteVarShuffle, [Zn4FPVShuf01], 1, [1], 1>;  // Vector variable shuffles.
+defm : Zn4WriteResXMMPair<WriteVarShuffleX, [Zn4FPVShuf01], 1, [1], 1>; // Vector variable shuffles (XMM).
+defm : Zn4WriteResYMMPair<WriteVarShuffleY, [Zn4FPVShuf01], 1, [1], 1>; // Vector variable shuffles (YMM).
+defm : Zn4WriteResZMMPair<WriteVarShuffleZ, [Zn4FPVShuf01], 1, [2], 1>; // Vector variable shuffles (ZMM).
+defm : Zn4WriteResXMMPair<WriteBlend, [Zn4FPVMisc0123], 1, [1], 1>; // Vector blends.
+defm : Zn4WriteResYMMPair<WriteBlendY, [Zn4FPVMisc0123], 1, [1], 1>; // Vector blends (YMM).
+defm : Zn4WriteResZMMPair<WriteBlendZ, [Zn4FPVMisc0123], 1, [2], 1>; // Vector blends (ZMM).
+defm : Zn4WriteResXMMPair<WriteVarBlend, [Zn4FPVMul01], 1, [1], 1>; // Vector variable blends.
+defm : Zn4WriteResYMMPair<WriteVarBlendY, [Zn4FPVMul01], 1, [1], 1>; // Vector variable blends (YMM).
+defm : Zn4WriteResZMMPair<WriteVarBlendZ, [Zn4FPVMul01], 1, [2], 1>; // Vector variable blends (ZMM).
+defm : Zn4WriteResXMMPair<WritePSADBW, [Zn4FPVAdd0123], 3, [2], 1>;  // Vector PSADBW.
+defm : Zn4WriteResXMMPair<WritePSADBWX, [Zn4FPVAdd0123], 3, [2], 1>; // Vector PSADBW (XMM).
+defm : Zn4WriteResYMMPair<WritePSADBWY, [Zn4FPVAdd0123], 3, [2], 1>; // Vector PSADBW (YMM).
+defm : Zn4WriteResZMMPair<WritePSADBWZ, [Zn4FPVAdd0123], 4, [4], 1>; // Vector PSADBW (ZMM).
+defm : Zn4WriteResXMMPair<WriteMPSAD, [Zn4FPVAdd0123], 4, [8], 4, /*LoadUOps=*/2>; // Vector MPSAD.
+defm : Zn4WriteResYMMPair<WriteMPSADY, [Zn4FPVAdd0123], 4, [8], 3, /*LoadUOps=*/1>; // Vector MPSAD (YMM).
+defm : Zn4WriteResZMMPair<WriteMPSADZ, [Zn4FPVAdd0123], 4, [16], 3, /*LoadUOps=*/1>; // Vector MPSAD (ZMM).
+defm : Zn4WriteResXMMPair<WritePHMINPOS, [Zn4FPVAdd01], 3, [1], 1>;  // Vector PHMINPOS.
+
+// Vector insert/extract operations.
+defm : Zn4WriteResXMMPair<WriteVecInsert, [Zn4FPLd01], 1, [2], 2, /*LoadUOps=*/-1>; // Insert gpr to vector element.
+defm : Zn4WriteResXMM<WriteVecExtract, [Zn4FPLd01], 1, [2], 2>; // Extract vector element to gpr.
+defm : Zn4WriteResXMM<WriteVecExtractSt, [Zn4FPSt, Zn4Store], !add(1, Znver4Model.StoreLatency), [1, 1], 2>; // Extract vector element and store.
+
+// MOVMSK operations.
+defm : Zn4WriteResXMM<WriteFMOVMSK, [Zn4FPVMisc2], 1, [1], 1>;
+defm : Zn4WriteResXMM<WriteVecMOVMSK, [Zn4FPVMisc2], 1, [1], 1>;
+defm : Zn4WriteResYMM<WriteVecMOVMSKY, [Zn4FPVMisc2], 1, [1], 1>;
+defm : Zn4WriteResXMM<WriteMMXMOVMSK, [Zn4FPVMisc2], 1, [1], 1>;
+
+// Conversion between integer and float.
+defm : Zn4WriteResXMMPair<WriteCvtSD2I, [Zn4FPFCvt01], 1, [1], 1>;  // Double -> Integer.
+defm : Zn4WriteResXMMPair<WriteCvtPD2I, [Zn4FPFCvt01], 3, [2], 1>; // Double -> Integer (XMM).
+defm : Zn4WriteResYMMPair<WriteCvtPD2IY, [Zn4FPFCvt01], 3, [2], 2>; // Double -> Integer (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtPD2IZ, [Zn4FPFCvt01], 3, [4], 2>; // Double -> Integer (ZMM).
+
+def Zn4WriteCvtPD2IMMX : SchedWriteRes<[Zn4FPFCvt01]> {
+  let Latency = 1;
+  let ResourceCycles = [2];
+  let NumMicroOps = 2;
+}
+defm : Zn4WriteResXMMPair<WriteCvtSS2I, [Zn4FPFCvt01], 5, [5], 2>;  // Float -> Integer.
+
+defm : Zn4WriteResXMMPair<WriteCvtPS2I, [Zn4FPFCvt01], 3, [1], 1>; // Float -> Integer (XMM).
+defm : Zn4WriteResYMMPair<WriteCvtPS2IY, [Zn4FPFCvt01], 4, [1], 1>; // Float -> Integer (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtPS2IZ, [Zn4FPFCvt01], 4, [2], 2>; // Float -> Integer (ZMM).
+
+defm : Zn4WriteResXMMPair<WriteCvtI2SD, [Zn4FPFCvt01], 4, [2], 2, /*LoadUOps=*/-1>;  // Integer -> Double.
+defm : Zn4WriteResXMMPair<WriteCvtI2PD, [Zn4FPFCvt01], 3, [1], 1>; // Integer -> Double (XMM).
+defm : Zn4WriteResYMMPair<WriteCvtI2PDY, [Zn4FPFCvt01], 3, [2], 2, /*LoadUOps=*/-1>; // Integer -> Double (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtI2PDZ, [Zn4FPFCvt01], 4, [4], 4, /*LoadUOps=*/-1>; // Integer -> Double (ZMM).
+
+def Zn4WriteCvtI2PDMMX : SchedWriteRes<[Zn4FPFCvt01]> {
+  let Latency = 2;
+  let ResourceCycles = [6];
+  let NumMicroOps = 2;
+}
+
+defm : Zn4WriteResXMMPair<WriteCvtI2SS, [Zn4FPFCvt01], 3, [2], 2, /*LoadUOps=*/-1>;  // Integer -> Float.
+defm : Zn4WriteResXMMPair<WriteCvtI2PS, [Zn4FPFCvt01], 3, [1], 1>; // Integer -> Float (XMM).
+defm : Zn4WriteResYMMPair<WriteCvtI2PSY, [Zn4FPFCvt01], 3, [1], 1>; // Integer -> Float (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtI2PSZ, [Zn4FPFCvt01], 3, [2], 2>; // Integer -> Float (ZMM).
+
+def Zn4WriteCvtI2PSMMX : SchedWriteRes<[Zn4FPFCvt01]> {
+  let Latency = 3;
+  let ResourceCycles = [1];
+  let NumMicroOps = 2;
+}
+
+defm : Zn4WriteResXMMPair<WriteCvtSS2SD, [Zn4FPFCvt01], 3, [1], 1>;  // Float -> Double size conversion.
+defm : Zn4WriteResXMMPair<WriteCvtPS2PD, [Zn4FPFCvt01], 3, [1], 1>; // Float -> Double size conversion (XMM).
+defm : Zn4WriteResYMMPair<WriteCvtPS2PDY, [Zn4FPFCvt01], 4, [2], 2, /*LoadUOps=*/-1>; // Float -> Double size conversion (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtPS2PDZ, [Zn4FPFCvt01], 6, [4], 4, /*LoadUOps=*/-1>; // Float -> Double size conversion (ZMM).
+
+defm : Zn4WriteResXMMPair<WriteCvtSD2SS, [Zn4FPFCvt01], 3, [1], 1>;  // Double -> Float size conversion.
+defm : Zn4WriteResXMMPair<WriteCvtPD2PS, [Zn4FPFCvt01], 3, [1], 1>; // Double -> Float size conversion (XMM).
+defm : Zn4WriteResYMMPair<WriteCvtPD2PSY, [Zn4FPFCvt01], 6, [2], 2>; // Double -> Float size conversion (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtPD2PSZ, [Zn4FPFCvt01], 6, [4], 4>; // Double -> Float size conversion (ZMM).
+
+defm : Zn4WriteResXMMPair<WriteCvtPH2PS, [Zn4FPFCvt01], 3, [1], 1>; // Half -> Float size conversion.
+defm : Zn4WriteResYMMPair<WriteCvtPH2PSY, [Zn4FPFCvt01], 4, [2], 2, /*LoadUOps=*/-1>; // Half -> Float size conversion (YMM).
+defm : Zn4WriteResZMMPair<WriteCvtPH2PSZ, [Zn4FPFCvt01], 4, [4], 4, /*LoadUOps=*/-1>; // Half -> Float size conversion (ZMM).
+
+defm : Zn4WriteResXMM<WriteCvtPS2PH, [Zn4FPFCvt01], 3, [2], 1>; // Float -> Half size conversion.
+defm : Zn4WriteResYMM<WriteCvtPS2PHY, [Zn4FPFCvt01], 6, [2], 2>; // Float -> Half size conversion (YMM).
+defm : Zn4WriteResZMM<WriteCvtPS2PHZ, [Zn4FPFCvt01], 6, [2], 2>; // Float -> Half size conversion (ZMM).
+
+defm : Zn4WriteResXMM<WriteCvtPS2PHSt, [Zn4FPFCvt01, Zn4FPSt, Zn4Store], !add(3, Znver4Model.StoreLatency), [1, 1, 1], 2>; // Float -> Half + store size conversion.
+defm : Zn4WriteResYMM<WriteCvtPS2PHYSt, [Zn4FPFCvt01, Zn4FPSt, Zn4Store], !add(6, Znver4Model.StoreLatency), [2, 1, 1], 3>; // Float -> Half + store size conversion (YMM).
+defm : Zn4WriteResYMM<WriteCvtPS2PHZSt, [Zn4FPFCvt01, Zn4FPSt, Zn4Store], !add(6, Znver4Model.StoreLatency), [2, 1, 1], 3>; // Float -> Half + store size conversion (ZMM).
+
+// CRC32 instruction.
+defm : Zn4WriteResIntPair<WriteCRC32, [Zn4ALU1], 3, [1], 1>;
+
+def Zn4WriteSHA1MSG1rr : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteSHA1MSG1rr], (instrs SHA1MSG1rr)>;
+
+def Zn4WriteSHA1MSG1rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteSHA1MSG1rr.Latency);
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = !add(Zn4WriteSHA1MSG1rr.NumMicroOps, 0);
+}
+def : InstRW<[Zn4WriteSHA1MSG1rm], (instrs SHA1MSG1rm)>;
+
+def Zn4WriteSHA1MSG2rr_SHA1NEXTErr : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 1;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteSHA1MSG2rr_SHA1NEXTErr], (instrs SHA1MSG2rr, SHA1NEXTErr)>;
+
+def Zn4Writerm_SHA1MSG2rm_SHA1NEXTErm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteSHA1MSG2rr_SHA1NEXTErr.Latency);
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = !add(Zn4WriteSHA1MSG2rr_SHA1NEXTErr.NumMicroOps, 0);
+}
+def : InstRW<[Zn4Writerm_SHA1MSG2rm_SHA1NEXTErm], (instrs SHA1MSG2rm, SHA1NEXTErm)>;
+
+def Zn4WriteSHA256MSG1rr : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 2;
+  let ResourceCycles = [3];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteSHA256MSG1rr], (instrs SHA256MSG1rr)>;
+
+def Zn4Writerm_SHA256MSG1rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteSHA256MSG1rr.Latency);
+  let ResourceCycles = [1, 1, 3];
+  let NumMicroOps = !add(Zn4WriteSHA256MSG1rr.NumMicroOps, 0);
+}
+def : InstRW<[Zn4Writerm_SHA256MSG1rm], (instrs SHA256MSG1rm)>;
+
+def Zn4WriteSHA256MSG2rr : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 3;
+  let ResourceCycles = [8];
+  let NumMicroOps = 4;
+}
+def : InstRW<[Zn4WriteSHA256MSG2rr], (instrs SHA256MSG2rr)>;
+
+def Zn4WriteSHA256MSG2rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPU0123]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteSHA256MSG2rr.Latency);
+  let ResourceCycles = [1, 1, 8];
+  let NumMicroOps = !add(Zn4WriteSHA256MSG2rr.NumMicroOps, 1);
+}
+def : InstRW<[Zn4WriteSHA256MSG2rm], (instrs SHA256MSG2rm)>;
+
+def Zn4WriteSHA1RNDS4rri : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 6;
+  let ResourceCycles = [8];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteSHA1RNDS4rri], (instrs SHA1RNDS4rri)>;
+
+def Zn4WriteSHA256RNDS2rr : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 4;
+  let ResourceCycles = [8];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteSHA256RNDS2rr], (instrs SHA256RNDS2rr)>;
+
+// Strings instructions.
+// Packed Compare Implicit Length Strings, Return Mask
+defm : Zn4WriteResXMMPair<WritePCmpIStrM, [Zn4FPVAdd0123], 6, [8], 3, /*LoadUOps=*/1>;
+// Packed Compare Explicit Length Strings, Return Mask
+defm : Zn4WriteResXMMPair<WritePCmpEStrM, [Zn4FPVAdd0123], 6, [12], 7, /*LoadUOps=*/5>;
+// Packed Compare Implicit Length Strings, Return Index
+defm : Zn4WriteResXMMPair<WritePCmpIStrI, [Zn4FPVAdd0123], 2, [8], 4>;
+// Packed Compare Explicit Length Strings, Return Index
+defm : Zn4WriteResXMMPair<WritePCmpEStrI, [Zn4FPVAdd0123], 6, [12], 8, /*LoadUOps=*/4>;
+
+// AES instructions.
+defm : Zn4WriteResXMMPair<WriteAESDecEnc, [Zn4FPAES01], 4, [1], 1>; // Decryption, encryption.
+defm : Zn4WriteResXMMPair<WriteAESIMC, [Zn4FPAES01], 4, [1], 1>; // InvMixColumn.
+defm : Zn4WriteResXMMPair<WriteAESKeyGen, [Zn4FPAES01], 4, [1], 1>; // Key Generation.
+
+// Carry-less multiplication instructions.
+defm : Zn4WriteResXMMPair<WriteCLMul, [Zn4FPCLM01], 4, [4], 4>;
+
+// EMMS/FEMMS
+defm : Zn4WriteResInt<WriteEMMS, [Zn4ALU0123], 2, [1], 1>; // FIXME: latency not from llvm-exegesis
+
+// Load/store MXCSR
+defm : Zn4WriteResInt<WriteLDMXCSR, [Zn4AGU012, Zn4Load, Zn4ALU0123], !add(Znver4Model.LoadLatency, 1), [1, 1, 6], 1>; // FIXME: latency not from llvm-exegesis
+defm : Zn4WriteResInt<WriteSTMXCSR, [Zn4ALU0123, Zn4AGU012, Zn4Store], !add(1, Znver4Model.StoreLatency), [60, 1, 1], 2>; // FIXME: latency not from llvm-exegesis
+
+// Catch-all for expensive system instructions.
+defm : Zn4WriteResInt<WriteSystem, [Zn4ALU0123], 100, [100], 100>;
+
+def Zn4WriteVZEROUPPER : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 0; // FIXME: not from llvm-exegesis
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVZEROUPPER], (instrs VZEROUPPER)>;
+
+def Zn4WriteVZEROALL : SchedWriteRes<[Zn4FPU0123]> {
+  let Latency = 10; // FIXME: not from llvm-exegesis
+  let ResourceCycles = [24];
+  let NumMicroOps = 18;
+}
+def : InstRW<[Zn4WriteVZEROALL], (instrs VZEROALL)>;
+
+// AVX2.
+defm : Zn4WriteResYMMPair<WriteFShuffle256, [Zn4FPVShuf], 2, [1], 1, /*LoadUOps=*/2>; // Fp 256-bit width vector shuffles.
+defm : Zn4WriteResYMMPair<WriteFVarShuffle256, [Zn4FPVShuf], 7, [1], 2, /*LoadUOps=*/1>; // Fp 256-bit width variable shuffles.
+defm : Zn4WriteResYMMPair<WriteShuffle256, [Zn4FPVShuf], 1, [1], 1>; // 256-bit width vector shuffles.
+
+def Zn4WriteVPERM2I128rr_VPERM2F128rr : SchedWriteRes<[Zn4FPVShuf]> {
+  let Latency = 3;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVPERM2I128rr_VPERM2F128rr], (instrs VPERM2I128rr, VPERM2F128rr)>;
+
+def Zn4WriteVPERM2F128rm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteVPERM2I128rr_VPERM2F128rr.Latency);
+  let ResourceCycles = [1, 1, 1];
+  let NumMicroOps = !add(Zn4WriteVPERM2I128rr_VPERM2F128rr.NumMicroOps, 0);
+}
+def : InstRW<[Zn4WriteVPERM2F128rm], (instrs VPERM2F128rm)>;
+
+def Zn4WriteVPERMPSYrr : SchedWriteRes<[Zn4FPVShuf]> {
+  let Latency = 7;
+  let ResourceCycles = [1];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteVPERMPSYrr], (instrs VPERMPSYrr)>;
+
+def Zn4WriteVPERMPSYrm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteVPERMPSYrr.Latency);
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = !add(Zn4WriteVPERMPSYrr.NumMicroOps, 1);
+}
+def : InstRW<[Zn4WriteVPERMPSYrm], (instrs VPERMPSYrm)>;
+
+def Zn4WriteVPERMYri : SchedWriteRes<[Zn4FPVShuf]> {
+  let Latency = 6;
+  let ResourceCycles = [1];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteVPERMYri], (instrs VPERMPDYri, VPERMQYri)>;
+
+def Zn4WriteVPERMPDYmi : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteVPERMYri.Latency);
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = !add(Zn4WriteVPERMYri.NumMicroOps, 1);
+}
+def : InstRW<[Zn4WriteVPERMPDYmi], (instrs VPERMPDYmi)>;
+
+def Zn4WriteVPERMDYrr : SchedWriteRes<[Zn4FPVShuf]> {
+  let Latency = 5;
+  let ResourceCycles = [1];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteVPERMDYrr], (instrs VPERMDYrr)>;
+
+def Zn4WriteVPERMYm : SchedWriteRes<[Zn4AGU012, Zn4Load, Zn4FPVShuf]> {
+  let Latency = !add(Znver4Model.LoadLatency, Zn4WriteVPERMDYrr.Latency);
+  let ResourceCycles = [1, 1, 2];
+  let NumMicroOps = !add(Zn4WriteVPERMDYrr.NumMicroOps, 0);
+}
+def : InstRW<[Zn4WriteVPERMYm], (instrs VPERMQYmi, VPERMDYrm)>;
+
+defm : Zn4WriteResYMMPair<WriteVPMOV256, [Zn4FPVShuf01], 4, [3], 2, /*LoadUOps=*/-1>; // 256-bit width packed vector width-changing move.
+defm : Zn4WriteResYMMPair<WriteVarShuffle256, [Zn4FPVShuf01], 1, [1], 2>; // 256-bit width vector variable shuffles.
+defm : Zn4WriteResXMMPair<WriteVarVecShift, [Zn4FPVShift01], 1, [1], 1>; // Variable vector shifts.
+defm : Zn4WriteResYMMPair<WriteVarVecShiftY, [Zn4FPVShift01], 1, [1], 1>; // Variable vector shifts (YMM).
+defm : Zn4WriteResZMMPair<WriteVarVecShiftZ, [Zn4FPVShift01], 1, [2], 2>; // Variable vector shifts (ZMM).
+
+// Old microcoded instructions that nobody use.
+defm : Zn4WriteResInt<WriteMicrocoded, [Zn4ALU0123], 100, [100], 100>;
+
+// Fence instructions.
+defm : Zn4WriteResInt<WriteFence, [Zn4ALU0123], 1, [100], 1>;
+
+def Zn4WriteLFENCE : SchedWriteRes<[Zn4LSU]> {
+  let Latency = 1;
+  let ResourceCycles = [30];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteLFENCE], (instrs LFENCE)>;
+
+def Zn4WriteSFENCE : SchedWriteRes<[Zn4LSU]> {
+  let Latency = 1;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteSFENCE], (instrs SFENCE)>;
+
+// Nop, not very useful expect it provides a model for nops!
+defm : Zn4WriteResInt<WriteNop, [Zn4ALU0123], 0, [1], 1>; // FIXME: latency not from llvm-exegesis
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Zero Cycle Move
+///////////////////////////////////////////////////////////////////////////////
+
+def Zn4WriteZeroLatency : SchedWriteRes<[]> {
+  let Latency = 0;
+  let ResourceCycles = [];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteZeroLatency], (instrs MOV32rr, MOV32rr_REV,
+                                               MOV64rr, MOV64rr_REV,
+                                               MOVSX32rr32)>;
+
+def Zn4WriteSwapRenameable : SchedWriteRes<[]> {
+  let Latency = 0;
+  let ResourceCycles = [];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteSwapRenameable], (instrs XCHG32rr, XCHG32ar,
+                                               XCHG64rr, XCHG64ar)>;
+
+defm : Zn4WriteResInt<WriteXCHG, [Zn4ALU0123], 0, [8], 2>;        // Compare+Exchange - TODO RMW support.
+
+defm : Zn4WriteResXMM<WriteFMoveX, [], 0, [], 1>;
+defm : Zn4WriteResYMM<WriteFMoveY, [], 0, [], 1>;
+defm : Zn4WriteResYMM<WriteFMoveZ, [], 0, [], 1>;
+
+defm : Zn4WriteResXMM<WriteVecMove, [Zn4FPFMisc0123], 1, [1], 1>; // MMX
+defm : Zn4WriteResXMM<WriteVecMoveX, [], 0, [], 1>;
+defm : Zn4WriteResYMM<WriteVecMoveY, [], 0, [], 1>;
+defm : Zn4WriteResYMM<WriteVecMoveZ, [], 0, [], 1>;
+
+def : IsOptimizableRegisterMove<[
+  InstructionEquivalenceClass<[
+    // GPR variants.
+    MOV32rr, MOV32rr_REV,
+    MOV64rr, MOV64rr_REV,
+    MOVSX32rr32,
+    XCHG32rr, XCHG32ar,
+    XCHG64rr, XCHG64ar,
+
+    // MMX variants.
+    // MMX moves are *NOT* eliminated.
+
+    // SSE variants.
+    MOVAPSrr, MOVAPSrr_REV,
+    MOVUPSrr, MOVUPSrr_REV,
+    MOVAPDrr, MOVAPDrr_REV,
+    MOVUPDrr, MOVUPDrr_REV,
+    MOVDQArr, MOVDQArr_REV,
+    MOVDQUrr, MOVDQUrr_REV,
+
+    // AVX variants.
+    VMOVAPSrr, VMOVAPSrr_REV,
+    VMOVUPSrr, VMOVUPSrr_REV,
+    VMOVAPDrr, VMOVAPDrr_REV,
+    VMOVUPDrr, VMOVUPDrr_REV,
+    VMOVDQArr, VMOVDQArr_REV,
+    VMOVDQUrr, VMOVDQUrr_REV,
+
+    // AVX YMM variants.
+    VMOVAPSYrr, VMOVAPSYrr_REV,
+    VMOVUPSYrr, VMOVUPSYrr_REV,
+    VMOVAPDYrr, VMOVAPDYrr_REV,
+    VMOVUPDYrr, VMOVUPDYrr_REV,
+    VMOVDQAYrr, VMOVDQAYrr_REV,
+    VMOVDQUYrr, VMOVDQUYrr_REV,
+  ], TruePred >
+]>;
+
+// FIXUP and RANGE Instructions
+def Zn4WriteVFIXUPIMMPDZrr_VRANGESDrr : SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteVFIXUPIMMPDZrr_VRANGESDrr], (instregex
+       "VFIXUPIMM(S|P)(S|D)(Z|Z128|Z256?)rrik", "VFIXUPIMM(S|P)(S|D)(Z?|Z128?|Z256?)rrikz", 
+        "VFIXUPIMM(S|P)(S|D)(Z128|Z256?)rri",  "VRANGE(S|P)(S|D)(Z?|Z128?|Z256?)rri(b?)",
+       "VRANGE(S|P)(S|D)(Z|Z128|Z256?)rri(b?)k","VRANGE(S|P)(S|D)(Z?|Z128?|Z256?)rri(b?)kz"
+       )>;
+
+// SCALE & REDUCE instructions
+def Zn4WriteSCALErr: SchedWriteRes<[Zn4FPFMisc23]> {
+  let Latency = 6;
+  let ResourceCycles = [6];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteSCALErr], (instregex
+        "V(SCALEF|REDUCE)(S|P)(S|D)(Z?|Z128?|Z256?)(rr|rrb|rrkz|rrik|rrikz|rri)(_Int?|_Intkz?)",
+        "(V?)REDUCE(PD|PS|SD|SS)(Z?|Z128?)(rri|rrikz|rrib)"
+       )>;
+
+//BF16PS Instructions
+def Zn4WriteBF16: SchedWriteRes<[Zn4FPFMisc23]> {
+  let Latency = 6;
+  let ResourceCycles = [6];
+  let NumMicroOps = 2;
+}
+def : InstRW<[Zn4WriteBF16], (instregex
+        "(V?)DPBF16PS(Z?|Z128?|Z256?)(r|rk|rkz)"
+       )>;
+
+// BUSD and VPMADD Instructions
+def Zn4WriteBUSDr_VPMADDr: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 4;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteBUSDr_VPMADDr], (instregex
+       "VPDP(BU|WS)(S|P)(S|D|DS)(Z|Z128|Z256)(r|rk|rkz)",
+        "VPMADD52(H|L)UQ(Z|Z128|Z256)(r|rk|rkz)"
+       )>;
+
+// SHIFT instructions
+def Zn4WriteSHIFTrr: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteSHIFTrr], (instregex
+        "VP(LZCNT|SHLD|SHRD?)(D|Q|W|VD|VQ|VW?)(Z?|Z128?|Z256?)(rr|rk|rrk|rrkz|rri|rrik|rrikz)",
+        "(V?)P(SLL|SRL|SRA)(D|Q|W|DQ)(Y?|Z?|Z128?|Z256?)(rr|rrk|rrkz)",
+        "(V?)P(SLL|SRL|SRA)DQYri",
+        "(V?)P(SLL|SRL)DQ(Z?|Z256?)ri",
+        "(V?)P(SHUFB)(Y|Z|Z128|Z256?)(rr|rrk|rrkz)",
+        "(V?)P(ROL|ROR)(D|Q|VD|VQ)(Z?|Z128?|Z256?)(rr|rrk|rrkz)",
+        "(V?)P(ROL|ROR)(D|Q|VD|VQ)(Z256?)(ri|rik|rikz)",
+        "(V?)P(ROL|ROR)(D|Q)(Z?|Z128?)(ri|rik|rikz)",
+       "VPSHUFBITQMBZ128rr", "VFMSUB231SSZr_Intkz"
+       )>;
+
+def Zn4WriteSHIFTri: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 1;
+  let ResourceCycles = [1];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteSHIFTri], (instregex
+        "VP(SLL|SRL|SRA)(D|Q|W)(Z|Z128|Z256?)(ri|rik|rikz)"
+       )>;
+
+// ALIGN Instructions
+def Zn4WriteALIGN: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteALIGN], (instregex
+        "(V?)PALIGNR(Z?|Z128?|Z256?)(rri|rrik|rrikz)"
+       )>;
+
+//PACK Instructions
+def Zn4WritePACK: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WritePACK], (instregex
+        "(V?)PACK(SS|US)(DW|WB)(Z?|Z128?|Z256?)(rr|rrk|rrkz)"
+       )>;
+
+// MAX and MIN Instructions
+def Zn4WriteFCmp64: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4WriteFCmp64], (instregex
+        "(V?)CMP(S|P)(S|D)(rr|rri|rr_Int)",
+        "(V?|VP?)(MAX|MIN|MINC|MAXC)(S|P|U)(S|D|Q)(Z?|Z128?|Z256?)(rr|rri|rrk|rrkz)(_Int?)",
+        "VP(MAX|MIN)(SQ|UQ)(Z|Z128|Z256)(rr|rrk|rrkz)",
+        "(V?)(MAX|MAXC|MIN|MINC)PD(Z|Z128|Z256?)(rr|rrk|rrkz)"
+       )>;
+
+// MOV Instructions
+def Zn4MOVS: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4MOVS], (instregex
+        "(V?)PMOV(SX|ZX)(BD|BQ|BW|WD|WQ|DQ)(Z128?|Z256?)(rr|rrk|rrkz)",
+        "(V?)PMOV(SX|QD|UZ|ZX)(BD|BQ|BW?)(Y|Z128?)(rr|rrk|rrkz)",
+        "(V?)PMOV(SX|US|ZX)(DQ|WD|QW|WQ?)(Y|Z128?)(rr|rrk|rrkz)",
+        "(V?)VMOVDDUP(Z|Z128|Z256)(rr|rrk|rrkz)",
+        "VPMOV(DB|DW|QB|QD|QW|SDB|SDW|SQB|SQD|SQW|SWB|USDB|USDW|USQB|USQD|USWB|WB)(Z128?)(rr|rrk|rrkz)"
+       )>;
+
+def Zn4MOVSZ: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 4;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4MOVSZ], (instregex
+        "(V?)PMOV(SX|ZX)(BD|BQ|BW|WD|WQ|DQ)(Z?)(rr|rrk|rrkz)"
+       )>;
+
+def Zn4MOVSrr: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 5;
+  let ResourceCycles = [5];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4MOVSrr], (instregex
+        "(V?)PMOV(DB|QB|QW|SDB|SQB|SQW|USDB|USQB|USQW)(Z?)(rr|rrk|rrkz)"
+       )>;
+
+
+//VPTEST Instructions
+def Zn4VPTESTZ128: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 3;
+  let ResourceCycles = [3];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4VPTESTZ128], (instregex
+        "(V?)PTEST(N?)(MB|MD|MQ|MW)(Z128?)(rrk)"
+       )>;
+
+def Zn4VPTESTZ256: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 4;
+  let ResourceCycles = [4];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4VPTESTZ256], (instregex
+        "(V?)PTEST(N?)(MB|MD|MQ|MW)(Z256?)(rr|rrk)"
+       )>;
+
+def Zn4VPTESTZ: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 5;
+  let ResourceCycles = [5];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4VPTESTZ], (instregex
+        "(V?)PTEST(N?)(MB|MD|MQ|MW)(Z?)(rrk)"
+       )>;
+
+// CONFLICT Instructions
+def Zn4CONFLICTZ128: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4CONFLICTZ128], (instregex
+        "VPCONFLICT(D|Q)(Z128)(rr|rrk|rrkz)"
+       )>;
+
+def Zn4CONFLICTrr: SchedWriteRes<[Zn4FPFMisc01,Zn4FPFMisc12,Zn4FPFMisc23]> {
+  let Latency = 6;
+  let ResourceCycles = [2,2,2];
+  let NumMicroOps = 4;
+}
+def : InstRW<[Zn4CONFLICTrr], (instregex
+        "VPCONFLICT(D|Q)(Z|Z256)(rr|rrkz)"
+       )>;
+
+// RSQRT Instructions
+def Zn4VRSQRT14PDZ256: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 5;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4VRSQRT14PDZ256], (instregex
+        "VRSQRT14(PD|PS)(Z?|Z128?|Z256?)(r|rr|rk|rrk|rkz|rrkz)"
+       )>;
+
+
+// PERM Instructions
+def Zn4PERMILP: SchedWriteRes<[Zn4FPFMisc123]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4PERMILP], (instregex
+        "VPERMILP(S|D)(Y|Z|Z128|Z256)(rr|rrk|rrkz)"
+       )>;
+
+def Zn4PERMIT2_128: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 3;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4PERMIT2_128], (instregex
+        "VPERM(I2|T2)(PS|PD|W)128(rr|rrk|rrkz)",
+        "VPERM(I2|T2)(B|D|Q)128(rr|rrk|rrkz)"
+       )>;
+
+def Zn4PERMIT2_128rr:SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4PERMIT2_128rr], (instregex
+       "V(P?)COMPRESS(B|W|D|Q|PD|PS|SD|SQ)Z128(rr|rrk|rrkz)",
+       "VPERM(B|D|Q|W)(Z128?)(rr|rrk|rrkz)"
+       )>;
+
+def Zn4PERMIT2_256: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 4;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4PERMIT2_256], (instregex
+        "VPERM(I2|T2)(PS|PD|W)256(rr|rrk|rrkz)",
+       "VPERMP(S|D)Z256(rr|rrk|rrkz)",
+       "V(P?)COMPRESS(B|W|D|Q|PD|PS|SD|SQ)Z256(rr|rrk|rrkz)",
+       "VPERM(B|D|Q|W)Z256(rr|rrk|rrkz)",
+       "VPERM(I2|Q|T2)(B|D|Q)(Z?)256(rr|rrk|rrkz)",
+       "VPEXPAND(B|W)Z256(rr|rrk|rrkz)"
+       )>;
+
+def Zn4PERMIT2Z: SchedWriteRes<[Zn4FPFMisc12]> {
+  let Latency = 5;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4PERMIT2Z], (instregex
+        "VPERM(I2|T2)(PS|PD|W)(rr|rrk|rrkz)",
+       "VPERM(B|D|W)Z(rr|rrk|rrkz)",
+       "VPERM(I2|Q|T2)(B|D|Q)(Z?)(rr|rrk|rrkz)",
+       "V(P?)COMPRESS(B|W|D|Q|PD|PS|SD|SQ)Z(rr|rrk|rrkz)",
+       "VPEXPAND(B|W)Z(rr|rrk|rrkz)",
+        "VPERMP(S|D)Z(rr|rrk|rrkz)"
+       )>;
+
+// ALU SLOW Misc Instructions
+def Zn4VecALUZSlow: SchedWriteRes<[Zn4FPFMisc01]> {
+  let Latency = 2;
+  let ResourceCycles = [2];
+  let NumMicroOps = 1;
+}
+def : InstRW<[Zn4VecALUZSlow], (instrs 
+       VPABSBZ128rr,      VPABSBZ128rrk,  VPABSBZ128rrkz,   VPABSDZ128rr, 
+       VPABSDZ128rrk,     VPABSDZ128rrkz, VPABSQZ128rr,     VPABSQZ128rrk, 
+       VPABSQZ128rrkz,    VPABSWZ128rr,   VPABSWZ128rrk,    VPABSWZ128rrkz, 
+       VPADDSBZ128rr,     VPADDSBZ128rrk, VPADDSBZ128rrkz,  VPADDSWZ128rr, 
+       VPADDSWZ128rrk,    VPADDSWZ128rrkz,VPADDUSBZ128rr,   VPADDUSBZ128rrk, 
+       VPADDUSBZ128rrkz,  VPADDUSWZ128rr, VPADDUSWZ128rrk,  VPADDUSWZ128rrkz, 
+       VPAVGBZ128rr,      VPAVGBZ128rrk,  VPAVGBZ128rrkz,   VPAVGWZ128rr, 
+       VPAVGWZ128rrk,     VPAVGWZ128rrkz, VPOPCNTBZ128rr,   VPOPCNTBZ128rrk, 
+       VPOPCNTBZ128rrkz,  VPOPCNTDZ128rr, VPOPCNTDZ128rrk,  VPOPCNTDZ128rrkz, 
+       VPOPCNTQZ128rr,    VPOPCNTQZ128rrk,VPOPCNTQZ128rrkz, VPOPCNTWZ128rr, 
+       VPOPCNTWZ128rrk,   VPOPCNTWZ128rrkz,VPSUBSBZ128rr,   VPSUBSBZ128rrk, 
+       VPSUBSBZ128rrkz,   VPSUBSWZ128rr,   VPSUBSWZ128rrk,  VPSUBSWZ128rrkz, 
+       VPSUBUSBZ128rr,    VPSUBUSBZ128rrk, VPSUBUSBZ128rrkz,VPSUBUSWZ128rr, 
+       VPSUBUSWZ128rrk,   VPSUBUSWZ128rrkz
+       )>;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Dependency breaking instructions.
+///////////////////////////////////////////////////////////////////////////////
+
+def Zn4WriteZeroIdiom : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteALU]>
+]>;
+def : InstRW<[Zn4WriteZeroIdiom], (instrs XOR32rr, XOR32rr_REV,
+                                          XOR64rr, XOR64rr_REV,
+                                          SUB32rr, SUB32rr_REV,
+                                          SUB64rr, SUB64rr_REV)>;
+
+def Zn4WriteZeroIdiomEFLAGS : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<CheckSameRegOperand<0, 1>>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                                 [WriteALU]>
+]>;
+def : InstRW<[Zn4WriteZeroIdiomEFLAGS], (instrs CMP8rr,  CMP8rr_REV,
+                                                CMP16rr, CMP16rr_REV,
+                                                CMP32rr, CMP32rr_REV,
+                                                CMP64rr, CMP64rr_REV)>;
+
+def Zn4WriteFZeroIdiom : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteFLogic]>
+]>;
+// NOTE: XORPSrr, XORPDrr are not zero-cycle!
+def : InstRW<[Zn4WriteFZeroIdiom], (instrs VXORPSrr, VXORPDrr,
+                                           VANDNPSrr, VANDNPDrr)>;
+
+def Zn4WriteFZeroIdiomY : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteFLogicY]>
+]>;
+def : InstRW<[Zn4WriteFZeroIdiomY], (instrs VXORPSYrr, VXORPDYrr,
+                                            VANDNPSYrr, VANDNPDYrr)>;
+
+def Zn4WriteVZeroIdiomLogicX : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteVecLogicX]>
+]>;
+// NOTE: PXORrr,PANDNrr are not zero-cycle!
+def : InstRW<[Zn4WriteVZeroIdiomLogicX], (instrs VPXORrr, VPANDNrr)>;
+
+def Zn4WriteVZeroIdiomLogicY : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteVecLogicY]>
+]>;
+def : InstRW<[Zn4WriteVZeroIdiomLogicY], (instrs VPXORYrr, VPANDNYrr)>;
+
+def Zn4WriteVZeroIdiomALUX : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteVecALUX]>
+]>;
+// NOTE: PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+//       PCMPGTBrr, PCMPGTWrr, PCMPGTDrr, PCMPGTQrr are not zero-cycle!
+def : InstRW<[Zn4WriteVZeroIdiomALUX],
+             (instrs VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+                     VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr)>;
+
+def Zn4WriteVZeroIdiomALUY : SchedWriteVariant<[
+    SchedVar<MCSchedPredicate<ZeroIdiomPredicate>, [Zn4WriteZeroLatency]>,
+    SchedVar<NoSchedPred,                          [WriteVecALUY]>
+]>;
+def : InstRW<[Zn4WriteVZeroIdiomALUY],
+             (instrs VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+                     VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr)>;
+
+def : IsZeroIdiomFunction<[
+  // GPR Zero-idioms.
+  DepBreakingClass<[ XOR32rr, XOR32rr_REV,
+                     XOR64rr, XOR64rr_REV,
+                     SUB32rr, SUB32rr_REV,
+                     SUB64rr, SUB64rr_REV ], ZeroIdiomPredicate>,
+
+  // SSE XMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    XORPSrr, XORPDrr,
+    ANDNPSrr, ANDNPDrr,
+
+    // int variants.
+    PXORrr,
+    PANDNrr,
+    PSUBBrr, PSUBWrr, PSUBDrr, PSUBQrr,
+    PSUBSBrr, PSUBSWrr,
+    PSUBUSBrr, PSUBUSWrr,
+    PCMPGTBrr, PCMPGTWrr, PCMPGTDrr, PCMPGTQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX XMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    VXORPSrr, VXORPDrr,
+    VANDNPSrr, VANDNPDrr,
+
+    // int variants.
+    VPXORrr,
+    VPANDNrr,
+    VPSUBBrr, VPSUBWrr, VPSUBDrr, VPSUBQrr,
+    VPSUBSBrr, VPSUBSWrr,
+    VPSUBUSBrr, VPSUBUSWrr,
+    VPCMPGTBrr, VPCMPGTWrr, VPCMPGTDrr, VPCMPGTQrr,
+  ], ZeroIdiomPredicate>,
+
+  // AVX YMM Zero-idioms.
+  DepBreakingClass<[
+    // fp variants.
+    VXORPSYrr, VXORPDYrr,
+    VANDNPSYrr, VANDNPDYrr,
+
+    // int variants.
+    VPXORYrr,
+    VPANDNYrr,
+    VPSUBBYrr, VPSUBWYrr, VPSUBDYrr, VPSUBQYrr,
+    VPSUBSBYrr, VPSUBSWYrr,
+    VPSUBUSBYrr, VPSUBUSWYrr,
+    VPCMPGTBYrr, VPCMPGTWYrr, VPCMPGTDYrr, VPCMPGTQYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
+def : IsDepBreakingFunction<[
+  // GPR
+  DepBreakingClass<[ SBB32rr, SBB32rr_REV,
+                     SBB64rr, SBB64rr_REV ], ZeroIdiomPredicate>,
+  DepBreakingClass<[ CMP8rr,  CMP8rr_REV,
+                     CMP16rr, CMP16rr_REV,
+                     CMP32rr, CMP32rr_REV,
+                     CMP64rr, CMP64rr_REV ], CheckSameRegOperand<0, 1> >,
+  // SSE
+  DepBreakingClass<[
+    PCMPEQBrr, PCMPEQWrr, PCMPEQDrr, PCMPEQQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX XMM
+  DepBreakingClass<[
+    VPCMPEQBrr, VPCMPEQWrr, VPCMPEQDrr, VPCMPEQQrr
+  ], ZeroIdiomPredicate>,
+
+  // AVX YMM
+  DepBreakingClass<[
+    VPCMPEQBYrr, VPCMPEQWYrr, VPCMPEQDYrr, VPCMPEQQYrr
+  ], ZeroIdiomPredicate>,
+]>;
+
+} // SchedModel
+
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/independent-load-stores.s b/llvm/test/tools/llvm-mca/X86/Znver4/independent-load-stores.s
new file mode 100644 (file)
index 0000000..1b487e6
--- /dev/null
@@ -0,0 +1,155 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -timeline -timeline-max-iterations=1 < %s | FileCheck %s -check-prefixes=ALL,NOALIAS
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -timeline -timeline-max-iterations=1 -noalias=false < %s | FileCheck %s -check-prefixes=ALL,YESALIAS
+
+  addq $44, 64(%r14)
+  addq $44, 128(%r14)
+  addq $44, 192(%r14)
+  addq $44, 256(%r14)
+  addq $44, 320(%r14)
+  addq $44, 384(%r14)
+  addq $44, 448(%r14)
+  addq $44, 512(%r14)
+  addq $44, 576(%r14)
+  addq $44, 640(%r14)
+
+# ALL:           Iterations:        100
+# ALL-NEXT:      Instructions:      1000
+
+# NOALIAS-NEXT:  Total Cycles:      675
+# YESALIAS-NEXT: Total Cycles:      6003
+
+# ALL-NEXT:      Total uOps:        1000
+
+# ALL:           Dispatch Width:    6
+
+# NOALIAS-NEXT:  uOps Per Cycle:    1.48
+# NOALIAS-NEXT:  IPC:               1.48
+
+# YESALIAS-NEXT: uOps Per Cycle:    0.17
+# YESALIAS-NEXT: IPC:               0.17
+
+# ALL-NEXT:      Block RThroughput: 6.7
+
+# ALL:           Instruction Info:
+# ALL-NEXT:      [1]: #uOps
+# ALL-NEXT:      [2]: Latency
+# ALL-NEXT:      [3]: RThroughput
+# ALL-NEXT:      [4]: MayLoad
+# ALL-NEXT:      [5]: MayStore
+# ALL-NEXT:      [6]: HasSideEffects (U)
+
+# ALL:           [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 64(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 128(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 192(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 256(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 320(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 384(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 448(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 512(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 576(%r14)
+# ALL-NEXT:       1      6     0.67    *      *            addq        $44, 640(%r14)
+
+# ALL:           Resources:
+# ALL-NEXT:      [0]   - Zn4AGU0
+# ALL-NEXT:      [1]   - Zn4AGU1
+# ALL-NEXT:      [2]   - Zn4AGU2
+# ALL-NEXT:      [3]   - Zn4ALU0
+# ALL-NEXT:      [4]   - Zn4ALU1
+# ALL-NEXT:      [5]   - Zn4ALU2
+# ALL-NEXT:      [6]   - Zn4ALU3
+# ALL-NEXT:      [7]   - Zn4BRU1
+# ALL-NEXT:      [8]   - Zn4FP0
+# ALL-NEXT:      [9]   - Zn4FP1
+# ALL-NEXT:      [10]  - Zn4FP2
+# ALL-NEXT:      [11]  - Zn4FP3
+# ALL-NEXT:      [12.0] - Zn4FP45
+# ALL-NEXT:      [12.1] - Zn4FP45
+# ALL-NEXT:      [13]  - Zn4FPSt
+# ALL-NEXT:      [14.0] - Zn4LSU
+# ALL-NEXT:      [14.1] - Zn4LSU
+# ALL-NEXT:      [14.2] - Zn4LSU
+# ALL-NEXT:      [15.0] - Zn4Load
+# ALL-NEXT:      [15.1] - Zn4Load
+# ALL-NEXT:      [15.2] - Zn4Load
+# ALL-NEXT:      [16.0] - Zn4Store
+# ALL-NEXT:      [16.1] - Zn4Store
+
+# ALL:           Resource pressure per iteration:
+# ALL-NEXT:      [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# ALL-NEXT:      6.66   6.66   6.68   2.50   2.50   2.50   2.50    -      -      -      -      -      -      -      -     6.66   6.66   6.68   3.33   3.33   3.34   5.00   5.00
+
+# ALL:           Resource pressure by instruction:
+# ALL-NEXT:      [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# ALL-NEXT:      0.66   0.66   0.68    -     0.50    -     0.50    -      -      -      -      -      -      -      -     0.66   0.66   0.68   0.33   0.33   0.34    -     1.00   addq $44, 64(%r14)
+# ALL-NEXT:      0.66   0.68   0.66   0.50    -     0.50    -      -      -      -      -      -      -      -      -     0.66   0.68   0.66   0.33   0.34   0.33   1.00    -     addq $44, 128(%r14)
+# ALL-NEXT:      0.68   0.66   0.66    -     0.50    -     0.50    -      -      -      -      -      -      -      -     0.68   0.66   0.66   0.34   0.33   0.33    -     1.00   addq $44, 192(%r14)
+# ALL-NEXT:      0.66   0.66   0.68   0.50    -     0.50    -      -      -      -      -      -      -      -      -     0.66   0.66   0.68   0.33   0.33   0.34   1.00    -     addq $44, 256(%r14)
+# ALL-NEXT:      0.66   0.68   0.66    -     0.50    -     0.50    -      -      -      -      -      -      -      -     0.66   0.68   0.66   0.33   0.34   0.33    -     1.00   addq $44, 320(%r14)
+# ALL-NEXT:      0.68   0.66   0.66   0.50    -     0.50    -      -      -      -      -      -      -      -      -     0.68   0.66   0.66   0.34   0.33   0.33   1.00    -     addq $44, 384(%r14)
+# ALL-NEXT:      0.66   0.66   0.68    -     0.50    -     0.50    -      -      -      -      -      -      -      -     0.66   0.66   0.68   0.33   0.33   0.34    -     1.00   addq $44, 448(%r14)
+# ALL-NEXT:      0.66   0.68   0.66   0.50    -     0.50    -      -      -      -      -      -      -      -      -     0.66   0.68   0.66   0.33   0.34   0.33   1.00    -     addq $44, 512(%r14)
+# ALL-NEXT:      0.68   0.66   0.66    -     0.50    -     0.50    -      -      -      -      -      -      -      -     0.68   0.66   0.66   0.34   0.33   0.33    -     1.00   addq $44, 576(%r14)
+# ALL-NEXT:      0.66   0.66   0.68   0.50    -     0.50    -      -      -      -      -      -      -      -      -     0.66   0.66   0.68   0.33   0.33   0.34   1.00    -     addq $44, 640(%r14)
+
+# ALL:           Timeline view:
+
+# NOALIAS-NEXT:                      01234
+# NOALIAS-NEXT:  Index     0123456789
+
+# YESALIAS-NEXT:                     0123456789          0123456789          0123456789
+# YESALIAS-NEXT: Index     0123456789          0123456789          0123456789          012
+
+# NOALIAS:       [0,0]     DeeeeeeER .   .   addq      $44, 64(%r14)
+# NOALIAS-NEXT:  [0,1]     DeeeeeeER .   .   addq      $44, 128(%r14)
+# NOALIAS-NEXT:  [0,2]     D=eeeeeeER.   .   addq      $44, 192(%r14)
+# NOALIAS-NEXT:  [0,3]     D==eeeeeeER   .   addq      $44, 256(%r14)
+# NOALIAS-NEXT:  [0,4]     D==eeeeeeER   .   addq      $44, 320(%r14)
+# NOALIAS-NEXT:  [0,5]     D===eeeeeeER  .   addq      $44, 384(%r14)
+# NOALIAS-NEXT:  [0,6]     .D===eeeeeeER .   addq      $44, 448(%r14)
+# NOALIAS-NEXT:  [0,7]     .D===eeeeeeER .   addq      $44, 512(%r14)
+# NOALIAS-NEXT:  [0,8]     .D====eeeeeeER.   addq      $44, 576(%r14)
+# NOALIAS-NEXT:  [0,9]     .D=====eeeeeeER   addq      $44, 640(%r14)
+
+# YESALIAS:      [0,0]     DeeeeeeER .    .    .    .    .    .    .    .    .    .    . .   addq      $44, 64(%r14)
+# YESALIAS-NEXT: [0,1]     D======eeeeeeER.    .    .    .    .    .    .    .    .    . .   addq      $44, 128(%r14)
+# YESALIAS-NEXT: [0,2]     D============eeeeeeER    .    .    .    .    .    .    .    . .   addq      $44, 192(%r14)
+# YESALIAS-NEXT: [0,3]     D==================eeeeeeER   .    .    .    .    .    .    . .   addq      $44, 256(%r14)
+# YESALIAS-NEXT: [0,4]     D========================eeeeeeER  .    .    .    .    .    . .   addq      $44, 320(%r14)
+# YESALIAS-NEXT: [0,5]     D==============================eeeeeeER .    .    .    .    . .   addq      $44, 384(%r14)
+# YESALIAS-NEXT: [0,6]     .D===================================eeeeeeER.    .    .    . .   addq      $44, 448(%r14)
+# YESALIAS-NEXT: [0,7]     .D=========================================eeeeeeER    .    . .   addq      $44, 512(%r14)
+# YESALIAS-NEXT: [0,8]     .D===============================================eeeeeeER   . .   addq      $44, 576(%r14)
+# YESALIAS-NEXT: [0,9]     .D=====================================================eeeeeeER   addq      $44, 640(%r14)
+
+# ALL:           Average Wait times (based on the timeline view):
+# ALL-NEXT:      [0]: Executions
+# ALL-NEXT:      [1]: Average time spent waiting in a scheduler's queue
+# ALL-NEXT:      [2]: Average time spent waiting in a scheduler's queue while ready
+# ALL-NEXT:      [3]: Average time elapsed from WB until retire stage
+
+# ALL:                 [0]    [1]    [2]    [3]
+# ALL-NEXT:      0.     1     1.0    1.0    0.0       addq     $44, 64(%r14)
+
+# NOALIAS-NEXT:  1.     1     1.0    0.0    0.0       addq     $44, 128(%r14)
+# NOALIAS-NEXT:  2.     1     2.0    1.0    0.0       addq     $44, 192(%r14)
+# NOALIAS-NEXT:  3.     1     3.0    1.0    0.0       addq     $44, 256(%r14)
+# NOALIAS-NEXT:  4.     1     3.0    0.0    0.0       addq     $44, 320(%r14)
+# NOALIAS-NEXT:  5.     1     4.0    1.0    0.0       addq     $44, 384(%r14)
+# NOALIAS-NEXT:  6.     1     4.0    1.0    0.0       addq     $44, 448(%r14)
+# NOALIAS-NEXT:  7.     1     4.0    0.0    0.0       addq     $44, 512(%r14)
+# NOALIAS-NEXT:  8.     1     5.0    1.0    0.0       addq     $44, 576(%r14)
+# NOALIAS-NEXT:  9.     1     6.0    1.0    0.0       addq     $44, 640(%r14)
+# NOALIAS-NEXT:         1     3.3    0.7    0.0       <total>
+
+# YESALIAS-NEXT: 1.     1     7.0    0.0    0.0       addq     $44, 128(%r14)
+# YESALIAS-NEXT: 2.     1     13.0   0.0    0.0       addq     $44, 192(%r14)
+# YESALIAS-NEXT: 3.     1     19.0   0.0    0.0       addq     $44, 256(%r14)
+# YESALIAS-NEXT: 4.     1     25.0   0.0    0.0       addq     $44, 320(%r14)
+# YESALIAS-NEXT: 5.     1     31.0   0.0    0.0       addq     $44, 384(%r14)
+# YESALIAS-NEXT: 6.     1     36.0   0.0    0.0       addq     $44, 448(%r14)
+# YESALIAS-NEXT: 7.     1     42.0   0.0    0.0       addq     $44, 512(%r14)
+# YESALIAS-NEXT: 8.     1     48.0   0.0    0.0       addq     $44, 576(%r14)
+# YESALIAS-NEXT: 9.     1     54.0   0.0    0.0       addq     $44, 640(%r14)
+# YESALIAS-NEXT:        1     27.6   0.1    0.0       <total>
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-adx.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-adx.s
new file mode 100644 (file)
index 0000000..fdc3662
--- /dev/null
@@ -0,0 +1,70 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+adcx        %ebx, %ecx
+adcx        (%rbx), %ecx
+adcx        %rbx, %rcx
+adcx        (%rbx), %rcx
+
+adox        %ebx, %ecx
+adox        (%rbx), %ecx
+adox        %rbx, %rcx
+adox        (%rbx), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     1.00                        adcxl  %ebx, %ecx
+# CHECK-NEXT:  1      5     1.00    *                   adcxl  (%rbx), %ecx
+# CHECK-NEXT:  1      1     1.00                        adcxq  %rbx, %rcx
+# CHECK-NEXT:  1      5     1.00    *                   adcxq  (%rbx), %rcx
+# CHECK-NEXT:  1      1     1.00                        adoxl  %ebx, %ecx
+# CHECK-NEXT:  1      5     1.00    *                   adoxl  (%rbx), %ecx
+# CHECK-NEXT:  1      1     1.00                        adoxq  %rbx, %rcx
+# CHECK-NEXT:  1      5     1.00    *                   adoxq  (%rbx), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 1.33   1.33   1.33   8.00   8.00   8.00   8.00    -      -      -      -      -      -      -      -     1.33   1.33   1.33   1.33   1.33   1.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcxl   %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcxl   (%rbx), %ecx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcxq   %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcxq   (%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adoxl   %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adoxl   (%rbx), %ecx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adoxq   %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adoxq   (%rbx), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-aes.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-aes.s
new file mode 100644 (file)
index 0000000..7d7c449
--- /dev/null
@@ -0,0 +1,86 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+aesdec          %xmm0, %xmm2
+aesdec          (%rax), %xmm2
+
+aesdeclast      %xmm0, %xmm2
+aesdeclast      (%rax), %xmm2
+
+aesenc          %xmm0, %xmm2
+aesenc          (%rax), %xmm2
+
+aesenclast      %xmm0, %xmm2
+aesenclast      (%rax), %xmm2
+
+aesimc          %xmm0, %xmm2
+aesimc          (%rax), %xmm2
+
+aeskeygenassist $22, %xmm0, %xmm2
+aeskeygenassist $22, (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     0.50                        aesdec %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   aesdec (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        aesdeclast     %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   aesdeclast     (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        aesenc %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   aesenc (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        aesenclast     %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   aesenclast     (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        aesimc %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   aesimc (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        aeskeygenassist        $22, %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   aeskeygenassist        $22, (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     6.00   6.00    -      -     3.00   3.00    -     2.00   2.00   2.00   2.00   2.00   2.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     aesdec  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     aesdec  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     aesdeclast      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     aesdeclast      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     aesenc  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     aesenc  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     aesenclast      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     aesenclast      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     aesimc  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     aesimc  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     aeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     aeskeygenassist $22, (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx1.s
new file mode 100644 (file)
index 0000000..ab3d241
--- /dev/null
@@ -0,0 +1,2446 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vaddpd            %xmm0, %xmm1, %xmm2
+vaddpd            (%rax), %xmm1, %xmm2
+
+vaddpd            %ymm0, %ymm1, %ymm2
+vaddpd            (%rax), %ymm1, %ymm2
+
+vaddps            %xmm0, %xmm1, %xmm2
+vaddps            (%rax), %xmm1, %xmm2
+
+vaddps            %ymm0, %ymm1, %ymm2
+vaddps            (%rax), %ymm1, %ymm2
+
+vaddsd            %xmm0, %xmm1, %xmm2
+vaddsd            (%rax), %xmm1, %xmm2
+
+vaddss            %xmm0, %xmm1, %xmm2
+vaddss            (%rax), %xmm1, %xmm2
+
+vaddsubpd         %xmm0, %xmm1, %xmm2
+vaddsubpd         (%rax), %xmm1, %xmm2
+
+vaddsubpd         %ymm0, %ymm1, %ymm2
+vaddsubpd         (%rax), %ymm1, %ymm2
+
+vaddsubps         %xmm0, %xmm1, %xmm2
+vaddsubps         (%rax), %xmm1, %xmm2
+
+vaddsubps         %ymm0, %ymm1, %ymm2
+vaddsubps         (%rax), %ymm1, %ymm2
+
+vaesdec           %xmm0, %xmm1, %xmm2
+vaesdec           (%rax), %xmm1, %xmm2
+
+vaesdeclast       %xmm0, %xmm1, %xmm2
+vaesdeclast       (%rax), %xmm1, %xmm2
+
+vaesenc           %xmm0, %xmm1, %xmm2
+vaesenc           (%rax), %xmm1, %xmm2
+
+vaesenclast       %xmm0, %xmm1, %xmm2
+vaesenclast       (%rax), %xmm1, %xmm2
+
+vaesimc           %xmm0, %xmm2
+vaesimc           (%rax), %xmm2
+
+vaeskeygenassist  $22, %xmm0, %xmm2
+vaeskeygenassist  $22, (%rax), %xmm2
+
+vandnpd           %xmm0, %xmm1, %xmm2
+vandnpd           (%rax), %xmm1, %xmm2
+
+vandnpd           %ymm0, %ymm1, %ymm2
+vandnpd           (%rax), %ymm1, %ymm2
+
+vandnps           %xmm0, %xmm1, %xmm2
+vandnps           (%rax), %xmm1, %xmm2
+
+vandnps           %ymm0, %ymm1, %ymm2
+vandnps           (%rax), %ymm1, %ymm2
+
+vandpd            %xmm0, %xmm1, %xmm2
+vandpd            (%rax), %xmm1, %xmm2
+
+vandpd            %ymm0, %ymm1, %ymm2
+vandpd            (%rax), %ymm1, %ymm2
+
+vandps            %xmm0, %xmm1, %xmm2
+vandps            (%rax), %xmm1, %xmm2
+
+vandps            %ymm0, %ymm1, %ymm2
+vandps            (%rax), %ymm1, %ymm2
+
+vblendpd          $11, %xmm0, %xmm1, %xmm2
+vblendpd          $11, (%rax), %xmm1, %xmm2
+
+vblendpd          $11, %ymm0, %ymm1, %ymm2
+vblendpd          $11, (%rax), %ymm1, %ymm2
+
+vblendps          $11, %xmm0, %xmm1, %xmm2
+vblendps          $11, (%rax), %xmm1, %xmm2
+
+vblendps          $11, %ymm0, %ymm1, %ymm2
+vblendps          $11, (%rax), %ymm1, %ymm2
+
+vblendvpd         %xmm3, %xmm0, %xmm1, %xmm2
+vblendvpd         %xmm3, (%rax), %xmm1, %xmm2
+
+vblendvpd         %ymm3, %ymm0, %ymm1, %ymm2
+vblendvpd         %ymm3, (%rax), %ymm1, %ymm2
+
+vblendvps         %xmm3, %xmm0, %xmm1, %xmm2
+vblendvps         %xmm3, (%rax), %xmm1, %xmm2
+
+vblendvps         %ymm3, %ymm0, %ymm1, %ymm2
+vblendvps         %ymm3, (%rax), %ymm1, %ymm2
+
+vbroadcastf128    (%rax), %ymm2
+
+vbroadcastsd      (%rax), %ymm2
+
+vbroadcastss      (%rax), %xmm2
+vbroadcastss      (%rax), %ymm2
+
+vcmppd            $0, %xmm0, %xmm1, %xmm2
+vcmppd            $0, (%rax), %xmm1, %xmm2
+
+vcmppd            $0, %ymm0, %ymm1, %ymm2
+vcmppd            $0, (%rax), %ymm1, %ymm2
+
+vcmpps            $0, %xmm0, %xmm1, %xmm2
+vcmpps            $0, (%rax), %xmm1, %xmm2
+
+vcmpps            $0, %ymm0, %ymm1, %ymm2
+vcmpps            $0, (%rax), %ymm1, %ymm2
+
+vcmpsd            $0, %xmm0, %xmm1, %xmm2
+vcmpsd            $0, (%rax), %xmm1, %xmm2
+
+vcmpss            $0, %xmm0, %xmm1, %xmm2
+vcmpss            $0, (%rax), %xmm1, %xmm2
+
+vcomisd           %xmm0, %xmm1
+vcomisd           (%rax), %xmm1
+
+vcomiss           %xmm0, %xmm1
+vcomiss           (%rax), %xmm1
+
+vcvtdq2pd         %xmm0, %xmm2
+vcvtdq2pd         (%rax), %xmm2
+
+vcvtdq2pd         %xmm0, %ymm2
+vcvtdq2pd         (%rax), %ymm2
+
+vcvtdq2ps         %xmm0, %xmm2
+vcvtdq2ps         (%rax), %xmm2
+
+vcvtdq2ps         %ymm0, %ymm2
+vcvtdq2ps         (%rax), %ymm2
+
+vcvtpd2dqx        %xmm0, %xmm2
+vcvtpd2dqx        (%rax), %xmm2
+
+vcvtpd2dqy        %ymm0, %xmm2
+vcvtpd2dqy        (%rax), %xmm2
+
+vcvtpd2psx        %xmm0, %xmm2
+vcvtpd2psx        (%rax), %xmm2
+
+vcvtpd2psy        %ymm0, %xmm2
+vcvtpd2psy        (%rax), %xmm2
+
+vcvtps2dq         %xmm0, %xmm2
+vcvtps2dq         (%rax), %xmm2
+
+vcvtps2dq         %ymm0, %ymm2
+vcvtps2dq         (%rax), %ymm2
+
+vcvtps2pd         %xmm0, %xmm2
+vcvtps2pd         (%rax), %xmm2
+
+vcvtps2pd         %xmm0, %ymm2
+vcvtps2pd         (%rax), %ymm2
+
+vcvtsd2si         %xmm0, %ecx
+vcvtsd2si         %xmm0, %rcx
+vcvtsd2si         (%rax), %ecx
+vcvtsd2si         (%rax), %rcx
+
+vcvtsd2ss         %xmm0, %xmm1, %xmm2
+vcvtsd2ss         (%rax), %xmm1, %xmm2
+
+vcvtsi2sdl        %ecx, %xmm0, %xmm2
+vcvtsi2sdq        %rcx, %xmm0, %xmm2
+vcvtsi2sdl        (%rax), %xmm0, %xmm2
+vcvtsi2sdq        (%rax), %xmm0, %xmm2
+
+vcvtsi2ssl        %ecx, %xmm0, %xmm2
+vcvtsi2ssq        %rcx, %xmm0, %xmm2
+vcvtsi2ssl        (%rax), %xmm0, %xmm2
+vcvtsi2ssq        (%rax), %xmm0, %xmm2
+
+vcvtss2sd         %xmm0, %xmm1, %xmm2
+vcvtss2sd         (%rax), %xmm1, %xmm2
+
+vcvtss2si         %xmm0, %ecx
+vcvtss2si         %xmm0, %rcx
+vcvtss2si         (%rax), %ecx
+vcvtss2si         (%rax), %rcx
+
+vcvttpd2dqx       %xmm0, %xmm2
+vcvttpd2dqx       (%rax), %xmm2
+
+vcvttpd2dqy       %ymm0, %xmm2
+vcvttpd2dqy       (%rax), %xmm2
+
+vcvttps2dq        %xmm0, %xmm2
+vcvttps2dq        (%rax), %xmm2
+
+vcvttps2dq        %ymm0, %ymm2
+vcvttps2dq        (%rax), %ymm2
+
+vcvttsd2si        %xmm0, %ecx
+vcvttsd2si        %xmm0, %rcx
+vcvttsd2si        (%rax), %ecx
+vcvttsd2si        (%rax), %rcx
+
+vcvttss2si        %xmm0, %ecx
+vcvttss2si        %xmm0, %rcx
+vcvttss2si        (%rax), %ecx
+vcvttss2si        (%rax), %rcx
+
+vdivpd            %xmm0, %xmm1, %xmm2
+vdivpd            (%rax), %xmm1, %xmm2
+
+vdivpd            %ymm0, %ymm1, %ymm2
+vdivpd            (%rax), %ymm1, %ymm2
+
+vdivps            %xmm0, %xmm1, %xmm2
+vdivps            (%rax), %xmm1, %xmm2
+
+vdivps            %ymm0, %ymm1, %ymm2
+vdivps            (%rax), %ymm1, %ymm2
+
+vdivsd            %xmm0, %xmm1, %xmm2
+vdivsd            (%rax), %xmm1, %xmm2
+
+vdivss            %xmm0, %xmm1, %xmm2
+vdivss            (%rax), %xmm1, %xmm2
+
+vdppd             $22, %xmm0, %xmm1, %xmm2
+vdppd             $22, (%rax), %xmm1, %xmm2
+
+vdpps             $22, %xmm0, %xmm1, %xmm2
+vdpps             $22, (%rax), %xmm1, %xmm2
+
+vdpps             $22, %ymm0, %ymm1, %ymm2
+vdpps             $22, (%rax), %ymm1, %ymm2
+
+vextractf128      $1, %ymm0, %xmm2
+vextractf128      $1, %ymm0, (%rax)
+
+vextractps        $1, %xmm0, %rcx
+vextractps        $1, %xmm0, (%rax)
+
+vhaddpd           %xmm0, %xmm1, %xmm2
+vhaddpd           (%rax), %xmm1, %xmm2
+
+vhaddpd           %ymm0, %ymm1, %ymm2
+vhaddpd           (%rax), %ymm1, %ymm2
+
+vhaddps           %xmm0, %xmm1, %xmm2
+vhaddps           (%rax), %xmm1, %xmm2
+
+vhaddps           %ymm0, %ymm1, %ymm2
+vhaddps           (%rax), %ymm1, %ymm2
+
+vhsubpd           %xmm0, %xmm1, %xmm2
+vhsubpd           (%rax), %xmm1, %xmm2
+
+vhsubpd           %ymm0, %ymm1, %ymm2
+vhsubpd           (%rax), %ymm1, %ymm2
+
+vhsubps           %xmm0, %xmm1, %xmm2
+vhsubps           (%rax), %xmm1, %xmm2
+
+vhsubps           %ymm0, %ymm1, %ymm2
+vhsubps           (%rax), %ymm1, %ymm2
+
+vinsertf128       $1, %xmm0, %ymm1, %ymm2
+vinsertf128       $1, (%rax), %ymm1, %ymm2
+
+vinsertps         $1, %xmm0, %xmm1, %xmm2
+vinsertps         $1, (%rax), %xmm1, %xmm2
+
+vlddqu            (%rax), %xmm2
+vlddqu            (%rax), %ymm2
+
+vldmxcsr          (%rax)
+
+vmaskmovdqu       %xmm0, %xmm1
+
+vmaskmovpd        (%rax), %xmm0, %xmm2
+vmaskmovpd        (%rax), %ymm0, %ymm2
+
+vmaskmovpd        %xmm0, %xmm1, (%rax)
+vmaskmovpd        %ymm0, %ymm1, (%rax)
+
+vmaskmovps        (%rax), %xmm0, %xmm2
+vmaskmovps        (%rax), %ymm0, %ymm2
+
+vmaskmovps        %xmm0, %xmm1, (%rax)
+vmaskmovps        %ymm0, %ymm1, (%rax)
+
+vmaxpd            %xmm0, %xmm1, %xmm2
+vmaxpd            (%rax), %xmm1, %xmm2
+
+vmaxpd            %ymm0, %ymm1, %ymm2
+vmaxpd            (%rax), %ymm1, %ymm2
+
+vmaxps            %xmm0, %xmm1, %xmm2
+vmaxps            (%rax), %xmm1, %xmm2
+
+vmaxps            %ymm0, %ymm1, %ymm2
+vmaxps            (%rax), %ymm1, %ymm2
+
+vmaxsd            %xmm0, %xmm1, %xmm2
+vmaxsd            (%rax), %xmm1, %xmm2
+
+vmaxss            %xmm0, %xmm1, %xmm2
+vmaxss            (%rax), %xmm1, %xmm2
+
+vminpd            %xmm0, %xmm1, %xmm2
+vminpd            (%rax), %xmm1, %xmm2
+
+vminpd            %ymm0, %ymm1, %ymm2
+vminpd            (%rax), %ymm1, %ymm2
+
+vminps            %xmm0, %xmm1, %xmm2
+vminps            (%rax), %xmm1, %xmm2
+
+vminps            %ymm0, %ymm1, %ymm2
+vminps            (%rax), %ymm1, %ymm2
+
+vminsd            %xmm0, %xmm1, %xmm2
+vminsd            (%rax), %xmm1, %xmm2
+
+vminss            %xmm0, %xmm1, %xmm2
+vminss            (%rax), %xmm1, %xmm2
+
+vmovapd           %xmm0, %xmm2
+vmovapd           %xmm0, (%rax)
+vmovapd           (%rax), %xmm2
+
+vmovapd           %ymm0, %ymm2
+vmovapd           %ymm0, (%rax)
+vmovapd           (%rax), %ymm2
+
+vmovaps           %xmm0, %xmm2
+vmovaps           %xmm0, (%rax)
+vmovaps           (%rax), %xmm2
+
+vmovaps           %ymm0, %ymm2
+vmovaps           %ymm0, (%rax)
+vmovaps           (%rax), %ymm2
+
+vmovd             %eax, %xmm2
+vmovd             (%rax), %xmm2
+
+vmovd             %xmm0, %ecx
+vmovd             %xmm0, (%rax)
+
+vmovddup          %xmm0, %xmm2
+vmovddup          (%rax), %xmm2
+
+vmovddup          %ymm0, %ymm2
+vmovddup          (%rax), %ymm2
+
+vmovdqa           %xmm0, %xmm2
+vmovdqa           %xmm0, (%rax)
+vmovdqa           (%rax), %xmm2
+
+vmovdqa           %ymm0, %ymm2
+vmovdqa           %ymm0, (%rax)
+vmovdqa           (%rax), %ymm2
+
+vmovdqu           %xmm0, %xmm2
+vmovdqu           %xmm0, (%rax)
+vmovdqu           (%rax), %xmm2
+
+vmovdqu           %ymm0, %ymm2
+vmovdqu           %ymm0, (%rax)
+vmovdqu           (%rax), %ymm2
+
+vmovhlps          %xmm0, %xmm1, %xmm2
+vmovlhps          %xmm0, %xmm1, %xmm2
+
+vmovhpd           %xmm0, (%rax)
+vmovhpd           (%rax), %xmm1, %xmm2
+
+vmovhps           %xmm0, (%rax)
+vmovhps           (%rax), %xmm1, %xmm2
+
+vmovlpd           %xmm0, (%rax)
+vmovlpd           (%rax), %xmm1, %xmm2
+
+vmovlps           %xmm0, (%rax)
+vmovlps           (%rax), %xmm1, %xmm2
+
+vmovmskpd         %xmm0, %rcx
+vmovmskpd         %ymm0, %rcx
+
+vmovmskps         %xmm0, %rcx
+vmovmskps         %ymm0, %rcx
+
+vmovntdq          %xmm0, (%rax)
+vmovntdq          %ymm0, (%rax)
+
+vmovntdqa         (%rax), %xmm2
+vmovntdqa         (%rax), %ymm2
+
+vmovntpd          %xmm0, (%rax)
+vmovntpd          %ymm0, (%rax)
+
+vmovntps          %xmm0, (%rax)
+vmovntps          %ymm0, (%rax)
+
+vmovq             %xmm0, %xmm2
+
+vmovq             %rax, %xmm2
+vmovq             (%rax), %xmm2
+
+vmovq             %xmm0, %rcx
+vmovq             %xmm0, (%rax)
+
+vmovsd            %xmm0, %xmm1, %xmm2
+vmovsd            %xmm0, (%rax)
+vmovsd            (%rax), %xmm2
+
+vmovshdup         %xmm0, %xmm2
+vmovshdup         (%rax), %xmm2
+
+vmovshdup         %ymm0, %ymm2
+vmovshdup         (%rax), %ymm2
+
+vmovsldup         %xmm0, %xmm2
+vmovsldup         (%rax), %xmm2
+
+vmovsldup         %ymm0, %ymm2
+vmovsldup         (%rax), %ymm2
+
+vmovss            %xmm0, %xmm1, %xmm2
+vmovss            %xmm0, (%rax)
+vmovss            (%rax), %xmm2
+
+vmovupd           %xmm0, %xmm2
+vmovupd           %xmm0, (%rax)
+vmovupd           (%rax), %xmm2
+
+vmovupd           %ymm0, %ymm2
+vmovupd           %ymm0, (%rax)
+vmovupd           (%rax), %ymm2
+
+vmovups           %xmm0, %xmm2
+vmovups           %xmm0, (%rax)
+vmovups           (%rax), %xmm2
+
+vmovups           %ymm0, %ymm2
+vmovups           %ymm0, (%rax)
+vmovups           (%rax), %ymm2
+
+vmpsadbw          $1, %xmm0, %xmm1, %xmm2
+vmpsadbw          $1, (%rax), %xmm1, %xmm2
+
+vmulpd            %xmm0, %xmm1, %xmm2
+vmulpd            (%rax), %xmm1, %xmm2
+
+vmulpd            %ymm0, %ymm1, %ymm2
+vmulpd            (%rax), %ymm1, %ymm2
+
+vmulps            %xmm0, %xmm1, %xmm2
+vmulps            (%rax), %xmm1, %xmm2
+
+vmulps            %ymm0, %ymm1, %ymm2
+vmulps            (%rax), %ymm1, %ymm2
+
+vmulsd            %xmm0, %xmm1, %xmm2
+vmulsd            (%rax), %xmm1, %xmm2
+
+vmulss            %xmm0, %xmm1, %xmm2
+vmulss            (%rax), %xmm1, %xmm2
+
+vorpd             %xmm0, %xmm1, %xmm2
+vorpd             (%rax), %xmm1, %xmm2
+
+vorpd             %ymm0, %ymm1, %ymm2
+vorpd             (%rax), %ymm1, %ymm2
+
+vorps             %xmm0, %xmm1, %xmm2
+vorps             (%rax), %xmm1, %xmm2
+
+vorps             %ymm0, %ymm1, %ymm2
+vorps             (%rax), %ymm1, %ymm2
+
+vpabsb            %xmm0, %xmm2
+vpabsb            (%rax), %xmm2
+
+vpabsd            %xmm0, %xmm2
+vpabsd            (%rax), %xmm2
+
+vpabsw            %xmm0, %xmm2
+vpabsw            (%rax), %xmm2
+
+vpackssdw         %xmm0, %xmm1, %xmm2
+vpackssdw         (%rax), %xmm1, %xmm2
+
+vpacksswb         %xmm0, %xmm1, %xmm2
+vpacksswb         (%rax), %xmm1, %xmm2
+
+vpackusdw         %xmm0, %xmm1, %xmm2
+vpackusdw         (%rax), %xmm1, %xmm2
+
+vpackuswb         %xmm0, %xmm1, %xmm2
+vpackuswb         (%rax), %xmm1, %xmm2
+
+vpaddb            %xmm0, %xmm1, %xmm2
+vpaddb            (%rax), %xmm1, %xmm2
+
+vpaddd            %xmm0, %xmm1, %xmm2
+vpaddd            (%rax), %xmm1, %xmm2
+
+vpaddq            %xmm0, %xmm1, %xmm2
+vpaddq            (%rax), %xmm1, %xmm2
+
+vpaddsb           %xmm0, %xmm1, %xmm2
+vpaddsb           (%rax), %xmm1, %xmm2
+
+vpaddsw           %xmm0, %xmm1, %xmm2
+vpaddsw           (%rax), %xmm1, %xmm2
+
+vpaddusb          %xmm0, %xmm1, %xmm2
+vpaddusb          (%rax), %xmm1, %xmm2
+
+vpaddusw          %xmm0, %xmm1, %xmm2
+vpaddusw          (%rax), %xmm1, %xmm2
+
+vpaddw            %xmm0, %xmm1, %xmm2
+vpaddw            (%rax), %xmm1, %xmm2
+
+vpalignr          $1, %xmm0, %xmm1, %xmm2
+vpalignr          $1, (%rax), %xmm1, %xmm2
+
+vpand             %xmm0, %xmm1, %xmm2
+vpand             (%rax), %xmm1, %xmm2
+
+vpandn            %xmm0, %xmm1, %xmm2
+vpandn            (%rax), %xmm1, %xmm2
+
+vpavgb            %xmm0, %xmm1, %xmm2
+vpavgb            (%rax), %xmm1, %xmm2
+
+vpavgw            %xmm0, %xmm1, %xmm2
+vpavgw            (%rax), %xmm1, %xmm2
+
+vpblendvb         %xmm3, %xmm0, %xmm1, %xmm2
+vpblendvb         %xmm3, (%rax), %xmm1, %xmm2
+
+vpblendw          $11, %xmm0, %xmm1, %xmm2
+vpblendw          $11, (%rax), %xmm1, %xmm2
+
+vpclmulqdq        $11, %xmm0, %xmm1, %xmm2
+vpclmulqdq        $11, (%rax), %xmm1, %xmm2
+
+vpcmpeqb          %xmm0, %xmm1, %xmm2
+vpcmpeqb          (%rax), %xmm1, %xmm2
+
+vpcmpeqd          %xmm0, %xmm1, %xmm2
+vpcmpeqd          (%rax), %xmm1, %xmm2
+
+vpcmpeqq          %xmm0, %xmm1, %xmm2
+vpcmpeqq          (%rax), %xmm1, %xmm2
+
+vpcmpeqw          %xmm0, %xmm1, %xmm2
+vpcmpeqw          (%rax), %xmm1, %xmm2
+
+vpcmpestri        $1, %xmm0, %xmm2
+vpcmpestri        $1, (%rax), %xmm2
+
+vpcmpestrm        $1, %xmm0, %xmm2
+vpcmpestrm        $1, (%rax), %xmm2
+
+vpcmpgtb          %xmm0, %xmm1, %xmm2
+vpcmpgtb          (%rax), %xmm1, %xmm2
+
+vpcmpgtd          %xmm0, %xmm1, %xmm2
+vpcmpgtd          (%rax), %xmm1, %xmm2
+
+vpcmpgtq          %xmm0, %xmm1, %xmm2
+vpcmpgtq          (%rax), %xmm1, %xmm2
+
+vpcmpgtw          %xmm0, %xmm1, %xmm2
+vpcmpgtw          (%rax), %xmm1, %xmm2
+
+vpcmpistri        $1, %xmm0, %xmm2
+vpcmpistri        $1, (%rax), %xmm2
+
+vpcmpistrm        $1, %xmm0, %xmm2
+vpcmpistrm        $1, (%rax), %xmm2
+
+vperm2f128        $1, %ymm0, %ymm1, %ymm2
+vperm2f128        $1, (%rax), %ymm1, %ymm2
+
+vpermilpd         $1, %xmm0, %xmm2
+vpermilpd         $1, (%rax), %xmm2
+vpermilpd         %xmm0, %xmm1, %xmm2
+vpermilpd         (%rax), %xmm1, %xmm2
+
+vpermilpd         $1, %ymm0, %ymm2
+vpermilpd         $1, (%rax), %ymm2
+vpermilpd         %ymm0, %ymm1, %ymm2
+vpermilpd         (%rax), %ymm1, %ymm2
+
+vpermilps         $1, %xmm0, %xmm2
+vpermilps         $1, (%rax), %xmm2
+vpermilps         %xmm0, %xmm1, %xmm2
+vpermilps         (%rax), %xmm1, %xmm2
+
+vpermilps         $1, %ymm0, %ymm2
+vpermilps         $1, (%rax), %ymm2
+vpermilps         %ymm0, %ymm1, %ymm2
+vpermilps         (%rax), %ymm1, %ymm2
+
+vpextrb           $1, %xmm0, %ecx
+vpextrb           $1, %xmm0, (%rax)
+
+vpextrd           $1, %xmm0, %ecx
+vpextrd           $1, %xmm0, (%rax)
+
+vpextrq           $1, %xmm0, %rcx
+vpextrq           $1, %xmm0, (%rax)
+
+vpextrw           $1, %xmm0, %ecx
+vpextrw           $1, %xmm0, (%rax)
+
+vphaddd           %xmm0, %xmm1, %xmm2
+vphaddd           (%rax), %xmm1, %xmm2
+
+vphaddsw          %xmm0, %xmm1, %xmm2
+vphaddsw          (%rax), %xmm1, %xmm2
+
+vphaddw           %xmm0, %xmm1, %xmm2
+vphaddw           (%rax), %xmm1, %xmm2
+
+vphminposuw       %xmm0, %xmm2
+vphminposuw       (%rax), %xmm2
+
+vphsubd           %xmm0, %xmm1, %xmm2
+vphsubd           (%rax), %xmm1, %xmm2
+
+vphsubsw          %xmm0, %xmm1, %xmm2
+vphsubsw          (%rax), %xmm1, %xmm2
+
+vphsubw           %xmm0, %xmm1, %xmm2
+vphsubw           (%rax), %xmm1, %xmm2
+
+vpinsrb           $1, %eax, %xmm1, %xmm2
+vpinsrb           $1, (%rax), %xmm1, %xmm2
+
+vpinsrd           $1, %eax, %xmm1, %xmm2
+vpinsrd           $1, (%rax), %xmm1, %xmm2
+
+vpinsrq           $1, %rax, %xmm1, %xmm2
+vpinsrq           $1, (%rax), %xmm1, %xmm2
+
+vpinsrw           $1, %eax, %xmm1, %xmm2
+vpinsrw           $1, (%rax), %xmm1, %xmm2
+
+vpmaddubsw        %xmm0, %xmm1, %xmm2
+vpmaddubsw        (%rax), %xmm1, %xmm2
+
+vpmaddwd          %xmm0, %xmm1, %xmm2
+vpmaddwd          (%rax), %xmm1, %xmm2
+
+vpmaxsb           %xmm0, %xmm1, %xmm2
+vpmaxsb           (%rax), %xmm1, %xmm2
+
+vpmaxsd           %xmm0, %xmm1, %xmm2
+vpmaxsd           (%rax), %xmm1, %xmm2
+
+vpmaxsw           %xmm0, %xmm1, %xmm2
+vpmaxsw           (%rax), %xmm1, %xmm2
+
+vpmaxub           %xmm0, %xmm1, %xmm2
+vpmaxub           (%rax), %xmm1, %xmm2
+
+vpmaxud           %xmm0, %xmm1, %xmm2
+vpmaxud           (%rax), %xmm1, %xmm2
+
+vpmaxuw           %xmm0, %xmm1, %xmm2
+vpmaxuw           (%rax), %xmm1, %xmm2
+
+vpminsb           %xmm0, %xmm1, %xmm2
+vpminsb           (%rax), %xmm1, %xmm2
+
+vpminsd           %xmm0, %xmm1, %xmm2
+vpminsd           (%rax), %xmm1, %xmm2
+
+vpminsw           %xmm0, %xmm1, %xmm2
+vpminsw           (%rax), %xmm1, %xmm2
+
+vpminub           %xmm0, %xmm1, %xmm2
+vpminub           (%rax), %xmm1, %xmm2
+
+vpminud           %xmm0, %xmm1, %xmm2
+vpminud           (%rax), %xmm1, %xmm2
+
+vpminuw           %xmm0, %xmm1, %xmm2
+vpminuw           (%rax), %xmm1, %xmm2
+
+vpmovmskb         %xmm0, %rcx
+
+vpmovsxbd         %xmm0, %xmm2
+vpmovsxbd         (%rax), %xmm2
+
+vpmovsxbq         %xmm0, %xmm2
+vpmovsxbq         (%rax), %xmm2
+
+vpmovsxbw         %xmm0, %xmm2
+vpmovsxbw         (%rax), %xmm2
+
+vpmovsxdq         %xmm0, %xmm2
+vpmovsxdq         (%rax), %xmm2
+
+vpmovsxwd         %xmm0, %xmm2
+vpmovsxwd         (%rax), %xmm2
+
+vpmovsxwq         %xmm0, %xmm2
+vpmovsxwq         (%rax), %xmm2
+
+vpmovzxbd         %xmm0, %xmm2
+vpmovzxbd         (%rax), %xmm2
+
+vpmovzxbq         %xmm0, %xmm2
+vpmovzxbq         (%rax), %xmm2
+
+vpmovzxbw         %xmm0, %xmm2
+vpmovzxbw         (%rax), %xmm2
+
+vpmovzxdq         %xmm0, %xmm2
+vpmovzxdq         (%rax), %xmm2
+
+vpmovzxwd         %xmm0, %xmm2
+vpmovzxwd         (%rax), %xmm2
+
+vpmovzxwq         %xmm0, %xmm2
+vpmovzxwq         (%rax), %xmm2
+
+vpmuldq           %xmm0, %xmm1, %xmm2
+vpmuldq           (%rax), %xmm1, %xmm2
+
+vpmulhrsw         %xmm0, %xmm1, %xmm2
+vpmulhrsw         (%rax), %xmm1, %xmm2
+
+vpmulhuw          %xmm0, %xmm1, %xmm2
+vpmulhuw          (%rax), %xmm1, %xmm2
+
+vpmulhw           %xmm0, %xmm1, %xmm2
+vpmulhw           (%rax), %xmm1, %xmm2
+
+vpmulld           %xmm0, %xmm1, %xmm2
+vpmulld           (%rax), %xmm1, %xmm2
+
+vpmullw           %xmm0, %xmm1, %xmm2
+vpmullw           (%rax), %xmm1, %xmm2
+
+vpmuludq          %xmm0, %xmm1, %xmm2
+vpmuludq          (%rax), %xmm1, %xmm2
+
+vpor              %xmm0, %xmm1, %xmm2
+vpor              (%rax), %xmm1, %xmm2
+
+vpsadbw           %xmm0, %xmm1, %xmm2
+vpsadbw           (%rax), %xmm1, %xmm2
+
+vpshufb           %xmm0, %xmm1, %xmm2
+vpshufb           (%rax), %xmm1, %xmm2
+
+vpshufd           $1, %xmm0, %xmm2
+vpshufd           $1, (%rax), %xmm2
+
+vpshufhw          $1, %xmm0, %xmm2
+vpshufhw          $1, (%rax), %xmm2
+
+vpshuflw          $1, %xmm0, %xmm2
+vpshuflw          $1, (%rax), %xmm2
+
+vpsignb           %xmm0, %xmm1, %xmm2
+vpsignb           (%rax), %xmm1, %xmm2
+
+vpsignd           %xmm0, %xmm1, %xmm2
+vpsignd           (%rax), %xmm1, %xmm2
+
+vpsignw           %xmm0, %xmm1, %xmm2
+vpsignw           (%rax), %xmm1, %xmm2
+
+vpslld            $1, %xmm0, %xmm2
+vpslld            %xmm0, %xmm1, %xmm2
+vpslld            (%rax), %xmm1, %xmm2
+
+vpslldq           $1, %xmm1, %xmm2
+
+vpsllq            $1, %xmm0, %xmm2
+vpsllq            %xmm0, %xmm1, %xmm2
+vpsllq            (%rax), %xmm1, %xmm2
+
+vpsllw            $1, %xmm0, %xmm2
+vpsllw            %xmm0, %xmm1, %xmm2
+vpsllw            (%rax), %xmm1, %xmm2
+
+vpsrad            $1, %xmm0, %xmm2
+vpsrad            %xmm0, %xmm1, %xmm2
+vpsrad            (%rax), %xmm1, %xmm2
+
+vpsraw            $1, %xmm0, %xmm2
+vpsraw            %xmm0, %xmm1, %xmm2
+vpsraw            (%rax), %xmm1, %xmm2
+
+vpsrld            $1, %xmm0, %xmm2
+vpsrld            %xmm0, %xmm1, %xmm2
+vpsrld            (%rax), %xmm1, %xmm2
+
+vpsrldq           $1, %xmm1, %xmm2
+
+vpsrlq            $1, %xmm0, %xmm2
+vpsrlq            %xmm0, %xmm1, %xmm2
+vpsrlq            (%rax), %xmm1, %xmm2
+
+vpsrlw            $1, %xmm0, %xmm2
+vpsrlw            %xmm0, %xmm1, %xmm2
+vpsrlw            (%rax), %xmm1, %xmm2
+
+vpsubb            %xmm0, %xmm1, %xmm2
+vpsubb            (%rax), %xmm1, %xmm2
+
+vpsubd            %xmm0, %xmm1, %xmm2
+vpsubd            (%rax), %xmm1, %xmm2
+
+vpsubq            %xmm0, %xmm1, %xmm2
+vpsubq            (%rax), %xmm1, %xmm2
+
+vpsubsb           %xmm0, %xmm1, %xmm2
+vpsubsb           (%rax), %xmm1, %xmm2
+
+vpsubsw           %xmm0, %xmm1, %xmm2
+vpsubsw           (%rax), %xmm1, %xmm2
+
+vpsubusb          %xmm0, %xmm1, %xmm2
+vpsubusb          (%rax), %xmm1, %xmm2
+
+vpsubusw          %xmm0, %xmm1, %xmm2
+vpsubusw          (%rax), %xmm1, %xmm2
+
+vpsubw            %xmm0, %xmm1, %xmm2
+vpsubw            (%rax), %xmm1, %xmm2
+
+vptest            %xmm0, %xmm1
+vptest            (%rax), %xmm1
+
+vptest            %ymm0, %ymm1
+vptest            (%rax), %ymm1
+
+vpunpckhbw        %xmm0, %xmm1, %xmm2
+vpunpckhbw        (%rax), %xmm1, %xmm2
+
+vpunpckhdq        %xmm0, %xmm1, %xmm2
+vpunpckhdq        (%rax), %xmm1, %xmm2
+
+vpunpckhqdq       %xmm0, %xmm1, %xmm2
+vpunpckhqdq       (%rax), %xmm1, %xmm2
+
+vpunpckhwd        %xmm0, %xmm1, %xmm2
+vpunpckhwd        (%rax), %xmm1, %xmm2
+
+vpunpcklbw        %xmm0, %xmm1, %xmm2
+vpunpcklbw        (%rax), %xmm1, %xmm2
+
+vpunpckldq        %xmm0, %xmm1, %xmm2
+vpunpckldq        (%rax), %xmm1, %xmm2
+
+vpunpcklqdq       %xmm0, %xmm1, %xmm2
+vpunpcklqdq       (%rax), %xmm1, %xmm2
+
+vpunpcklwd        %xmm0, %xmm1, %xmm2
+vpunpcklwd        (%rax), %xmm1, %xmm2
+
+vpxor             %xmm0, %xmm1, %xmm2
+vpxor             (%rax), %xmm1, %xmm2
+
+vrcpps            %xmm0, %xmm2
+vrcpps            (%rax), %xmm2
+
+vrcpps            %ymm0, %ymm2
+vrcpps            (%rax), %ymm2
+
+vrcpss            %xmm0, %xmm1, %xmm2
+vrcpss            (%rax), %xmm1, %xmm2
+
+vroundpd          $1, %xmm0, %xmm2
+vroundpd          $1, (%rax), %xmm2
+
+vroundpd          $1, %ymm0, %ymm2
+vroundpd          $1, (%rax), %ymm2
+
+vroundps          $1, %xmm0, %xmm2
+vroundps          $1, (%rax), %xmm2
+
+vroundps          $1, %ymm0, %ymm2
+vroundps          $1, (%rax), %ymm2
+
+vroundsd          $1, %xmm0, %xmm1, %xmm2
+vroundsd          $1, (%rax), %xmm1, %xmm2
+
+vroundss          $1, %xmm0, %xmm1, %xmm2
+vroundss          $1, (%rax), %xmm1, %xmm2
+
+vrsqrtps          %xmm0, %xmm2
+vrsqrtps          (%rax), %xmm2
+
+vrsqrtps          %ymm0, %ymm2
+vrsqrtps          (%rax), %ymm2
+
+vrsqrtss          %xmm0, %xmm1, %xmm2
+vrsqrtss          (%rax), %xmm1, %xmm2
+
+vshufpd           $1, %xmm0, %xmm1, %xmm2
+vshufpd           $1, (%rax), %xmm1, %xmm2
+
+vshufpd           $1, %ymm0, %ymm1, %ymm2
+vshufpd           $1, (%rax), %ymm1, %ymm2
+
+vshufps           $1, %xmm0, %xmm1, %xmm2
+vshufps           $1, (%rax), %xmm1, %xmm2
+
+vshufps           $1, %ymm0, %ymm1, %ymm2
+vshufps           $1, (%rax), %ymm1, %ymm2
+
+vsqrtpd           %xmm0, %xmm2
+vsqrtpd           (%rax), %xmm2
+
+vsqrtpd           %ymm0, %ymm2
+vsqrtpd           (%rax), %ymm2
+
+vsqrtps           %xmm0, %xmm2
+vsqrtps           (%rax), %xmm2
+
+vsqrtps           %ymm0, %ymm2
+vsqrtps           (%rax), %ymm2
+
+vsqrtsd           %xmm0, %xmm1, %xmm2
+vsqrtsd           (%rax), %xmm1, %xmm2
+
+vsqrtss           %xmm0, %xmm1, %xmm2
+vsqrtss           (%rax), %xmm1, %xmm2
+
+vstmxcsr          (%rax)
+
+vsubpd            %xmm0, %xmm1, %xmm2
+vsubpd            (%rax), %xmm1, %xmm2
+
+vsubpd            %ymm0, %ymm1, %ymm2
+vsubpd            (%rax), %ymm1, %ymm2
+
+vsubps            %xmm0, %xmm1, %xmm2
+vsubps            (%rax), %xmm1, %xmm2
+
+vsubps            %ymm0, %ymm1, %ymm2
+vsubps            (%rax), %ymm1, %ymm2
+
+vsubsd            %xmm0, %xmm1, %xmm2
+vsubsd            (%rax), %xmm1, %xmm2
+
+vsubss            %xmm0, %xmm1, %xmm2
+vsubss            (%rax), %xmm1, %xmm2
+
+vtestpd          %xmm0, %xmm1
+vtestpd          (%rax), %xmm1
+
+vtestpd          %ymm0, %ymm1
+vtestpd          (%rax), %ymm1
+
+vtestps          %xmm0, %xmm1
+vtestps          (%rax), %xmm1
+
+vtestps          %ymm0, %ymm1
+vtestps          (%rax), %ymm1
+
+vucomisd          %xmm0, %xmm1
+vucomisd          (%rax), %xmm1
+
+vucomiss          %xmm0, %xmm1
+vucomiss          (%rax), %xmm1
+
+vunpckhpd         %xmm0, %xmm1, %xmm2
+vunpckhpd         (%rax), %xmm1, %xmm2
+
+vunpckhpd         %ymm0, %ymm1, %ymm2
+vunpckhpd         (%rax), %ymm1, %ymm2
+
+vunpckhps         %xmm0, %xmm1, %xmm2
+vunpckhps         (%rax), %xmm1, %xmm2
+
+vunpckhps         %ymm0, %ymm1, %ymm2
+vunpckhps         (%rax), %ymm1, %ymm2
+
+vunpcklpd         %xmm0, %xmm1, %xmm2
+vunpcklpd         (%rax), %xmm1, %xmm2
+
+vunpcklpd         %ymm0, %ymm1, %ymm2
+vunpcklpd         (%rax), %ymm1, %ymm2
+
+vunpcklps         %xmm0, %xmm1, %xmm2
+vunpcklps         (%rax), %xmm1, %xmm2
+
+vunpcklps         %ymm0, %ymm1, %ymm2
+vunpcklps         (%rax), %ymm1, %ymm2
+
+vxorpd            %xmm0, %xmm1, %xmm2
+vxorpd            (%rax), %xmm1, %xmm2
+
+vxorpd            %ymm0, %ymm1, %ymm2
+vxorpd            (%rax), %ymm1, %ymm2
+
+vxorps            %xmm0, %xmm1, %xmm2
+vxorps            (%rax), %xmm1, %xmm2
+
+vxorps            %ymm0, %ymm1, %ymm2
+vxorps            (%rax), %ymm1, %ymm2
+
+vzeroall
+vzeroupper
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        vaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vaddsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vaddss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vaddsubpd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddsubpd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vaddsubpd      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddsubpd      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vaddsubps      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddsubps      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vaddsubps      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vaddsubps      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     0.50                        vaesdec        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vaesdec        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vaesdeclast    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vaesdeclast    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vaesenc        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vaesenc        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vaesenclast    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vaesenclast    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vaesimc        %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vaesimc        (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        vaeskeygenassist       $22, %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vaeskeygenassist       $22, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vandnps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vandnps        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vandpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vandpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vandps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vandps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vblendpd       $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendpd       $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vblendpd       $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendpd       $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vblendps       $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendps       $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vblendps       $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendps       $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vblendvpd      %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendvpd      %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vblendvpd      %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendvpd      %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vblendvps      %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendvps      %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vblendvps      %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vblendvps      %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf128 (%rax), %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastsd   (%rax), %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastss   (%rax), %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastss   (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqsd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqsd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqss       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcomisd        %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   vcomisd        (%rax), %xmm1
+# CHECK-NEXT:  2      4     1.00                        vcomiss        %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   vcomiss        (%rax), %xmm1
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2pd      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax), %xmm2
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2pd      %xmm0, %ymm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax), %ymm2
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %ymm0, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2dq      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dqx     (%rax), %xmm2
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2dq      %ymm0, %xmm2
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dqy     (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vcvtpd2ps      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2psx     (%rax), %xmm2
+# CHECK-NEXT:  2      6     1.00                        vcvtpd2ps      %ymm0, %xmm2
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2psy     (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vcvtps2dq      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcvtps2dq      %ymm0, %ymm2
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax), %ymm2
+# CHECK-NEXT:  1      3     0.50                        vcvtps2pd      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax), %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtps2pd      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vcvtsd2si      %xmm0, %ecx
+# CHECK-NEXT:  1      1     0.50                        vcvtsd2si      %xmm0, %rcx
+# CHECK-NEXT:  1      8     0.50    *                   vcvtsd2si      (%rax), %ecx
+# CHECK-NEXT:  1      8     0.50    *                   vcvtsd2si      (%rax), %rcx
+# CHECK-NEXT:  1      3     0.50                        vcvtsd2ss      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtsd2ss      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtsi2sd      %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtsi2sd      %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vcvtsi2sdl     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vcvtsi2sdq     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtsi2ss      %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtsi2ss      %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvtsi2ssl     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvtsi2ssq     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vcvtss2sd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtss2sd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      5     2.50                        vcvtss2si      %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        vcvtss2si      %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   vcvtss2si      (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   vcvtss2si      (%rax), %rcx
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2dq     %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dqx    (%rax), %xmm2
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2dq     %ymm0, %xmm2
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dqy    (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vcvttps2dq     %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        vcvttps2dq     %ymm0, %ymm2
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax), %ymm2
+# CHECK-NEXT:  2      5     2.50                        vcvttsd2si     %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        vcvttsd2si     %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   vcvttsd2si     (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   vcvttsd2si     (%rax), %rcx
+# CHECK-NEXT:  2      5     2.50                        vcvttss2si     %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        vcvttss2si     %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   vcvttss2si     (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   vcvttss2si     (%rax), %rcx
+# CHECK-NEXT:  1      13    5.00                        vdivpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      13    5.00                        vdivpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      11    3.00                        vdivps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      11    3.00                        vdivps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      13    5.00                        vdivsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      20    5.00    *                   vdivsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      11    3.00                        vdivss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      18    3.00    *                   vdivss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      7     3.00                        vdppd  $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  5      14    3.00    *                   vdppd  $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  8      11    4.00                        vdpps  $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  10     18    4.00    *                   vdpps  $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  7      11    4.00                        vdpps  $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  8      18    4.00    *                   vdpps  $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vextractf128   $1, %ymm0, %xmm2
+# CHECK-NEXT:  2      8     1.00           *            vextractf128   $1, %ymm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vextractps     $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            vextractps     $1, %xmm0, (%rax)
+# CHECK-NEXT:  3      4     2.00                        vhaddpd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   vhaddpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      4     2.00                        vhaddpd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      11    2.00    *                   vhaddpd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      4     2.00                        vhaddps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   vhaddps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      4     2.00                        vhaddps        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      11    2.00    *                   vhaddps        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      4     2.00                        vhsubpd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   vhsubpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      4     2.00                        vhsubpd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      11    2.00    *                   vhsubpd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      4     2.00                        vhsubps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   vhsubps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      4     2.00                        vhsubps        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      11    2.00    *                   vhsubps        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vinsertf128    $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     1.00    *                   vinsertf128    $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vinsertps      $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vinsertps      $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vlddqu (%rax), %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vlddqu (%rax), %ymm2
+# CHECK-NEXT:  1      5     1.50    *      *      U     vldmxcsr       (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *      U     vmaskmovdqu    %xmm0, %xmm1
+# CHECK-NEXT:  1      8     0.50    *                   vmaskmovpd     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmaskmovpd     (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  10     1     4.00    *      *            vmaskmovpd     %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  18     1     6.00    *      *            vmaskmovpd     %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmaskmovps     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmaskmovps     (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  18     1     6.00    *      *            vmaskmovps     %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  42     1     12.00   *      *            vmaskmovps     %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  1      1     0.50                        vmaxpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vmaxps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vmaxps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vmaxss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vmaxss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vminpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vminpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vminps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vminps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vminss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vminss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %ymm0, %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %ymm2
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %ymm0, %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %ymm2
+# CHECK-NEXT:  1      1     1.00                        vmovd  %eax, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        vmovd  %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *            vmovd  %xmm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        vmovddup       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        vmovddup       %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %ymm2
+# CHECK-NEXT:  1      0     0.17                        vmovdqa        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa        (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovdqa        %ymm0, %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa        %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa        (%rax), %ymm2
+# CHECK-NEXT:  1      0     0.17                        vmovdqu        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu        (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovdqu        %ymm0, %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu        %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu        (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vmovhlps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vmovlhps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  2      2     1.00           *            vmovhpd        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovhpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     1.00           *            vmovhps        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovhps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovlpd        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovlpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovlps        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovlps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     1.00                        vmovmskpd      %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00                        vmovmskpd      %ymm0, %ecx
+# CHECK-NEXT:  1      1     1.00                        vmovmskps      %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00                        vmovmskps      %ymm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *            vmovntdq       %xmm0, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            vmovntdq       %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovntdqa      (%rax), %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovntdqa      (%rax), %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovntpd       %xmm0, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            vmovntpd       %ymm0, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            vmovntps       %xmm0, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            vmovntps       %ymm0, (%rax)
+# CHECK-NEXT:  1      1     0.25                        vmovq  %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00                        vmovq  %rax, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovq  (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        vmovq  %xmm0, %rcx
+# CHECK-NEXT:  1      1     1.00           *            vmovq  %xmm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        vmovsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovsd %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovsd (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vmovss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovss %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovss (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %ymm0, %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %ymm2
+# CHECK-NEXT:  1      0     0.17                        vmovups        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        vmovups        %ymm0, %ymm2
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %ymm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %ymm2
+# CHECK-NEXT:  4      4     2.00                        vmpsadbw       $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  6      11    2.00    *                   vmpsadbw       $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vmulpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vmulpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vmulps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vmulps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vmulsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vmulsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vmulss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vmulss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vorpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vorpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vorps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vorps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpabsb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpabsd %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpabsw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpaddb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpaddq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpaddsb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpaddsw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpaddusb       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpaddusw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpand  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpand  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpandn %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpandn (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpavgb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpavgw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpblendvb      %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpblendvb      %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpblendw       $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpblendw       $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  4      4     2.00                        vpclmulqdq     $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  4      11    2.00    *                   vpclmulqdq     $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpcmpeqq       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  8      6     3.00                        vpcmpestri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  12     13    3.00    *                   vpcmpestri     $1, (%rax), %xmm2
+# CHECK-NEXT:  7      6     3.00                        vpcmpestrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  12     13    3.00    *                   vpcmpestrm     $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtq       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  4      2     2.00                        vpcmpistri     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      9     2.00    *                   vpcmpistri     $1, (%rax), %xmm2
+# CHECK-NEXT:  3      6     2.00                        vpcmpistrm     $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      13    2.00    *                   vpcmpistrm     $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        vperm2f128     $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      7     1.00    *                   vperm2f128     $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpermilpd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $1, (%rax), %ymm2
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpermilps      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $1, (%rax), %ymm2
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  2      1     1.00                        vpextrb        $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            vpextrb        $1, %xmm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpextrd        $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            vpextrd        $1, %xmm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpextrq        $1, %xmm0, %rcx
+# CHECK-NEXT:  2      2     1.00           *            vpextrq        $1, %xmm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpextrw        $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            vpextrw        $1, %xmm0, (%rax)
+# CHECK-NEXT:  3      2     2.00                        vphaddd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   vphaddd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      2     2.00                        vphaddsw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   vphaddsw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      2     2.00                        vphaddw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   vphaddw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vphminposuw    %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vphminposuw    (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        vphsubd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   vphsubd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      2     2.00                        vphsubsw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   vphsubsw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  3      2     2.00                        vphsubw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   vphsubw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     1.00                        vpinsrb        $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrb        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     1.00                        vpinsrd        $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrd        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     1.00                        vpinsrq        $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrq        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     1.00                        vpinsrw        $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrw        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxsd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxud        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxud        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpminsd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminsd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpminub        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpminud        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminud        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     1.00                        vpmovmskb      %xmm0, %ecx
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbd      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbd      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbq      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbw      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbw      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovsxdq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxdq      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwd      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwd      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwq      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbd      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbd      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbq      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbw      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbw      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovzxdq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxdq      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwd      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwd      (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwq      (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmuldq        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmuldq        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpmuludq       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmuludq       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpor   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpor   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vpsadbw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpsadbw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpshufb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $1, (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsignb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsignb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsignd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsignd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsignw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsignw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpslld $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpslld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpslld (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpslldq        $1, %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsllq $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsllq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsllq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsllw $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsllw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsrad $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsrad %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsrad (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsraw $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsraw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsrld $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsrld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsrld (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsrldq        $1, %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlq $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsrlq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsrlq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   vpsrlw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpsubb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpsubq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsubsb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsubsw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsubusb       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        vpsubusw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      1     1.00                        vptest %xmm0, %xmm1
+# CHECK-NEXT:  2      8     1.00    *                   vptest (%rax), %xmm1
+# CHECK-NEXT:  2      1     1.00                        vptest %ymm0, %ymm1
+# CHECK-NEXT:  2      8     1.00    *                   vptest (%rax), %ymm1
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhqdq    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhqdq    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpcklqdq    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklqdq    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpxor  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpxor  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     0.50                        vrcpps %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vrcpps (%rax), %xmm2
+# CHECK-NEXT:  1      5     0.50                        vrcpps %ymm0, %ymm2
+# CHECK-NEXT:  1      12    0.50    *                   vrcpps (%rax), %ymm2
+# CHECK-NEXT:  1      4     0.50                        vrcpss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   vrcpss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vroundpd       $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vroundpd       $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vroundpd       $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vroundpd       $1, (%rax), %ymm2
+# CHECK-NEXT:  1      3     0.50                        vroundps       $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vroundps       $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        vroundps       $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vroundps       $1, (%rax), %ymm2
+# CHECK-NEXT:  1      3     0.50                        vroundsd       $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vroundsd       $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vroundss       $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vroundss       $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vrsqrtps       %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vrsqrtps       (%rax), %xmm2
+# CHECK-NEXT:  1      4     1.00                        vrsqrtps       %ymm0, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vrsqrtps       (%rax), %ymm2
+# CHECK-NEXT:  1      4     1.00                        vrsqrtss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vrsqrtss       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vshufpd        $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vshufpd        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vshufpd        $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vshufpd        $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vshufps        $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vshufps        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vshufps        $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vshufps        $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %xmm2
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %ymm0, %ymm2
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %ymm2
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %xmm0, %xmm2
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %xmm2
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %ymm0, %ymm2
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %ymm2
+# CHECK-NEXT:  1      21    9.00                        vsqrtsd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtsd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      15    5.00                        vsqrtss        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtss        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      2     15.00          *      U     vstmxcsr       (%rax)
+# CHECK-NEXT:  1      3     0.50                        vsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vsubsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vsubsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vsubss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vsubss (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  2      1     1.00                        vtestpd        %xmm0, %xmm1
+# CHECK-NEXT:  2      8     1.00    *                   vtestpd        (%rax), %xmm1
+# CHECK-NEXT:  2      1     1.00                        vtestpd        %ymm0, %ymm1
+# CHECK-NEXT:  2      8     1.00    *                   vtestpd        (%rax), %ymm1
+# CHECK-NEXT:  2      1     1.00                        vtestps        %xmm0, %xmm1
+# CHECK-NEXT:  2      8     1.00    *                   vtestps        (%rax), %xmm1
+# CHECK-NEXT:  2      1     1.00                        vtestps        %ymm0, %ymm1
+# CHECK-NEXT:  2      8     1.00    *                   vtestps        (%rax), %ymm1
+# CHECK-NEXT:  2      4     1.00                        vucomisd       %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   vucomisd       (%rax), %xmm1
+# CHECK-NEXT:  2      4     1.00                        vucomiss       %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   vucomiss       (%rax), %xmm1
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vxorpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vxorpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vxorps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vxorps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  18     10    6.00                  U     vzeroall
+# CHECK-NEXT:  1      0     0.25                  U     vzeroupper
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 1.33   1.33   1.33   16.50  16.50  16.50  16.50   -     211.25 420.08 288.58 158.08 208.50 208.50 65.00  119.67 119.67 119.67 107.00 107.00 107.00 19.00  19.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddsd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddsubpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddsubpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddsubpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddsubpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddsubps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddsubps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddsubps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddsubps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdec %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdec (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdeclast     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdeclast     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenc %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenc (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenclast     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenclast     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesimc %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesimc (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaeskeygenassist        $22, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaeskeygenassist        $22, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendpd        $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendpd        $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendpd        $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendpd        $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendps        $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendps        $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendps        $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendps        $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendvpd       %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendvpd       %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendvpd       %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendvpd       %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendvps       %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendvps       %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vblendvps       %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vblendvps       %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf128  (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqsd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqsd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqss        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqss        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcomisd %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcomisd (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcomiss %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcomiss (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqx      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %ymm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqy      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psx      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %ymm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psy      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtsd2si       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtsd2si       %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsd2si       (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsd2si       (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtsd2ss       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsd2ss       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtsi2sd       %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtsi2sd       %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsi2sdl      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsi2sdq      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtsi2ss       %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtsi2ss       %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsi2ssl      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsi2ssq      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtss2sd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtss2sd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvtss2si       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvtss2si       %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtss2si       (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtss2si       (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqx     (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %ymm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqy     (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvttsd2si      %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvttsd2si      %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttsd2si      (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttsd2si      (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvttss2si      %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvttss2si      %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttss2si      (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttss2si      (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivsd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdppd   $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdppd   $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdpps   $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdpps   $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdpps   $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdpps   $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf128    $1, %ymm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf128    $1, %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vextractps      $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractps      $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhaddpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhaddpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhaddpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhaddpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhaddps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhaddps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhaddps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhaddps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhsubpd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhsubpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhsubpd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhsubpd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhsubps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhsubps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vhsubps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vhsubps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf128     $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     1.00    -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf128     $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vinsertps       $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertps       $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vlddqu  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vlddqu  (%rax), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33   1.50   1.50   1.50   1.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vldmxcsr        (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmaskmovdqu     %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaskmovpd      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaskmovpd      (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     2.00   2.00   4.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmaskmovpd      %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     3.00   3.00   6.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmaskmovpd      %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaskmovps      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaskmovps      (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     3.00   3.00   6.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmaskmovps      %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     6.00   6.00   12.00  0.33   0.33   0.33    -      -      -     0.50   0.50   vmaskmovps      %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxsd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminsd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vmovd   %eax, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vmovd   %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovd   %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovhlps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovlhps        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovhpd %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovhpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovhps %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovhps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovlpd %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovlpd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovlps %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovlps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovmskpd       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovmskpd       %ymm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovmskps       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovmskps       %ymm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovntdq        %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovntdq        %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovntdqa       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovntdqa       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovntpd        %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovntpd        %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovntps        %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovntps        %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vmovq   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vmovq   %rax, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovq   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vmovq   %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovq   %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovsd  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovss  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovss  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %ymm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vmpsadbw        $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmpsadbw        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulsd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpand   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpand   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpandn  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpandn  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgb  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgw  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendvb       %xmm3, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendvb       %xmm3, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpblendw        $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendw        $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpclmulqdq      $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpclmulqdq      $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vpcmpestri      $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpestri      $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vpcmpestrm      $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpestrm      $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vpcmpistri      $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpistri      $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vpcmpistrm      $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpistrm      $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vperm2f128      $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -     1.00    -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vperm2f128      $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrb $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrb $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrd $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrd $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrq $1, %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrq $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrw $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphaddd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphaddd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphaddsw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphaddsw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphaddw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphaddw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vphminposuw     %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphminposuw     (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphsubd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphsubd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphsubsw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphsubsw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphsubw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphsubw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrb $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrb $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrd $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrq $1, %rax, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrq $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrw $1, %eax, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrw $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxud (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminud %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminud (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovmskb       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmuldq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmuldq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmuludq        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmuludq        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpor    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpor    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsadbw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsadbw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsignb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsignb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsignd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsignd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsignw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsignw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpslld  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpslld  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpslld  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpslldq $1, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllq  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllq  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllq  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrad  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrad  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrad  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrld  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrld  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrld  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrldq $1, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlq  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlq  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlq  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsb %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsw %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50   1.00    -      -      -      -      -      -      -      -     vptest  %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     1.00   1.00   1.00   0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptest  (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50   1.00    -      -      -      -      -      -      -      -     vptest  %ymm0, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     1.00   1.00   1.00   0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptest  (%rax), %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhqdq     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklqdq     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpxor   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpxor   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vrcpps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrcpps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vrcpps  %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrcpps  (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vrcpss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrcpss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vroundpd        $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vroundpd        $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vroundpd        $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vroundpd        $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vroundps        $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vroundps        $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vroundps        $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vroundps        $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vroundsd        $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vroundsd        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vroundss        $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vroundss        $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrsqrtps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrsqrtps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrsqrtps        %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrsqrtps        (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrsqrtss        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrsqrtss        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vshufpd $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufpd $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vshufpd $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufpd $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vshufps $1, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufps $1, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vshufps $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufps $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtsd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtsd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtss %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtss (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33   15.00  15.00  15.00  15.00   -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   vstmxcsr        (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubsd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubsd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubss  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubss  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vtestpd %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vtestpd (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vtestpd %ymm0, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vtestpd (%rax), %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vtestps %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vtestps (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vtestps %ymm0, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vtestps (%rax), %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vucomisd        %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vucomisd        (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vucomiss        %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vucomiss        (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -      -      -      -      -      -      -      -      -     vzeroall
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vzeroupper
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx2.s
new file mode 100644 (file)
index 0000000..9589535
--- /dev/null
@@ -0,0 +1,1096 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vbroadcasti128  (%rax), %ymm0
+
+vbroadcastsd    %xmm0, %ymm0
+vbroadcastss    %xmm0, %ymm0
+
+vextracti128    $1, %ymm0, %xmm2
+vextracti128    $1, %ymm0, (%rax)
+
+vgatherdpd      %xmm0, (%rax,%xmm1,2), %xmm2
+vgatherdpd      %ymm0, (%rax,%xmm1,2), %ymm2
+
+vgatherdps      %xmm0, (%rax,%xmm1,2), %xmm2
+vgatherdps      %ymm0, (%rax,%ymm1,2), %ymm2
+
+vgatherqpd      %xmm0, (%rax,%xmm1,2), %xmm2
+vgatherqpd      %ymm0, (%rax,%ymm1,2), %ymm2
+
+vgatherqps      %xmm0, (%rax,%xmm1,2), %xmm2
+vgatherqps      %xmm0, (%rax,%ymm1,2), %xmm2
+
+vinserti128     $1, %xmm0, %ymm1, %ymm2
+vinserti128     $1, (%rax), %ymm1, %ymm2
+
+vmovntdqa       (%rax), %ymm0
+
+vmpsadbw        $1, %ymm0, %ymm1, %ymm2
+vmpsadbw        $1, (%rax), %ymm1, %ymm2
+
+vpabsb          %ymm0, %ymm2
+vpabsb          (%rax), %ymm2
+
+vpabsd          %ymm0, %ymm2
+vpabsd          (%rax), %ymm2
+
+vpabsw          %ymm0, %ymm2
+vpabsw          (%rax), %ymm2
+
+vpackssdw       %ymm0, %ymm1, %ymm2
+vpackssdw       (%rax), %ymm1, %ymm2
+
+vpacksswb       %ymm0, %ymm1, %ymm2
+vpacksswb       (%rax), %ymm1, %ymm2
+
+vpackusdw       %ymm0, %ymm1, %ymm2
+vpackusdw       (%rax), %ymm1, %ymm2
+
+vpackuswb       %ymm0, %ymm1, %ymm2
+vpackuswb       (%rax), %ymm1, %ymm2
+
+vpaddb          %ymm0, %ymm1, %ymm2
+vpaddb          (%rax), %ymm1, %ymm2
+
+vpaddd          %ymm0, %ymm1, %ymm2
+vpaddd          (%rax), %ymm1, %ymm2
+
+vpaddq          %ymm0, %ymm1, %ymm2
+vpaddq          (%rax), %ymm1, %ymm2
+
+vpaddsb         %ymm0, %ymm1, %ymm2
+vpaddsb         (%rax), %ymm1, %ymm2
+
+vpaddsw         %ymm0, %ymm1, %ymm2
+vpaddsw         (%rax), %ymm1, %ymm2
+
+vpaddusb        %ymm0, %ymm1, %ymm2
+vpaddusb        (%rax), %ymm1, %ymm2
+
+vpaddusw        %ymm0, %ymm1, %ymm2
+vpaddusw        (%rax), %ymm1, %ymm2
+
+vpaddw          %ymm0, %ymm1, %ymm2
+vpaddw          (%rax), %ymm1, %ymm2
+
+vpalignr        $1, %ymm0, %ymm1, %ymm2
+vpalignr        $1, (%rax), %ymm1, %ymm2
+
+vpand           %ymm0, %ymm1, %ymm2
+vpand           (%rax), %ymm1, %ymm2
+
+vpandn          %ymm0, %ymm1, %ymm2
+vpandn          (%rax), %ymm1, %ymm2
+
+vpavgb          %ymm0, %ymm1, %ymm2
+vpavgb          (%rax), %ymm1, %ymm2
+
+vpavgw          %ymm0, %ymm1, %ymm2
+vpavgw          (%rax), %ymm1, %ymm2
+
+vpblendd        $11, %xmm0, %xmm1, %xmm2
+vpblendd        $11, (%rax), %xmm1, %xmm2
+
+vpblendd        $11, %ymm0, %ymm1, %ymm2
+vpblendd        $11, (%rax), %ymm1, %ymm2
+
+vpblendvb       %ymm3, %ymm0, %ymm1, %ymm2
+vpblendvb       %ymm3, (%rax), %ymm1, %ymm2
+
+vpblendw        $11, %ymm0, %ymm1, %ymm2
+vpblendw        $11, (%rax), %ymm1, %ymm2
+
+vpbroadcastb    %xmm0, %xmm0
+vpbroadcastb    (%rax), %xmm0
+
+vpbroadcastb    %xmm0, %ymm0
+vpbroadcastb    (%rax), %ymm0
+
+vpbroadcastd    %xmm0, %xmm0
+vpbroadcastd    (%rax), %xmm0
+
+vpbroadcastd    %xmm0, %ymm0
+vpbroadcastd    (%rax), %ymm0
+
+vpbroadcastq    %xmm0, %xmm0
+vpbroadcastq    (%rax), %xmm0
+
+vpbroadcastq    %xmm0, %ymm0
+vpbroadcastq    (%rax), %ymm0
+
+vpbroadcastw    %xmm0, %xmm0
+vpbroadcastw    (%rax), %xmm0
+
+vpbroadcastw    %xmm0, %ymm0
+vpbroadcastw    (%rax), %ymm0
+
+vpcmpeqb        %ymm0, %ymm1, %ymm2
+vpcmpeqb        (%rax), %ymm1, %ymm2
+
+vpcmpeqd        %ymm0, %ymm1, %ymm2
+vpcmpeqd        (%rax), %ymm1, %ymm2
+
+vpcmpeqq        %ymm0, %ymm1, %ymm2
+vpcmpeqq        (%rax), %ymm1, %ymm2
+
+vpcmpeqw        %ymm0, %ymm1, %ymm2
+vpcmpeqw        (%rax), %ymm1, %ymm2
+
+vpcmpgtb        %ymm0, %ymm1, %ymm2
+vpcmpgtb        (%rax), %ymm1, %ymm2
+
+vpcmpgtd        %ymm0, %ymm1, %ymm2
+vpcmpgtd        (%rax), %ymm1, %ymm2
+
+vpcmpgtq        %ymm0, %ymm1, %ymm2
+vpcmpgtq        (%rax), %ymm1, %ymm2
+
+vpcmpgtw        %ymm0, %ymm1, %ymm2
+vpcmpgtw        (%rax), %ymm1, %ymm2
+
+vperm2i128      $1, %ymm0, %ymm1, %ymm2
+vperm2i128      $1, (%rax), %ymm1, %ymm2
+
+vpermd          %ymm0, %ymm1, %ymm2
+vpermd          (%rax), %ymm1, %ymm2
+
+vpermpd         $1, %ymm0, %ymm2
+vpermpd         $1, (%rax), %ymm2
+
+vpermps         %ymm0, %ymm1, %ymm2
+vpermps         (%rax), %ymm1, %ymm2
+
+vpermq          $1, %ymm0, %ymm2
+vpermq          $1, (%rax), %ymm2
+
+vpgatherdd      %xmm0, (%rax,%xmm1,2), %xmm2
+vpgatherdd      %ymm0, (%rax,%ymm1,2), %ymm2
+
+vpgatherdq      %xmm0, (%rax,%xmm1,2), %xmm2
+vpgatherdq      %ymm0, (%rax,%xmm1,2), %ymm2
+
+vpgatherqd      %xmm0, (%rax,%xmm1,2), %xmm2
+vpgatherqd      %xmm0, (%rax,%ymm1,2), %xmm2
+
+vpgatherqq      %xmm0, (%rax,%xmm1,2), %xmm2
+vpgatherqq      %ymm0, (%rax,%ymm1,2), %ymm2
+
+vphaddd         %ymm0, %ymm1, %ymm2
+vphaddd         (%rax), %ymm1, %ymm2
+
+vphaddsw        %ymm0, %ymm1, %ymm2
+vphaddsw        (%rax), %ymm1, %ymm2
+
+vphaddw         %ymm0, %ymm1, %ymm2
+vphaddw         (%rax), %ymm1, %ymm2
+
+vphsubd         %ymm0, %ymm1, %ymm2
+vphsubd         (%rax), %ymm1, %ymm2
+
+vphsubsw        %ymm0, %ymm1, %ymm2
+vphsubsw        (%rax), %ymm1, %ymm2
+
+vphsubw         %ymm0, %ymm1, %ymm2
+vphsubw         (%rax), %ymm1, %ymm2
+
+vpmaddubsw      %ymm0, %ymm1, %ymm2
+vpmaddubsw      (%rax), %ymm1, %ymm2
+
+vpmaddwd        %ymm0, %ymm1, %ymm2
+vpmaddwd        (%rax), %ymm1, %ymm2
+
+vpmaskmovd      (%rax), %xmm0, %xmm2
+vpmaskmovd      (%rax), %ymm0, %ymm2
+
+vpmaskmovd      %xmm0, %xmm1, (%rax)
+vpmaskmovd      %ymm0, %ymm1, (%rax)
+
+vpmaskmovq      (%rax), %xmm0, %xmm2
+vpmaskmovq      (%rax), %ymm0, %ymm2
+
+vpmaskmovq      %xmm0, %xmm1, (%rax)
+vpmaskmovq      %ymm0, %ymm1, (%rax)
+
+vpmaxsb         %ymm0, %ymm1, %ymm2
+vpmaxsb         (%rax), %ymm1, %ymm2
+
+vpmaxsd         %ymm0, %ymm1, %ymm2
+vpmaxsd         (%rax), %ymm1, %ymm2
+
+vpmaxsw         %ymm0, %ymm1, %ymm2
+vpmaxsw         (%rax), %ymm1, %ymm2
+
+vpmaxub         %ymm0, %ymm1, %ymm2
+vpmaxub         (%rax), %ymm1, %ymm2
+
+vpmaxud         %ymm0, %ymm1, %ymm2
+vpmaxud         (%rax), %ymm1, %ymm2
+
+vpmaxuw         %ymm0, %ymm1, %ymm2
+vpmaxuw         (%rax), %ymm1, %ymm2
+
+vpminsb         %ymm0, %ymm1, %ymm2
+vpminsb         (%rax), %ymm1, %ymm2
+
+vpminsd         %ymm0, %ymm1, %ymm2
+vpminsd         (%rax), %ymm1, %ymm2
+
+vpminsw         %ymm0, %ymm1, %ymm2
+vpminsw         (%rax), %ymm1, %ymm2
+
+vpminub         %ymm0, %ymm1, %ymm2
+vpminub         (%rax), %ymm1, %ymm2
+
+vpminud         %ymm0, %ymm1, %ymm2
+vpminud         (%rax), %ymm1, %ymm2
+
+vpminuw         %ymm0, %ymm1, %ymm2
+vpminuw         (%rax), %ymm1, %ymm2
+
+vpmovmskb       %ymm0, %rcx
+
+vpmovsxbd       %xmm0, %ymm2
+vpmovsxbd       (%rax), %ymm2
+
+vpmovsxbq       %xmm0, %ymm2
+vpmovsxbq       (%rax), %ymm2
+
+vpmovsxbw       %xmm0, %ymm2
+vpmovsxbw       (%rax), %ymm2
+
+vpmovsxdq       %xmm0, %ymm2
+vpmovsxdq       (%rax), %ymm2
+
+vpmovsxwd       %xmm0, %ymm2
+vpmovsxwd       (%rax), %ymm2
+
+vpmovsxwq       %xmm0, %ymm2
+vpmovsxwq       (%rax), %ymm2
+
+vpmovzxbd       %xmm0, %ymm2
+vpmovzxbd       (%rax), %ymm2
+
+vpmovzxbq       %xmm0, %ymm2
+vpmovzxbq       (%rax), %ymm2
+
+vpmovzxbw       %xmm0, %ymm2
+vpmovzxbw       (%rax), %ymm2
+
+vpmovzxdq       %xmm0, %ymm2
+vpmovzxdq       (%rax), %ymm2
+
+vpmovzxwd       %xmm0, %ymm2
+vpmovzxwd       (%rax), %ymm2
+
+vpmovzxwq       %xmm0, %ymm2
+vpmovzxwq       (%rax), %ymm2
+
+vpmuldq         %ymm0, %ymm1, %ymm2
+vpmuldq         (%rax), %ymm1, %ymm2
+
+vpmulhrsw       %ymm0, %ymm1, %ymm2
+vpmulhrsw       (%rax), %ymm1, %ymm2
+
+vpmulhuw        %ymm0, %ymm1, %ymm2
+vpmulhuw        (%rax), %ymm1, %ymm2
+
+vpmulhw         %ymm0, %ymm1, %ymm2
+vpmulhw         (%rax), %ymm1, %ymm2
+
+vpmulld         %ymm0, %ymm1, %ymm2
+vpmulld         (%rax), %ymm1, %ymm2
+
+vpmullw         %ymm0, %ymm1, %ymm2
+vpmullw         (%rax), %ymm1, %ymm2
+
+vpmuludq        %ymm0, %ymm1, %ymm2
+vpmuludq        (%rax), %ymm1, %ymm2
+
+vpor            %ymm0, %ymm1, %ymm2
+vpor            (%rax), %ymm1, %ymm2
+
+vpsadbw         %ymm0, %ymm1, %ymm2
+vpsadbw         (%rax), %ymm1, %ymm2
+
+vpshufb         %ymm0, %ymm1, %ymm2
+vpshufb         (%rax), %ymm1, %ymm2
+
+vpshufd         $1, %ymm0, %ymm2
+vpshufd         $1, (%rax), %ymm2
+
+vpshufhw        $1, %ymm0, %ymm2
+vpshufhw        $1, (%rax), %ymm2
+
+vpshuflw        $1, %ymm0, %ymm2
+vpshuflw        $1, (%rax), %ymm2
+
+vpsignb         %ymm0, %ymm1, %ymm2
+vpsignb         (%rax), %ymm1, %ymm2
+
+vpsignd         %ymm0, %ymm1, %ymm2
+vpsignd         (%rax), %ymm1, %ymm2
+
+vpsignw         %ymm0, %ymm1, %ymm2
+vpsignw         (%rax), %ymm1, %ymm2
+
+vpslld          $1, %ymm0, %ymm2
+vpslld          %xmm0, %ymm1, %ymm2
+vpslld          (%rax), %ymm1, %ymm2
+
+vpslldq         $1, %ymm1, %ymm2
+
+vpsllq          $1, %ymm0, %ymm2
+vpsllq          %xmm0, %ymm1, %ymm2
+vpsllq          (%rax), %ymm1, %ymm2
+
+vpsllvd         %xmm0, %xmm1, %xmm2
+vpsllvd         (%rax), %xmm1, %xmm2
+
+vpsllvd         %ymm0, %ymm1, %ymm2
+vpsllvd         (%rax), %ymm1, %ymm2
+
+vpsllvq         %xmm0, %xmm1, %xmm2
+vpsllvq         (%rax), %xmm1, %xmm2
+
+vpsllvq         %ymm0, %ymm1, %ymm2
+vpsllvq         (%rax), %ymm1, %ymm2
+
+vpsllw          $1, %ymm0, %ymm2
+vpsllw          %xmm0, %ymm1, %ymm2
+vpsllw          (%rax), %ymm1, %ymm2
+
+vpsrad          $1, %ymm0, %ymm2
+vpsrad          %xmm0, %ymm1, %ymm2
+vpsrad          (%rax), %ymm1, %ymm2
+
+vpsravd         %xmm0, %xmm1, %xmm2
+vpsravd         (%rax), %xmm1, %xmm2
+
+vpsravd         %ymm0, %ymm1, %ymm2
+vpsravd         (%rax), %ymm1, %ymm2
+
+vpsraw          $1, %ymm0, %ymm2
+vpsraw          %xmm0, %ymm1, %ymm2
+vpsraw          (%rax), %ymm1, %ymm2
+
+vpsrld          $1, %ymm0, %ymm2
+vpsrld          %xmm0, %ymm1, %ymm2
+vpsrld          (%rax), %ymm1, %ymm2
+
+vpsrldq         $1, %ymm1, %ymm2
+
+vpsrlq          $1, %ymm0, %ymm2
+vpsrlq          %xmm0, %ymm1, %ymm2
+vpsrlq          (%rax), %ymm1, %ymm2
+
+vpsrlvd         %xmm0, %xmm1, %xmm2
+vpsrlvd         (%rax), %xmm1, %xmm2
+
+vpsrlvd         %ymm0, %ymm1, %ymm2
+vpsrlvd         (%rax), %ymm1, %ymm2
+
+vpsrlvq         %xmm0, %xmm1, %xmm2
+vpsrlvq         (%rax), %xmm1, %xmm2
+
+vpsrlvq         %ymm0, %ymm1, %ymm2
+vpsrlvq         (%rax), %ymm1, %ymm2
+
+vpsrlw          $1, %ymm0, %ymm2
+vpsrlw          %xmm0, %ymm1, %ymm2
+vpsrlw          (%rax), %ymm1, %ymm2
+
+vpsubb          %ymm0, %ymm1, %ymm2
+vpsubb          (%rax), %ymm1, %ymm2
+
+vpsubd          %ymm0, %ymm1, %ymm2
+vpsubd          (%rax), %ymm1, %ymm2
+
+vpsubq          %ymm0, %ymm1, %ymm2
+vpsubq          (%rax), %ymm1, %ymm2
+
+vpsubsb         %ymm0, %ymm1, %ymm2
+vpsubsb         (%rax), %ymm1, %ymm2
+
+vpsubsw         %ymm0, %ymm1, %ymm2
+vpsubsw         (%rax), %ymm1, %ymm2
+
+vpsubusb        %ymm0, %ymm1, %ymm2
+vpsubusb        (%rax), %ymm1, %ymm2
+
+vpsubusw        %ymm0, %ymm1, %ymm2
+vpsubusw        (%rax), %ymm1, %ymm2
+
+vpsubw          %ymm0, %ymm1, %ymm2
+vpsubw          (%rax), %ymm1, %ymm2
+
+vpunpckhbw      %ymm0, %ymm1, %ymm2
+vpunpckhbw      (%rax), %ymm1, %ymm2
+
+vpunpckhdq      %ymm0, %ymm1, %ymm2
+vpunpckhdq      (%rax), %ymm1, %ymm2
+
+vpunpckhqdq     %ymm0, %ymm1, %ymm2
+vpunpckhqdq     (%rax), %ymm1, %ymm2
+
+vpunpckhwd      %ymm0, %ymm1, %ymm2
+vpunpckhwd      (%rax), %ymm1, %ymm2
+
+vpunpcklbw      %ymm0, %ymm1, %ymm2
+vpunpcklbw      (%rax), %ymm1, %ymm2
+
+vpunpckldq      %ymm0, %ymm1, %ymm2
+vpunpckldq      (%rax), %ymm1, %ymm2
+
+vpunpcklqdq     %ymm0, %ymm1, %ymm2
+vpunpcklqdq     (%rax), %ymm1, %ymm2
+
+vpunpcklwd      %ymm0, %ymm1, %ymm2
+vpunpcklwd      (%rax), %ymm1, %ymm2
+
+vpxor           %ymm0, %ymm1, %ymm2
+vpxor           (%rax), %ymm1, %ymm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti128 (%rax), %ymm0
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm0, %ymm0
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm0, %ymm0
+# CHECK-NEXT:  1      4     1.00                        vextracti128   $1, %ymm0, %xmm2
+# CHECK-NEXT:  2      8     1.00           *            vextracti128   $1, %ymm0, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdpd     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdpd     %ymm0, (%rax,%xmm1,2), %ymm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdps     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdps     %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqpd     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqpd     %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqps     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqps     %xmm0, (%rax,%ymm1,2), %xmm2
+# CHECK-NEXT:  1      1     1.00                        vinserti128    $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     1.00    *                   vinserti128    $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vmovntdqa      (%rax), %ymm0
+# CHECK-NEXT:  3      4     2.00                        vmpsadbw       $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      11    2.00    *                   vmpsadbw       $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpabsb %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpabsd %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpabsw %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpackssdw      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpacksswb      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpackusdw      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpackuswb      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpaddb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpaddd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpaddq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpaddsb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpaddsw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpaddusb       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpaddusw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpaddw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpalignr       $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpand  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpand  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpandn %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpandn (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpavgb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpavgw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpblendd       $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpblendd       $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vpblendd       $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpblendd       $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpblendvb      %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpblendvb      %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpblendw       $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpblendw       $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %xmm0, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastb   (%rax), %xmm0
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm0, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastb   (%rax), %ymm0
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastd   %xmm0, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastd   (%rax), %xmm0
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm0, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastd   (%rax), %ymm0
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastq   %xmm0, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastq   (%rax), %xmm0
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm0, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastq   (%rax), %ymm0
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %xmm0, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastw   (%rax), %xmm0
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm0, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastw   (%rax), %ymm0
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqq       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtq       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     1.00                        vperm2i128     $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     1.00    *                   vperm2i128     $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  2      5     1.00                        vpermd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  2      9     2.00    *                   vpermd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  2      6     1.00                        vpermpd        $1, %ymm0, %ymm2
+# CHECK-NEXT:  3      10    2.00    *                   vpermpd        $1, (%rax), %ymm2
+# CHECK-NEXT:  2      7     1.00                        vpermps        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  3      11    2.00    *                   vpermps        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  2      6     1.00                        vpermq $1, %ymm0, %ymm2
+# CHECK-NEXT:  2      9     2.00    *                   vpermq $1, (%rax), %ymm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdd     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdd     %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdq     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdq     %ymm0, (%rax,%xmm1,2), %ymm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqd     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqd     %xmm0, (%rax,%ymm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqq     %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqq     %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT:  3      3     3.00                        vphaddd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      10    3.00    *                   vphaddd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      3     3.00                        vphaddsw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      10    3.00    *                   vphaddsw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      3     3.00                        vphaddw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      10    3.00    *                   vphaddw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      3     3.00                        vphsubd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      10    3.00    *                   vphsubd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      3     3.00                        vphsubsw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      10    3.00    *                   vphsubsw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  3      3     3.00                        vphsubw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  4      10    3.00    *                   vphsubw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaskmovd     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaskmovd     (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  18     1     6.00    *      *            vpmaskmovd     %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  42     1     12.00   *      *            vpmaskmovd     %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   vpmaskmovq     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaskmovq     (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  10     1     4.00    *      *            vpmaskmovq     %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  18     1     6.00    *      *            vpmaskmovq     %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxsd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxud        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxud        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpminsd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminsd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpminub        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpminud        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminud        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     1.00                        vpmovmskb      %ymm0, %ecx
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmuldq        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmuldq        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpmuludq       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpmuludq       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpor   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpor   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vpsadbw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpsadbw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $1, (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $1, (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $1, (%rax), %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsignb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsignb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsignd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsignd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsignw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsignw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpslld $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpslld %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpslld (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpslldq        $1, %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsllq $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsllq %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsllq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsllvd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsllvd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsllvq        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvq        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsllvq        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvq        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsllw $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsrad $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsrad %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrad (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsravd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsravd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsravd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsravd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsraw $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsrld $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsrld %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrld (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsrldq        $1, %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlq $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsrlq %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlvd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlvd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlvq        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvq        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlvq        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvq        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $1, %ymm0, %ymm2
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpsubb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpsubd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpsubq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsubsb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsubsw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsubusb       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpsubusw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpsubw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhqdq    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhqdq    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpcklqdq    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklqdq    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vpxor  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vpxor  (%rax), %ymm1, %ymm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 6.67   6.67   6.67    -      -      -      -      -     93.75  138.75 98.25  36.25  80.50  80.50  29.00  52.33  52.33  52.33  50.67  50.67  50.67  2.50   2.50
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti128  (%rax), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti128    $1, %ymm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti128    $1, %ymm0, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdpd      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdpd      %ymm0, (%rax,%xmm1,2), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdps      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdps      %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqpd      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqpd      %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqps      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqps      %xmm0, (%rax,%ymm1,2), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti128     $1, %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti128     $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovntdqa       (%rax), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vmpsadbw        $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmpsadbw        $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsb  %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsd  %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsw  %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpand   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpand   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpandn  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpandn  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgb  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgw  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpblendd        $11, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendd        $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpblendd        $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendd        $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendvb       %ymm3, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendvb       %ymm3, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpblendw        $11, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendw        $11, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vperm2i128      $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vperm2i128      $1, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -     2.00    -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $1, %ymm0, %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -     2.00    -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -     2.00    -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $1, %ymm0, %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -     2.00    -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $1, (%rax), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdd      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdd      %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdq      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdq      %ymm0, (%rax,%xmm1,2), %ymm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqd      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqd      %xmm0, (%rax,%ymm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqq      %xmm0, (%rax,%xmm1,2), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqq      %ymm0, (%rax,%ymm1,2), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphaddd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphaddd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphaddsw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphaddsw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphaddw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphaddw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphsubd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphsubd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphsubsw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphsubsw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vphsubw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vphsubw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaskmovd      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaskmovd      (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     3.00   3.00   6.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpmaskmovd      %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     6.00   6.00   12.00  0.33   0.33   0.33    -      -      -     0.50   0.50   vpmaskmovd      %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaskmovq      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaskmovq      (%rax), %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     2.00   2.00   4.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpmaskmovq      %xmm0, %xmm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     3.00   3.00   6.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpmaskmovq      %ymm0, %ymm1, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxud %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxud (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminud %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminud (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovmskb       %ymm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmuldq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmuldq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmuludq        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmuludq        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpor    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpor    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsadbw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsadbw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $1, (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsignb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsignb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsignd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsignd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsignw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsignw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpslld  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpslld  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpslld  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpslldq $1, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllq  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllq  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllq  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrad  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrad  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrad  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrld  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrld  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrld  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrldq $1, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlq  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlq  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlq  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvq %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvq (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvq %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvq (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $1, %ymm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsb %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsw %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhqdq     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklqdq     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpxor   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpxor   (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512.s
new file mode 100644 (file)
index 0000000..ea1b1da
--- /dev/null
@@ -0,0 +1,2819 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+kandw             %k0, %k1, %k2
+kandnw            %k0, %k1, %k2
+knotw             %k0, %k2
+korw              %k0, %k1, %k2
+kxnorw            %k0, %k1, %k2
+kxorw             %k0, %k1, %k2
+kshiftlw          $2, %k1, %k2
+kshiftrw          $2, %k1, %k2
+kunpckbw          %k0, %k1, %k2
+
+vaddpd            %zmm16, %zmm17, %zmm19
+vaddpd            (%rax), %zmm17, %zmm19
+vaddpd            (%rax){1to8}, %zmm17, %zmm19
+vaddpd            %zmm16, %zmm17, %zmm19 {k1}
+vaddpd            (%rax), %zmm17, %zmm19 {k1}
+vaddpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vaddpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vaddpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vaddpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vaddps            %zmm16, %zmm17, %zmm19
+vaddps            (%rax), %zmm17, %zmm19
+vaddps            (%rax){1to16}, %zmm17, %zmm19
+vaddps            %zmm16, %zmm17, %zmm19 {k1}
+vaddps            (%rax), %zmm17, %zmm19 {k1}
+vaddps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vaddps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vaddps            (%rax), %zmm17, %zmm19 {z}{k1}
+vaddps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+valignd           $1, %zmm16, %zmm17, %zmm19
+valignd           $1, (%rax), %zmm17, %zmm19
+valignd           $1, (%rax){1to16}, %zmm17, %zmm19
+valignd           $1, %zmm16, %zmm17, %zmm19 {k1}
+valignd           $1, (%rax), %zmm17, %zmm19 {k1}
+valignd           $1, (%rax){1to16}, %zmm17, %zmm19 {k1}
+valignd           $1, %zmm16, %zmm17, %zmm19 {z}{k1}
+valignd           $1, (%rax), %zmm17, %zmm19 {z}{k1}
+valignd           $1, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+valignq           $1, %zmm16, %zmm17, %zmm19
+valignq           $1, (%rax), %zmm17, %zmm19
+valignq           $1, (%rax){1to8}, %zmm17, %zmm19
+valignq           $1, %zmm16, %zmm17, %zmm19 {k1}
+valignq           $1, (%rax), %zmm17, %zmm19 {k1}
+valignq           $1, (%rax){1to8}, %zmm17, %zmm19 {k1}
+valignq           $1, %zmm16, %zmm17, %zmm19 {z}{k1}
+valignq           $1, (%rax), %zmm17, %zmm19 {z}{k1}
+valignq           $1, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vbroadcastf32x4   (%rax), %zmm19
+vbroadcastf32x4   (%rax), %zmm19 {k1}
+vbroadcastf32x4   (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x4   (%rax), %zmm19
+vbroadcastf64x4   (%rax), %zmm19 {k1}
+vbroadcastf64x4   (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x4   (%rax), %zmm19
+vbroadcasti32x4   (%rax), %zmm19 {k1}
+vbroadcasti32x4   (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x4   (%rax), %zmm19
+vbroadcasti64x4   (%rax), %zmm19 {k1}
+vbroadcasti64x4   (%rax), %zmm19 {z}{k1}
+
+vbroadcastsd      %xmm16, %zmm19
+vbroadcastsd      (%rax), %zmm19
+vbroadcastsd      %xmm16, %zmm19 {k1}
+vbroadcastsd      (%rax), %zmm19 {k1}
+vbroadcastsd      %xmm16, %zmm19 {z}{k1}
+vbroadcastsd      (%rax), %zmm19 {z}{k1}
+
+vbroadcastss      %xmm16, %zmm19
+vbroadcastss      (%rax), %zmm19
+vbroadcastss      %xmm16, %zmm19 {k1}
+vbroadcastss      (%rax), %zmm19 {k1}
+vbroadcastss      %xmm16, %zmm19 {z}{k1}
+vbroadcastss      (%rax), %zmm19 {z}{k1}
+
+vcmppd            $0, %zmm0, %zmm1, %k2
+vcmppd            $0, (%rax), %zmm1, %k2
+vcmppd            $0, (%rax){1to8}, %zmm1, %k2
+vcmppd            $0, %zmm0, %zmm1, %k2 {k3}
+vcmppd            $0, (%rax), %zmm1, %k2 {k3}
+vcmppd            $0, (%rax){1to8}, %zmm1, %k2 {k3}
+
+vcmpps            $0, %zmm0, %zmm1, %k2
+vcmpps            $0, (%rax), %zmm1, %k2
+vcmpps            $0, (%rax){1to16}, %zmm1, %k2
+vcmpps            $0, %zmm0, %zmm1, %k2 {k3}
+vcmpps            $0, (%rax), %zmm1, %k2 {k3}
+vcmpps            $0, (%rax){1to16}, %zmm1, %k2 {k3}
+
+vcmpsd            $0, %xmm0, %xmm1, %k2
+vcmpsd            $0, (%rax), %xmm1, %k2
+vcmpsd            $0, %xmm0, %xmm1, %k2 {k3}
+vcmpsd            $0, (%rax), %xmm1, %k2 {k3}
+
+vcmpss            $0, %xmm0, %xmm1, %k2
+vcmpss            $0, (%rax), %xmm1, %k2
+vcmpss            $0, %xmm0, %xmm1, %k2 {k3}
+vcmpss            $0, (%rax), %xmm1, %k2 {k3}
+
+vcomiss           %xmm16, %xmm17
+vcomiss           (%rax), %xmm17
+
+vcvtdq2pd         %ymm16, %zmm19
+vcvtdq2pd         (%rax), %zmm19
+vcvtdq2pd         (%rax){1to8}, %zmm19
+vcvtdq2pd         %ymm16, %zmm19 {k1}
+vcvtdq2pd         (%rax), %zmm19 {k1}
+vcvtdq2pd         (%rax){1to8}, %zmm19 {k1}
+vcvtdq2pd         %ymm16, %zmm19 {z}{k1}
+vcvtdq2pd         (%rax), %zmm19 {z}{k1}
+vcvtdq2pd         (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtdq2ps         %zmm16, %zmm19
+vcvtdq2ps         (%rax), %zmm19
+vcvtdq2ps         (%rax){1to16}, %zmm19
+vcvtdq2ps         %zmm16, %zmm19 {k1}
+vcvtdq2ps         (%rax), %zmm19 {k1}
+vcvtdq2ps         (%rax){1to16}, %zmm19 {k1}
+vcvtdq2ps         %zmm16, %zmm19 {z}{k1}
+vcvtdq2ps         (%rax), %zmm19 {z}{k1}
+vcvtdq2ps         (%rax){1to16}, %zmm19 {z}{k1}
+
+vcvtpd2dq         %zmm16, %ymm19
+vcvtpd2dq         (%rax), %ymm19
+vcvtpd2dq         (%rax){1to8}, %ymm19
+vcvtpd2dq         %zmm16, %ymm19 {k1}
+vcvtpd2dq         (%rax), %ymm19 {k1}
+vcvtpd2dq         (%rax){1to8}, %ymm19 {k1}
+vcvtpd2dq         %zmm16, %ymm19 {z}{k1}
+vcvtpd2dq         (%rax), %ymm19 {z}{k1}
+vcvtpd2dq         (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvtpd2udq        %zmm16, %ymm19
+vcvtpd2udq        (%rax), %ymm19
+vcvtpd2udq        (%rax){1to8}, %ymm19
+vcvtpd2udq        %zmm16, %ymm19 {k1}
+vcvtpd2udq        (%rax), %ymm19 {k1}
+vcvtpd2udq        (%rax){1to8}, %ymm19 {k1}
+vcvtpd2udq        %zmm16, %ymm19 {z}{k1}
+vcvtpd2udq        (%rax), %ymm19 {z}{k1}
+vcvtpd2udq        (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvttpd2dq        %zmm16, %ymm19
+vcvttpd2dq        (%rax), %ymm19
+vcvttpd2dq        (%rax){1to8}, %ymm19
+vcvttpd2dq        %zmm16, %ymm19 {k1}
+vcvttpd2dq        (%rax), %ymm19 {k1}
+vcvttpd2dq        (%rax){1to8}, %ymm19 {k1}
+vcvttpd2dq        %zmm16, %ymm19 {z}{k1}
+vcvttpd2dq        (%rax), %ymm19 {z}{k1}
+vcvttpd2dq        (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvttpd2udq       %zmm16, %ymm19
+vcvttpd2udq       (%rax), %ymm19
+vcvttpd2udq       (%rax){1to8}, %ymm19
+vcvttpd2udq       %zmm16, %ymm19 {k1}
+vcvttpd2udq       (%rax), %ymm19 {k1}
+vcvttpd2udq       (%rax){1to8}, %ymm19 {k1}
+vcvttpd2udq       %zmm16, %ymm19 {z}{k1}
+vcvttpd2udq       (%rax), %ymm19 {z}{k1}
+vcvttpd2udq       (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvtpd2ps         %zmm16, %ymm19
+vcvtpd2ps         (%rax), %ymm19
+vcvtpd2ps         (%rax){1to8}, %ymm19
+vcvtpd2ps         %zmm16, %ymm19 {k1}
+vcvtpd2ps         (%rax), %ymm19 {k1}
+vcvtpd2ps         (%rax){1to8}, %ymm19 {k1}
+vcvtpd2ps         %zmm16, %ymm19 {z}{k1}
+vcvtpd2ps         (%rax), %ymm19 {z}{k1}
+vcvtpd2ps         (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvtps2dq         %zmm16, %zmm19
+vcvtps2dq         (%rax), %zmm19
+vcvtps2dq         (%rax){1to16}, %zmm19
+vcvtps2dq         %zmm16, %zmm19 {k1}
+vcvtps2dq         (%rax), %zmm19 {k1}
+vcvtps2dq         (%rax){1to16}, %zmm19 {k1}
+vcvtps2dq         %zmm16, %zmm19 {z}{k1}
+vcvtps2dq         (%rax), %zmm19 {z}{k1}
+vcvtps2dq         (%rax){1to16}, %zmm19 {z}{k1}
+
+vcvttps2dq        %zmm16, %zmm19
+vcvttps2dq        (%rax), %zmm19
+vcvttps2dq        (%rax){1to16}, %zmm19
+vcvttps2dq        %zmm16, %zmm19 {k1}
+vcvttps2dq        (%rax), %zmm19 {k1}
+vcvttps2dq        (%rax){1to16}, %zmm19 {k1}
+vcvttps2dq        %zmm16, %zmm19 {z}{k1}
+vcvttps2dq        (%rax), %zmm19 {z}{k1}
+vcvttps2dq        (%rax){1to16}, %zmm19 {z}{k1}
+
+vcvtps2pd         %ymm16, %zmm19
+vcvtps2pd         (%rax), %zmm19
+vcvtps2pd         (%rax){1to8}, %zmm19
+vcvtps2pd         %ymm16, %zmm19 {k1}
+vcvtps2pd         (%rax), %zmm19 {k1}
+vcvtps2pd         (%rax){1to8}, %zmm19 {k1}
+vcvtps2pd         %ymm16, %zmm19 {z}{k1}
+vcvtps2pd         (%rax), %zmm19 {z}{k1}
+vcvtps2pd         (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtsd2usi        %xmm0, %ecx
+vcvtsd2usi        %xmm0, %rcx
+vcvtsd2usi        (%rax), %ecx
+vcvtsd2usi        (%rax), %rcx
+
+vcvtss2usi        %xmm0, %ecx
+vcvtss2usi        %xmm0, %rcx
+vcvtss2usi        (%rax), %ecx
+vcvtss2usi        (%rax), %rcx
+
+vcvtps2udq        %zmm16, %zmm19
+vcvtps2udq        (%rax), %zmm19
+vcvtps2udq        (%rax){1to16}, %zmm19
+vcvtps2udq        %zmm16, %zmm19 {k1}
+vcvtps2udq        (%rax), %zmm19 {k1}
+vcvtps2udq        (%rax){1to16}, %zmm19 {k1}
+vcvtps2udq        %zmm16, %zmm19 {z}{k1}
+vcvtps2udq        (%rax), %zmm19 {z}{k1}
+vcvtps2udq        (%rax){1to16}, %zmm19 {z}{k1}
+
+vcvttps2udq       %zmm16, %zmm19
+vcvttps2udq       (%rax), %zmm19
+vcvttps2udq       (%rax){1to16}, %zmm19
+vcvttps2udq       %zmm16, %zmm19 {k1}
+vcvttps2udq       (%rax), %zmm19 {k1}
+vcvttps2udq       (%rax){1to16}, %zmm19 {k1}
+vcvttps2udq       %zmm16, %zmm19 {z}{k1}
+vcvttps2udq       (%rax), %zmm19 {z}{k1}
+vcvttps2udq       (%rax){1to16}, %zmm19 {z}{k1}
+
+vcvttsd2usi       %xmm0, %ecx
+vcvttsd2usi       %xmm0, %rcx
+vcvttsd2usi       (%rax), %ecx
+vcvttsd2usi       (%rax), %rcx
+
+vcvttss2usi       %xmm0, %ecx
+vcvttss2usi       %xmm0, %rcx
+vcvttss2usi       (%rax), %ecx
+vcvttss2usi       (%rax), %rcx
+
+vcvtudq2pd        %ymm16, %zmm19
+vcvtudq2pd        (%rax), %zmm19
+vcvtudq2pd        (%rax){1to8}, %zmm19
+vcvtudq2pd        %ymm16, %zmm19 {k1}
+vcvtudq2pd        (%rax), %zmm19 {k1}
+vcvtudq2pd        (%rax){1to8}, %zmm19 {k1}
+vcvtudq2pd        %ymm16, %zmm19 {z}{k1}
+vcvtudq2pd        (%rax), %zmm19 {z}{k1}
+vcvtudq2pd        (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtudq2ps        %zmm16, %zmm19
+vcvtudq2ps        (%rax), %zmm19
+vcvtudq2ps        (%rax){1to16}, %zmm19
+vcvtudq2ps        %zmm16, %zmm19 {k1}
+vcvtudq2ps        (%rax), %zmm19 {k1}
+vcvtudq2ps        (%rax){1to16}, %zmm19 {k1}
+vcvtudq2ps        %zmm16, %zmm19 {z}{k1}
+vcvtudq2ps        (%rax), %zmm19 {z}{k1}
+vcvtudq2ps        (%rax){1to16}, %zmm19 {z}{k1}
+
+vcvtusi2sdl       %ecx, %xmm0, %xmm2
+vcvtusi2sdq       %rcx, %xmm0, %xmm2
+vcvtusi2sdl       (%rax), %xmm0, %xmm2
+vcvtusi2sdq       (%rax), %xmm0, %xmm2
+
+vcvtusi2ssl       %ecx, %xmm0, %xmm2
+vcvtusi2ssq       %rcx, %xmm0, %xmm2
+vcvtusi2ssl       (%rax), %xmm0, %xmm2
+vcvtusi2ssq       (%rax), %xmm0, %xmm2
+
+vdivpd            %zmm16, %zmm17, %zmm19
+vdivpd            (%rax), %zmm17, %zmm19
+vdivpd            (%rax){1to8}, %zmm17, %zmm19
+vdivpd            %zmm16, %zmm17, %zmm19 {k1}
+vdivpd            (%rax), %zmm17, %zmm19 {k1}
+vdivpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vdivpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vdivpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vdivpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vdivps            %zmm16, %zmm17, %zmm19
+vdivps            (%rax), %zmm17, %zmm19
+vdivps            (%rax){1to16}, %zmm17, %zmm19
+vdivps            %zmm16, %zmm17, %zmm19 {k1}
+vdivps            (%rax), %zmm17, %zmm19 {k1}
+vdivps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vdivps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vdivps            (%rax), %zmm17, %zmm19 {z}{k1}
+vdivps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vgatherdpd        (%rax,%ymm1,2), %zmm2 {k1}
+vgatherdps        (%rax,%zmm1,2), %zmm2 {k1}
+vgatherqpd        (%rax,%zmm1,2), %zmm2 {k1}
+vgatherqps        (%rax,%zmm1,2), %ymm2 {k1}
+
+vmaxpd            %zmm16, %zmm17, %zmm19
+vmaxpd            (%rax), %zmm17, %zmm19
+vmaxpd            (%rax){1to8}, %zmm17, %zmm19
+vmaxpd            %zmm16, %zmm17, %zmm19 {k1}
+vmaxpd            (%rax), %zmm17, %zmm19 {k1}
+vmaxpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vmaxpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vmaxpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vmaxpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vmaxps            %zmm16, %zmm17, %zmm19
+vmaxps            (%rax), %zmm17, %zmm19
+vmaxps            (%rax){1to16}, %zmm17, %zmm19
+vmaxps            %zmm16, %zmm17, %zmm19 {k1}
+vmaxps            (%rax), %zmm17, %zmm19 {k1}
+vmaxps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vmaxps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vmaxps            (%rax), %zmm17, %zmm19 {z}{k1}
+vmaxps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vminpd            %zmm16, %zmm17, %zmm19
+vminpd            (%rax), %zmm17, %zmm19
+vminpd            (%rax){1to8}, %zmm17, %zmm19
+vminpd            %zmm16, %zmm17, %zmm19 {k1}
+vminpd            (%rax), %zmm17, %zmm19 {k1}
+vminpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vminpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vminpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vminpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vminps            %zmm16, %zmm17, %zmm19
+vminps            (%rax), %zmm17, %zmm19
+vminps            (%rax){1to16}, %zmm17, %zmm19
+vminps            %zmm16, %zmm17, %zmm19 {k1}
+vminps            (%rax), %zmm17, %zmm19 {k1}
+vminps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vminps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vminps            (%rax), %zmm17, %zmm19 {z}{k1}
+vminps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vmovapd           %zmm16, %zmm19
+vmovapd           (%rax), %zmm19
+vmovapd           %zmm16, (%rax)
+vmovapd           %zmm16, %zmm19 {k1}
+vmovapd           (%rax), %zmm19 {k1}
+vmovapd           %zmm16, (%rax) {k1}
+vmovapd           %zmm16, %zmm19 {z}{k1}
+vmovapd           (%rax), %zmm19 {z}{k1}
+
+vmovaps           %zmm16, %zmm19
+vmovaps           (%rax), %zmm19
+vmovaps           %zmm16, (%rax)
+vmovaps           %zmm16, %zmm19 {k1}
+vmovaps           (%rax), %zmm19 {k1}
+vmovaps           %zmm16, (%rax) {k1}
+vmovaps           %zmm16, %zmm19 {z}{k1}
+vmovaps           (%rax), %zmm19 {z}{k1}
+
+vmovddup          %zmm16, %zmm19
+vmovddup          (%rax), %zmm19
+vmovddup          %zmm16, %zmm19 {k1}
+vmovddup          (%rax), %zmm19 {k1}
+vmovddup          %zmm16, %zmm19 {z}{k1}
+vmovddup          (%rax), %zmm19 {z}{k1}
+
+vmovdqa32         %zmm16, %zmm19
+vmovdqa32         (%rax), %zmm19
+vmovdqa32         %zmm16, (%rax)
+vmovdqa32         %zmm16, %zmm19 {k1}
+vmovdqa32         (%rax), %zmm19 {k1}
+vmovdqa32         %zmm16, (%rax) {k1}
+vmovdqa32         %zmm16, %zmm19 {z}{k1}
+vmovdqa32         (%rax), %zmm19 {z}{k1}
+
+vmovdqa64         %zmm16, %zmm19
+vmovdqa64         (%rax), %zmm19
+vmovdqa64         %zmm16, (%rax)
+vmovdqa64         %zmm16, %zmm19 {k1}
+vmovdqa64         (%rax), %zmm19 {k1}
+vmovdqa64         %zmm16, (%rax) {k1}
+vmovdqa64         %zmm16, %zmm19 {z}{k1}
+vmovdqa64         (%rax), %zmm19 {z}{k1}
+
+vmovdqu32         %zmm16, %zmm19
+vmovdqu32         (%rax), %zmm19
+vmovdqu32         %zmm16, (%rax)
+vmovdqu32         %zmm16, %zmm19 {k1}
+vmovdqu32         (%rax), %zmm19 {k1}
+vmovdqu32         %zmm16, (%rax) {k1}
+vmovdqu32         %zmm16, %zmm19 {z}{k1}
+vmovdqu32         (%rax), %zmm19 {z}{k1}
+
+vmovdqu64         %zmm16, %zmm19
+vmovdqu64         (%rax), %zmm19
+vmovdqu64         %zmm16, (%rax)
+vmovdqu64         %zmm16, %zmm19 {k1}
+vmovdqu64         (%rax), %zmm19 {k1}
+vmovdqu64         %zmm16, (%rax) {k1}
+vmovdqu64         %zmm16, %zmm19 {z}{k1}
+vmovdqu64         (%rax), %zmm19 {z}{k1}
+
+vmovshdup         %zmm16, %zmm19
+vmovshdup         (%rax), %zmm19
+vmovshdup         %zmm16, %zmm19 {k1}
+vmovshdup         (%rax), %zmm19 {k1}
+vmovshdup         %zmm16, %zmm19 {z}{k1}
+vmovshdup         (%rax), %zmm19 {z}{k1}
+
+vmovsldup         %zmm16, %zmm19
+vmovsldup         (%rax), %zmm19
+vmovsldup         %zmm16, %zmm19 {k1}
+vmovsldup         (%rax), %zmm19 {k1}
+vmovsldup         %zmm16, %zmm19 {z}{k1}
+vmovsldup         (%rax), %zmm19 {z}{k1}
+
+vmovupd           %zmm16, %zmm19
+vmovupd           (%rax), %zmm19
+vmovupd           %zmm16, (%rax)
+vmovupd           %zmm16, %zmm19 {k1}
+vmovupd           (%rax), %zmm19 {k1}
+vmovupd           %zmm16, (%rax) {k1}
+vmovupd           %zmm16, %zmm19 {z}{k1}
+vmovupd           (%rax), %zmm19 {z}{k1}
+
+vmovups           %zmm16, %zmm19
+vmovups           (%rax), %zmm19
+vmovups           %zmm16, (%rax)
+vmovups           %zmm16, %zmm19 {k1}
+vmovups           (%rax), %zmm19 {k1}
+vmovups           %zmm16, (%rax) {k1}
+vmovups           %zmm16, %zmm19 {z}{k1}
+vmovups           (%rax), %zmm19 {z}{k1}
+
+vmulpd            %zmm16, %zmm17, %zmm19
+vmulpd            (%rax), %zmm17, %zmm19
+vmulpd            (%rax){1to8}, %zmm17, %zmm19
+vmulpd            %zmm16, %zmm17, %zmm19 {k1}
+vmulpd            (%rax), %zmm17, %zmm19 {k1}
+vmulpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vmulpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vmulpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vmulpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vmulps            %zmm16, %zmm17, %zmm19
+vmulps            (%rax), %zmm17, %zmm19
+vmulps            (%rax){1to16}, %zmm17, %zmm19
+vmulps            %zmm16, %zmm17, %zmm19 {k1}
+vmulps            (%rax), %zmm17, %zmm19 {k1}
+vmulps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vmulps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vmulps            (%rax), %zmm17, %zmm19 {z}{k1}
+vmulps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpabsd            %zmm16, %zmm19
+vpabsd            (%rax), %zmm19
+vpabsd            (%rax){1to16}, %zmm19
+vpabsd            %zmm16, %zmm19 {k1}
+vpabsd            (%rax), %zmm19 {k1}
+vpabsd            (%rax){1to16}, %zmm19 {k1}
+vpabsd            %zmm16, %zmm19 {z}{k1}
+vpabsd            (%rax), %zmm19 {z}{k1}
+vpabsd            (%rax){1to16}, %zmm19 {z}{k1}
+
+vpabsq            %zmm16, %zmm19
+vpabsq            (%rax), %zmm19
+vpabsq            (%rax){1to8}, %zmm19
+vpabsq            %zmm16, %zmm19 {k1}
+vpabsq            (%rax), %zmm19 {k1}
+vpabsq            (%rax){1to8}, %zmm19 {k1}
+vpabsq            %zmm16, %zmm19 {z}{k1}
+vpabsq            (%rax), %zmm19 {z}{k1}
+vpabsq            (%rax){1to8}, %zmm19 {z}{k1}
+
+vpaddd            %zmm16, %zmm17, %zmm19
+vpaddd            (%rax), %zmm17, %zmm19
+vpaddd            (%rax){1to16}, %zmm17, %zmm19
+vpaddd            %zmm16, %zmm17, %zmm19 {k1}
+vpaddd            (%rax), %zmm17, %zmm19 {k1}
+vpaddd            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpaddd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddd            (%rax), %zmm17, %zmm19 {z}{k1}
+vpaddd            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpaddq            %zmm16, %zmm17, %zmm19
+vpaddq            (%rax), %zmm17, %zmm19
+vpaddq            (%rax){1to8}, %zmm17, %zmm19
+vpaddq            %zmm16, %zmm17, %zmm19 {k1}
+vpaddq            (%rax), %zmm17, %zmm19 {k1}
+vpaddq            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpaddq            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddq            (%rax), %zmm17, %zmm19 {z}{k1}
+vpaddq            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpbroadcastd      %xmm16, %zmm19
+vpbroadcastd      (%rax), %zmm19
+vpbroadcastd      %xmm16, %zmm19 {k1}
+vpbroadcastd      (%rax), %zmm19 {k1}
+vpbroadcastd      %xmm16, %zmm19 {z}{k1}
+vpbroadcastd      (%rax), %zmm19 {z}{k1}
+
+vpbroadcastq      %xmm16, %zmm19
+vpbroadcastq      (%rax), %zmm19
+vpbroadcastq      %xmm16, %zmm19 {k1}
+vpbroadcastq      (%rax), %zmm19 {k1}
+vpbroadcastq      %xmm16, %zmm19 {z}{k1}
+vpbroadcastq      (%rax), %zmm19 {z}{k1}
+
+vpcmpd            $0, %zmm0, %zmm1, %k2
+vpcmpd            $0, (%rax), %zmm1, %k2
+vpcmpd            $0, (%rax){1to16}, %zmm1, %k2
+vpcmpd            $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpd            $0, (%rax), %zmm1, %k2 {k3}
+vpcmpd            $0, (%rax){1to16}, %zmm1, %k2 {k3}
+
+vpcmpeqd          %zmm0, %zmm1, %k2
+vpcmpeqd          (%rax), %zmm1, %k2
+vpcmpeqd          (%rax){1to16}, %zmm1, %k2
+vpcmpeqd          %zmm0, %zmm1, %k2 {k3}
+vpcmpeqd          (%rax), %zmm1, %k2 {k3}
+vpcmpeqd          (%rax){1to16}, %zmm1, %k2 {k3}
+
+vpcmpeqq          %zmm0, %zmm1, %k2
+vpcmpeqq          (%rax), %zmm1, %k2
+vpcmpeqq          (%rax){1to8}, %zmm1, %k2
+vpcmpeqq          %zmm0, %zmm1, %k2 {k3}
+vpcmpeqq          (%rax), %zmm1, %k2 {k3}
+vpcmpeqq          (%rax){1to8}, %zmm1, %k2 {k3}
+
+vpcmpgtd          %zmm0, %zmm1, %k2
+vpcmpgtd          (%rax), %zmm1, %k2
+vpcmpgtd          (%rax){1to16}, %zmm1, %k2
+vpcmpgtd          %zmm0, %zmm1, %k2 {k3}
+vpcmpgtd          (%rax), %zmm1, %k2 {k3}
+vpcmpgtd          (%rax){1to16}, %zmm1, %k2 {k3}
+
+vpcmpgtq          %zmm0, %zmm1, %k2
+vpcmpgtq          (%rax), %zmm1, %k2
+vpcmpgtq          (%rax){1to8}, %zmm1, %k2
+vpcmpgtq          %zmm0, %zmm1, %k2 {k3}
+vpcmpgtq          (%rax), %zmm1, %k2 {k3}
+vpcmpgtq          (%rax){1to8}, %zmm1, %k2 {k3}
+
+vpcmpq            $0, %zmm0, %zmm1, %k2
+vpcmpq            $0, (%rax), %zmm1, %k2
+vpcmpq            $0, (%rax){1to8}, %zmm1, %k2
+vpcmpq            $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpq            $0, (%rax), %zmm1, %k2 {k3}
+vpcmpq            $0, (%rax){1to8}, %zmm1, %k2 {k3}
+
+vpcmpud           $0, %zmm0, %zmm1, %k2
+vpcmpud           $0, (%rax), %zmm1, %k2
+vpcmpud           $0, (%rax){1to16}, %zmm1, %k2
+vpcmpud           $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpud           $0, (%rax), %zmm1, %k2 {k3}
+vpcmpud           $0, (%rax){1to16}, %zmm1, %k2 {k3}
+
+vpcmpuq           $0, %zmm0, %zmm1, %k2
+vpcmpuq           $0, (%rax), %zmm1, %k2
+vpcmpuq           $0, (%rax){1to8}, %zmm1, %k2
+vpcmpuq           $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpuq           $0, (%rax), %zmm1, %k2 {k3}
+vpcmpuq           $0, (%rax){1to8}, %zmm1, %k2 {k3}
+
+vpgatherdq        (%rax,%ymm1,2), %zmm2 {k1}
+vpgatherdd        (%rax,%zmm1,2), %zmm2 {k1}
+vpgatherqq        (%rax,%zmm1,2), %zmm2 {k1}
+vpgatherqd        (%rax,%zmm1,2), %ymm2 {k1}
+
+vpmovsxbd         %xmm16, %zmm19
+vpmovsxbd         (%rax), %zmm19
+vpmovsxbd         %xmm16, %zmm19 {k1}
+vpmovsxbd         (%rax), %zmm19 {k1}
+vpmovsxbd         %xmm16, %zmm19 {z}{k1}
+vpmovsxbd         (%rax), %zmm19 {z}{k1}
+
+vpmovsxbq         %xmm16, %zmm19
+vpmovsxbq         (%rax), %zmm19
+vpmovsxbq         %xmm16, %zmm19 {k1}
+vpmovsxbq         (%rax), %zmm19 {k1}
+vpmovsxbq         %xmm16, %zmm19 {z}{k1}
+vpmovsxbq         (%rax), %zmm19 {z}{k1}
+
+vpmovsxdq         %ymm16, %zmm19
+vpmovsxdq         (%rax), %zmm19
+vpmovsxdq         %ymm16, %zmm19 {k1}
+vpmovsxdq         (%rax), %zmm19 {k1}
+vpmovsxdq         %ymm16, %zmm19 {z}{k1}
+vpmovsxdq         (%rax), %zmm19 {z}{k1}
+
+vpmovsxwd         %ymm16, %zmm19
+vpmovsxwd         (%rax), %zmm19
+vpmovsxwd         %ymm16, %zmm19 {k1}
+vpmovsxwd         (%rax), %zmm19 {k1}
+vpmovsxwd         %ymm16, %zmm19 {z}{k1}
+vpmovsxwd         (%rax), %zmm19 {z}{k1}
+
+vpmovsxwq         %xmm16, %zmm19
+vpmovsxwq         (%rax), %zmm19
+vpmovsxwq         %xmm16, %zmm19 {k1}
+vpmovsxwq         (%rax), %zmm19 {k1}
+vpmovsxwq         %xmm16, %zmm19 {z}{k1}
+vpmovsxwq         (%rax), %zmm19 {z}{k1}
+
+vpmovzxbd         %xmm16, %zmm19
+vpmovzxbd         (%rax), %zmm19
+vpmovzxbd         %xmm16, %zmm19 {k1}
+vpmovzxbd         (%rax), %zmm19 {k1}
+vpmovzxbd         %xmm16, %zmm19 {z}{k1}
+vpmovzxbd         (%rax), %zmm19 {z}{k1}
+
+vpmovzxbq         %xmm16, %zmm19
+vpmovzxbq         (%rax), %zmm19
+vpmovzxbq         %xmm16, %zmm19 {k1}
+vpmovzxbq         (%rax), %zmm19 {k1}
+vpmovzxbq         %xmm16, %zmm19 {z}{k1}
+vpmovzxbq         (%rax), %zmm19 {z}{k1}
+
+vpmovzxdq         %ymm16, %zmm19
+vpmovzxdq         (%rax), %zmm19
+vpmovzxdq         %ymm16, %zmm19 {k1}
+vpmovzxdq         (%rax), %zmm19 {k1}
+vpmovzxdq         %ymm16, %zmm19 {z}{k1}
+vpmovzxdq         (%rax), %zmm19 {z}{k1}
+
+vpmovzxwd         %ymm16, %zmm19
+vpmovzxwd         (%rax), %zmm19
+vpmovzxwd         %ymm16, %zmm19 {k1}
+vpmovzxwd         (%rax), %zmm19 {k1}
+vpmovzxwd         %ymm16, %zmm19 {z}{k1}
+vpmovzxwd         (%rax), %zmm19 {z}{k1}
+
+vpmovzxwq         %xmm16, %zmm19
+vpmovzxwq         (%rax), %zmm19
+vpmovzxwq         %xmm16, %zmm19 {k1}
+vpmovzxwq         (%rax), %zmm19 {k1}
+vpmovzxwq         %xmm16, %zmm19 {z}{k1}
+vpmovzxwq         (%rax), %zmm19 {z}{k1}
+
+vpmulld           %zmm16, %zmm17, %zmm19
+vpmulld           (%rax), %zmm17, %zmm19
+vpmulld           (%rax){1to16}, %zmm17, %zmm19
+vpmulld           %zmm16, %zmm17, %zmm19 {k1}
+vpmulld           (%rax), %zmm17, %zmm19 {k1}
+vpmulld           (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpmulld           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmulld           (%rax), %zmm17, %zmm19 {z}{k1}
+vpmulld           (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermd            %zmm16, %zmm17, %zmm19
+vpermd            (%rax), %zmm17, %zmm19
+vpermd            (%rax){1to16}, %zmm17, %zmm19
+vpermd            %zmm16, %zmm17, %zmm19 {k1}
+vpermd            (%rax), %zmm17, %zmm19 {k1}
+vpermd            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermd            (%rax), %zmm17, %zmm19 {z}{k1}
+vpermd            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermilpd         $0, %zmm16, %zmm19
+vpermilpd         $0, (%rax), %zmm19
+vpermilpd         $0, (%rax){1to8}, %zmm19
+vpermilpd         $0, %zmm16, %zmm19 {k1}
+vpermilpd         $0, (%rax), %zmm19 {k1}
+vpermilpd         $0, (%rax){1to8}, %zmm19 {k1}
+vpermilpd         $0, %zmm16, %zmm19 {z}{k1}
+vpermilpd         $0, (%rax), %zmm19 {z}{k1}
+vpermilpd         $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermilpd         %zmm16, %zmm17, %zmm19
+vpermilpd         (%rax), %zmm17, %zmm19
+vpermilpd         (%rax){1to8}, %zmm17, %zmm19
+vpermilpd         %zmm16, %zmm17, %zmm19 {k1}
+vpermilpd         (%rax), %zmm17, %zmm19 {k1}
+vpermilpd         (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermilpd         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermilpd         (%rax), %zmm17, %zmm19 {z}{k1}
+vpermilpd         (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpermilps         $0, %zmm16, %zmm19
+vpermilps         $0, (%rax), %zmm19
+vpermilps         $0, (%rax){1to16}, %zmm19
+vpermilps         $0, %zmm16, %zmm19 {k1}
+vpermilps         $0, (%rax), %zmm19 {k1}
+vpermilps         $0, (%rax){1to16}, %zmm19 {k1}
+vpermilps         $0, %zmm16, %zmm19 {z}{k1}
+vpermilps         $0, (%rax), %zmm19 {z}{k1}
+vpermilps         $0, (%rax){1to16}, %zmm19 {z}{k1}
+
+vpermilps         %zmm16, %zmm17, %zmm19
+vpermilps         (%rax), %zmm17, %zmm19
+vpermilps         (%rax){1to16}, %zmm17, %zmm19
+vpermilps         %zmm16, %zmm17, %zmm19 {k1}
+vpermilps         (%rax), %zmm17, %zmm19 {k1}
+vpermilps         (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermilps         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermilps         (%rax), %zmm17, %zmm19 {z}{k1}
+vpermilps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermpd           $0, %zmm16, %zmm19
+vpermpd           $0, (%rax), %zmm19
+vpermpd           $0, (%rax){1to8}, %zmm19
+vpermpd           $0, %zmm16, %zmm19 {k1}
+vpermpd           $0, (%rax), %zmm19 {k1}
+vpermpd           $0, (%rax){1to8}, %zmm19 {k1}
+vpermpd           $0, %zmm16, %zmm19 {z}{k1}
+vpermpd           $0, (%rax), %zmm19 {z}{k1}
+vpermpd           $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermpd           %zmm16, %zmm17, %zmm19
+vpermpd           (%rax), %zmm17, %zmm19
+vpermpd           (%rax){1to8}, %zmm17, %zmm19
+vpermpd           %zmm16, %zmm17, %zmm19 {k1}
+vpermpd           (%rax), %zmm17, %zmm19 {k1}
+vpermpd           (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermpd           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermpd           (%rax), %zmm17, %zmm19 {z}{k1}
+vpermpd           (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpermps           %zmm16, %zmm17, %zmm19
+vpermps           (%rax), %zmm17, %zmm19
+vpermps           (%rax){1to16}, %zmm17, %zmm19
+vpermps           %zmm16, %zmm17, %zmm19 {k1}
+vpermps           (%rax), %zmm17, %zmm19 {k1}
+vpermps           (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpermps           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermps           (%rax), %zmm17, %zmm19 {z}{k1}
+vpermps           (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpermq            $0, %zmm16, %zmm19
+vpermq            $0, (%rax), %zmm19
+vpermq            $0, (%rax){1to8}, %zmm19
+vpermq            $0, %zmm16, %zmm19 {k1}
+vpermq            $0, (%rax), %zmm19 {k1}
+vpermq            $0, (%rax){1to8}, %zmm19 {k1}
+vpermq            $0, %zmm16, %zmm19 {z}{k1}
+vpermq            $0, (%rax), %zmm19 {z}{k1}
+vpermq            $0, (%rax){1to8}, %zmm19 {z}{k1}
+
+vpermq            %zmm16, %zmm17, %zmm19
+vpermq            (%rax), %zmm17, %zmm19
+vpermq            (%rax){1to8}, %zmm17, %zmm19
+vpermq            %zmm16, %zmm17, %zmm19 {k1}
+vpermq            (%rax), %zmm17, %zmm19 {k1}
+vpermq            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpermq            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermq            (%rax), %zmm17, %zmm19 {z}{k1}
+vpermq            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpshufd           $0, %zmm16, %zmm19
+vpshufd           $0, (%rax), %zmm19
+vpshufd           $0, (%rax){1to16}, %zmm19
+vpshufd           $0, %zmm16, %zmm19 {k1}
+vpshufd           $0, (%rax), %zmm19 {k1}
+vpshufd           $0, (%rax){1to16}, %zmm19 {k1}
+vpshufd           $0, %zmm16, %zmm19 {z}{k1}
+vpshufd           $0, (%rax), %zmm19 {z}{k1}
+vpshufd           $0, (%rax){1to16}, %zmm19 {z}{k1}
+
+vpsubd            %zmm16, %zmm17, %zmm19
+vpsubd            (%rax), %zmm17, %zmm19
+vpsubd            (%rax){1to16}, %zmm17, %zmm19
+vpsubd            %zmm16, %zmm17, %zmm19 {k1}
+vpsubd            (%rax), %zmm17, %zmm19 {k1}
+vpsubd            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpsubd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubd            (%rax), %zmm17, %zmm19 {z}{k1}
+vpsubd            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpsubq            %zmm16, %zmm17, %zmm19
+vpsubq            (%rax), %zmm17, %zmm19
+vpsubq            (%rax){1to8}, %zmm17, %zmm19
+vpsubq            %zmm16, %zmm17, %zmm19 {k1}
+vpsubq            (%rax), %zmm17, %zmm19 {k1}
+vpsubq            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpsubq            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubq            (%rax), %zmm17, %zmm19 {z}{k1}
+vpsubq            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckhdq        %zmm16, %zmm17, %zmm19
+vpunpckhdq        (%rax), %zmm17, %zmm19
+vpunpckhdq        (%rax){1to16}, %zmm17, %zmm19
+vpunpckhdq        %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhdq        (%rax), %zmm17, %zmm19 {k1}
+vpunpckhdq        (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpunpckhdq        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhdq        (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhdq        (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckhqdq       %zmm16, %zmm17, %zmm19
+vpunpckhqdq       (%rax), %zmm17, %zmm19
+vpunpckhqdq       (%rax){1to8}, %zmm17, %zmm19
+vpunpckhqdq       %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhqdq       (%rax), %zmm17, %zmm19 {k1}
+vpunpckhqdq       (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpunpckhqdq       %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhqdq       (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckhqdq       (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vpunpckldq        %zmm16, %zmm17, %zmm19
+vpunpckldq        (%rax), %zmm17, %zmm19
+vpunpckldq        (%rax){1to16}, %zmm17, %zmm19
+vpunpckldq        %zmm16, %zmm17, %zmm19 {k1}
+vpunpckldq        (%rax), %zmm17, %zmm19 {k1}
+vpunpckldq        (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpunpckldq        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckldq        (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpckldq        (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpunpcklqdq       %zmm16, %zmm17, %zmm19
+vpunpcklqdq       (%rax), %zmm17, %zmm19
+vpunpcklqdq       (%rax){1to8}, %zmm17, %zmm19
+vpunpcklqdq       %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklqdq       (%rax), %zmm17, %zmm19 {k1}
+vpunpcklqdq       (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpunpcklqdq       %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklqdq       (%rax), %zmm17, %zmm19 {z}{k1}
+vpunpcklqdq       (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vshuff32x4        $0, %zmm16, %zmm17, %zmm19
+vshuff32x4        $0, (%rax), %zmm17, %zmm19
+vshuff32x4        $0, (%rax){1to16}, %zmm17, %zmm19
+vshuff32x4        $0, %zmm16, %zmm17, %zmm19 {k1}
+vshuff32x4        $0, (%rax), %zmm17, %zmm19 {k1}
+vshuff32x4        $0, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vshuff32x4        $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshuff32x4        $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshuff32x4        $0, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vshuff64x2        $0, %zmm16, %zmm17, %zmm19
+vshuff64x2        $0, (%rax), %zmm17, %zmm19
+vshuff64x2        $0, (%rax){1to8}, %zmm17, %zmm19
+vshuff64x2        $0, %zmm16, %zmm17, %zmm19 {k1}
+vshuff64x2        $0, (%rax), %zmm17, %zmm19 {k1}
+vshuff64x2        $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vshuff64x2        $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshuff64x2        $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshuff64x2        $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vshufi32x4        $0, %zmm16, %zmm17, %zmm19
+vshufi32x4        $0, (%rax), %zmm17, %zmm19
+vshufi32x4        $0, (%rax){1to16}, %zmm17, %zmm19
+vshufi32x4        $0, %zmm16, %zmm17, %zmm19 {k1}
+vshufi32x4        $0, (%rax), %zmm17, %zmm19 {k1}
+vshufi32x4        $0, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vshufi32x4        $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshufi32x4        $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshufi32x4        $0, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vshufi64x2        $0, %zmm16, %zmm17, %zmm19
+vshufi64x2        $0, (%rax), %zmm17, %zmm19
+vshufi64x2        $0, (%rax){1to8}, %zmm17, %zmm19
+vshufi64x2        $0, %zmm16, %zmm17, %zmm19 {k1}
+vshufi64x2        $0, (%rax), %zmm17, %zmm19 {k1}
+vshufi64x2        $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vshufi64x2        $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vshufi64x2        $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vshufi64x2        $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vsqrtpd           %zmm16, %zmm19
+vsqrtpd           (%rax), %zmm19
+vsqrtpd           (%rax){1to8}, %zmm19
+vsqrtpd           %zmm16, %zmm19 {k1}
+vsqrtpd           (%rax), %zmm19 {k1}
+vsqrtpd           (%rax){1to8}, %zmm19 {k1}
+vsqrtpd           %zmm16, %zmm19 {z}{k1}
+vsqrtpd           (%rax), %zmm19 {z}{k1}
+vsqrtpd           (%rax){1to8}, %zmm19 {z}{k1}
+
+vsqrtps           %zmm16, %zmm19
+vsqrtps           (%rax), %zmm19
+vsqrtps           (%rax){1to16}, %zmm19
+vsqrtps           %zmm16, %zmm19 {k1}
+vsqrtps           (%rax), %zmm19 {k1}
+vsqrtps           (%rax){1to16}, %zmm19 {k1}
+vsqrtps           %zmm16, %zmm19 {z}{k1}
+vsqrtps           (%rax), %zmm19 {z}{k1}
+vsqrtps           (%rax){1to16}, %zmm19 {z}{k1}
+
+vsqrtsd           %xmm16, %xmm17, %xmm19
+vsqrtsd           (%rax), %xmm17, %xmm19
+vsqrtsd           %xmm16, %xmm17, %xmm19 {k1}
+vsqrtsd           (%rax), %xmm17, %xmm19 {k1}
+vsqrtsd           %xmm16, %xmm17, %xmm19 {z}{k1}
+vsqrtsd           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vsqrtss           %xmm16, %xmm17, %xmm19
+vsqrtss           (%rax), %xmm17, %xmm19
+vsqrtss           %xmm16, %xmm17, %xmm19 {k1}
+vsqrtss           (%rax), %xmm17, %xmm19 {k1}
+vsqrtss           %xmm16, %xmm17, %xmm19 {z}{k1}
+vsqrtss           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubd            %zmm16, %zmm17, %zmm19
+vpsubd            (%rax), %zmm17, %zmm19
+vpsubd            (%rax){1to16}, %zmm17, %zmm19
+vpsubd            %zmm16, %zmm17, %zmm19 {k1}
+vpsubd            (%rax), %zmm17, %zmm19 {k1}
+vpsubd            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpsubd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubd            (%rax), %zmm17, %zmm19 {z}{k1}
+vpsubd            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpsubq            %zmm16, %zmm17, %zmm19
+vpsubq            (%rax), %zmm17, %zmm19
+vpsubq            (%rax){1to8}, %zmm17, %zmm19
+vpsubq            %zmm16, %zmm17, %zmm19 {k1}
+vpsubq            (%rax), %zmm17, %zmm19 {k1}
+vpsubq            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpsubq            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubq            (%rax), %zmm17, %zmm19 {z}{k1}
+vpsubq            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vptestmd          %zmm0, %zmm1, %k2
+vptestmd          (%rax), %zmm1, %k2
+vptestmd          (%rax){1to16}, %zmm1, %k2
+vptestmd          %zmm0, %zmm1, %k2 {k3}
+vptestmd          (%rax), %zmm1, %k2 {k3}
+vptestmd          (%rax){1to16}, %zmm1, %k2 {k3}
+
+vptestmq          %zmm0, %zmm1, %k2
+vptestmq          (%rax), %zmm1, %k2
+vptestmq          (%rax){1to8}, %zmm1, %k2
+vptestmq          %zmm0, %zmm1, %k2 {k3}
+vptestmq          (%rax), %zmm1, %k2 {k3}
+vptestmq          (%rax){1to8}, %zmm1, %k2 {k3}
+
+vptestnmd         %zmm0, %zmm1, %k2
+vptestnmd         (%rax), %zmm1, %k2
+vptestnmd         (%rax){1to16}, %zmm1, %k2
+vptestnmd         %zmm0, %zmm1, %k2 {k3}
+vptestnmd         (%rax), %zmm1, %k2 {k3}
+vptestnmd         (%rax){1to16}, %zmm1, %k2 {k3}
+
+vptestnmq         %zmm0, %zmm1, %k2
+vptestnmq         (%rax), %zmm1, %k2
+vptestnmq         (%rax){1to8}, %zmm1, %k2
+vptestnmq         %zmm0, %zmm1, %k2 {k3}
+vptestnmq         (%rax), %zmm1, %k2 {k3}
+vptestnmq         (%rax){1to8}, %zmm1, %k2 {k3}
+
+vsubpd            %zmm16, %zmm17, %zmm19
+vsubpd            (%rax), %zmm17, %zmm19
+vsubpd            (%rax){1to8}, %zmm17, %zmm19
+vsubpd            %zmm16, %zmm17, %zmm19 {k1}
+vsubpd            (%rax), %zmm17, %zmm19 {k1}
+vsubpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vsubpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vsubpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vsubpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vsubps            %zmm16, %zmm17, %zmm19
+vsubps            (%rax), %zmm17, %zmm19
+vsubps            (%rax){1to16}, %zmm17, %zmm19
+vsubps            %zmm16, %zmm17, %zmm19 {k1}
+vsubps            (%rax), %zmm17, %zmm19 {k1}
+vsubps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vsubps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vsubps            (%rax), %zmm17, %zmm19 {z}{k1}
+vsubps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vucomiss          %xmm16, %xmm17
+vucomiss          (%rax), %xmm17
+
+vunpckhpd         %zmm16, %zmm17, %zmm19
+vunpckhpd         (%rax), %zmm17, %zmm19
+vunpckhpd         (%rax){1to8}, %zmm17, %zmm19
+vunpckhpd         %zmm16, %zmm17, %zmm19 {k1}
+vunpckhpd         (%rax), %zmm17, %zmm19 {k1}
+vunpckhpd         (%rax){1to8}, %zmm17, %zmm19 {k1}
+vunpckhpd         %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpckhpd         (%rax), %zmm17, %zmm19 {z}{k1}
+vunpckhpd         (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vunpckhps         %zmm16, %zmm17, %zmm19
+vunpckhps         (%rax), %zmm17, %zmm19
+vunpckhps         (%rax){1to16}, %zmm17, %zmm19
+vunpckhps         %zmm16, %zmm17, %zmm19 {k1}
+vunpckhps         (%rax), %zmm17, %zmm19 {k1}
+vunpckhps         (%rax){1to16}, %zmm17, %zmm19 {k1}
+vunpckhps         %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpckhps         (%rax), %zmm17, %zmm19 {z}{k1}
+vunpckhps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vunpcklpd         %zmm16, %zmm17, %zmm19
+vunpcklpd         (%rax), %zmm17, %zmm19
+vunpcklpd         (%rax){1to8}, %zmm17, %zmm19
+vunpcklpd         %zmm16, %zmm17, %zmm19 {k1}
+vunpcklpd         (%rax), %zmm17, %zmm19 {k1}
+vunpcklpd         (%rax){1to8}, %zmm17, %zmm19 {k1}
+vunpcklpd         %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpcklpd         (%rax), %zmm17, %zmm19 {z}{k1}
+vunpcklpd         (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vunpcklps         %zmm16, %zmm17, %zmm19
+vunpcklps         (%rax), %zmm17, %zmm19
+vunpcklps         (%rax){1to16}, %zmm17, %zmm19
+vunpcklps         %zmm16, %zmm17, %zmm19 {k1}
+vunpcklps         (%rax), %zmm17, %zmm19 {k1}
+vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {k1}
+vunpcklps         %zmm16, %zmm17, %zmm19 {z}{k1}
+vunpcklps         (%rax), %zmm17, %zmm19 {z}{k1}
+vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        kandw  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandnw %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        knotw  %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        korw   %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxnorw %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxorw  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftlw       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftrw       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kunpckbw       %k0, %k1, %k2
+# CHECK-NEXT:  1      3     1.00                        vaddpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vaddpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vaddpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vaddpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vaddpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vaddpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vaddpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vaddpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vaddpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vaddps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vaddps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vaddps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vaddps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vaddps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vaddps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vaddps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        valignd        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   valignd        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   valignd        $1, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        valignd        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   valignd        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   valignd        $1, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        valignd        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   valignd        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   valignd        $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        valignq        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   valignq        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   valignq        $1, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        valignq        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   valignq        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   valignq        $1, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        valignq        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   valignq        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   valignq        $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x4        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x4        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x4        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x4        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x4        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x4        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x4        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x4        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x4        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x4        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x4        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x4        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm16, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastsd   (%rax), %zmm19
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastsd   (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastsd   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %zmm19
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     2.00                        vcmpeqpd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqpd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqpd       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      2     2.00                        vcmpeqpd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqpd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqpd       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      2     2.00                        vcmpeqps       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqps       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqps       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      2     2.00                        vcmpeqps       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqps       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     2.00    *                   vcmpeqps       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      2     1.00                        vcmpeqsd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqsd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqsd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqsd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      2     1.00                        vcmpeqss       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqss       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqss       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqss       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  2      4     1.00                        vcomiss        %xmm16, %xmm17
+# CHECK-NEXT:  2      11    1.00    *                   vcomiss        (%rax), %xmm17
+# CHECK-NEXT:  4      4     2.00                        vcvtdq2pd      %ymm16, %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtdq2pd      (%rax), %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtdq2pd      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  4      4     2.00                        vcvtdq2pd      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtdq2pd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtdq2pd      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  4      4     2.00                        vcvtdq2pd      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtdq2pd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtdq2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2ps      %zmm16, %zmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtdq2ps      (%rax), %zmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtdq2ps      (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2ps      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtdq2ps      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtdq2ps      (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2ps      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtdq2ps      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtdq2ps      (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2dq      %zmm16, %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2dq      (%rax), %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2dq      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2dq      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2dq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2dq      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2dq      %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2dq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2dq      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2udq     %zmm16, %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2udq     (%rax), %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2udq     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2udq     %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2udq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2udq     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2udq     %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2udq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2udq     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2dq     %zmm16, %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2dq     (%rax), %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2dq     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2dq     %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2dq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2dq     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2dq     %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2dq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2dq     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2udq    %zmm16, %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2udq    (%rax), %ymm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2udq    (%rax){1to8}, %ymm19
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2udq    %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2udq    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2udq    (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2udq    %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2udq    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2udq    (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  4      6     2.00                        vcvtpd2ps      %zmm16, %ymm19
+# CHECK-NEXT:  4      13    2.00    *                   vcvtpd2ps      (%rax), %ymm19
+# CHECK-NEXT:  4      13    2.00    *                   vcvtpd2ps      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  4      6     2.00                        vcvtpd2ps      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  4      13    2.00    *                   vcvtpd2ps      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  4      13    2.00    *                   vcvtpd2ps      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  4      6     2.00                        vcvtpd2ps      %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  4      13    2.00    *                   vcvtpd2ps      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  4      13    2.00    *                   vcvtpd2ps      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2dq      %zmm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2dq      (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2dq      (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvtps2dq      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2dq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2dq      (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2dq      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2dq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2dq      (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2dq     %zmm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2dq     (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2dq     (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvttps2dq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2dq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2dq     (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2dq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2dq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2dq     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  4      6     2.00                        vcvtps2pd      %ymm16, %zmm19
+# CHECK-NEXT:  3      13    2.00    *                   vcvtps2pd      (%rax), %zmm19
+# CHECK-NEXT:  3      13    2.00    *                   vcvtps2pd      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  4      6     2.00                        vcvtps2pd      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      13    2.00    *                   vcvtps2pd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  3      13    2.00    *                   vcvtps2pd      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  4      6     2.00                        vcvtps2pd      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      13    2.00    *                   vcvtps2pd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      13    2.00    *                   vcvtps2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vcvtsd2usi     %xmm0, %ecx
+# CHECK-NEXT:  1      1     0.50                        vcvtsd2usi     %xmm0, %rcx
+# CHECK-NEXT:  1      8     0.50    *                   vcvtsd2usi     (%rax), %ecx
+# CHECK-NEXT:  1      8     0.50    *                   vcvtsd2usi     (%rax), %rcx
+# CHECK-NEXT:  2      5     2.50                        vcvtss2usi     %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        vcvtss2usi     %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   vcvtss2usi     (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   vcvtss2usi     (%rax), %rcx
+# CHECK-NEXT:  2      4     1.00                        vcvtps2udq     %zmm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2udq     (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2udq     (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvtps2udq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2udq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2udq     (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2udq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2udq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2udq     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2udq    %zmm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2udq    (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2udq    (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvttps2udq    %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2udq    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2udq    (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2udq    %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2udq    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2udq    (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vcvttsd2usi    %xmm0, %ecx
+# CHECK-NEXT:  1      1     0.50                        vcvttsd2usi    %xmm0, %rcx
+# CHECK-NEXT:  1      8     0.50    *                   vcvttsd2usi    (%rax), %ecx
+# CHECK-NEXT:  1      8     0.50    *                   vcvttsd2usi    (%rax), %rcx
+# CHECK-NEXT:  2      5     2.50                        vcvttss2usi    %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        vcvttss2usi    %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   vcvttss2usi    (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   vcvttss2usi    (%rax), %rcx
+# CHECK-NEXT:  4      4     2.00                        vcvtudq2pd     %ymm16, %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtudq2pd     (%rax), %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtudq2pd     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  4      4     2.00                        vcvtudq2pd     %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtudq2pd     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtudq2pd     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  4      4     2.00                        vcvtudq2pd     %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtudq2pd     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtudq2pd     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtudq2ps     %zmm16, %zmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax), %zmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      3     1.00                        vcvtudq2ps     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtudq2ps     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2sd     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2sd     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vcvtusi2sdl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vcvtusi2sdq    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtusi2ss     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtusi2ss     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvtusi2ssl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   vcvtusi2ssq    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  1      13    10.00                       vdivpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      20    10.00   *                   vdivpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      20    10.00   *                   vdivpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      13    10.00                       vdivpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      20    10.00   *                   vdivpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      20    10.00   *                   vdivpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      13    10.00                       vdivpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      20    10.00   *                   vdivpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      20    10.00   *                   vdivpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    6.00                        vdivps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      18    6.00    *                   vdivps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      18    6.00    *                   vdivps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    6.00                        vdivps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      18    6.00    *                   vdivps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      18    6.00    *                   vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    6.00                        vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      18    6.00    *                   vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      18    6.00    *                   vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdpd     (%rax,%ymm1,2), %zmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdps     (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqpd     (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqps     (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vmaxpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vmaxpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     2.00                        vmaxps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vmaxps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vmaxps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     2.00                        vmaxps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     2.00                        vmaxps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vminpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vminpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vminpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vminpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vminpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vminpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vminpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     2.00                        vminps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vminps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      9     2.00    *                   vminps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     2.00                        vminps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vminps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      9     2.00    *                   vminps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     2.00                        vminps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vminps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     2.00    *                   vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vmovddup       (%rax), %zmm19
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vmovddup       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vmovddup       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa32      %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa32      %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa64      %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa64      %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu32      %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu32      %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu64      %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu64      %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vmovshdup      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vmovshdup      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vmovshdup      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vmovshdup      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vmovshdup      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vmovshdup      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vmovsldup      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vmovsldup      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vmovsldup      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vmovsldup      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vmovsldup      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vmovsldup      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovups        %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovups        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovups        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vmulpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vmulpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vmulpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vmulpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vmulpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vmulpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vmulpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vmulpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vmulpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vmulps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vmulps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vmulps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vmulps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vmulps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vmulps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vmulps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vmulps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vmulps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpabsd %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax){1to16}, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpabsd %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpabsd %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsd (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpabsq %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsq (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsq (%rax){1to8}, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpabsq %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsq (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsq (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpabsq %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsq (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsq (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastd   (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastd   (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastd   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastq   (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastq   (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastq   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqq       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqq       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtq       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtq       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqq       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqq       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpequd      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpequd      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpequq      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpequq      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdq     (%rax,%ymm1,2), %zmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdd     (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqq     (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqd     (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbd      %xmm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbd      %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbd      %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbq      %xmm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbq      %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbq      %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxdq      %ymm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovsxdq      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxdq      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwd      %ymm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwd      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwd      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwq      %xmm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwq      %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxwq      %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbd      %xmm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbd      %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbd      %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbq      %xmm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbq      %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbq      %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxdq      %ymm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovzxdq      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxdq      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwd      %ymm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwd      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwd      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwq      %xmm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwq      %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxwq      %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmulld        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmulld        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmulld        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmulld        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulld        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulld        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmulld        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulld        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulld        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpermilpd      $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermilpd      $0, (%rax), %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermilpd      $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpermilpd      $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilpd      $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilpd      $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpermilpd      $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilpd      $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilpd      $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpermilpd      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpermilpd      (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilpd      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilpd      (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilpd      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilpd      (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpermilps      $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermilps      $0, (%rax), %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermilps      $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpermilps      $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilps      $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilps      $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpermilps      $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilps      $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermilps      $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpermilps      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpermilps      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilps      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilps      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilps      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpermilps      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpermpd        $0, %zmm16, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax), %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpermpd        $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpermpd        $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermpd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermpd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermpd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermps        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermps        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermps        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpermq $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax), %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpermq $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpermq $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      1     0.50                        vpermq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  2      1     0.50                        vpermq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      1     0.50                        vpermq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpshufd        $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpshufd        $0, (%rax), %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpshufd        $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpshufd        $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufd        $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufd        $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpshufd        $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufd        $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufd        $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhdq     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhdq     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhdq     (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpckhdq     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhdq     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhdq     (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhdq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhdq     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhdq     (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhqdq    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhqdq    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhqdq    (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpckhqdq    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhqdq    (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhqdq    (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhqdq    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhqdq    (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhqdq    (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpckldq     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckldq     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckldq     (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpckldq     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckldq     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckldq     (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpckldq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckldq     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckldq     (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpcklqdq    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklqdq    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklqdq    (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpcklqdq    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklqdq    (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklqdq    (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpcklqdq    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklqdq    (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklqdq    (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshuff32x4     $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vshuff32x4     $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshuff32x4     $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshuff64x2     $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vshuff64x2     $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshuff64x2     $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshufi32x4     $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vshufi32x4     $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshufi32x4     $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshufi64x2     $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vshufi64x2     $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshufi64x2     $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      21    18.00                       vsqrtpd        %zmm16, %zmm19
+# CHECK-NEXT:  1      28    18.00   *                   vsqrtpd        (%rax), %zmm19
+# CHECK-NEXT:  1      28    18.00   *                   vsqrtpd        (%rax){1to8}, %zmm19
+# CHECK-NEXT:  1      21    18.00                       vsqrtpd        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      28    18.00   *                   vsqrtpd        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      28    18.00   *                   vsqrtpd        (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  1      21    18.00                       vsqrtpd        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      28    18.00   *                   vsqrtpd        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      28    18.00   *                   vsqrtpd        (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      15    10.00                       vsqrtps        %zmm16, %zmm19
+# CHECK-NEXT:  1      22    10.00   *                   vsqrtps        (%rax), %zmm19
+# CHECK-NEXT:  1      22    10.00   *                   vsqrtps        (%rax){1to16}, %zmm19
+# CHECK-NEXT:  1      15    10.00                       vsqrtps        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      22    10.00   *                   vsqrtps        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      22    10.00   *                   vsqrtps        (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  1      15    10.00                       vsqrtps        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      22    10.00   *                   vsqrtps        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      22    10.00   *                   vsqrtps        (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      21    9.00                        vsqrtsd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtsd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      21    9.00                        vsqrtsd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtsd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      21    9.00                        vsqrtsd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtsd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      15    5.00                        vsqrtss        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtss        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      15    5.00                        vsqrtss        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtss        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      15    5.00                        vsqrtss        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtss        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vptestmd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestmd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vptestmq       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestmq       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vptestnmd      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestnmd      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vptestnmq      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestnmq      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      3     1.00                        vsubpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vsubpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vsubpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vsubpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vsubpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vsubpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vsubpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vsubpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vsubpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vsubps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vsubps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vsubps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vsubps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vsubps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vsubps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vsubps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vsubps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vsubps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vucomiss       %xmm16, %xmm17
+# CHECK-NEXT:  2      11    1.00    *                   vucomiss       (%rax), %xmm17
+# CHECK-NEXT:  1      1     1.00                        vunpckhpd      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhpd      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhpd      (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vunpckhpd      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhpd      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhpd      (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vunpckhpd      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhpd      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhpd      (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vunpckhps      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhps      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhps      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vunpckhps      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhps      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhps      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vunpckhps      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhps      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpckhps      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vunpcklpd      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklpd      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklpd      (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vunpcklpd      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklpd      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklpd      (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vunpcklpd      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklpd      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklpd      (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vunpcklps      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklps      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklps      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vunpcklps      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklps      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklps      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vunpcklps      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklps      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vunpcklps      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 2.67   2.67   2.67    -      -      -      -      -     209.00 1048.50 618.00 352.50 277.50 277.50 16.00 187.67 187.67 187.67 182.33 182.33 182.33 8.00   8.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandw   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandnw  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     knotw   %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     korw    %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxnorw  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxorw   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftlw        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftrw        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kunpckbw        %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vaddps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vaddps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vaddps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x4 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x4 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x4 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x4 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x4 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x4 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqsd        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqsd        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqsd        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqsd        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqss        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqss        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqss        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqss        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcomiss %xmm16, %xmm17
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcomiss (%rax), %xmm17
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtsd2usi      %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtsd2usi      %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsd2usi      (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtsd2usi      (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvtss2usi      %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvtss2usi      %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtss2usi      (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtss2usi      (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttsd2usi     %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttsd2usi     %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttsd2usi     (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttsd2usi     (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvttss2usi     %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     vcvttss2usi     %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttss2usi     (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttss2usi     (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtudq2pd      %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2pd      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2pd      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtudq2pd      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2pd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2pd      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtudq2pd      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2pd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtudq2ps      %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2ps      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2ps      (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtudq2ps      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2ps      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2ps      (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtudq2ps      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2ps      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtudq2ps      (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtusi2sd      %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtusi2sd      %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtusi2sdl     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtusi2sdq     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtusi2ss      %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtusi2ss      %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtusi2ssl     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtusi2ssq     (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     6.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdpd      (%rax,%ymm1,2), %zmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdps      (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqpd      (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqps      (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa32       %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa32       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa64       %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa64       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu32       %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu32       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu64       %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu64       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsd  %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsd  %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsd  %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsd  (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsq  %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsq  (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsq  (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsq  %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsq  (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsq  (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsq  %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsq  (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsq  (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequq       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequq       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdq      (%rax,%ymm1,2), %zmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdd      (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqq      (%rax,%zmm1,2), %zmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqd      (%rax,%zmm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulld %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulld %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulld %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermq  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermq  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermq  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhqdq     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhqdq     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhqdq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhqdq     (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklqdq     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklqdq     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklqdq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklqdq     (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff32x4      $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff32x4      $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff32x4      $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff64x2      $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff64x2      $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff64x2      $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi32x4      $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi32x4      $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi32x4      $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi64x2      $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi64x2      $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi64x2      $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     18.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     10.00   -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtsd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtsd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtsd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtsd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtsd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtss %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtss (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtss %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtss (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtss %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtss (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestmd        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmd        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestmq        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmq        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestnmd       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax){1to16}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmd       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax){1to16}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestnmq       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax){1to8}, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmq       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax){1to8}, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vsubps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vsubps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vsubps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vucomiss        %xmm16, %xmm17
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vucomiss        (%rax), %xmm17
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bitalg.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bitalg.s
new file mode 100644 (file)
index 0000000..83207fc
--- /dev/null
@@ -0,0 +1,95 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpopcntb        %zmm1, %zmm0
+vpopcntb        (%rdi), %zmm0
+vpopcntb        %zmm1, %zmm0 {%k1}
+vpopcntb        (%rdi), %zmm0 {%k1}
+vpopcntb        %zmm1, %zmm0 {%k1} {z}
+vpopcntb        (%rdi), %zmm0 {%k1} {z}
+
+vpopcntw        %zmm1, %zmm0
+vpopcntw        (%rdi), %zmm0
+vpopcntw        %zmm1, %zmm0 {%k1}
+vpopcntw        (%rdi), %zmm0 {%k1}
+vpopcntw        %zmm1, %zmm0 {%k1} {z}
+vpopcntw        (%rdi), %zmm0 {%k1} {z}
+
+vpshufbitqmb    %zmm16, %zmm17, %k2
+vpshufbitqmb    (%rdi), %zmm17, %k2
+vpshufbitqmb    %zmm16, %zmm17, %k2 {%k1}
+vpshufbitqmb    (%rdi), %zmm17, %k2 {%k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        vpopcntb       %zmm1, %zmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %zmm0
+# CHECK-NEXT:  1      1     0.50                        vpopcntb       %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpopcntb       %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpopcntw       %zmm1, %zmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %zmm0
+# CHECK-NEXT:  1      1     0.50                        vpopcntw       %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpopcntw       %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshufbitqmb   %zmm16, %zmm17, %k2
+# CHECK-NEXT:  1      10    1.00    *                   vpshufbitqmb   (%rdi), %zmm17, %k2
+# CHECK-NEXT:  1      3     1.00                        vpshufbitqmb   %zmm16, %zmm17, %k2 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshufbitqmb   (%rdi), %zmm17, %k2 {%k1}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     10.00  6.00   6.00   10.00  4.00   4.00    -     2.67   2.67   2.67   2.67   2.67   2.67    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %zmm1, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %zmm1, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshufbitqmb    %zmm16, %zmm17, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufbitqmb    (%rdi), %zmm17, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshufbitqmb    %zmm16, %zmm17, %k2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufbitqmb    (%rdi), %zmm17, %k2 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bitalgvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bitalgvl.s
new file mode 100644 (file)
index 0000000..7242374
--- /dev/null
@@ -0,0 +1,146 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpopcntb        %xmm1, %xmm0
+vpopcntb        (%rdi), %xmm0
+vpopcntb        %xmm1, %xmm0 {%k1}
+vpopcntb        (%rdi), %xmm0 {%k1}
+vpopcntb        %xmm1, %xmm0 {%k1} {z}
+vpopcntb        (%rdi), %xmm0 {%k1} {z}
+
+vpopcntb        %ymm1, %ymm0
+vpopcntb        (%rdi), %ymm0
+vpopcntb        %ymm1, %ymm0 {%k1}
+vpopcntb        (%rdi), %ymm0 {%k1}
+vpopcntb        %ymm1, %ymm0 {%k1} {z}
+vpopcntb        (%rdi), %ymm0 {%k1} {z}
+
+vpopcntw        %xmm1, %xmm0
+vpopcntw        (%rdi), %xmm0
+vpopcntw        %xmm1, %xmm0 {%k1}
+vpopcntw        (%rdi), %xmm0 {%k1}
+vpopcntw        %xmm1, %xmm0 {%k1} {z}
+vpopcntw        (%rdi), %xmm0 {%k1} {z}
+
+vpopcntw        %ymm1, %ymm0
+vpopcntw        (%rdi), %ymm0
+vpopcntw        %ymm1, %ymm0 {%k1}
+vpopcntw        (%rdi), %ymm0 {%k1}
+vpopcntw        %ymm1, %ymm0 {%k1} {z}
+vpopcntw        (%rdi), %ymm0 {%k1} {z}
+
+vpshufbitqmb    %xmm16, %xmm17, %k2
+vpshufbitqmb    (%rdi), %xmm17, %k2
+vpshufbitqmb    %xmm16, %xmm17, %k2 {%k1}
+vpshufbitqmb    (%rdi), %xmm17, %k2 {%k1}
+
+vpshufbitqmb    %ymm16, %ymm17, %k2
+vpshufbitqmb    (%rdi), %ymm17, %k2
+vpshufbitqmb    %ymm16, %ymm17, %k2 {%k1}
+vpshufbitqmb    (%rdi), %ymm17, %k2 {%k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      2     1.00                        vpopcntb       %xmm1, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %xmm0
+# CHECK-NEXT:  1      2     1.00                        vpopcntb       %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpopcntb       %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpopcntb       %ymm1, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %ymm0
+# CHECK-NEXT:  1      1     0.25                        vpopcntb       %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpopcntb       %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntb       (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpopcntw       %xmm1, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %xmm0
+# CHECK-NEXT:  1      2     1.00                        vpopcntw       %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpopcntw       %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpopcntw       %ymm1, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %ymm0
+# CHECK-NEXT:  1      1     0.25                        vpopcntw       %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpopcntw       %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntw       (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshufbitqmb   %xmm16, %xmm17, %k2
+# CHECK-NEXT:  1      10    0.50    *                   vpshufbitqmb   (%rdi), %xmm17, %k2
+# CHECK-NEXT:  1      2     1.00                        vpshufbitqmb   %xmm16, %xmm17, %k2 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshufbitqmb   (%rdi), %xmm17, %k2 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpshufbitqmb   %ymm16, %ymm17, %k2
+# CHECK-NEXT:  1      10    0.50    *                   vpshufbitqmb   (%rdi), %ymm17, %k2
+# CHECK-NEXT:  1      3     0.50                        vpshufbitqmb   %ymm16, %ymm17, %k2 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshufbitqmb   (%rdi), %ymm17, %k2 {%k1}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     15.50  12.50  4.50   7.50   8.00   8.00    -     5.33   5.33   5.33   5.33   5.33   5.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %xmm1, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %ymm1, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntb        %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntb        (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %xmm1, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %ymm1, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntw        %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntw        (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufbitqmb    %xmm16, %xmm17, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufbitqmb    (%rdi), %xmm17, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufbitqmb    %xmm16, %xmm17, %k2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufbitqmb    (%rdi), %xmm17, %k2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshufbitqmb    %ymm16, %ymm17, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufbitqmb    (%rdi), %ymm17, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshufbitqmb    %ymm16, %ymm17, %k2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufbitqmb    (%rdi), %ymm17, %k2 {%k1}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bw.s
new file mode 100644 (file)
index 0000000..d2f3260
--- /dev/null
@@ -0,0 +1,1645 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+kaddd             %k0, %k1, %k2
+kaddq             %k0, %k1, %k2
+
+kandd             %k0, %k1, %k2
+kandq             %k0, %k1, %k2
+
+kandnd            %k0, %k1, %k2
+kandnq            %k0, %k1, %k2
+
+kmovd             %k0, %k2
+kmovd             (%rax), %k2
+kmovd             %k0, (%rax)
+kmovd             %eax, %k2
+kmovd             %k0, %eax
+
+kmovq             %k0, %k2
+kmovq             (%rax), %k2
+kmovq             %k0, (%rax)
+kmovq             %rax, %k2
+kmovq             %k0, %rax
+
+knotd             %k0, %k2
+knotq             %k0, %k2
+
+kord              %k0, %k1, %k2
+korq              %k0, %k1, %k2
+
+kortestd          %k0, %k2
+kortestq          %k0, %k2
+
+kshiftld          $2, %k1, %k2
+kshiftlq          $2, %k1, %k2
+
+kshiftrd          $2, %k1, %k2
+kshiftrq          $2, %k1, %k2
+
+ktestd            %k0, %k2
+ktestq            %k0, %k2
+
+kunpckdq          %k0, %k1, %k2
+kunpckwd          %k0, %k1, %k2
+
+kxnord            %k0, %k1, %k2
+kxnorq            %k0, %k1, %k2
+
+kxord             %k0, %k1, %k2
+kxorq             %k0, %k1, %k2
+
+vdbpsadbw         $0, %zmm16, %zmm17, %zmm19
+vdbpsadbw         $0, (%rax), %zmm17, %zmm19
+vdbpsadbw         $0, %zmm16, %zmm17, %zmm19 {k1}
+vdbpsadbw         $0, (%rax), %zmm17, %zmm19 {k1}
+vdbpsadbw         $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vdbpsadbw         $0, (%rax), %zmm17, %zmm19 {z}{k1}
+
+vmovdqu8          %zmm16, %zmm19
+vmovdqu8          (%rax), %zmm19
+vmovdqu8          %zmm16, (%rax)
+vmovdqu8          %zmm16, %zmm19 {k1}
+vmovdqu8          (%rax), %zmm19 {k1}
+vmovdqu8          %zmm16, (%rax) {k1}
+vmovdqu8          %zmm16, %zmm19 {z}{k1}
+vmovdqu8          (%rax), %zmm19 {z}{k1}
+
+vmovdqu16         %zmm16, %zmm19
+vmovdqu16         (%rax), %zmm19
+vmovdqu16         %zmm16, (%rax)
+vmovdqu16         %zmm16, %zmm19 {k1}
+vmovdqu16         (%rax), %zmm19 {k1}
+vmovdqu16         %zmm16, (%rax) {k1}
+vmovdqu16         %zmm16, %zmm19 {z}{k1}
+vmovdqu16         (%rax), %zmm19 {z}{k1}
+
+vpabsb            %zmm16, %zmm19
+vpabsb            (%rax), %zmm19
+vpabsb            %zmm16, %zmm19 {k1}
+vpabsb            (%rax), %zmm19 {k1}
+vpabsb            %zmm16, %zmm19 {z}{k1}
+vpabsb            (%rax), %zmm19 {z}{k1}
+
+vpabsw            %zmm16, %zmm19
+vpabsw            (%rax), %zmm19
+vpabsw            %zmm16, %zmm19 {k1}
+vpabsw            (%rax), %zmm19 {k1}
+vpabsw            %zmm16, %zmm19 {z}{k1}
+vpabsw            (%rax), %zmm19 {z}{k1}
+
+vpackssdw         %zmm16, %zmm17, %zmm19
+vpackssdw         (%rax), %zmm17, %zmm19
+vpackssdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {k1}
+vpackssdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackssdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpacksswb         %zmm16, %zmm17, %zmm19
+vpacksswb         (%rax), %zmm17, %zmm19
+vpacksswb         %zmm16, %zmm17, %zmm19 {k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {k1}
+vpacksswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpacksswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackusdw         %zmm16, %zmm17, %zmm19
+vpackusdw         (%rax), %zmm17, %zmm19
+vpackusdw         %zmm16, %zmm17, %zmm19 {k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {k1}
+vpackusdw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackusdw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpackuswb         %zmm16, %zmm17, %zmm19
+vpackuswb         (%rax), %zmm17, %zmm19
+vpackuswb         %zmm16, %zmm17, %zmm19 {k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {k1}
+vpackuswb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpackuswb         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpaddb            %zmm16, %zmm17, %zmm19
+vpaddb            (%rax), %zmm17, %zmm19
+vpaddb            %zmm16, %zmm17, %zmm19 {k1}
+vpaddb            (%rax), %zmm17, %zmm19 {k1}
+vpaddb            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddb            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpaddsb           %zmm16, %zmm17, %zmm19
+vpaddsb           (%rax), %zmm17, %zmm19
+vpaddsb           %zmm16, %zmm17, %zmm19 {k1}
+vpaddsb           (%rax), %zmm17, %zmm19 {k1}
+vpaddsb           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddsb           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpaddsw           %zmm16, %zmm17, %zmm19
+vpaddsw           (%rax), %zmm17, %zmm19
+vpaddsw           %zmm16, %zmm17, %zmm19 {k1}
+vpaddsw           (%rax), %zmm17, %zmm19 {k1}
+vpaddsw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddsw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpaddusb          %zmm16, %zmm17, %zmm19
+vpaddusb          (%rax), %zmm17, %zmm19
+vpaddusb          %zmm16, %zmm17, %zmm19 {k1}
+vpaddusb          (%rax), %zmm17, %zmm19 {k1}
+vpaddusb          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddusb          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpaddusw          %zmm16, %zmm17, %zmm19
+vpaddusw          (%rax), %zmm17, %zmm19
+vpaddusw          %zmm16, %zmm17, %zmm19 {k1}
+vpaddusw          (%rax), %zmm17, %zmm19 {k1}
+vpaddusw          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddusw          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpaddw            %zmm16, %zmm17, %zmm19
+vpaddw            (%rax), %zmm17, %zmm19
+vpaddw            %zmm16, %zmm17, %zmm19 {k1}
+vpaddw            (%rax), %zmm17, %zmm19 {k1}
+vpaddw            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpaddw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpalignr          $1, %zmm16, %zmm17, %zmm19
+vpalignr          $1, (%rax), %zmm17, %zmm19
+vpalignr          $1, %zmm16, %zmm17, %zmm19 {k1}
+vpalignr          $1, (%rax), %zmm17, %zmm19 {k1}
+vpalignr          $1, %zmm16, %zmm17, %zmm19 {z}{k1}
+vpalignr          $1, (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpavgb            %zmm16, %zmm17, %zmm19
+vpavgb            (%rax), %zmm17, %zmm19
+vpavgb            %zmm16, %zmm17, %zmm19 {k1}
+vpavgb            (%rax), %zmm17, %zmm19 {k1}
+vpavgb            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpavgb            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpavgw            %zmm16, %zmm17, %zmm19
+vpavgw            (%rax), %zmm17, %zmm19
+vpavgw            %zmm16, %zmm17, %zmm19 {k1}
+vpavgw            (%rax), %zmm17, %zmm19 {k1}
+vpavgw            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpavgw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpblendmb         %zmm16, %zmm17, %zmm19
+vpblendmb         (%rax), %zmm17, %zmm19
+vpblendmb         %zmm16, %zmm17, %zmm19 {k1}
+vpblendmb         (%rax), %zmm17, %zmm19 {k1}
+vpblendmb         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpblendmb         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpblendmw         %zmm16, %zmm17, %zmm19
+vpblendmw         (%rax), %zmm17, %zmm19
+vpblendmw         %zmm16, %zmm17, %zmm19 {k1}
+vpblendmw         (%rax), %zmm17, %zmm19 {k1}
+vpblendmw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpblendmw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpbroadcastb      %xmm16, %zmm19
+vpbroadcastb      (%rax), %zmm19
+vpbroadcastb      %eax, %zmm19
+vpbroadcastb      %xmm16, %zmm19 {k1}
+vpbroadcastb      (%rax), %zmm19 {k1}
+vpbroadcastb      %eax, %zmm19 {k1}
+vpbroadcastb      %xmm16, %zmm19 {z}{k1}
+vpbroadcastb      (%rax), %zmm19 {z}{k1}
+vpbroadcastb      %eax, %zmm19 {z}{k1}
+
+vpbroadcastw      %xmm16, %zmm19
+vpbroadcastw      (%rax), %zmm19
+vpbroadcastw      %eax, %zmm19
+vpbroadcastw      %xmm16, %zmm19 {k1}
+vpbroadcastw      (%rax), %zmm19 {k1}
+vpbroadcastw      %eax, %zmm19 {k1}
+vpbroadcastw      %xmm16, %zmm19 {z}{k1}
+vpbroadcastw      (%rax), %zmm19 {z}{k1}
+vpbroadcastw      %eax, %zmm19 {z}{k1}
+
+vpcmpb            $0, %zmm0, %zmm1, %k2
+vpcmpb            $0, (%rax), %zmm1, %k2
+vpcmpb            $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpb            $0, (%rax), %zmm1, %k2 {k3}
+
+vpcmpeqb          %zmm0, %zmm1, %k2
+vpcmpeqb          (%rax), %zmm1, %k2
+vpcmpeqb          %zmm0, %zmm1, %k2 {k3}
+vpcmpeqb          (%rax), %zmm1, %k2 {k3}
+
+vpcmpeqw          %zmm0, %zmm1, %k2
+vpcmpeqw          (%rax), %zmm1, %k2
+vpcmpeqw          %zmm0, %zmm1, %k2 {k3}
+vpcmpeqw          (%rax), %zmm1, %k2 {k3}
+
+vpcmpgtb          %zmm0, %zmm1, %k2
+vpcmpgtb          (%rax), %zmm1, %k2
+vpcmpgtb          %zmm0, %zmm1, %k2 {k3}
+vpcmpgtb          (%rax), %zmm1, %k2 {k3}
+
+vpcmpgtw          %zmm0, %zmm1, %k2
+vpcmpgtw          (%rax), %zmm1, %k2
+vpcmpgtw          %zmm0, %zmm1, %k2 {k3}
+vpcmpgtw          (%rax), %zmm1, %k2 {k3}
+
+vpcmpub           $0, %zmm0, %zmm1, %k2
+vpcmpub           $0, (%rax), %zmm1, %k2
+vpcmpub           $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpub           $0, (%rax), %zmm1, %k2 {k3}
+
+vpcmpuw           $0, %zmm0, %zmm1, %k2
+vpcmpuw           $0, (%rax), %zmm1, %k2
+vpcmpuw           $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpuw           $0, (%rax), %zmm1, %k2 {k3}
+
+vpcmpw            $0, %zmm0, %zmm1, %k2
+vpcmpw            $0, (%rax), %zmm1, %k2
+vpcmpw            $0, %zmm0, %zmm1, %k2 {k3}
+vpcmpw            $0, (%rax), %zmm1, %k2 {k3}
+
+vpextrb           $0, %xmm16, %rax
+vpextrb           $0, %xmm16, (%rax)
+
+vpextrw           $0, %xmm16, %rax
+vpextrw           $0, %xmm16, (%rax)
+
+vpinsrb           $0, %rax, %xmm16, %xmm19
+vpinsrb           $0, (%rax), %xmm16, %xmm19
+
+vpinsrw           $0, %rax, %xmm16, %xmm19
+vpinsrw           $0, (%rax), %xmm16, %xmm19
+
+vpermw            %zmm16, %zmm17, %zmm19
+vpermw            (%rax), %zmm17, %zmm19
+vpermw            %zmm16, %zmm17, %zmm19 {k1}
+vpermw            (%rax), %zmm17, %zmm19 {k1}
+vpermw            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpermi2w          %zmm16, %zmm17, %zmm19
+vpermi2w          (%rax), %zmm17, %zmm19
+vpermi2w          %zmm16, %zmm17, %zmm19 {k1}
+vpermi2w          (%rax), %zmm17, %zmm19 {k1}
+vpermi2w          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermi2w          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpermt2w          %zmm16, %zmm17, %zmm19
+vpermt2w          (%rax), %zmm17, %zmm19
+vpermt2w          %zmm16, %zmm17, %zmm19 {k1}
+vpermt2w          (%rax), %zmm17, %zmm19 {k1}
+vpermt2w          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpermt2w          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmaddubsw        %zmm16, %zmm17, %zmm19
+vpmaddubsw        (%rax), %zmm17, %zmm19
+vpmaddubsw        %zmm16, %zmm17, %zmm19 {k1}
+vpmaddubsw        (%rax), %zmm17, %zmm19 {k1}
+vpmaddubsw        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmaddubsw        (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmaddwd          %zmm16, %zmm17, %zmm19
+vpmaddwd          (%rax), %zmm17, %zmm19
+vpmaddwd          %zmm16, %zmm17, %zmm19 {k1}
+vpmaddwd          (%rax), %zmm17, %zmm19 {k1}
+vpmaddwd          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmaddwd          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmaxsb           %zmm16, %zmm17, %zmm19
+vpmaxsb           (%rax), %zmm17, %zmm19
+vpmaxsb           %zmm16, %zmm17, %zmm19 {k1}
+vpmaxsb           (%rax), %zmm17, %zmm19 {k1}
+vpmaxsb           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmaxsb           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmaxsw           %zmm16, %zmm17, %zmm19
+vpmaxsw           (%rax), %zmm17, %zmm19
+vpmaxsw           %zmm16, %zmm17, %zmm19 {k1}
+vpmaxsw           (%rax), %zmm17, %zmm19 {k1}
+vpmaxsw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmaxsw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmaxub           %zmm16, %zmm17, %zmm19
+vpmaxub           (%rax), %zmm17, %zmm19
+vpmaxub           %zmm16, %zmm17, %zmm19 {k1}
+vpmaxub           (%rax), %zmm17, %zmm19 {k1}
+vpmaxub           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmaxub           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmaxuw           %zmm16, %zmm17, %zmm19
+vpmaxuw           (%rax), %zmm17, %zmm19
+vpmaxuw           %zmm16, %zmm17, %zmm19 {k1}
+vpmaxuw           (%rax), %zmm17, %zmm19 {k1}
+vpmaxuw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmaxuw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpminsb           %zmm16, %zmm17, %zmm19
+vpminsb           (%rax), %zmm17, %zmm19
+vpminsb           %zmm16, %zmm17, %zmm19 {k1}
+vpminsb           (%rax), %zmm17, %zmm19 {k1}
+vpminsb           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpminsb           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpminsw           %zmm16, %zmm17, %zmm19
+vpminsw           (%rax), %zmm17, %zmm19
+vpminsw           %zmm16, %zmm17, %zmm19 {k1}
+vpminsw           (%rax), %zmm17, %zmm19 {k1}
+vpminsw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpminsw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpminub           %zmm16, %zmm17, %zmm19
+vpminub           (%rax), %zmm17, %zmm19
+vpminub           %zmm16, %zmm17, %zmm19 {k1}
+vpminub           (%rax), %zmm17, %zmm19 {k1}
+vpminub           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpminub           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpminuw           %zmm16, %zmm17, %zmm19
+vpminuw           (%rax), %zmm17, %zmm19
+vpminuw           %zmm16, %zmm17, %zmm19 {k1}
+vpminuw           (%rax), %zmm17, %zmm19 {k1}
+vpminuw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpminuw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmovb2m          %zmm0, %k0
+vpmovw2m          %zmm0, %k0
+
+vpmovm2b          %k0, %zmm0
+vpmovm2w          %k0, %zmm0
+
+vpmovsxbw         %ymm16, %zmm19
+vpmovsxbw         (%rax), %zmm19
+vpmovsxbw         %ymm16, %zmm19 {k1}
+vpmovsxbw         (%rax), %zmm19 {k1}
+vpmovsxbw         %ymm16, %zmm19 {z}{k1}
+vpmovsxbw         (%rax), %zmm19 {z}{k1}
+
+vpmovswb          %zmm16, %ymm19
+vpmovswb          %zmm16, (%rax)
+vpmovswb          %zmm16, %ymm19 {k1}
+vpmovswb          %zmm16, (%rax) {k1}
+
+vpmovuswb         %zmm16, %ymm19
+vpmovuswb         %zmm16, (%rax)
+vpmovuswb         %zmm16, %ymm19 {k1}
+vpmovuswb         %zmm16, (%rax) {k1}
+
+vpmovwb           %zmm16, %ymm19
+vpmovwb           %zmm16, (%rax)
+vpmovwb           %zmm16, %ymm19 {k1}
+vpmovwb           %zmm16, (%rax) {k1}
+
+vpmovzxbw         %ymm16, %zmm19
+vpmovzxbw         (%rax), %zmm19
+vpmovzxbw         %ymm16, %zmm19 {k1}
+vpmovzxbw         (%rax), %zmm19 {k1}
+vpmovzxbw         %ymm16, %zmm19 {z}{k1}
+vpmovzxbw         (%rax), %zmm19 {z}{k1}
+
+vpmulhrsw         %zmm16, %zmm17, %zmm19
+vpmulhrsw         (%rax), %zmm17, %zmm19
+vpmulhrsw         %zmm16, %zmm17, %zmm19 {k1}
+vpmulhrsw         (%rax), %zmm17, %zmm19 {k1}
+vpmulhrsw         %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmulhrsw         (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmulhuw          %zmm16, %zmm17, %zmm19
+vpmulhuw          (%rax), %zmm17, %zmm19
+vpmulhuw          %zmm16, %zmm17, %zmm19 {k1}
+vpmulhuw          (%rax), %zmm17, %zmm19 {k1}
+vpmulhuw          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmulhuw          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmulhw           %zmm16, %zmm17, %zmm19
+vpmulhw           (%rax), %zmm17, %zmm19
+vpmulhw           %zmm16, %zmm17, %zmm19 {k1}
+vpmulhw           (%rax), %zmm17, %zmm19 {k1}
+vpmulhw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmulhw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpmullw           %zmm16, %zmm17, %zmm19
+vpmullw           (%rax), %zmm17, %zmm19
+vpmullw           %zmm16, %zmm17, %zmm19 {k1}
+vpmullw           (%rax), %zmm17, %zmm19 {k1}
+vpmullw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmullw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsadbw           %zmm16, %zmm17, %zmm19
+vpsadbw           (%rax), %zmm17, %zmm19
+
+vpshufb           %zmm16, %zmm17, %zmm19
+vpshufb           (%rax), %zmm17, %zmm19
+vpshufb           %zmm16, %zmm17, %zmm19 {k1}
+vpshufb           (%rax), %zmm17, %zmm19 {k1}
+vpshufb           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpshufb           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpshufhw          $0, %zmm16, %zmm19
+vpshufhw          $0, (%rax), %zmm19
+vpshufhw          $0, %zmm16, %zmm19 {k1}
+vpshufhw          $0, (%rax), %zmm19 {k1}
+vpshufhw          $0, %zmm16, %zmm19 {z}{k1}
+vpshufhw          $0, (%rax), %zmm19 {z}{k1}
+
+vpshuflw          $0, %zmm16, %zmm19
+vpshuflw          $0, (%rax), %zmm19
+vpshuflw          $0, %zmm16, %zmm19 {k1}
+vpshuflw          $0, (%rax), %zmm19 {k1}
+vpshuflw          $0, %zmm16, %zmm19 {z}{k1}
+vpshuflw          $0, (%rax), %zmm19 {z}{k1}
+
+vpslldq           $1, %zmm16, %zmm19
+vpslldq           $1, (%rax), %zmm19
+
+vpsllvw           %zmm16, %zmm17, %zmm19
+vpsllvw           (%rax), %zmm17, %zmm19
+vpsllvw           %zmm16, %zmm17, %zmm19 {k1}
+vpsllvw           (%rax), %zmm17, %zmm19 {k1}
+vpsllvw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsllvw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsllw            $0, %zmm16, %zmm19
+vpsllw            $0, (%rax), %zmm19
+vpsllw            $0, %zmm16, %zmm19 {k1}
+vpsllw            $0, (%rax), %zmm19 {k1}
+vpsllw            $0, %zmm16, %zmm19 {z}{k1}
+vpsllw            $0, (%rax), %zmm19 {z}{k1}
+
+vpsllw            %xmm16, %zmm17, %zmm19
+vpsllw            (%rax), %zmm17, %zmm19
+vpsllw            %xmm16, %zmm17, %zmm19 {k1}
+vpsllw            (%rax), %zmm17, %zmm19 {k1}
+vpsllw            %xmm16, %zmm17, %zmm19 {z}{k1}
+vpsllw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsravw           %zmm16, %zmm17, %zmm19
+vpsravw           (%rax), %zmm17, %zmm19
+vpsravw           %zmm16, %zmm17, %zmm19 {k1}
+vpsravw           (%rax), %zmm17, %zmm19 {k1}
+vpsravw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsravw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsraw            $0, %zmm16, %zmm19
+vpsraw            $0, (%rax), %zmm19
+vpsraw            $0, %zmm16, %zmm19 {k1}
+vpsraw            $0, (%rax), %zmm19 {k1}
+vpsraw            $0, %zmm16, %zmm19 {z}{k1}
+vpsraw            $0, (%rax), %zmm19 {z}{k1}
+
+vpsraw            %xmm16, %zmm17, %zmm19
+vpsraw            (%rax), %zmm17, %zmm19
+vpsraw            %xmm16, %zmm17, %zmm19 {k1}
+vpsraw            (%rax), %zmm17, %zmm19 {k1}
+vpsraw            %xmm16, %zmm17, %zmm19 {z}{k1}
+vpsraw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsrldq           $1, %zmm16, %zmm19
+vpsrldq           $1, (%rax), %zmm19
+
+vpsrlvw           %zmm16, %zmm17, %zmm19
+vpsrlvw           (%rax), %zmm17, %zmm19
+vpsrlvw           %zmm16, %zmm17, %zmm19 {k1}
+vpsrlvw           (%rax), %zmm17, %zmm19 {k1}
+vpsrlvw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsrlvw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsrlw            $0, %zmm16, %zmm19
+vpsrlw            $0, (%rax), %zmm19
+vpsrlw            $0, %zmm16, %zmm19 {k1}
+vpsrlw            $0, (%rax), %zmm19 {k1}
+vpsrlw            $0, %zmm16, %zmm19 {z}{k1}
+vpsrlw            $0, (%rax), %zmm19 {z}{k1}
+
+vpsrlw            %xmm16, %zmm17, %zmm19
+vpsrlw            (%rax), %zmm17, %zmm19
+vpsrlw            %xmm16, %zmm17, %zmm19 {k1}
+vpsrlw            (%rax), %zmm17, %zmm19 {k1}
+vpsrlw            %xmm16, %zmm17, %zmm19 {z}{k1}
+vpsrlw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsubb            %zmm16, %zmm17, %zmm19
+vpsubb            (%rax), %zmm17, %zmm19
+vpsubb            %zmm16, %zmm17, %zmm19 {k1}
+vpsubb            (%rax), %zmm17, %zmm19 {k1}
+vpsubb            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubb            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsubsb           %zmm16, %zmm17, %zmm19
+vpsubsb           (%rax), %zmm17, %zmm19
+vpsubsb           %zmm16, %zmm17, %zmm19 {k1}
+vpsubsb           (%rax), %zmm17, %zmm19 {k1}
+vpsubsb           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubsb           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsubsw           %zmm16, %zmm17, %zmm19
+vpsubsw           (%rax), %zmm17, %zmm19
+vpsubsw           %zmm16, %zmm17, %zmm19 {k1}
+vpsubsw           (%rax), %zmm17, %zmm19 {k1}
+vpsubsw           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubsw           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsubusb          %zmm16, %zmm17, %zmm19
+vpsubusb          (%rax), %zmm17, %zmm19
+vpsubusb          %zmm16, %zmm17, %zmm19 {k1}
+vpsubusb          (%rax), %zmm17, %zmm19 {k1}
+vpsubusb          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubusb          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsubusw          %zmm16, %zmm17, %zmm19
+vpsubusw          (%rax), %zmm17, %zmm19
+vpsubusw          %zmm16, %zmm17, %zmm19 {k1}
+vpsubusw          (%rax), %zmm17, %zmm19 {k1}
+vpsubusw          %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubusw          (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpsubw            %zmm16, %zmm17, %zmm19
+vpsubw            (%rax), %zmm17, %zmm19
+vpsubw            %zmm16, %zmm17, %zmm19 {k1}
+vpsubw            (%rax), %zmm17, %zmm19 {k1}
+vpsubw            %zmm16, %zmm17, %zmm19 {z}{k1}
+vpsubw            (%rax), %zmm17, %zmm19 {z}{k1}
+
+vptestmb          %zmm0, %zmm1, %k2
+vptestmb          (%rax), %zmm1, %k2
+vptestmb          %zmm0, %zmm1, %k2 {k3}
+vptestmb          (%rax), %zmm1, %k2 {k3}
+
+vptestmw          %zmm0, %zmm1, %k2
+vptestmw          (%rax), %zmm1, %k2
+vptestmw          %zmm0, %zmm1, %k2 {k3}
+vptestmw          (%rax), %zmm1, %k2 {k3}
+
+vptestnmb         %zmm0, %zmm1, %k2
+vptestnmb         (%rax), %zmm1, %k2
+vptestnmb         %zmm0, %zmm1, %k2 {k3}
+vptestnmb         (%rax), %zmm1, %k2 {k3}
+
+vptestnmw         %zmm0, %zmm1, %k2
+vptestnmw         (%rax), %zmm1, %k2
+vptestnmw         %zmm0, %zmm1, %k2 {k3}
+vptestnmw         (%rax), %zmm1, %k2 {k3}
+
+vpunpckhbw        %zmm16, %zmm17, %zmm19
+vpunpckhbw        (%rax), %zmm17, %zmm19
+vpunpckhbw        %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhbw        (%rax), %zmm17, %zmm19 {k1}
+vpunpckhbw        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhbw        (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpckhwd        %zmm16, %zmm17, %zmm19
+vpunpckhwd        (%rax), %zmm17, %zmm19
+vpunpckhwd        %zmm16, %zmm17, %zmm19 {k1}
+vpunpckhwd        (%rax), %zmm17, %zmm19 {k1}
+vpunpckhwd        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpckhwd        (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpcklbw        %zmm16, %zmm17, %zmm19
+vpunpcklbw        (%rax), %zmm17, %zmm19
+vpunpcklbw        %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklbw        (%rax), %zmm17, %zmm19 {k1}
+vpunpcklbw        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklbw        (%rax), %zmm17, %zmm19 {z}{k1}
+
+vpunpcklwd        %zmm16, %zmm17, %zmm19
+vpunpcklwd        (%rax), %zmm17, %zmm19
+vpunpcklwd        %zmm16, %zmm17, %zmm19 {k1}
+vpunpcklwd        (%rax), %zmm17, %zmm19 {k1}
+vpunpcklwd        %zmm16, %zmm17, %zmm19 {z}{k1}
+vpunpcklwd        (%rax), %zmm17, %zmm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        kaddd  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kaddq  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandd  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandq  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandnd %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandnq %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kmovd  %k0, %k2
+# CHECK-NEXT:  1      5     0.33    *                   kmovd  (%rax), %k2
+# CHECK-NEXT:  1      1     0.50           *            kmovd  %k0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        kmovd  %eax, %k2
+# CHECK-NEXT:  1      1     0.50                        kmovd  %k0, %eax
+# CHECK-NEXT:  1      1     0.50                        kmovq  %k0, %k2
+# CHECK-NEXT:  1      5     0.33    *                   kmovq  (%rax), %k2
+# CHECK-NEXT:  1      1     0.50           *            kmovq  %k0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        kmovq  %rax, %k2
+# CHECK-NEXT:  1      1     0.50                        kmovq  %k0, %rax
+# CHECK-NEXT:  1      1     0.50                        knotd  %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        knotq  %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        kord   %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        korq   %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kortestd       %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        kortestq       %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftld       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftlq       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftrd       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftrq       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        ktestd %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        ktestq %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        kunpckdq       %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kunpckwd       %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxnord %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxnorq %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxord  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxorq  %k0, %k1, %k2
+# CHECK-NEXT:  1      4     1.00                        vdbpsadbw      $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    1.00    *                   vdbpsadbw      $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      4     1.00                        vdbpsadbw      $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.00    *                   vdbpsadbw      $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vdbpsadbw      $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.00    *                   vdbpsadbw      $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu8       %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu8       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu16      %zmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu16      %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpabsb %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpabsb %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpabsb %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpabsw %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpabsw %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpabsw %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpackssdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpacksswb      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpackusdw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpackuswb      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddsb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddsb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddsb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddsw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddsw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddsw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddusb       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddusb       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddusb       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddusw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddusw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddusw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpaddw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpaddw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpaddw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpalignr       $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpalignr       $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpalignr       $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpavgb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpavgb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpavgw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpavgw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpblendmb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpblendmb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpblendmb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpblendmb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpblendmb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpblendmb      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpblendmw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpblendmw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpblendmw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpblendmw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpblendmw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpblendmw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastb   (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %eax, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastb   (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %eax, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastb   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %eax, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastw   (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %eax, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastw   (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %eax, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastw   (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %eax, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqb       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqb       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqb       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqb       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtb       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpgtw       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpequb      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequb      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpequb      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequb      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpequw      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequw      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpequw      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequw      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vpcmpeqw       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  2      1     1.00                        vpextrb        $0, %xmm16, %eax
+# CHECK-NEXT:  2      2     1.00           *            vpextrb        $0, %xmm16, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpextrw        $0, %xmm16, %eax
+# CHECK-NEXT:  2      2     1.00           *            vpextrw        $0, %xmm16, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpinsrb        $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrb        $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  2      1     1.00                        vpinsrw        $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrw        $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  1      5     1.00                        vpermw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermi2w       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermi2w       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermi2w       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermt2w       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermt2w       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermt2w       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmaddubsw     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmaddubsw     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmaddubsw     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmaddubsw     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmaddubsw     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmaddubsw     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmaddwd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmaddwd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmaddwd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmaddwd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmaddwd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmaddwd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpmaxsb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpmaxsb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpmaxsb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpmaxsw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpmaxsw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpmaxsw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpmaxub        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpmaxub        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpmaxub        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpmaxuw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpmaxuw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpmaxuw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpminsb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpminsb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpminsb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpminsw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpminsw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpminsw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpminub        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpminub        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpminub        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpminuw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpminuw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpminuw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpmovb2m       %zmm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovw2m       %zmm0, %k0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2b       %k0, %zmm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2w       %k0, %zmm0
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbw      %ymm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbw      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovsxbw      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.50                        vpmovswb       %zmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovswb       %zmm16, (%rax)
+# CHECK-NEXT:  2      4     1.50                        vpmovswb       %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovswb       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  2      4     1.50                        vpmovuswb      %zmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovuswb      %zmm16, (%rax)
+# CHECK-NEXT:  2      4     1.50                        vpmovuswb      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovuswb      %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  2      4     1.50                        vpmovwb        %zmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovwb        %zmm16, (%rax)
+# CHECK-NEXT:  2      4     1.50                        vpmovwb        %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovwb        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbw      %ymm16, %zmm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbw      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmovzxbw      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmulhrsw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhrsw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmulhrsw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhrsw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmulhrsw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhrsw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmulhuw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhuw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmulhuw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhuw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmulhuw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhuw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmulhw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmulhw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmulhw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmulhw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpmullw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmullw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmullw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmullw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmullw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmullw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpsadbw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    1.00    *                   vpsadbw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpshufb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpshufhw       $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpshufhw       $0, (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpshufhw       $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufhw       $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpshufhw       $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpshufhw       $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpshuflw       $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpshuflw       $0, (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpshuflw       $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpshuflw       $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpshuflw       $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpshuflw       $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpslldq        $1, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpslldq        $1, (%rax), %zmm19
+# CHECK-NEXT:  2      1     1.00                        vpsllvw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpsllvw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  2      1     1.00                        vpsllvw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpsllvw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      1     1.00                        vpsllvw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpsllvw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsllw $0, (%rax), %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpsllw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpsllw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsllw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpsllw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpsllw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      1     1.00                        vpsravw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpsravw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  2      1     1.00                        vpsravw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpsravw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      1     1.00                        vpsravw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpsravw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsraw $0, (%rax), %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpsraw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpsraw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsraw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpsraw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpsraw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsrldq        $1, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsrldq        $1, (%rax), %zmm19
+# CHECK-NEXT:  2      1     1.00                        vpsrlvw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     1.00    *                   vpsrlvw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  2      1     1.00                        vpsrlvw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     1.00    *                   vpsrlvw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      1     1.00                        vpsrlvw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     1.00    *                   vpsrlvw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsrlw $0, (%rax), %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpsrlw $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpsrlw $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpsrlw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpsrlw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubsb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubsb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubsb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubsw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubsw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubsw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubusb       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubusb       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubusb       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubusw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubusw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubusw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsubw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsubw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vptestmb       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmb       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestmb       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmb       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vptestmw       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmw       (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestmw       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmw       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vptestnmb      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmb      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestnmb      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmb      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vptestnmw      %zmm0, %zmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmw      (%rax), %zmm1, %k2
+# CHECK-NEXT:  1      5     2.50                        vptestnmw      %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmw      (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhbw     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhbw     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpckhbw     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhbw     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhbw     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhbw     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhwd     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhwd     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpckhwd     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhwd     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpckhwd     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpckhwd     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpcklbw     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklbw     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpcklbw     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklbw     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpcklbw     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklbw     (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpunpcklwd     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklwd     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vpunpcklwd     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklwd     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpunpcklwd     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpunpcklwd     (%rax), %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 0.67   0.67   0.67   2.00   2.00   2.00   2.00    -     178.50 310.00 275.50 162.00 123.00 123.00 6.00   77.33  77.33  77.33  75.33  75.33  75.33  3.00   3.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kaddd   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kaddq   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandd   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandq   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandnd  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandnq  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kmovd   %k0, %k2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     kmovd   (%rax), %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -     kmovd   %k0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -     kmovd   %eax, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kmovd   %k0, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kmovq   %k0, %k2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     kmovq   (%rax), %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -     kmovq   %k0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -     kmovq   %rax, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kmovq   %k0, %rax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     knotd   %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     knotq   %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kord    %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     korq    %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kortestd        %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kortestq        %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftld        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftlq        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftrd        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftrq        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     ktestd  %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     ktestq  %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kunpckdq        %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kunpckwd        %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxnord  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxnorq  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxord   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxorq   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu8        %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu8        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu16       %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu16       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsb  %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsb  %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsb  %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsw  %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsw  %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpabsw  %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddsb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddsb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddsw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddsw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpavgb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpavgb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpavgb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpavgw  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpavgw  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpavgw  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequb       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequb       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequb       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequb       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequw       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequw       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpequw       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequw       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrb $0, %xmm16, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrb $0, %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrw $0, %xmm16, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrw $0, %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrb $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrb $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrw $0, %eax, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrw $0, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminsb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminsb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminsw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminsw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminub %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminub %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminub %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminuw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminuw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovb2m        %zmm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovw2m        %zmm0, %k0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2b        %k0, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2w        %k0, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovswb        %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovswb        %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovswb        %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovswb        %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovuswb       %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovuswb       %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovuswb       %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovuswb       %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovwb %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovwb %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovwb %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovwb %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmullw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmullw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpsadbw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsadbw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpslldq $1, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpslldq $1, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrldq $1, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrldq $1, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubsb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubsb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubsw %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubsw %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestmb        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmb        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmb        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmb        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestmw        %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmw        (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmw        %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmw        (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestnmb       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmb       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmb       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmb       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vptestnmw       %zmm0, %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmw       (%rax), %zmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmw       %zmm0, %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmw       (%rax), %zmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512bwvl.s
new file mode 100644 (file)
index 0000000..3ac35f5
--- /dev/null
@@ -0,0 +1,2958 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vdbpsadbw         $0, %xmm16, %xmm17, %xmm19
+vdbpsadbw         $0, (%rax), %xmm17, %xmm19
+vdbpsadbw         $0, %xmm16, %xmm17, %xmm19 {k1}
+vdbpsadbw         $0, (%rax), %xmm17, %xmm19 {k1}
+vdbpsadbw         $0, %xmm16, %xmm17, %xmm19 {z}{k1}
+vdbpsadbw         $0, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vdbpsadbw         $0, %ymm16, %ymm17, %ymm19
+vdbpsadbw         $0, (%rax), %ymm17, %ymm19
+vdbpsadbw         $0, %ymm16, %ymm17, %ymm19 {k1}
+vdbpsadbw         $0, (%rax), %ymm17, %ymm19 {k1}
+vdbpsadbw         $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vdbpsadbw         $0, (%rax), %ymm17, %ymm19 {z}{k1}
+
+vmovdqu8          %xmm16, %xmm19
+vmovdqu8          (%rax), %xmm19
+vmovdqu8          %xmm16, (%rax)
+vmovdqu8          %xmm16, %xmm19 {k1}
+vmovdqu8          (%rax), %xmm19 {k1}
+vmovdqu8          %xmm16, (%rax) {k1}
+vmovdqu8          %xmm16, %xmm19 {z}{k1}
+vmovdqu8          (%rax), %xmm19 {z}{k1}
+
+vmovdqu8          %ymm16, %ymm19
+vmovdqu8          (%rax), %ymm19
+vmovdqu8          %ymm16, (%rax)
+vmovdqu8          %ymm16, %ymm19 {k1}
+vmovdqu8          (%rax), %ymm19 {k1}
+vmovdqu8          %ymm16, (%rax) {k1}
+vmovdqu8          %ymm16, %ymm19 {z}{k1}
+vmovdqu8          (%rax), %ymm19 {z}{k1}
+
+vmovdqu16         %xmm16, %xmm19
+vmovdqu16         (%rax), %xmm19
+vmovdqu16         %xmm16, (%rax)
+vmovdqu16         %xmm16, %xmm19 {k1}
+vmovdqu16         (%rax), %xmm19 {k1}
+vmovdqu16         %xmm16, (%rax) {k1}
+vmovdqu16         %xmm16, %xmm19 {z}{k1}
+vmovdqu16         (%rax), %xmm19 {z}{k1}
+
+vmovdqu16         %ymm16, %ymm19
+vmovdqu16         (%rax), %ymm19
+vmovdqu16         %ymm16, (%rax)
+vmovdqu16         %ymm16, %ymm19 {k1}
+vmovdqu16         (%rax), %ymm19 {k1}
+vmovdqu16         %ymm16, (%rax) {k1}
+vmovdqu16         %ymm16, %ymm19 {z}{k1}
+vmovdqu16         (%rax), %ymm19 {z}{k1}
+
+vpabsb            %xmm16, %xmm19
+vpabsb            (%rax), %xmm19
+vpabsb            %xmm16, %xmm19 {k1}
+vpabsb            (%rax), %xmm19 {k1}
+vpabsb            %xmm16, %xmm19 {z}{k1}
+vpabsb            (%rax), %xmm19 {z}{k1}
+
+vpabsb            %ymm16, %ymm19
+vpabsb            (%rax), %ymm19
+vpabsb            %ymm16, %ymm19 {k1}
+vpabsb            (%rax), %ymm19 {k1}
+vpabsb            %ymm16, %ymm19 {z}{k1}
+vpabsb            (%rax), %ymm19 {z}{k1}
+
+vpabsw            %xmm16, %xmm19
+vpabsw            (%rax), %xmm19
+vpabsw            %xmm16, %xmm19 {k1}
+vpabsw            (%rax), %xmm19 {k1}
+vpabsw            %xmm16, %xmm19 {z}{k1}
+vpabsw            (%rax), %xmm19 {z}{k1}
+
+vpabsw            %ymm16, %ymm19
+vpabsw            (%rax), %ymm19
+vpabsw            %ymm16, %ymm19 {k1}
+vpabsw            (%rax), %ymm19 {k1}
+vpabsw            %ymm16, %ymm19 {z}{k1}
+vpabsw            (%rax), %ymm19 {z}{k1}
+
+vpackssdw         %xmm16, %xmm17, %xmm19
+vpackssdw         (%rax), %xmm17, %xmm19
+vpackssdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {k1}
+vpackssdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackssdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackssdw         %ymm16, %ymm17, %ymm19
+vpackssdw         (%rax), %ymm17, %ymm19
+vpackssdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {k1}
+vpackssdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackssdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpacksswb         %xmm16, %xmm17, %xmm19
+vpacksswb         (%rax), %xmm17, %xmm19
+vpacksswb         %xmm16, %xmm17, %xmm19 {k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {k1}
+vpacksswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpacksswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpacksswb         %ymm16, %ymm17, %ymm19
+vpacksswb         (%rax), %ymm17, %ymm19
+vpacksswb         %ymm16, %ymm17, %ymm19 {k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {k1}
+vpacksswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpacksswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackusdw         %xmm16, %xmm17, %xmm19
+vpackusdw         (%rax), %xmm17, %xmm19
+vpackusdw         %xmm16, %xmm17, %xmm19 {k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {k1}
+vpackusdw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackusdw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackusdw         %ymm16, %ymm17, %ymm19
+vpackusdw         (%rax), %ymm17, %ymm19
+vpackusdw         %ymm16, %ymm17, %ymm19 {k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {k1}
+vpackusdw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackusdw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpackuswb         %xmm16, %xmm17, %xmm19
+vpackuswb         (%rax), %xmm17, %xmm19
+vpackuswb         %xmm16, %xmm17, %xmm19 {k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {k1}
+vpackuswb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpackuswb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpackuswb         %ymm16, %ymm17, %ymm19
+vpackuswb         (%rax), %ymm17, %ymm19
+vpackuswb         %ymm16, %ymm17, %ymm19 {k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {k1}
+vpackuswb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpackuswb         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpaddb            %xmm16, %xmm17, %xmm19
+vpaddb            (%rax), %xmm17, %xmm19
+vpaddb            %xmm16, %xmm17, %xmm19 {k1}
+vpaddb            (%rax), %xmm17, %xmm19 {k1}
+vpaddb            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddb            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpaddb            %ymm16, %ymm17, %ymm19
+vpaddb            (%rax), %ymm17, %ymm19
+vpaddb            %ymm16, %ymm17, %ymm19 {k1}
+vpaddb            (%rax), %ymm17, %ymm19 {k1}
+vpaddb            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddb            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpaddsb           %xmm16, %xmm17, %xmm19
+vpaddsb           (%rax), %xmm17, %xmm19
+vpaddsb           %xmm16, %xmm17, %xmm19 {k1}
+vpaddsb           (%rax), %xmm17, %xmm19 {k1}
+vpaddsb           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddsb           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpaddsb           %ymm16, %ymm17, %ymm19
+vpaddsb           (%rax), %ymm17, %ymm19
+vpaddsb           %ymm16, %ymm17, %ymm19 {k1}
+vpaddsb           (%rax), %ymm17, %ymm19 {k1}
+vpaddsb           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddsb           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpaddsw           %xmm16, %xmm17, %xmm19
+vpaddsw           (%rax), %xmm17, %xmm19
+vpaddsw           %xmm16, %xmm17, %xmm19 {k1}
+vpaddsw           (%rax), %xmm17, %xmm19 {k1}
+vpaddsw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddsw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpaddsw           %ymm16, %ymm17, %ymm19
+vpaddsw           (%rax), %ymm17, %ymm19
+vpaddsw           %ymm16, %ymm17, %ymm19 {k1}
+vpaddsw           (%rax), %ymm17, %ymm19 {k1}
+vpaddsw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddsw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpaddusb          %xmm16, %xmm17, %xmm19
+vpaddusb          (%rax), %xmm17, %xmm19
+vpaddusb          %xmm16, %xmm17, %xmm19 {k1}
+vpaddusb          (%rax), %xmm17, %xmm19 {k1}
+vpaddusb          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddusb          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpaddusb          %ymm16, %ymm17, %ymm19
+vpaddusb          (%rax), %ymm17, %ymm19
+vpaddusb          %ymm16, %ymm17, %ymm19 {k1}
+vpaddusb          (%rax), %ymm17, %ymm19 {k1}
+vpaddusb          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddusb          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpaddusw          %xmm16, %xmm17, %xmm19
+vpaddusw          (%rax), %xmm17, %xmm19
+vpaddusw          %xmm16, %xmm17, %xmm19 {k1}
+vpaddusw          (%rax), %xmm17, %xmm19 {k1}
+vpaddusw          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddusw          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpaddusw          %ymm16, %ymm17, %ymm19
+vpaddusw          (%rax), %ymm17, %ymm19
+vpaddusw          %ymm16, %ymm17, %ymm19 {k1}
+vpaddusw          (%rax), %ymm17, %ymm19 {k1}
+vpaddusw          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddusw          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpaddw            %xmm16, %xmm17, %xmm19
+vpaddw            (%rax), %xmm17, %xmm19
+vpaddw            %xmm16, %xmm17, %xmm19 {k1}
+vpaddw            (%rax), %xmm17, %xmm19 {k1}
+vpaddw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpaddw            %ymm16, %ymm17, %ymm19
+vpaddw            (%rax), %ymm17, %ymm19
+vpaddw            %ymm16, %ymm17, %ymm19 {k1}
+vpaddw            (%rax), %ymm17, %ymm19 {k1}
+vpaddw            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpalignr          $1, %xmm16, %xmm17, %xmm19
+vpalignr          $1, (%rax), %xmm17, %xmm19
+vpalignr          $1, %xmm16, %xmm17, %xmm19 {k1}
+vpalignr          $1, (%rax), %xmm17, %xmm19 {k1}
+vpalignr          $1, %xmm16, %xmm17, %xmm19 {z}{k1}
+vpalignr          $1, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpalignr          $1, %ymm16, %ymm17, %ymm19
+vpalignr          $1, (%rax), %ymm17, %ymm19
+vpalignr          $1, %ymm16, %ymm17, %ymm19 {k1}
+vpalignr          $1, (%rax), %ymm17, %ymm19 {k1}
+vpalignr          $1, %ymm16, %ymm17, %ymm19 {z}{k1}
+vpalignr          $1, (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpavgb            %xmm16, %xmm17, %xmm19
+vpavgb            (%rax), %xmm17, %xmm19
+vpavgb            %xmm16, %xmm17, %xmm19 {k1}
+vpavgb            (%rax), %xmm17, %xmm19 {k1}
+vpavgb            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpavgb            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpavgb            %ymm16, %ymm17, %ymm19
+vpavgb            (%rax), %ymm17, %ymm19
+vpavgb            %ymm16, %ymm17, %ymm19 {k1}
+vpavgb            (%rax), %ymm17, %ymm19 {k1}
+vpavgb            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpavgb            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpavgw            %xmm16, %xmm17, %xmm19
+vpavgw            (%rax), %xmm17, %xmm19
+vpavgw            %xmm16, %xmm17, %xmm19 {k1}
+vpavgw            (%rax), %xmm17, %xmm19 {k1}
+vpavgw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpavgw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpavgw            %ymm16, %ymm17, %ymm19
+vpavgw            (%rax), %ymm17, %ymm19
+vpavgw            %ymm16, %ymm17, %ymm19 {k1}
+vpavgw            (%rax), %ymm17, %ymm19 {k1}
+vpavgw            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpavgw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpblendmb         %xmm16, %xmm17, %xmm19
+vpblendmb         (%rax), %xmm17, %xmm19
+vpblendmb         %xmm16, %xmm17, %xmm19 {k1}
+vpblendmb         (%rax), %xmm17, %xmm19 {k1}
+vpblendmb         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpblendmb         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpblendmb         %ymm16, %ymm17, %ymm19
+vpblendmb         (%rax), %ymm17, %ymm19
+vpblendmb         %ymm16, %ymm17, %ymm19 {k1}
+vpblendmb         (%rax), %ymm17, %ymm19 {k1}
+vpblendmb         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpblendmb         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpblendmw         %xmm16, %xmm17, %xmm19
+vpblendmw         (%rax), %xmm17, %xmm19
+vpblendmw         %xmm16, %xmm17, %xmm19 {k1}
+vpblendmw         (%rax), %xmm17, %xmm19 {k1}
+vpblendmw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpblendmw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpblendmw         %ymm16, %ymm17, %ymm19
+vpblendmw         (%rax), %ymm17, %ymm19
+vpblendmw         %ymm16, %ymm17, %ymm19 {k1}
+vpblendmw         (%rax), %ymm17, %ymm19 {k1}
+vpblendmw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpblendmw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpbroadcastb      %xmm16, %xmm19
+vpbroadcastb      (%rax), %xmm19
+vpbroadcastb      %eax, %xmm19
+vpbroadcastb      %xmm16, %xmm19 {k1}
+vpbroadcastb      (%rax), %xmm19 {k1}
+vpbroadcastb      %eax, %xmm19 {k1}
+vpbroadcastb      %xmm16, %xmm19 {z}{k1}
+vpbroadcastb      (%rax), %xmm19 {z}{k1}
+vpbroadcastb      %eax, %xmm19 {z}{k1}
+
+vpbroadcastb      %xmm16, %ymm19
+vpbroadcastb      (%rax), %ymm19
+vpbroadcastb      %eax, %ymm19
+vpbroadcastb      %xmm16, %ymm19 {k1}
+vpbroadcastb      (%rax), %ymm19 {k1}
+vpbroadcastb      %eax, %ymm19 {k1}
+vpbroadcastb      %xmm16, %ymm19 {z}{k1}
+vpbroadcastb      (%rax), %ymm19 {z}{k1}
+vpbroadcastb      %eax, %ymm19 {z}{k1}
+
+vpbroadcastw      %xmm16, %xmm19
+vpbroadcastw      (%rax), %xmm19
+vpbroadcastw      %eax, %xmm19
+vpbroadcastw      %xmm16, %xmm19 {k1}
+vpbroadcastw      (%rax), %xmm19 {k1}
+vpbroadcastw      %eax, %xmm19 {k1}
+vpbroadcastw      %xmm16, %xmm19 {z}{k1}
+vpbroadcastw      (%rax), %xmm19 {z}{k1}
+vpbroadcastw      %eax, %xmm19 {z}{k1}
+
+vpbroadcastw      %xmm16, %ymm19
+vpbroadcastw      (%rax), %ymm19
+vpbroadcastw      %eax, %ymm19
+vpbroadcastw      %xmm16, %ymm19 {k1}
+vpbroadcastw      (%rax), %ymm19 {k1}
+vpbroadcastw      %eax, %ymm19 {k1}
+vpbroadcastw      %xmm16, %ymm19 {z}{k1}
+vpbroadcastw      (%rax), %ymm19 {z}{k1}
+vpbroadcastw      %eax, %ymm19 {z}{k1}
+
+vpcmpb            $0, %xmm0, %xmm1, %k2
+vpcmpb            $0, (%rax), %xmm1, %k2
+vpcmpb            $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpb            $0, (%rax), %xmm1, %k2 {k3}
+
+vpcmpb            $0, %ymm0, %ymm1, %k2
+vpcmpb            $0, (%rax), %ymm1, %k2
+vpcmpb            $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpb            $0, (%rax), %ymm1, %k2 {k3}
+
+vpcmpeqb          %xmm0, %xmm1, %k2
+vpcmpeqb          (%rax), %xmm1, %k2
+vpcmpeqb          %xmm0, %xmm1, %k2 {k3}
+vpcmpeqb          (%rax), %xmm1, %k2 {k3}
+
+vpcmpeqb          %ymm0, %ymm1, %k2
+vpcmpeqb          (%rax), %ymm1, %k2
+vpcmpeqb          %ymm0, %ymm1, %k2 {k3}
+vpcmpeqb          (%rax), %ymm1, %k2 {k3}
+
+vpcmpeqw          %xmm0, %xmm1, %k2
+vpcmpeqw          (%rax), %xmm1, %k2
+vpcmpeqw          %xmm0, %xmm1, %k2 {k3}
+vpcmpeqw          (%rax), %xmm1, %k2 {k3}
+
+vpcmpeqw          %ymm0, %ymm1, %k2
+vpcmpeqw          (%rax), %ymm1, %k2
+vpcmpeqw          %ymm0, %ymm1, %k2 {k3}
+vpcmpeqw          (%rax), %ymm1, %k2 {k3}
+
+vpcmpgtb          %xmm0, %xmm1, %k2
+vpcmpgtb          (%rax), %xmm1, %k2
+vpcmpgtb          %xmm0, %xmm1, %k2 {k3}
+vpcmpgtb          (%rax), %xmm1, %k2 {k3}
+
+vpcmpgtb          %ymm0, %ymm1, %k2
+vpcmpgtb          (%rax), %ymm1, %k2
+vpcmpgtb          %ymm0, %ymm1, %k2 {k3}
+vpcmpgtb          (%rax), %ymm1, %k2 {k3}
+
+vpcmpgtw          %xmm0, %xmm1, %k2
+vpcmpgtw          (%rax), %xmm1, %k2
+vpcmpgtw          %xmm0, %xmm1, %k2 {k3}
+vpcmpgtw          (%rax), %xmm1, %k2 {k3}
+
+vpcmpgtw          %ymm0, %ymm1, %k2
+vpcmpgtw          (%rax), %ymm1, %k2
+vpcmpgtw          %ymm0, %ymm1, %k2 {k3}
+vpcmpgtw          (%rax), %ymm1, %k2 {k3}
+
+vpcmpub           $0, %xmm0, %xmm1, %k2
+vpcmpub           $0, (%rax), %xmm1, %k2
+vpcmpub           $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpub           $0, (%rax), %xmm1, %k2 {k3}
+
+vpcmpub           $0, %ymm0, %ymm1, %k2
+vpcmpub           $0, (%rax), %ymm1, %k2
+vpcmpub           $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpub           $0, (%rax), %ymm1, %k2 {k3}
+
+vpcmpuw           $0, %xmm0, %xmm1, %k2
+vpcmpuw           $0, (%rax), %xmm1, %k2
+vpcmpuw           $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpuw           $0, (%rax), %xmm1, %k2 {k3}
+
+vpcmpuw           $0, %ymm0, %ymm1, %k2
+vpcmpuw           $0, (%rax), %ymm1, %k2
+vpcmpuw           $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpuw           $0, (%rax), %ymm1, %k2 {k3}
+
+vpcmpw            $0, %xmm0, %xmm1, %k2
+vpcmpw            $0, (%rax), %xmm1, %k2
+vpcmpw            $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpw            $0, (%rax), %xmm1, %k2 {k3}
+
+vpcmpw            $0, %ymm0, %ymm1, %k2
+vpcmpw            $0, (%rax), %ymm1, %k2
+vpcmpw            $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpw            $0, (%rax), %ymm1, %k2 {k3}
+
+vpermw            %xmm16, %xmm17, %xmm19
+vpermw            (%rax), %xmm17, %xmm19
+vpermw            %xmm16, %xmm17, %xmm19 {k1}
+vpermw            (%rax), %xmm17, %xmm19 {k1}
+vpermw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpermw            %ymm16, %ymm17, %ymm19
+vpermw            (%rax), %ymm17, %ymm19
+vpermw            %ymm16, %ymm17, %ymm19 {k1}
+vpermw            (%rax), %ymm17, %ymm19 {k1}
+vpermw            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpermi2w          %xmm16, %xmm17, %xmm19
+vpermi2w          (%rax), %xmm17, %xmm19
+vpermi2w          %xmm16, %xmm17, %xmm19 {k1}
+vpermi2w          (%rax), %xmm17, %xmm19 {k1}
+vpermi2w          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermi2w          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpermi2w          %ymm16, %ymm17, %ymm19
+vpermi2w          (%rax), %ymm17, %ymm19
+vpermi2w          %ymm16, %ymm17, %ymm19 {k1}
+vpermi2w          (%rax), %ymm17, %ymm19 {k1}
+vpermi2w          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermi2w          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpermt2w          %xmm16, %xmm17, %xmm19
+vpermt2w          (%rax), %xmm17, %xmm19
+vpermt2w          %xmm16, %xmm17, %xmm19 {k1}
+vpermt2w          (%rax), %xmm17, %xmm19 {k1}
+vpermt2w          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermt2w          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpermt2w          %ymm16, %ymm17, %ymm19
+vpermt2w          (%rax), %ymm17, %ymm19
+vpermt2w          %ymm16, %ymm17, %ymm19 {k1}
+vpermt2w          (%rax), %ymm17, %ymm19 {k1}
+vpermt2w          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermt2w          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmaddubsw        %xmm16, %xmm17, %xmm19
+vpmaddubsw        (%rax), %xmm17, %xmm19
+vpmaddubsw        %xmm16, %xmm17, %xmm19 {k1}
+vpmaddubsw        (%rax), %xmm17, %xmm19 {k1}
+vpmaddubsw        %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmaddubsw        (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmaddubsw        %ymm16, %ymm17, %ymm19
+vpmaddubsw        (%rax), %ymm17, %ymm19
+vpmaddubsw        %ymm16, %ymm17, %ymm19 {k1}
+vpmaddubsw        (%rax), %ymm17, %ymm19 {k1}
+vpmaddubsw        %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmaddubsw        (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmaddwd          %xmm16, %xmm17, %xmm19
+vpmaddwd          (%rax), %xmm17, %xmm19
+vpmaddwd          %xmm16, %xmm17, %xmm19 {k1}
+vpmaddwd          (%rax), %xmm17, %xmm19 {k1}
+vpmaddwd          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmaddwd          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmaddwd          %ymm16, %ymm17, %ymm19
+vpmaddwd          (%rax), %ymm17, %ymm19
+vpmaddwd          %ymm16, %ymm17, %ymm19 {k1}
+vpmaddwd          (%rax), %ymm17, %ymm19 {k1}
+vpmaddwd          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmaddwd          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmaxsb           %xmm16, %xmm17, %xmm19
+vpmaxsb           (%rax), %xmm17, %xmm19
+vpmaxsb           %xmm16, %xmm17, %xmm19 {k1}
+vpmaxsb           (%rax), %xmm17, %xmm19 {k1}
+vpmaxsb           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmaxsb           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmaxsb           %ymm16, %ymm17, %ymm19
+vpmaxsb           (%rax), %ymm17, %ymm19
+vpmaxsb           %ymm16, %ymm17, %ymm19 {k1}
+vpmaxsb           (%rax), %ymm17, %ymm19 {k1}
+vpmaxsb           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmaxsb           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmaxsw           %xmm16, %xmm17, %xmm19
+vpmaxsw           (%rax), %xmm17, %xmm19
+vpmaxsw           %xmm16, %xmm17, %xmm19 {k1}
+vpmaxsw           (%rax), %xmm17, %xmm19 {k1}
+vpmaxsw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmaxsw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmaxsw           %ymm16, %ymm17, %ymm19
+vpmaxsw           (%rax), %ymm17, %ymm19
+vpmaxsw           %ymm16, %ymm17, %ymm19 {k1}
+vpmaxsw           (%rax), %ymm17, %ymm19 {k1}
+vpmaxsw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmaxsw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmaxub           %xmm16, %xmm17, %xmm19
+vpmaxub           (%rax), %xmm17, %xmm19
+vpmaxub           %xmm16, %xmm17, %xmm19 {k1}
+vpmaxub           (%rax), %xmm17, %xmm19 {k1}
+vpmaxub           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmaxub           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmaxub           %ymm16, %ymm17, %ymm19
+vpmaxub           (%rax), %ymm17, %ymm19
+vpmaxub           %ymm16, %ymm17, %ymm19 {k1}
+vpmaxub           (%rax), %ymm17, %ymm19 {k1}
+vpmaxub           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmaxub           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmaxuw           %xmm16, %xmm17, %xmm19
+vpmaxuw           (%rax), %xmm17, %xmm19
+vpmaxuw           %xmm16, %xmm17, %xmm19 {k1}
+vpmaxuw           (%rax), %xmm17, %xmm19 {k1}
+vpmaxuw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmaxuw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmaxuw           %ymm16, %ymm17, %ymm19
+vpmaxuw           (%rax), %ymm17, %ymm19
+vpmaxuw           %ymm16, %ymm17, %ymm19 {k1}
+vpmaxuw           (%rax), %ymm17, %ymm19 {k1}
+vpmaxuw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmaxuw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpminsb           %xmm16, %xmm17, %xmm19
+vpminsb           (%rax), %xmm17, %xmm19
+vpminsb           %xmm16, %xmm17, %xmm19 {k1}
+vpminsb           (%rax), %xmm17, %xmm19 {k1}
+vpminsb           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpminsb           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpminsb           %ymm16, %ymm17, %ymm19
+vpminsb           (%rax), %ymm17, %ymm19
+vpminsb           %ymm16, %ymm17, %ymm19 {k1}
+vpminsb           (%rax), %ymm17, %ymm19 {k1}
+vpminsb           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpminsb           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpminsw           %xmm16, %xmm17, %xmm19
+vpminsw           (%rax), %xmm17, %xmm19
+vpminsw           %xmm16, %xmm17, %xmm19 {k1}
+vpminsw           (%rax), %xmm17, %xmm19 {k1}
+vpminsw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpminsw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpminsw           %ymm16, %ymm17, %ymm19
+vpminsw           (%rax), %ymm17, %ymm19
+vpminsw           %ymm16, %ymm17, %ymm19 {k1}
+vpminsw           (%rax), %ymm17, %ymm19 {k1}
+vpminsw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpminsw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpminub           %xmm16, %xmm17, %xmm19
+vpminub           (%rax), %xmm17, %xmm19
+vpminub           %xmm16, %xmm17, %xmm19 {k1}
+vpminub           (%rax), %xmm17, %xmm19 {k1}
+vpminub           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpminub           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpminub           %ymm16, %ymm17, %ymm19
+vpminub           (%rax), %ymm17, %ymm19
+vpminub           %ymm16, %ymm17, %ymm19 {k1}
+vpminub           (%rax), %ymm17, %ymm19 {k1}
+vpminub           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpminub           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpminuw           %xmm16, %xmm17, %xmm19
+vpminuw           (%rax), %xmm17, %xmm19
+vpminuw           %xmm16, %xmm17, %xmm19 {k1}
+vpminuw           (%rax), %xmm17, %xmm19 {k1}
+vpminuw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpminuw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpminuw           %ymm16, %ymm17, %ymm19
+vpminuw           (%rax), %ymm17, %ymm19
+vpminuw           %ymm16, %ymm17, %ymm19 {k1}
+vpminuw           (%rax), %ymm17, %ymm19 {k1}
+vpminuw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpminuw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmovb2m          %xmm0, %k0
+vpmovw2m          %xmm0, %k0
+
+vpmovb2m          %ymm0, %k0
+vpmovw2m          %ymm0, %k0
+
+vpmovm2b          %k0, %xmm0
+vpmovm2w          %k0, %xmm0
+
+vpmovm2b          %k0, %ymm0
+vpmovm2w          %k0, %ymm0
+
+vpmovsxbw         %xmm16, %xmm19
+vpmovsxbw         (%rax), %xmm19
+vpmovsxbw         %xmm16, %xmm19 {k1}
+vpmovsxbw         (%rax), %xmm19 {k1}
+vpmovsxbw         %xmm16, %xmm19 {z}{k1}
+vpmovsxbw         (%rax), %xmm19 {z}{k1}
+
+vpmovsxbw         %xmm16, %ymm19
+vpmovsxbw         (%rax), %ymm19
+vpmovsxbw         %xmm16, %ymm19 {k1}
+vpmovsxbw         (%rax), %ymm19 {k1}
+vpmovsxbw         %xmm16, %ymm19 {z}{k1}
+vpmovsxbw         (%rax), %ymm19 {z}{k1}
+
+vpmovswb          %xmm16, %xmm19
+vpmovswb          %xmm16, (%rax)
+vpmovswb          %xmm16, %xmm19 {k1}
+vpmovswb          %xmm16, (%rax) {k1}
+
+vpmovswb          %ymm16, %xmm19
+vpmovswb          %ymm16, (%rax)
+vpmovswb          %ymm16, %xmm19 {k1}
+vpmovswb          %ymm16, (%rax) {k1}
+
+vpmovuswb         %xmm16, %xmm19
+vpmovuswb         %xmm16, (%rax)
+vpmovuswb         %xmm16, %xmm19 {k1}
+vpmovuswb         %xmm16, (%rax) {k1}
+
+vpmovuswb         %ymm16, %xmm19
+vpmovuswb         %ymm16, (%rax)
+vpmovuswb         %ymm16, %xmm19 {k1}
+vpmovuswb         %ymm16, (%rax) {k1}
+
+vpmovwb           %xmm16, %xmm19
+vpmovwb           %xmm16, (%rax)
+vpmovwb           %xmm16, %xmm19 {k1}
+vpmovwb           %xmm16, (%rax) {k1}
+
+vpmovwb           %ymm16, %xmm19
+vpmovwb           %ymm16, (%rax)
+vpmovwb           %ymm16, %xmm19 {k1}
+vpmovwb           %ymm16, (%rax) {k1}
+
+vpmovzxbw         %xmm16, %xmm19
+vpmovzxbw         (%rax), %xmm19
+vpmovzxbw         %xmm16, %xmm19 {k1}
+vpmovzxbw         (%rax), %xmm19 {k1}
+vpmovzxbw         %xmm16, %xmm19 {z}{k1}
+vpmovzxbw         (%rax), %xmm19 {z}{k1}
+
+vpmovzxbw         %xmm16, %ymm19
+vpmovzxbw         (%rax), %ymm19
+vpmovzxbw         %xmm16, %ymm19 {k1}
+vpmovzxbw         (%rax), %ymm19 {k1}
+vpmovzxbw         %xmm16, %ymm19 {z}{k1}
+vpmovzxbw         (%rax), %ymm19 {z}{k1}
+
+vpmulhrsw         %xmm16, %xmm17, %xmm19
+vpmulhrsw         (%rax), %xmm17, %xmm19
+vpmulhrsw         %xmm16, %xmm17, %xmm19 {k1}
+vpmulhrsw         (%rax), %xmm17, %xmm19 {k1}
+vpmulhrsw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmulhrsw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmulhrsw         %ymm16, %ymm17, %ymm19
+vpmulhrsw         (%rax), %ymm17, %ymm19
+vpmulhrsw         %ymm16, %ymm17, %ymm19 {k1}
+vpmulhrsw         (%rax), %ymm17, %ymm19 {k1}
+vpmulhrsw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmulhrsw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmulhuw          %xmm16, %xmm17, %xmm19
+vpmulhuw          (%rax), %xmm17, %xmm19
+vpmulhuw          %xmm16, %xmm17, %xmm19 {k1}
+vpmulhuw          (%rax), %xmm17, %xmm19 {k1}
+vpmulhuw          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmulhuw          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmulhuw          %ymm16, %ymm17, %ymm19
+vpmulhuw          (%rax), %ymm17, %ymm19
+vpmulhuw          %ymm16, %ymm17, %ymm19 {k1}
+vpmulhuw          (%rax), %ymm17, %ymm19 {k1}
+vpmulhuw          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmulhuw          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmulhw           %xmm16, %xmm17, %xmm19
+vpmulhw           (%rax), %xmm17, %xmm19
+vpmulhw           %xmm16, %xmm17, %xmm19 {k1}
+vpmulhw           (%rax), %xmm17, %xmm19 {k1}
+vpmulhw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmulhw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmulhw           %ymm16, %ymm17, %ymm19
+vpmulhw           (%rax), %ymm17, %ymm19
+vpmulhw           %ymm16, %ymm17, %ymm19 {k1}
+vpmulhw           (%rax), %ymm17, %ymm19 {k1}
+vpmulhw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmulhw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpmullw           %xmm16, %xmm17, %xmm19
+vpmullw           (%rax), %xmm17, %xmm19
+vpmullw           %xmm16, %xmm17, %xmm19 {k1}
+vpmullw           (%rax), %xmm17, %xmm19 {k1}
+vpmullw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmullw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmullw           %ymm16, %ymm17, %ymm19
+vpmullw           (%rax), %ymm17, %ymm19
+vpmullw           %ymm16, %ymm17, %ymm19 {k1}
+vpmullw           (%rax), %ymm17, %ymm19 {k1}
+vpmullw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmullw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsadbw           %xmm16, %xmm17, %xmm19
+vpsadbw           (%rax), %xmm17, %xmm19
+
+vpsadbw           %ymm16, %ymm17, %ymm19
+vpsadbw           (%rax), %ymm17, %ymm19
+
+vpshufb           %xmm16, %xmm17, %xmm19
+vpshufb           (%rax), %xmm17, %xmm19
+vpshufb           %xmm16, %xmm17, %xmm19 {k1}
+vpshufb           (%rax), %xmm17, %xmm19 {k1}
+vpshufb           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpshufb           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpshufb           %ymm16, %ymm17, %ymm19
+vpshufb           (%rax), %ymm17, %ymm19
+vpshufb           %ymm16, %ymm17, %ymm19 {k1}
+vpshufb           (%rax), %ymm17, %ymm19 {k1}
+vpshufb           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpshufb           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpshufhw          $0, %xmm16, %xmm19
+vpshufhw          $0, (%rax), %xmm19
+vpshufhw          $0, %xmm16, %xmm19 {k1}
+vpshufhw          $0, (%rax), %xmm19 {k1}
+vpshufhw          $0, %xmm16, %xmm19 {z}{k1}
+vpshufhw          $0, (%rax), %xmm19 {z}{k1}
+
+vpshufhw          $0, %ymm16, %ymm19
+vpshufhw          $0, (%rax), %ymm19
+vpshufhw          $0, %ymm16, %ymm19 {k1}
+vpshufhw          $0, (%rax), %ymm19 {k1}
+vpshufhw          $0, %ymm16, %ymm19 {z}{k1}
+vpshufhw          $0, (%rax), %ymm19 {z}{k1}
+
+vpshuflw          $0, %xmm16, %xmm19
+vpshuflw          $0, (%rax), %xmm19
+vpshuflw          $0, %xmm16, %xmm19 {k1}
+vpshuflw          $0, (%rax), %xmm19 {k1}
+vpshuflw          $0, %xmm16, %xmm19 {z}{k1}
+vpshuflw          $0, (%rax), %xmm19 {z}{k1}
+
+vpshuflw          $0, %ymm16, %ymm19
+vpshuflw          $0, (%rax), %ymm19
+vpshuflw          $0, %ymm16, %ymm19 {k1}
+vpshuflw          $0, (%rax), %ymm19 {k1}
+vpshuflw          $0, %ymm16, %ymm19 {z}{k1}
+vpshuflw          $0, (%rax), %ymm19 {z}{k1}
+
+vpslldq           $1, %xmm16, %xmm19
+vpslldq           $1, (%rax), %xmm19
+
+vpslldq           $1, %ymm16, %ymm19
+vpslldq           $1, (%rax), %ymm19
+
+vpsllvw           %xmm16, %xmm17, %xmm19
+vpsllvw           (%rax), %xmm17, %xmm19
+vpsllvw           %xmm16, %xmm17, %xmm19 {k1}
+vpsllvw           (%rax), %xmm17, %xmm19 {k1}
+vpsllvw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsllvw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsllvw           %ymm16, %ymm17, %ymm19
+vpsllvw           (%rax), %ymm17, %ymm19
+vpsllvw           %ymm16, %ymm17, %ymm19 {k1}
+vpsllvw           (%rax), %ymm17, %ymm19 {k1}
+vpsllvw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsllvw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsllw            $0, %xmm16, %xmm19
+vpsllw            $0, (%rax), %xmm19
+vpsllw            $0, %xmm16, %xmm19 {k1}
+vpsllw            $0, (%rax), %xmm19 {k1}
+vpsllw            $0, %xmm16, %xmm19 {z}{k1}
+vpsllw            $0, (%rax), %xmm19 {z}{k1}
+
+vpsllw            $0, %ymm16, %ymm19
+vpsllw            $0, (%rax), %ymm19
+vpsllw            $0, %ymm16, %ymm19 {k1}
+vpsllw            $0, (%rax), %ymm19 {k1}
+vpsllw            $0, %ymm16, %ymm19 {z}{k1}
+vpsllw            $0, (%rax), %ymm19 {z}{k1}
+
+vpsllw            %xmm16, %xmm17, %xmm19
+vpsllw            (%rax), %xmm17, %xmm19
+vpsllw            %xmm16, %xmm17, %xmm19 {k1}
+vpsllw            (%rax), %xmm17, %xmm19 {k1}
+vpsllw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsllw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsllw            %xmm16, %ymm17, %ymm19
+vpsllw            (%rax), %ymm17, %ymm19
+vpsllw            %xmm16, %ymm17, %ymm19 {k1}
+vpsllw            (%rax), %ymm17, %ymm19 {k1}
+vpsllw            %xmm16, %ymm17, %ymm19 {z}{k1}
+vpsllw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsravw           %xmm16, %xmm17, %xmm19
+vpsravw           (%rax), %xmm17, %xmm19
+vpsravw           %xmm16, %xmm17, %xmm19 {k1}
+vpsravw           (%rax), %xmm17, %xmm19 {k1}
+vpsravw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsravw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsravw           %ymm16, %ymm17, %ymm19
+vpsravw           (%rax), %ymm17, %ymm19
+vpsravw           %ymm16, %ymm17, %ymm19 {k1}
+vpsravw           (%rax), %ymm17, %ymm19 {k1}
+vpsravw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsravw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsraw            $0, %xmm16, %xmm19
+vpsraw            $0, (%rax), %xmm19
+vpsraw            $0, %xmm16, %xmm19 {k1}
+vpsraw            $0, (%rax), %xmm19 {k1}
+vpsraw            $0, %xmm16, %xmm19 {z}{k1}
+vpsraw            $0, (%rax), %xmm19 {z}{k1}
+
+vpsraw            $0, %ymm16, %ymm19
+vpsraw            $0, (%rax), %ymm19
+vpsraw            $0, %ymm16, %ymm19 {k1}
+vpsraw            $0, (%rax), %ymm19 {k1}
+vpsraw            $0, %ymm16, %ymm19 {z}{k1}
+vpsraw            $0, (%rax), %ymm19 {z}{k1}
+
+vpsraw            %xmm16, %xmm17, %xmm19
+vpsraw            (%rax), %xmm17, %xmm19
+vpsraw            %xmm16, %xmm17, %xmm19 {k1}
+vpsraw            (%rax), %xmm17, %xmm19 {k1}
+vpsraw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsraw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsraw            %xmm16, %ymm17, %ymm19
+vpsraw            (%rax), %ymm17, %ymm19
+vpsraw            %xmm16, %ymm17, %ymm19 {k1}
+vpsraw            (%rax), %ymm17, %ymm19 {k1}
+vpsraw            %xmm16, %ymm17, %ymm19 {z}{k1}
+vpsraw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsrldq           $1, %xmm16, %xmm19
+vpsrldq           $1, (%rax), %xmm19
+
+vpsrldq           $1, %ymm16, %ymm19
+vpsrldq           $1, (%rax), %ymm19
+
+vpsrlvw           %xmm16, %xmm17, %xmm19
+vpsrlvw           (%rax), %xmm17, %xmm19
+vpsrlvw           %xmm16, %xmm17, %xmm19 {k1}
+vpsrlvw           (%rax), %xmm17, %xmm19 {k1}
+vpsrlvw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsrlvw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsrlvw           %ymm16, %ymm17, %ymm19
+vpsrlvw           (%rax), %ymm17, %ymm19
+vpsrlvw           %ymm16, %ymm17, %ymm19 {k1}
+vpsrlvw           (%rax), %ymm17, %ymm19 {k1}
+vpsrlvw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsrlvw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsrlw            $0, %xmm16, %xmm19
+vpsrlw            $0, (%rax), %xmm19
+vpsrlw            $0, %xmm16, %xmm19 {k1}
+vpsrlw            $0, (%rax), %xmm19 {k1}
+vpsrlw            $0, %xmm16, %xmm19 {z}{k1}
+vpsrlw            $0, (%rax), %xmm19 {z}{k1}
+
+vpsrlw            $0, %ymm16, %ymm19
+vpsrlw            $0, (%rax), %ymm19
+vpsrlw            $0, %ymm16, %ymm19 {k1}
+vpsrlw            $0, (%rax), %ymm19 {k1}
+vpsrlw            $0, %ymm16, %ymm19 {z}{k1}
+vpsrlw            $0, (%rax), %ymm19 {z}{k1}
+
+vpsrlw            %xmm16, %xmm17, %xmm19
+vpsrlw            (%rax), %xmm17, %xmm19
+vpsrlw            %xmm16, %xmm17, %xmm19 {k1}
+vpsrlw            (%rax), %xmm17, %xmm19 {k1}
+vpsrlw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsrlw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsrlw            %xmm16, %ymm17, %ymm19
+vpsrlw            (%rax), %ymm17, %ymm19
+vpsrlw            %xmm16, %ymm17, %ymm19 {k1}
+vpsrlw            (%rax), %ymm17, %ymm19 {k1}
+vpsrlw            %xmm16, %ymm17, %ymm19 {z}{k1}
+vpsrlw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsubb            %xmm16, %xmm17, %xmm19
+vpsubb            (%rax), %xmm17, %xmm19
+vpsubb            %xmm16, %xmm17, %xmm19 {k1}
+vpsubb            (%rax), %xmm17, %xmm19 {k1}
+vpsubb            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubb            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubb            %ymm16, %ymm17, %ymm19
+vpsubb            (%rax), %ymm17, %ymm19
+vpsubb            %ymm16, %ymm17, %ymm19 {k1}
+vpsubb            (%rax), %ymm17, %ymm19 {k1}
+vpsubb            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubb            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsubsb           %xmm16, %xmm17, %xmm19
+vpsubsb           (%rax), %xmm17, %xmm19
+vpsubsb           %xmm16, %xmm17, %xmm19 {k1}
+vpsubsb           (%rax), %xmm17, %xmm19 {k1}
+vpsubsb           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubsb           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubsb           %ymm16, %ymm17, %ymm19
+vpsubsb           (%rax), %ymm17, %ymm19
+vpsubsb           %ymm16, %ymm17, %ymm19 {k1}
+vpsubsb           (%rax), %ymm17, %ymm19 {k1}
+vpsubsb           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubsb           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsubsw           %xmm16, %xmm17, %xmm19
+vpsubsw           (%rax), %xmm17, %xmm19
+vpsubsw           %xmm16, %xmm17, %xmm19 {k1}
+vpsubsw           (%rax), %xmm17, %xmm19 {k1}
+vpsubsw           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubsw           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubsw           %ymm16, %ymm17, %ymm19
+vpsubsw           (%rax), %ymm17, %ymm19
+vpsubsw           %ymm16, %ymm17, %ymm19 {k1}
+vpsubsw           (%rax), %ymm17, %ymm19 {k1}
+vpsubsw           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubsw           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsubusb          %xmm16, %xmm17, %xmm19
+vpsubusb          (%rax), %xmm17, %xmm19
+vpsubusb          %xmm16, %xmm17, %xmm19 {k1}
+vpsubusb          (%rax), %xmm17, %xmm19 {k1}
+vpsubusb          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubusb          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubusb          %ymm16, %ymm17, %ymm19
+vpsubusb          (%rax), %ymm17, %ymm19
+vpsubusb          %ymm16, %ymm17, %ymm19 {k1}
+vpsubusb          (%rax), %ymm17, %ymm19 {k1}
+vpsubusb          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubusb          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsubusw          %xmm16, %xmm17, %xmm19
+vpsubusw          (%rax), %xmm17, %xmm19
+vpsubusw          %xmm16, %xmm17, %xmm19 {k1}
+vpsubusw          (%rax), %xmm17, %xmm19 {k1}
+vpsubusw          %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubusw          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubusw          %ymm16, %ymm17, %ymm19
+vpsubusw          (%rax), %ymm17, %ymm19
+vpsubusw          %ymm16, %ymm17, %ymm19 {k1}
+vpsubusw          (%rax), %ymm17, %ymm19 {k1}
+vpsubusw          %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubusw          (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpsubw            %xmm16, %xmm17, %xmm19
+vpsubw            (%rax), %xmm17, %xmm19
+vpsubw            %xmm16, %xmm17, %xmm19 {k1}
+vpsubw            (%rax), %xmm17, %xmm19 {k1}
+vpsubw            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubw            (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpsubw            %ymm16, %ymm17, %ymm19
+vpsubw            (%rax), %ymm17, %ymm19
+vpsubw            %ymm16, %ymm17, %ymm19 {k1}
+vpsubw            (%rax), %ymm17, %ymm19 {k1}
+vpsubw            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubw            (%rax), %ymm17, %ymm19 {z}{k1}
+
+vptestmb          %xmm0, %xmm1, %k2
+vptestmb          (%rax), %xmm1, %k2
+vptestmb          %xmm0, %xmm1, %k2 {k3}
+vptestmb          (%rax), %xmm1, %k2 {k3}
+
+vptestmb          %ymm0, %ymm1, %k2
+vptestmb          (%rax), %ymm1, %k2
+vptestmb          %ymm0, %ymm1, %k2 {k3}
+vptestmb          (%rax), %ymm1, %k2 {k3}
+
+vptestmw          %xmm0, %xmm1, %k2
+vptestmw          (%rax), %xmm1, %k2
+vptestmw          %xmm0, %xmm1, %k2 {k3}
+vptestmw          (%rax), %xmm1, %k2 {k3}
+
+vptestmw          %ymm0, %ymm1, %k2
+vptestmw          (%rax), %ymm1, %k2
+vptestmw          %ymm0, %ymm1, %k2 {k3}
+vptestmw          (%rax), %ymm1, %k2 {k3}
+
+vptestnmb         %xmm0, %xmm1, %k2
+vptestnmb         (%rax), %xmm1, %k2
+vptestnmb         %xmm0, %xmm1, %k2 {k3}
+vptestnmb         (%rax), %xmm1, %k2 {k3}
+
+vptestnmb         %ymm0, %ymm1, %k2
+vptestnmb         (%rax), %ymm1, %k2
+vptestnmb         %ymm0, %ymm1, %k2 {k3}
+vptestnmb         (%rax), %ymm1, %k2 {k3}
+
+vptestnmw         %xmm0, %xmm1, %k2
+vptestnmw         (%rax), %xmm1, %k2
+vptestnmw         %xmm0, %xmm1, %k2 {k3}
+vptestnmw         (%rax), %xmm1, %k2 {k3}
+
+vptestnmw         %ymm0, %ymm1, %k2
+vptestnmw         (%rax), %ymm1, %k2
+vptestnmw         %ymm0, %ymm1, %k2 {k3}
+vptestnmw         (%rax), %ymm1, %k2 {k3}
+
+vpunpckhbw         %xmm16, %xmm17, %xmm19
+vpunpckhbw         (%rax), %xmm17, %xmm19
+vpunpckhbw         %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhbw         (%rax), %xmm17, %xmm19 {k1}
+vpunpckhbw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhbw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpckhbw         %ymm16, %ymm17, %ymm19
+vpunpckhbw         (%rax), %ymm17, %ymm19
+vpunpckhbw         %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhbw         (%rax), %ymm17, %ymm19 {k1}
+vpunpckhbw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhbw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpckhwd         %xmm16, %xmm17, %xmm19
+vpunpckhwd         (%rax), %xmm17, %xmm19
+vpunpckhwd         %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhwd         (%rax), %xmm17, %xmm19 {k1}
+vpunpckhwd         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhwd         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpckhwd         %ymm16, %ymm17, %ymm19
+vpunpckhwd         (%rax), %ymm17, %ymm19
+vpunpckhwd         %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhwd         (%rax), %ymm17, %ymm19 {k1}
+vpunpckhwd         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhwd         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpcklbw         %xmm16, %xmm17, %xmm19
+vpunpcklbw         (%rax), %xmm17, %xmm19
+vpunpcklbw         %xmm16, %xmm17, %xmm19 {k1}
+vpunpcklbw         (%rax), %xmm17, %xmm19 {k1}
+vpunpcklbw         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpcklbw         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpcklbw         %ymm16, %ymm17, %ymm19
+vpunpcklbw         (%rax), %ymm17, %ymm19
+vpunpcklbw         %ymm16, %ymm17, %ymm19 {k1}
+vpunpcklbw         (%rax), %ymm17, %ymm19 {k1}
+vpunpcklbw         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpcklbw         (%rax), %ymm17, %ymm19 {z}{k1}
+
+vpunpcklwd         %xmm16, %xmm17, %xmm19
+vpunpcklwd         (%rax), %xmm17, %xmm19
+vpunpcklwd         %xmm16, %xmm17, %xmm19 {k1}
+vpunpcklwd         (%rax), %xmm17, %xmm19 {k1}
+vpunpcklwd         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpcklwd         (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpunpcklwd         %ymm16, %ymm17, %ymm19
+vpunpcklwd         (%rax), %ymm17, %ymm19
+vpunpcklwd         %ymm16, %ymm17, %ymm19 {k1}
+vpunpcklwd         (%rax), %ymm17, %ymm19 {k1}
+vpunpcklwd         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpcklwd         (%rax), %ymm17, %ymm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        vdbpsadbw      $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vdbpsadbw      $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vdbpsadbw      $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vdbpsadbw      $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vdbpsadbw      $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vdbpsadbw      $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vdbpsadbw      $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vdbpsadbw      $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vdbpsadbw      $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vdbpsadbw      $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vdbpsadbw      $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vdbpsadbw      $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu8       %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu8       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu8       %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu8       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu8       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu8       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu16      %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu16      %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu16      %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu16      %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu16      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu16      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpabsb %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpabsb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpabsb %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpabsb %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpabsb %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpabsb %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsb (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpabsw %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpabsw %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpabsw %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpabsw %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpabsw %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpabsw %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpabsw (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackssdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpackssdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpacksswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpacksswb      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackusdw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpackusdw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpackuswb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpackuswb      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpaddb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpaddsb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpaddsb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpaddsb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddsb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddsb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddsb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpaddsw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpaddsw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpaddsw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddsw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddsw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddsw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddsw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpaddusb       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpaddusb       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpaddusb       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddusb       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddusb       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddusb       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusb       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpaddusw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpaddusw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpaddusw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddusw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddusw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddusw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddusw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpaddw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpalignr       $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpalignr       $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpavgb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpavgb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpavgb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpavgb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpavgw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpavgw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpavgw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpavgw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpavgw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpblendmb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpblendmb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpblendmb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpblendmb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpblendmb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpblendmb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmb      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpblendmw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpblendmw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpblendmw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpblendmw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpblendmw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpblendmw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpblendmw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastb   (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %eax, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastb   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %eax, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastb   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastb   %eax, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastb   (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %eax, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastb   (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %eax, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastb   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastb   %eax, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastw   (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %eax, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastw   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %eax, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastw   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastw   %eax, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastw   (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %eax, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastw   (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %eax, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastw   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastw   %eax, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqb       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqb       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtb       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtb       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtw       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtw       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequb      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequb      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequb      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequb      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequb      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequb      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequb      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequb      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequw      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequw      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequw      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequw      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequw      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequw      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequw      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequw      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqw       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqw       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      2     1.00                        vpermw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpermw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpermw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpermi2w       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vpermi2w       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpermi2w       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermi2w       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermi2w       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermi2w       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2w       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpermt2w       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vpermt2w       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpermt2w       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermt2w       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermt2w       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermt2w       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2w       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmaddubsw     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddubsw     (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmaddwd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmaddwd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxsw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxsw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxub        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxub        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmaxuw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmaxuw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminsb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminsw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminsw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminub        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpminub        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminub        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminub        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpminub        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminub        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminub        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpminuw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpminuw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpmovb2m       %xmm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovw2m       %xmm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovb2m       %ymm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovw2m       %ymm0, %k0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2b       %k0, %xmm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2w       %k0, %xmm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2b       %k0, %ymm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2w       %k0, %ymm0
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbw      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbw      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbw      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbw      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbw      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovswb       %xmm16, %xmm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovswb       %xmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vpmovswb       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovswb       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  2      4     1.50                        vpmovswb       %ymm16, %xmm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovswb       %ymm16, (%rax)
+# CHECK-NEXT:  2      4     1.50                        vpmovswb       %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovswb       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovuswb      %xmm16, %xmm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovuswb      %xmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vpmovuswb      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovuswb      %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  2      4     1.50                        vpmovuswb      %ymm16, %xmm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovuswb      %ymm16, (%rax)
+# CHECK-NEXT:  2      4     1.50                        vpmovuswb      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovuswb      %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovwb        %xmm16, %xmm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovwb        %xmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vpmovwb        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovwb        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  2      4     1.50                        vpmovwb        %ymm16, %xmm19
+# CHECK-NEXT:  1      11    1.50           *            vpmovwb        %ymm16, (%rax)
+# CHECK-NEXT:  2      4     1.50                        vpmovwb        %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    1.50           *            vpmovwb        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbw      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbw      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbw      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbw      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbw      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulhrsw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhrsw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulhuw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhuw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulhw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulhw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmullw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpsadbw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpsadbw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpsadbw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpsadbw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshufb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $0, (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $0, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpshufhw       $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufhw       $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $0, (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $0, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpshuflw       $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshuflw       $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpslldq        $1, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpslldq        $1, (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpslldq        $1, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpslldq        $1, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsllvw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpsllvw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsllvw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsllvw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsllvw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsllvw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllvw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw $0, (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw $0, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsllw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      9     1.00    *                   vpsllw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vpsllw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vpsllw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsllw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsravw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsravw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpsravw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsravw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsravw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsravw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsravw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsravw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsravw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsravw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsravw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsravw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw $0, (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw $0, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsraw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      9     1.00    *                   vpsraw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vpsraw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vpsraw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsraw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsrldq        $1, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrldq        $1, (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsrldq        $1, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrldq        $1, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsrlvw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpsrlvw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsrlvw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsrlvw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsrlvw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsrlvw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlvw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw $0, (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw $0, (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpsrlw $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      9     1.00    *                   vpsrlw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vpsrlw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsubsb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsubsb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsubsb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubsb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubsb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubsb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsubsw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsubsw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsubsw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubsw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubsw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubsw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubsw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsubusb       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsubusb       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsubusb       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubusb       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubusb       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubusb       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusb       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpsubusw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpsubusw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpsubusw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubusw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubusw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubusw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubusw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vptestmb       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmb       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestmb       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmb       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestmb       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmb       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestmb       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmb       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vptestmw       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmw       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestmw       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmw       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestmw       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmw       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestmw       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmw       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vptestnmb      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmb      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestnmb      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmb      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestnmb      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmb      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestnmb      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmb      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vptestnmw      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmw      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestnmw      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmw      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestnmw      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmw      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestnmw      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmw      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhbw     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhbw     (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhwd     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhwd     (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklbw     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklbw     (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpcklwd     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpcklwd     (%rax), %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     4.00   4.00   4.00   4.00    -     233.00 423.50 312.50 140.00 226.00 226.00 8.00   150.67 150.67 150.67 148.00 148.00 148.00 4.00   4.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vdbpsadbw       $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdbpsadbw       $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu8        %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu8        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu8        %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu8        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu8        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu8        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu16       %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu16       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu16       %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu16       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu16       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu16       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsb  %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsb  %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsb  %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpabsb  %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpabsb  %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpabsb  %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsb  (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsw  %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsw  %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpabsw  %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpabsw  %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpabsw  %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpabsw  %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpabsw  (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackssdw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackssdw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpacksswb       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpacksswb       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackusdw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackusdw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpackuswb       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpackuswb       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddb  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddsb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddsb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddsw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddsw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddusb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddusw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddusw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddw  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpalignr        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpalignr        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpavgb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpavgb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpavgb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgb  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpavgw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpavgw  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpavgw  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpavgw  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpavgw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmb       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmb       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpblendmw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpblendmw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastb    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastb    %eax, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastw    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastw    %eax, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqb        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqb        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtb        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtw        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequb       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequb       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequb       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequb       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequb       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequb       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequb       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequb       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequw       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequw       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequw       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequw       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequw       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequw       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequw       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequw       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqw        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqw        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermw  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2w        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2w        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2w        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2w        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddubsw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddubsw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmaddwd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaddwd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminsw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminub %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminub (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpminuw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovb2m        %xmm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovw2m        %xmm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovb2m        %ymm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovw2m        %ymm0, %k0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2b        %k0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2w        %k0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2b        %k0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2w        %k0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbw       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbw       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovswb        %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovswb        %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovswb        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovswb        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovswb        %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovswb        %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovswb        %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovswb        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovuswb       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovuswb       %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovuswb       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovuswb       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovuswb       %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovuswb       %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovuswb       %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovuswb       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovwb %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovwb %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovwb %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovwb %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovwb %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovwb %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -     vpmovwb %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovwb %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbw       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbw       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhrsw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhrsw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhuw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhuw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsadbw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsadbw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpsadbw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsadbw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufhw        $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufhw        $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshuflw        $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshuflw        $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpslldq $1, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpslldq $1, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpslldq $1, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpslldq $1, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsllw  %xmm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsllw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsravw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsraw  %xmm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsraw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrldq $1, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrldq $1, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrldq $1, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrldq $1, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsrlw  %xmm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsrlw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubb  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubsb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubsb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsw %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsw %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubsw %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubsw %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubusb        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusb        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubusw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubusw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubw  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestmb        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmb        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmb        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmb        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmb        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmb        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmb        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmb        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestmw        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmw        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmw        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmw        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmw        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmw        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmw        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmw        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestnmb       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmb       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmb       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmb       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmb       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmb       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmb       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmb       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestnmw       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmw       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmw       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmw       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmw       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmw       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmw       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmw       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhbw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhbw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhwd      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhwd      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklbw      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklbw      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpcklwd      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpcklwd      (%rax), %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512cd.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512cd.s
new file mode 100644 (file)
index 0000000..9659063
--- /dev/null
@@ -0,0 +1,164 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpbroadcastmb2q   %k0, %zmm16
+
+vpbroadcastmw2d   %k0, %zmm16
+
+vpconflictd       %zmm16, %zmm19
+vpconflictd       (%rax), %zmm19
+vpconflictd       (%rax){1to16}, %zmm19
+vpconflictd       %zmm16, %zmm19 {k1}
+vpconflictd       (%rax), %zmm19 {k1}
+vpconflictd       (%rax){1to16}, %zmm19 {k1}
+vpconflictd       %zmm16, %zmm19 {z}{k1}
+vpconflictd       (%rax), %zmm19 {z}{k1}
+vpconflictd       (%rax){1to16}, %zmm19 {z}{k1}
+
+vpconflictq       %zmm16, %zmm19
+vpconflictq       (%rax), %zmm19
+vpconflictq       (%rax){1to8}, %zmm19
+vpconflictq       %zmm16, %zmm19 {k1}
+vpconflictq       (%rax), %zmm19 {k1}
+vpconflictq       (%rax){1to8}, %zmm19 {k1}
+vpconflictq       %zmm16, %zmm19 {z}{k1}
+vpconflictq       (%rax), %zmm19 {z}{k1}
+vpconflictq       (%rax){1to8}, %zmm19 {z}{k1}
+
+vplzcntd          %zmm16, %zmm19
+vplzcntd          (%rax), %zmm19
+vplzcntd          (%rax){1to16}, %zmm19
+vplzcntd          %zmm16, %zmm19 {k1}
+vplzcntd          (%rax), %zmm19 {k1}
+vplzcntd          (%rax){1to16}, %zmm19 {k1}
+vplzcntd          %zmm16, %zmm19 {z}{k1}
+vplzcntd          (%rax), %zmm19 {z}{k1}
+vplzcntd          (%rax){1to16}, %zmm19 {z}{k1}
+
+vplzcntq          %zmm16, %zmm19
+vplzcntq          (%rax), %zmm19
+vplzcntq          (%rax){1to8}, %zmm19
+vplzcntq          %zmm16, %zmm19 {k1}
+vplzcntq          (%rax), %zmm19 {k1}
+vplzcntq          (%rax){1to8}, %zmm19 {k1}
+vplzcntq          %zmm16, %zmm19 {z}{k1}
+vplzcntq          (%rax), %zmm19 {z}{k1}
+vplzcntq          (%rax){1to8}, %zmm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastmb2q        %k0, %zmm16
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastmw2d        %k0, %zmm16
+# CHECK-NEXT:  4      6     1.50                        vpconflictd    %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to16}, %zmm19
+# CHECK-NEXT:  4      6     1.50                        vpconflictd    %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  4      6     1.50                        vpconflictd    %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  4      6     1.50                        vpconflictq    %zmm16, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to8}, %zmm19
+# CHECK-NEXT:  4      6     1.50                        vpconflictq    %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  4      6     1.50                        vpconflictq    %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %zmm16, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntd       (%rax), %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntd       (%rax){1to16}, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntd       (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntd       (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %zmm16, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntq       (%rax), %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntq       (%rax){1to8}, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntq       (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vplzcntq       (%rax){1to8}, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     30.00  25.00  19.00  24.00  12.00  12.00   -     8.00   8.00   8.00   8.00   8.00   8.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastmb2q %k0, %zmm16
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastmw2d %k0, %zmm16
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to8}, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512cdvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512cdvl.s
new file mode 100644 (file)
index 0000000..800716d
--- /dev/null
@@ -0,0 +1,282 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpbroadcastmb2q   %k0, %xmm16
+vpbroadcastmb2q   %k0, %ymm16
+
+vpbroadcastmw2d   %k0, %xmm16
+vpbroadcastmw2d   %k0, %ymm16
+
+vpconflictd       %xmm16, %xmm19
+vpconflictd       (%rax), %xmm19
+vpconflictd       (%rax){1to4}, %xmm19
+vpconflictd       %xmm16, %xmm19 {k1}
+vpconflictd       (%rax), %xmm19 {k1}
+vpconflictd       (%rax){1to4}, %xmm19 {k1}
+vpconflictd       %xmm16, %xmm19 {z}{k1}
+vpconflictd       (%rax), %xmm19 {z}{k1}
+vpconflictd       (%rax){1to4}, %xmm19 {z}{k1}
+
+vpconflictd       %ymm16, %ymm19
+vpconflictd       (%rax), %ymm19
+vpconflictd       (%rax){1to8}, %ymm19
+vpconflictd       %ymm16, %ymm19 {k1}
+vpconflictd       (%rax), %ymm19 {k1}
+vpconflictd       (%rax){1to8}, %ymm19 {k1}
+vpconflictd       %ymm16, %ymm19 {z}{k1}
+vpconflictd       (%rax), %ymm19 {z}{k1}
+vpconflictd       (%rax){1to8}, %ymm19 {z}{k1}
+
+vpconflictq       %xmm16, %xmm19
+vpconflictq       (%rax), %xmm19
+vpconflictq       (%rax){1to2}, %xmm19
+vpconflictq       %xmm16, %xmm19 {k1}
+vpconflictq       (%rax), %xmm19 {k1}
+vpconflictq       (%rax){1to2}, %xmm19 {k1}
+vpconflictq       %xmm16, %xmm19 {z}{k1}
+vpconflictq       (%rax), %xmm19 {z}{k1}
+vpconflictq       (%rax){1to2}, %xmm19 {z}{k1}
+
+vpconflictq       %ymm16, %ymm19
+vpconflictq       (%rax), %ymm19
+vpconflictq       (%rax){1to4}, %ymm19
+vpconflictq       %ymm16, %ymm19 {k1}
+vpconflictq       (%rax), %ymm19 {k1}
+vpconflictq       (%rax){1to4}, %ymm19 {k1}
+vpconflictq       %ymm16, %ymm19 {z}{k1}
+vpconflictq       (%rax), %ymm19 {z}{k1}
+vpconflictq       (%rax){1to4}, %ymm19 {z}{k1}
+
+vplzcntd          %xmm16, %xmm19
+vplzcntd          (%rax), %xmm19
+vplzcntd          (%rax){1to4}, %xmm19
+vplzcntd          %xmm16, %xmm19 {k1}
+vplzcntd          (%rax), %xmm19 {k1}
+vplzcntd          (%rax){1to4}, %xmm19 {k1}
+vplzcntd          %xmm16, %xmm19 {z}{k1}
+vplzcntd          (%rax), %xmm19 {z}{k1}
+vplzcntd          (%rax){1to4}, %xmm19 {z}{k1}
+
+vplzcntd          %ymm16, %ymm19
+vplzcntd          (%rax), %ymm19
+vplzcntd          (%rax){1to8}, %ymm19
+vplzcntd          %ymm16, %ymm19 {k1}
+vplzcntd          (%rax), %ymm19 {k1}
+vplzcntd          (%rax){1to8}, %ymm19 {k1}
+vplzcntd          %ymm16, %ymm19 {z}{k1}
+vplzcntd          (%rax), %ymm19 {z}{k1}
+vplzcntd          (%rax){1to8}, %ymm19 {z}{k1}
+
+vplzcntq          %xmm16, %xmm19
+vplzcntq          (%rax), %xmm19
+vplzcntq          (%rax){1to2}, %xmm19
+vplzcntq          %xmm16, %xmm19 {k1}
+vplzcntq          (%rax), %xmm19 {k1}
+vplzcntq          (%rax){1to2}, %xmm19 {k1}
+vplzcntq          %xmm16, %xmm19 {z}{k1}
+vplzcntq          (%rax), %xmm19 {z}{k1}
+vplzcntq          (%rax){1to2}, %xmm19 {z}{k1}
+
+vplzcntq          %ymm16, %ymm19
+vplzcntq          (%rax), %ymm19
+vplzcntq          (%rax){1to4}, %ymm19
+vplzcntq          %ymm16, %ymm19 {k1}
+vplzcntq          (%rax), %ymm19 {k1}
+vplzcntq          (%rax){1to4}, %ymm19 {k1}
+vplzcntq          %ymm16, %ymm19 {z}{k1}
+vplzcntq          (%rax), %ymm19 {z}{k1}
+vplzcntq          (%rax){1to4}, %ymm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastmb2q        %k0, %xmm16
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastmb2q        %k0, %ymm16
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastmw2d        %k0, %xmm16
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastmw2d        %k0, %ymm16
+# CHECK-NEXT:  1      2     1.00                        vpconflictd    %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpconflictd    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpconflictd    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  4      6     1.50                        vpconflictd    %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to8}, %ymm19
+# CHECK-NEXT:  4      6     1.50                        vpconflictd    %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  4      6     1.50                        vpconflictd    %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictd    (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpconflictq    %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpconflictq    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpconflictq    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  4      6     1.50                        vpconflictq    %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to4}, %ymm19
+# CHECK-NEXT:  4      6     1.50                        vpconflictq    %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  4      6     1.50                        vpconflictq    %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpconflictq    (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %ymm16, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax), %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vplzcntd       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntd       (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %ymm16, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax), %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vplzcntq       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vplzcntq       (%rax){1to4}, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     42.00  38.00  20.00  24.00  24.00  24.00   -     16.00  16.00  16.00  16.00  16.00  16.00   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastmb2q %k0, %xmm16
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastmb2q %k0, %ymm16
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastmw2d %k0, %xmm16
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastmw2d %k0, %ymm16
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictd     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictd     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   2.00   2.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vpconflictq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpconflictq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntd        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntd        (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vplzcntq        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vplzcntq        (%rax){1to4}, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512dq.s
new file mode 100644 (file)
index 0000000..6eee1e4
--- /dev/null
@@ -0,0 +1,1277 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+kaddb             %k0, %k1, %k2
+kaddw             %k0, %k1, %k2
+kandb             %k0, %k1, %k2
+kandnb            %k0, %k1, %k2
+
+kmovb             %k0, %k2
+kmovb             (%rax), %k2
+kmovb             %k0, (%rax)
+kmovb             %eax, %k2
+kmovb             %k0, %eax
+
+knotb             %k0, %k2
+
+korb              %k0, %k1, %k2
+
+kortestb          %k0, %k2
+
+kshiftlb          $2, %k1, %k2
+kshiftrb          $2, %k1, %k2
+
+ktestb            %k0, %k2
+ktestw           %k0, %k2
+
+kxnorb            %k0, %k1, %k2
+kxorb             %k0, %k1, %k2
+
+vandnpd           %zmm16, %zmm17, %zmm19
+vandnpd           (%rax), %zmm17, %zmm19
+vandnpd           (%rax){1to8}, %zmm17, %zmm19
+vandnpd           %zmm16, %zmm17, %zmm19 {k1}
+vandnpd           (%rax), %zmm17, %zmm19 {k1}
+vandnpd           (%rax){1to8}, %zmm17, %zmm19 {k1}
+vandnpd           %zmm16, %zmm17, %zmm19 {z}{k1}
+vandnpd           (%rax), %zmm17, %zmm19 {z}{k1}
+vandnpd           (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vandnps           %zmm16, %zmm17, %zmm19
+vandnps           (%rax), %zmm17, %zmm19
+vandnps           (%rax){1to16}, %zmm17, %zmm19
+vandnps           %zmm16, %zmm17, %zmm19 {k1}
+vandnps           (%rax), %zmm17, %zmm19 {k1}
+vandnps           (%rax){1to16}, %zmm17, %zmm19 {k1}
+vandnps           %zmm16, %zmm17, %zmm19 {z}{k1}
+vandnps           (%rax), %zmm17, %zmm19 {z}{k1}
+vandnps           (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vandpd            %zmm16, %zmm17, %zmm19
+vandpd            (%rax), %zmm17, %zmm19
+vandpd            (%rax){1to8}, %zmm17, %zmm19
+vandpd            %zmm16, %zmm17, %zmm19 {k1}
+vandpd            (%rax), %zmm17, %zmm19 {k1}
+vandpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vandpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vandpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vandpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vandps            %zmm16, %zmm17, %zmm19
+vandps            (%rax), %zmm17, %zmm19
+vandps            (%rax){1to16}, %zmm17, %zmm19
+vandps            %zmm16, %zmm17, %zmm19 {k1}
+vandps            (%rax), %zmm17, %zmm19 {k1}
+vandps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vandps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vandps            (%rax), %zmm17, %zmm19 {z}{k1}
+vandps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vbroadcastf32x2   %xmm16, %zmm19
+vbroadcastf32x2   (%rax), %zmm19
+vbroadcastf32x2   %xmm16, %zmm19 {k1}
+vbroadcastf32x2   (%rax), %zmm19 {k1}
+vbroadcastf32x2   %xmm16, %zmm19 {z}{k1}
+vbroadcastf32x2   (%rax), %zmm19 {z}{k1}
+
+vbroadcastf32x8   (%rax), %zmm19
+vbroadcastf32x8   (%rax), %zmm19 {k1}
+vbroadcastf32x8   (%rax), %zmm19 {z}{k1}
+
+vbroadcastf64x2   (%rax), %zmm19
+vbroadcastf64x2   (%rax), %zmm19 {k1}
+vbroadcastf64x2   (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x2   %xmm16, %zmm19
+vbroadcasti32x2   (%rax), %zmm19
+vbroadcasti32x2   %xmm16, %zmm19 {k1}
+vbroadcasti32x2   (%rax), %zmm19 {k1}
+vbroadcasti32x2   %xmm16, %zmm19 {z}{k1}
+vbroadcasti32x2   (%rax), %zmm19 {z}{k1}
+
+vbroadcasti32x8   (%rax), %zmm19
+vbroadcasti32x8   (%rax), %zmm19 {k1}
+vbroadcasti32x8   (%rax), %zmm19 {z}{k1}
+
+vbroadcasti64x2   (%rax), %zmm19
+vbroadcasti64x2   (%rax), %zmm19 {k1}
+vbroadcasti64x2   (%rax), %zmm19 {z}{k1}
+
+vcvtpd2qq         %zmm16, %zmm19
+vcvtpd2qq         (%rax), %zmm19
+vcvtpd2qq         (%rax){1to8}, %zmm19
+vcvtpd2qq         %zmm16, %zmm19 {k1}
+vcvtpd2qq         (%rax), %zmm19 {k1}
+vcvtpd2qq         (%rax){1to8}, %zmm19 {k1}
+vcvtpd2qq         %zmm16, %zmm19 {z}{k1}
+vcvtpd2qq         (%rax), %zmm19 {z}{k1}
+vcvtpd2qq         (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtpd2uqq        %zmm16, %zmm19
+vcvtpd2uqq        (%rax), %zmm19
+vcvtpd2uqq        (%rax){1to8}, %zmm19
+vcvtpd2uqq        %zmm16, %zmm19 {k1}
+vcvtpd2uqq        (%rax), %zmm19 {k1}
+vcvtpd2uqq        (%rax){1to8}, %zmm19 {k1}
+vcvtpd2uqq        %zmm16, %zmm19 {z}{k1}
+vcvtpd2uqq        (%rax), %zmm19 {z}{k1}
+vcvtpd2uqq        (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtps2qq         %ymm16, %zmm19
+vcvtps2qq         (%rax), %zmm19
+vcvtps2qq         (%rax){1to8}, %zmm19
+vcvtps2qq         %ymm16, %zmm19 {k1}
+vcvtps2qq         (%rax), %zmm19 {k1}
+vcvtps2qq         (%rax){1to8}, %zmm19 {k1}
+vcvtps2qq         %ymm16, %zmm19 {z}{k1}
+vcvtps2qq         (%rax), %zmm19 {z}{k1}
+vcvtps2qq         (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtps2uqq        %ymm16, %zmm19
+vcvtps2uqq        (%rax), %zmm19
+vcvtps2uqq        (%rax){1to8}, %zmm19
+vcvtps2uqq        %ymm16, %zmm19 {k1}
+vcvtps2uqq        (%rax), %zmm19 {k1}
+vcvtps2uqq        (%rax){1to8}, %zmm19 {k1}
+vcvtps2uqq        %ymm16, %zmm19 {z}{k1}
+vcvtps2uqq        (%rax), %zmm19 {z}{k1}
+vcvtps2uqq        (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtqq2pd         %zmm16, %zmm19
+vcvtqq2pd         (%rax), %zmm19
+vcvtqq2pd         (%rax){1to8}, %zmm19
+vcvtqq2pd         %zmm16, %zmm19 {k1}
+vcvtqq2pd         (%rax), %zmm19 {k1}
+vcvtqq2pd         (%rax){1to8}, %zmm19 {k1}
+vcvtqq2pd         %zmm16, %zmm19 {z}{k1}
+vcvtqq2pd         (%rax), %zmm19 {z}{k1}
+vcvtqq2pd         (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtqq2ps         %zmm16, %ymm19
+vcvtqq2ps         (%rax), %ymm19
+vcvtqq2ps         (%rax){1to8}, %ymm19
+vcvtqq2ps         %zmm16, %ymm19 {k1}
+vcvtqq2ps         (%rax), %ymm19 {k1}
+vcvtqq2ps         (%rax){1to8}, %ymm19 {k1}
+vcvtqq2ps         %zmm16, %ymm19 {z}{k1}
+vcvtqq2ps         (%rax), %ymm19 {z}{k1}
+vcvtqq2ps         (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvttpd2qq        %zmm16, %zmm19
+vcvttpd2qq        (%rax), %zmm19
+vcvttpd2qq        (%rax){1to8}, %zmm19
+vcvttpd2qq        %zmm16, %zmm19 {k1}
+vcvttpd2qq        (%rax), %zmm19 {k1}
+vcvttpd2qq        (%rax){1to8}, %zmm19 {k1}
+vcvttpd2qq        %zmm16, %zmm19 {z}{k1}
+vcvttpd2qq        (%rax), %zmm19 {z}{k1}
+vcvttpd2qq        (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvttpd2uqq       %zmm16, %zmm19
+vcvttpd2uqq       (%rax), %zmm19
+vcvttpd2uqq       (%rax){1to8}, %zmm19
+vcvttpd2uqq       %zmm16, %zmm19 {k1}
+vcvttpd2uqq       (%rax), %zmm19 {k1}
+vcvttpd2uqq       (%rax){1to8}, %zmm19 {k1}
+vcvttpd2uqq       %zmm16, %zmm19 {z}{k1}
+vcvttpd2uqq       (%rax), %zmm19 {z}{k1}
+vcvttpd2uqq       (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvttps2qq        %ymm16, %zmm19
+vcvttps2qq        (%rax), %zmm19
+vcvttps2qq        (%rax){1to8}, %zmm19
+vcvttps2qq        %ymm16, %zmm19 {k1}
+vcvttps2qq        (%rax), %zmm19 {k1}
+vcvttps2qq        (%rax){1to8}, %zmm19 {k1}
+vcvttps2qq        %ymm16, %zmm19 {z}{k1}
+vcvttps2qq        (%rax), %zmm19 {z}{k1}
+vcvttps2qq        (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvttps2uqq       %ymm16, %zmm19
+vcvttps2uqq       (%rax), %zmm19
+vcvttps2uqq       (%rax){1to8}, %zmm19
+vcvttps2uqq       %ymm16, %zmm19 {k1}
+vcvttps2uqq       (%rax), %zmm19 {k1}
+vcvttps2uqq       (%rax){1to8}, %zmm19 {k1}
+vcvttps2uqq       %ymm16, %zmm19 {z}{k1}
+vcvttps2uqq       (%rax), %zmm19 {z}{k1}
+vcvttps2uqq       (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtuqq2pd        %zmm16, %zmm19
+vcvtuqq2pd        (%rax), %zmm19
+vcvtuqq2pd        (%rax){1to8}, %zmm19
+vcvtuqq2pd        %zmm16, %zmm19 {k1}
+vcvtuqq2pd        (%rax), %zmm19 {k1}
+vcvtuqq2pd        (%rax){1to8}, %zmm19 {k1}
+vcvtuqq2pd        %zmm16, %zmm19 {z}{k1}
+vcvtuqq2pd        (%rax), %zmm19 {z}{k1}
+vcvtuqq2pd        (%rax){1to8}, %zmm19 {z}{k1}
+
+vcvtuqq2ps        %zmm16, %ymm19
+vcvtuqq2ps        (%rax), %ymm19
+vcvtuqq2ps        (%rax){1to8}, %ymm19
+vcvtuqq2ps        %zmm16, %ymm19 {k1}
+vcvtuqq2ps        (%rax), %ymm19 {k1}
+vcvtuqq2ps        (%rax){1to8}, %ymm19 {k1}
+vcvtuqq2ps        %zmm16, %ymm19 {z}{k1}
+vcvtuqq2ps        (%rax), %ymm19 {z}{k1}
+vcvtuqq2ps        (%rax){1to8}, %ymm19 {z}{k1}
+
+vextractf32x8     $1, %zmm16, %ymm19
+vextractf32x8     $1, %zmm16, (%rax)
+vextractf32x8     $1, %zmm16, %ymm19 {k1}
+vextractf32x8     $1, %zmm16, (%rax) {k1}
+vextractf32x8     $1, %zmm16, %ymm19 {z}{k1}
+
+vextractf64x2     $1, %zmm16, %xmm19
+vextractf64x2     $1, %zmm16, (%rax)
+vextractf64x2     $1, %zmm16, %xmm19 {k1}
+vextractf64x2     $1, %zmm16, (%rax) {k1}
+vextractf64x2     $1, %zmm16, %xmm19 {z}{k1}
+
+vextracti32x8     $1, %zmm16, %ymm19
+vextracti32x8     $1, %zmm16, (%rax)
+vextracti32x8     $1, %zmm16, %ymm19 {k1}
+vextracti32x8     $1, %zmm16, (%rax) {k1}
+vextracti32x8     $1, %zmm16, %ymm19 {z}{k1}
+
+vextracti64x2     $1, %zmm16, %xmm19
+vextracti64x2     $1, %zmm16, (%rax)
+vextracti64x2     $1, %zmm16, %xmm19 {k1}
+vextracti64x2     $1, %zmm16, (%rax) {k1}
+vextracti64x2     $1, %zmm16, %xmm19 {z}{k1}
+
+vfpclasspd        $0xab, %zmm16, %k1
+vfpclasspdz       $0xab, (%rax), %k1
+vfpclasspdz       $0xab, (%rax){1to8}, %k1
+vfpclasspd        $0xab, %zmm16, %k1 {k2}
+vfpclasspdz       $0xab, (%rax), %k1 {k2}
+vfpclasspdz       $0xab, (%rax){1to8}, %k1 {k2}
+
+vfpclassps        $0xab, %zmm16, %k1
+vfpclasspsz       $0xab, (%rax), %k1
+vfpclasspsz       $0xab, (%rax){1to16}, %k1
+vfpclassps        $0xab, %zmm16, %k1 {k2}
+vfpclasspsz       $0xab, (%rax), %k1 {k2}
+vfpclasspsz       $0xab, (%rax){1to16}, %k1 {k2}
+
+vfpclasssd        $0xab, %xmm16, %k1
+vfpclasssd        $0xab, (%rax), %k1
+vfpclasssd        $0xab, %xmm16, %k1 {k2}
+vfpclasssd        $0xab, (%rax), %k1 {k2}
+
+vfpclassss        $0xab, %xmm16, %k1
+vfpclassss        $0xab, (%rax), %k1
+vfpclassss        $0xab, %xmm16, %k1 {k2}
+vfpclassss        $0xab, (%rax), %k1 {k2}
+
+vinsertf32x8      $1, %ymm16, %zmm16, %zmm19
+vinsertf32x8      $1, (%rax), %zmm16, %zmm19
+vinsertf32x8      $1, %ymm16, %zmm16, %zmm19 {k1}
+vinsertf32x8      $1, (%rax), %zmm16, %zmm19 {k1}
+vinsertf32x8      $1, %ymm16, %zmm16, %zmm19 {z}{k1}
+vinsertf32x8      $1, (%rax), %zmm16, %zmm19 {z}{k1}
+
+vinsertf64x2      $1, %xmm16, %zmm16, %zmm19
+vinsertf64x2      $1, (%rax), %zmm16, %zmm19
+vinsertf64x2      $1, %xmm16, %zmm16, %zmm19 {k1}
+vinsertf64x2      $1, (%rax), %zmm16, %zmm19 {k1}
+vinsertf64x2      $1, %xmm16, %zmm16, %zmm19 {z}{k1}
+vinsertf64x2      $1, (%rax), %zmm16, %zmm19 {z}{k1}
+
+vinserti32x8      $1, %ymm16, %zmm16, %zmm19
+vinserti32x8      $1, (%rax), %zmm16, %zmm19
+vinserti32x8      $1, %ymm16, %zmm16, %zmm19 {k1}
+vinserti32x8      $1, (%rax), %zmm16, %zmm19 {k1}
+vinserti32x8      $1, %ymm16, %zmm16, %zmm19 {z}{k1}
+vinserti32x8      $1, (%rax), %zmm16, %zmm19 {z}{k1}
+
+vinserti64x2      $1, %xmm16, %zmm16, %zmm19
+vinserti64x2      $1, (%rax), %zmm16, %zmm19
+vinserti64x2      $1, %xmm16, %zmm16, %zmm19 {k1}
+vinserti64x2      $1, (%rax), %zmm16, %zmm19 {k1}
+vinserti64x2      $1, %xmm16, %zmm16, %zmm19 {z}{k1}
+vinserti64x2      $1, (%rax), %zmm16, %zmm19 {z}{k1}
+
+vorpd             %zmm16, %zmm17, %zmm19
+vorpd             (%rax), %zmm17, %zmm19
+vorpd             (%rax){1to8}, %zmm17, %zmm19
+vorpd             %zmm16, %zmm17, %zmm19 {k1}
+vorpd             (%rax), %zmm17, %zmm19 {k1}
+vorpd             (%rax){1to8}, %zmm17, %zmm19 {k1}
+vorpd             %zmm16, %zmm17, %zmm19 {z}{k1}
+vorpd             (%rax), %zmm17, %zmm19 {z}{k1}
+vorpd             (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vorps             %zmm16, %zmm17, %zmm19
+vorps             (%rax), %zmm17, %zmm19
+vorps             (%rax){1to16}, %zmm17, %zmm19
+vorps             %zmm16, %zmm17, %zmm19 {k1}
+vorps             (%rax), %zmm17, %zmm19 {k1}
+vorps             (%rax){1to16}, %zmm17, %zmm19 {k1}
+vorps             %zmm16, %zmm17, %zmm19 {z}{k1}
+vorps             (%rax), %zmm17, %zmm19 {z}{k1}
+vorps             (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpextrd           $1, %xmm16, %ecx
+vpextrd           $1, %xmm16, (%rax)
+
+vpextrq           $1, %xmm16, %rcx
+vpextrq           $1, %xmm16, (%rax)
+
+vpinsrd           $1, %ecx, %xmm16, %xmm19
+vpinsrd           $1, (%rax), %xmm16, %xmm19
+
+vpinsrq           $1, %rcx, %xmm16, %xmm19
+vpinsrq           $1, (%rax), %xmm16, %xmm19
+
+vpmovm2d          %k0, %zmm0
+vpmovm2q          %k0, %zmm0
+
+vpmovd2m          %zmm0, %k0
+vpmovq2m          %zmm0, %k0
+
+vpmullq           %zmm16, %zmm17, %zmm19
+vpmullq           (%rax), %zmm17, %zmm19
+vpmullq           %zmm16, %zmm17, %zmm19 {k1}
+vpmullq           (%rax), %zmm17, %zmm19 {k1}
+vpmullq           %zmm16, %zmm17, %zmm19 {z}{k1}
+vpmullq           (%rax), %zmm17, %zmm19 {z}{k1}
+
+vrangepd          $ab, %zmm16, %zmm17, %zmm19
+vrangepd          $ab, (%rax), %zmm17, %zmm19
+vrangepd          $ab, (%rax){1to8}, %zmm17, %zmm19
+vrangepd          $ab, %zmm16, %zmm17, %zmm19 {k1}
+vrangepd          $ab, (%rax), %zmm17, %zmm19 {k1}
+vrangepd          $ab, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vrangepd          $ab, %zmm16, %zmm17, %zmm19 {z}{k1}
+vrangepd          $ab, (%rax), %zmm17, %zmm19 {z}{k1}
+vrangepd          $ab, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vrangepd          $ab, {sae}, %zmm16, %zmm17, %zmm19
+vrangepd          $ab, {sae}, %zmm16, %zmm17, %zmm19 {k1}
+vrangepd          $ab, {sae}, %zmm16, %zmm17, %zmm19 {z}{k1}
+
+vrangeps          $ab, %zmm16, %zmm17, %zmm19
+vrangeps          $ab, (%rax), %zmm17, %zmm19
+vrangeps          $ab, (%rax){1to16}, %zmm17, %zmm19
+vrangeps          $ab, %zmm16, %zmm17, %zmm19 {k1}
+vrangeps          $ab, (%rax), %zmm17, %zmm19 {k1}
+vrangeps          $ab, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vrangeps          $ab, %zmm16, %zmm17, %zmm19 {z}{k1}
+vrangeps          $ab, (%rax), %zmm17, %zmm19 {z}{k1}
+vrangeps          $ab, (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vrangeps          $ab, {sae}, %zmm16, %zmm17, %zmm19
+vrangeps          $ab, {sae}, %zmm16, %zmm17, %zmm19 {k1}
+vrangeps          $ab, {sae}, %zmm16, %zmm17, %zmm19 {z}{k1}
+
+vrangesd          $ab, %xmm16, %xmm17, %xmm19
+vrangesd          $ab, (%rax), %xmm17, %xmm19
+vrangesd          $ab, %xmm16, %xmm17, %xmm19 {k1}
+vrangesd          $ab, (%rax), %xmm17, %xmm19 {k1}
+vrangesd          $ab, %xmm16, %xmm17, %xmm19 {z}{k1}
+vrangesd          $ab, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vrangesd          $ab, {sae}, %xmm16, %xmm17, %xmm19
+vrangesd          $ab, {sae}, %xmm16, %xmm17, %xmm19 {k1}
+vrangesd          $ab, {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
+
+vrangess          $ab, %xmm16, %xmm17, %xmm19
+vrangess          $ab, (%rax), %xmm17, %xmm19
+vrangess          $ab, %xmm16, %xmm17, %xmm19 {k1}
+vrangess          $ab, (%rax), %xmm17, %xmm19 {k1}
+vrangess          $ab, %xmm16, %xmm17, %xmm19 {z}{k1}
+vrangess          $ab, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vrangess          $ab, {sae}, %xmm16, %xmm17, %xmm19
+vrangess          $ab, {sae}, %xmm16, %xmm17, %xmm19 {k1}
+vrangess          $ab, {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
+
+vreducepd         $ab, %zmm16, %zmm19
+vreducepd         $ab, (%rax), %zmm19
+vreducepd         $ab, (%rax){1to8}, %zmm19
+vreducepd         $ab, %zmm16, %zmm19 {k1}
+vreducepd         $ab, (%rax), %zmm19 {k1}
+vreducepd         $ab, (%rax){1to8}, %zmm19 {k1}
+vreducepd         $ab, %zmm16, %zmm19 {z}{k1}
+vreducepd         $ab, (%rax), %zmm19 {z}{k1}
+vreducepd         $ab, (%rax){1to8}, %zmm19 {z}{k1}
+
+vreducepd         $ab, {sae}, %zmm16, %zmm19
+vreducepd         $ab, {sae}, %zmm16, %zmm19 {k1}
+vreducepd         $ab, {sae}, %zmm16, %zmm19 {z}{k1}
+
+vreduceps         $ab, %zmm16, %zmm19
+vreduceps         $ab, (%rax), %zmm19
+vreduceps         $ab, (%rax){1to16}, %zmm19
+vreduceps         $ab, %zmm16, %zmm19 {k1}
+vreduceps         $ab, (%rax), %zmm19 {k1}
+vreduceps         $ab, (%rax){1to16}, %zmm19 {k1}
+vreduceps         $ab, %zmm16, %zmm19 {z}{k1}
+vreduceps         $ab, (%rax), %zmm19 {z}{k1}
+vreduceps         $ab, (%rax){1to16}, %zmm19 {z}{k1}
+
+vreduceps         $ab, {sae}, %zmm16, %zmm19
+vreduceps         $ab, {sae}, %zmm16, %zmm19 {k1}
+vreduceps         $ab, {sae}, %zmm16, %zmm19 {z}{k1}
+
+vreducesd         $ab, %xmm16, %xmm17, %xmm19
+vreducesd         $ab, (%rax), %xmm17, %xmm19
+vreducesd         $ab, %xmm16, %xmm17, %xmm19 {k1}
+vreducesd         $ab, (%rax), %xmm17, %xmm19 {k1}
+vreducesd         $ab, %xmm16, %xmm17, %xmm19 {z}{k1}
+vreducesd         $ab, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vreducesd         $ab, {sae}, %xmm16, %xmm17, %xmm19
+vreducesd         $ab, {sae}, %xmm16, %xmm17, %xmm19 {k1}
+vreducesd         $ab, {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
+
+vreducess         $ab, %xmm16, %xmm17, %xmm19
+vreducess         $ab, (%rax), %xmm17, %xmm19
+vreducess         $ab, %xmm16, %xmm17, %xmm19 {k1}
+vreducess         $ab, (%rax), %xmm17, %xmm19 {k1}
+vreducess         $ab, %xmm16, %xmm17, %xmm19 {z}{k1}
+vreducess         $ab, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vreducess         $ab, {sae}, %xmm16, %xmm17, %xmm19
+vreducess         $ab, {sae}, %xmm16, %xmm17, %xmm19 {k1}
+vreducess         $ab, {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
+
+vxorpd            %zmm16, %zmm17, %zmm19
+vxorpd            (%rax), %zmm17, %zmm19
+vxorpd            (%rax){1to8}, %zmm17, %zmm19
+vxorpd            %zmm16, %zmm17, %zmm19 {k1}
+vxorpd            (%rax), %zmm17, %zmm19 {k1}
+vxorpd            (%rax){1to8}, %zmm17, %zmm19 {k1}
+vxorpd            %zmm16, %zmm17, %zmm19 {z}{k1}
+vxorpd            (%rax), %zmm17, %zmm19 {z}{k1}
+vxorpd            (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vxorps            %zmm16, %zmm17, %zmm19
+vxorps            (%rax), %zmm17, %zmm19
+vxorps            (%rax){1to16}, %zmm17, %zmm19
+vxorps            %zmm16, %zmm17, %zmm19 {k1}
+vxorps            (%rax), %zmm17, %zmm19 {k1}
+vxorps            (%rax){1to16}, %zmm17, %zmm19 {k1}
+vxorps            %zmm16, %zmm17, %zmm19 {z}{k1}
+vxorps            (%rax), %zmm17, %zmm19 {z}{k1}
+vxorps            (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        kaddb  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kaddw  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandb  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kandnb %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kmovb  %k0, %k2
+# CHECK-NEXT:  1      5     0.33    *                   kmovb  (%rax), %k2
+# CHECK-NEXT:  1      1     0.50           *            kmovb  %k0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        kmovb  %eax, %k2
+# CHECK-NEXT:  1      1     0.50                        kmovb  %k0, %eax
+# CHECK-NEXT:  1      1     0.50                        knotb  %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        korb   %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kortestb       %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftlb       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kshiftrb       $2, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        ktestb %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        ktestw %k0, %k2
+# CHECK-NEXT:  1      1     0.50                        kxnorb %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        kxorb  %k0, %k1, %k2
+# CHECK-NEXT:  1      1     0.50                        vandnpd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vandnpd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vandnpd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vandnps        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vandnps        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vandnps        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vandpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vandpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vandpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vandps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vandps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vandps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vbroadcastf32x2        %xmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcastf32x2        (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vbroadcastf32x2        %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcastf32x2        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vbroadcastf32x2        %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcastf32x2        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x8        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x8        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x8        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x2        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x2        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x2        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vbroadcasti32x2        %xmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcasti32x2        (%rax), %zmm19
+# CHECK-NEXT:  1      1     1.00                        vbroadcasti32x2        %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcasti32x2        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vbroadcasti32x2        %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcasti32x2        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x8        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x8        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x8        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x2        (%rax), %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x2        (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x2        (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2qq      %zmm16, %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2qq      (%rax), %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2qq      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2qq      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2qq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2qq      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2qq      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2qq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2qq      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2uqq     %zmm16, %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2uqq     (%rax), %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2uqq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2uqq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2uqq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2uqq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvtpd2uqq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2uqq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvtpd2uqq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2qq      %ymm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2qq      (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2qq      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvtps2qq      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2qq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2qq      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2qq      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2qq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2qq      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2uqq     %ymm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2uqq     (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2uqq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvtps2uqq     %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2uqq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2uqq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2uqq     %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2uqq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvtps2uqq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  4      4     2.00                        vcvtqq2pd      %zmm16, %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtqq2pd      (%rax), %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtqq2pd      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  4      4     2.00                        vcvtqq2pd      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtqq2pd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtqq2pd      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  4      4     2.00                        vcvtqq2pd      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtqq2pd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtqq2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtqq2ps      %zmm16, %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps      (%rax), %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtqq2ps      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtqq2ps      %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtqq2ps      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2qq     %zmm16, %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2qq     (%rax), %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2qq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2qq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2qq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2qq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2qq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2qq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2qq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2uqq    %zmm16, %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2uqq    (%rax), %zmm19
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2uqq    (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2uqq    %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2uqq    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2uqq    (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      3     2.00                        vcvttpd2uqq    %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2uqq    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    2.00    *                   vcvttpd2uqq    (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2qq     %ymm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2qq     (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2qq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvttps2qq     %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2qq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2qq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2qq     %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2qq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2qq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2uqq    %ymm16, %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2uqq    (%rax), %zmm19
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2uqq    (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      4     1.00                        vcvttps2uqq    %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2uqq    (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2uqq    (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvttps2uqq    %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2uqq    (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      11    1.00    *                   vcvttps2uqq    (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  4      4     2.00                        vcvtuqq2pd     %zmm16, %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtuqq2pd     (%rax), %zmm19
+# CHECK-NEXT:  3      11    2.00    *                   vcvtuqq2pd     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  4      4     2.00                        vcvtuqq2pd     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtuqq2pd     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtuqq2pd     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  4      4     2.00                        vcvtuqq2pd     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtuqq2pd     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      11    2.00    *                   vcvtuqq2pd     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtuqq2ps     %zmm16, %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtuqq2ps     (%rax), %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtuqq2ps     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtuqq2ps     %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtuqq2ps     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtuqq2ps     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtuqq2ps     %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtuqq2ps     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtuqq2ps     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vextractf32x8  $1, %zmm16, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vextractf32x8  $1, %zmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vextractf32x8  $1, %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vextractf32x8  $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vextractf32x8  $1, %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vextractf64x2  $1, %zmm16, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vextractf64x2  $1, %zmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vextractf64x2  $1, %zmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vextractf64x2  $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vextractf64x2  $1, %zmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vextracti32x8  $1, %zmm16, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vextracti32x8  $1, %zmm16, (%rax)
+# CHECK-NEXT:  1      1     1.00                        vextracti32x8  $1, %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vextracti32x8  $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      1     1.00                        vextracti32x8  $1, %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %zmm16, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %zmm16, (%rax)
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %zmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vextracti64x2  $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %zmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     2.00                        vfpclasspd     $171, %zmm16, %k1
+# CHECK-NEXT:  1      9     2.00    *                   vfpclasspdz    $171, (%rax), %k1
+# CHECK-NEXT:  1      9     2.00    *                   vfpclasspd     $171, (%rax){1to8}, %k1
+# CHECK-NEXT:  1      2     2.00                        vfpclasspd     $171, %zmm16, %k1 {%k2}
+# CHECK-NEXT:  1      9     2.00    *                   vfpclasspdz    $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      9     2.00    *                   vfpclasspd     $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT:  1      2     2.00                        vfpclassps     $171, %zmm16, %k1
+# CHECK-NEXT:  1      9     2.00    *                   vfpclasspsz    $171, (%rax), %k1
+# CHECK-NEXT:  1      9     2.00    *                   vfpclassps     $171, (%rax){1to16}, %k1
+# CHECK-NEXT:  1      2     2.00                        vfpclassps     $171, %zmm16, %k1 {%k2}
+# CHECK-NEXT:  1      9     2.00    *                   vfpclasspsz    $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      9     2.00    *                   vfpclassps     $171, (%rax){1to16}, %k1 {%k2}
+# CHECK-NEXT:  1      2     1.00                        vfpclasssd     $171, %xmm16, %k1
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasssd     $171, (%rax), %k1
+# CHECK-NEXT:  1      2     1.00                        vfpclasssd     $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasssd     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      2     1.00                        vfpclassss     $171, %xmm16, %k1
+# CHECK-NEXT:  1      9     1.00    *                   vfpclassss     $171, (%rax), %k1
+# CHECK-NEXT:  1      2     1.00                        vfpclassss     $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  1      9     1.00    *                   vfpclassss     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      2     1.00                        vinsertf32x8   $1, %ymm16, %zmm16, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf32x8   $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vinsertf32x8   $1, %ymm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf32x8   $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vinsertf32x8   $1, %ymm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf32x8   $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vinsertf64x2   $1, %xmm16, %zmm16, %zmm19
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf64x2   $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vinsertf64x2   $1, %xmm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf64x2   $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vinsertf64x2   $1, %xmm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf64x2   $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vinserti32x8   $1, %ymm16, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vinserti32x8   $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vinserti32x8   $1, %ymm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vinserti32x8   $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vinserti32x8   $1, %ymm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vinserti32x8   $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vinserti64x2   $1, %xmm16, %zmm16, %zmm19
+# CHECK-NEXT:  1      8     1.00    *                   vinserti64x2   $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  1      1     1.00                        vinserti64x2   $1, %xmm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vinserti64x2   $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vinserti64x2   $1, %xmm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vinserti64x2   $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vorpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vorpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vorpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vorps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vorps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vorps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      1     1.00                        vpextrd        $1, %xmm16, %ecx
+# CHECK-NEXT:  2      2     1.00           *            vpextrd        $1, %xmm16, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpextrq        $1, %xmm16, %rcx
+# CHECK-NEXT:  2      2     1.00           *            vpextrq        $1, %xmm16, (%rax)
+# CHECK-NEXT:  2      1     1.00                        vpinsrd        $1, %ecx, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrd        $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  2      1     1.00                        vpinsrq        $1, %rcx, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     1.50    *                   vpinsrq        $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  1      0     0.17                        vpmovm2d       %k0, %zmm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2q       %k0, %zmm0
+# CHECK-NEXT:  1      1     1.00                        vpmovd2m       %zmm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovq2m       %zmm0, %k0
+# CHECK-NEXT:  1      3     1.00                        vpmullq        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmullq        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vpmullq        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmullq        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpmullq        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmullq        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vrangepd       $ab, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vrangepd       $ab, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vrangepd       $ab, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vrangepd       $ab, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vrangepd       $ab, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vrangepd       $ab, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, {sae}, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vrangeps       $ab, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vrangeps       $ab, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vrangeps       $ab, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vrangeps       $ab, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vrangeps       $ab, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vrangeps       $ab, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, {sae}, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangesd       $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangesd       $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vrangesd       $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangesd       $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangesd       $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangesd       $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangesd       $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vrangesd       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangesd       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangess       $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangess       $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vrangess       $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangess       $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangess       $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangess       $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangess       $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vrangess       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangess       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, %zmm16, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vreducepd      $ab, (%rax), %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vreducepd      $ab, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vreducepd      $ab, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vreducepd      $ab, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vreducepd      $ab, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vreducepd      $ab, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, {sae}, %zmm16, %zmm19
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, {sae}, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, {sae}, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, %zmm16, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vreduceps      $ab, (%rax), %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vreduceps      $ab, (%rax){1to16}, %zmm19
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vreduceps      $ab, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vreduceps      $ab, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vreduceps      $ab, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vreduceps      $ab, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, {sae}, %zmm16, %zmm19
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, {sae}, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, {sae}, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducesd      $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vreducesd      $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  2      6     3.00                        vreducesd      $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreducesd      $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducesd      $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreducesd      $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducesd      $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      6     3.00                        vreducesd      $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducesd      $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducess      $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vreducess      $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  2      6     3.00                        vreducess      $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreducess      $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducess      $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreducess      $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducess      $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      6     3.00                        vreducess      $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducess      $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vxorpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vxorpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vxorpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vxorps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vxorps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 0.33   0.33   0.33   2.00   2.00   2.00   2.00    -     98.00  147.00 313.50 312.50 113.50 113.50 10.00  71.33  71.33  71.33  68.00  68.00  68.00  5.00   5.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kaddb   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kaddw   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandb   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kandnb  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kmovb   %k0, %k2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     kmovb   (%rax), %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -     kmovb   %k0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -     kmovb   %eax, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kmovb   %k0, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     knotb   %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     korb    %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kortestb        %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftlb        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     kshiftrb        $2, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     ktestb  %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     ktestw  %k0, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxnorb  %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     kxorb   %k0, %k1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandnpd %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandnpd %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandnpd %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandnps %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandnps %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandnps %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vandps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastf32x2 %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x2 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastf32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastf32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x8 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x2 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x8 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x8 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x8 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x2 (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x2 (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x2 (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %ymm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %ymm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %ymm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf32x8   $1, %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf32x8   $1, %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf32x8   $1, %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf32x8   $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf32x8   $1, %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf64x2   $1, %zmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf64x2   $1, %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf64x2   $1, %zmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf64x2   $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf64x2   $1, %zmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti32x8   $1, %zmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti32x8   $1, %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti32x8   $1, %zmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti32x8   $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti32x8   $1, %zmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti64x2   $1, %zmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti64x2   $1, %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti64x2   $1, %zmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti64x2   $1, %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti64x2   $1, %zmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasspd      $171, %zmm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspdz     $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspd      $171, (%rax){1to8}, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasspd      $171, %zmm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspdz     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspd      $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassps      $171, %zmm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspsz     $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassps      $171, (%rax){1to16}, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassps      $171, %zmm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspsz     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassps      $171, (%rax){1to16}, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasssd      $171, %xmm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasssd      $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasssd      $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasssd      $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassss      $171, %xmm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassss      $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassss      $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassss      $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf32x8    $1, %ymm16, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf32x8    $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf32x8    $1, %ymm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf32x8    $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf32x8    $1, %ymm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf32x8    $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf64x2    $1, %xmm16, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf64x2    $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf64x2    $1, %xmm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf64x2    $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf64x2    $1, %xmm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf64x2    $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti32x8    $1, %ymm16, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti32x8    $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti32x8    $1, %ymm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti32x8    $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti32x8    $1, %ymm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti32x8    $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti64x2    $1, %xmm16, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti64x2    $1, (%rax), %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti64x2    $1, %xmm16, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti64x2    $1, (%rax), %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti64x2    $1, %xmm16, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti64x2    $1, (%rax), %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vorpd   %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vorpd   %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vorpd   %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vorps   %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vorps   %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vorps   %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrd $1, %xmm16, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrd $1, %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpextrq $1, %xmm16, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vpextrq $1, %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrd $1, %ecx, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrd $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     vpinsrq $1, %rcx, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpinsrq $1, (%rax), %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2d        %k0, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2q        %k0, %zmm0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovd2m        %zmm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovq2m        %zmm0, %k0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmullq %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmullq %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpmullq %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, {sae}, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, {sae}, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, {sae}, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangesd        $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangesd        $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangesd        $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangesd        $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangesd        $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangesd        $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangesd        $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangesd        $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangesd        $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangess        $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangess        $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangess        $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangess        $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangess        $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangess        $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangess        $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangess        $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangess        $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to8}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to8}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, {sae}, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, {sae}, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, {sae}, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to16}, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to16}, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, {sae}, %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, {sae}, %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, {sae}, %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducesd       $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducesd       $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducesd       $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducesd       $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducesd       $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducesd       $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducesd       $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducesd       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducesd       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducess       $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducess       $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducess       $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducess       $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducess       $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducess       $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducess       $ab, {sae}, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducess       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducess       $ab, {sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vxorps  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vxorps  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vxorps  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512dqvl.s
new file mode 100644 (file)
index 0000000..37e42da
--- /dev/null
@@ -0,0 +1,1677 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vandnpd           %xmm16, %xmm17, %xmm19
+vandnpd           (%rax), %xmm17, %xmm19
+vandnpd           (%rax){1to2}, %xmm17, %xmm19
+vandnpd           %xmm16, %xmm17, %xmm19 {k1}
+vandnpd           (%rax), %xmm17, %xmm19 {k1}
+vandnpd           (%rax){1to2}, %xmm17, %xmm19 {k1}
+vandnpd           %xmm16, %xmm17, %xmm19 {z}{k1}
+vandnpd           (%rax), %xmm17, %xmm19 {z}{k1}
+vandnpd           (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vandnpd           %ymm16, %ymm17, %ymm19
+vandnpd           (%rax), %ymm17, %ymm19
+vandnpd           (%rax){1to4}, %ymm17, %ymm19
+vandnpd           %ymm16, %ymm17, %ymm19 {k1}
+vandnpd           (%rax), %ymm17, %ymm19 {k1}
+vandnpd           (%rax){1to4}, %ymm17, %ymm19 {k1}
+vandnpd           %ymm16, %ymm17, %ymm19 {z}{k1}
+vandnpd           (%rax), %ymm17, %ymm19 {z}{k1}
+vandnpd           (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vandnps           %xmm16, %xmm17, %xmm19
+vandnps           (%rax), %xmm17, %xmm19
+vandnps           (%rax){1to4}, %xmm17, %xmm19
+vandnps           %xmm16, %xmm17, %xmm19 {k1}
+vandnps           (%rax), %xmm17, %xmm19 {k1}
+vandnps           (%rax){1to4}, %xmm17, %xmm19 {k1}
+vandnps           %xmm16, %xmm17, %xmm19 {z}{k1}
+vandnps           (%rax), %xmm17, %xmm19 {z}{k1}
+vandnps           (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vandnps           %ymm16, %ymm17, %ymm19
+vandnps           (%rax), %ymm17, %ymm19
+vandnps           (%rax){1to8}, %ymm17, %ymm19
+vandnps           %ymm16, %ymm17, %ymm19 {k1}
+vandnps           (%rax), %ymm17, %ymm19 {k1}
+vandnps           (%rax){1to8}, %ymm17, %ymm19 {k1}
+vandnps           %ymm16, %ymm17, %ymm19 {z}{k1}
+vandnps           (%rax), %ymm17, %ymm19 {z}{k1}
+vandnps           (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vandpd            %xmm16, %xmm17, %xmm19
+vandpd            (%rax), %xmm17, %xmm19
+vandpd            (%rax){1to2}, %xmm17, %xmm19
+vandpd            %xmm16, %xmm17, %xmm19 {k1}
+vandpd            (%rax), %xmm17, %xmm19 {k1}
+vandpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vandpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vandpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vandpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vandpd            %ymm16, %ymm17, %ymm19
+vandpd            (%rax), %ymm17, %ymm19
+vandpd            (%rax){1to4}, %ymm17, %ymm19
+vandpd            %ymm16, %ymm17, %ymm19 {k1}
+vandpd            (%rax), %ymm17, %ymm19 {k1}
+vandpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vandpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vandpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vandpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vandps            %xmm16, %xmm17, %xmm19
+vandps            (%rax), %xmm17, %xmm19
+vandps            (%rax){1to4}, %xmm17, %xmm19
+vandps            %xmm16, %xmm17, %xmm19 {k1}
+vandps            (%rax), %xmm17, %xmm19 {k1}
+vandps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vandps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vandps            (%rax), %xmm17, %xmm19 {z}{k1}
+vandps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vandps            %ymm16, %ymm17, %ymm19
+vandps            (%rax), %ymm17, %ymm19
+vandps            (%rax){1to8}, %ymm17, %ymm19
+vandps            %ymm16, %ymm17, %ymm19 {k1}
+vandps            (%rax), %ymm17, %ymm19 {k1}
+vandps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vandps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vandps            (%rax), %ymm17, %ymm19 {z}{k1}
+vandps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vbroadcastf32x2   %xmm16, %ymm19
+vbroadcastf32x2   (%rax), %ymm19
+vbroadcastf32x2   %xmm16, %ymm19 {k1}
+vbroadcastf32x2   (%rax), %ymm19 {k1}
+vbroadcastf32x2   %xmm16, %ymm19 {z}{k1}
+vbroadcastf32x2   (%rax), %ymm19 {z}{k1}
+
+vbroadcastf64x2   (%rax), %ymm19
+vbroadcastf64x2   (%rax), %ymm19 {k1}
+vbroadcastf64x2   (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x2   %xmm16, %xmm19
+vbroadcasti32x2   (%rax), %xmm19
+vbroadcasti32x2   %xmm16, %xmm19 {k1}
+vbroadcasti32x2   (%rax), %xmm19 {k1}
+vbroadcasti32x2   %xmm16, %xmm19 {z}{k1}
+vbroadcasti32x2   (%rax), %xmm19 {z}{k1}
+
+vbroadcasti32x2   %xmm16, %ymm19
+vbroadcasti32x2   (%rax), %ymm19
+vbroadcasti32x2   %xmm16, %ymm19 {k1}
+vbroadcasti32x2   (%rax), %ymm19 {k1}
+vbroadcasti32x2   %xmm16, %ymm19 {z}{k1}
+vbroadcasti32x2   (%rax), %ymm19 {z}{k1}
+
+vbroadcasti64x2   (%rax), %ymm19
+vbroadcasti64x2   (%rax), %ymm19 {k1}
+vbroadcasti64x2   (%rax), %ymm19 {z}{k1}
+
+vcvtpd2qq         %xmm16, %xmm19
+vcvtpd2qq         (%rax), %xmm19
+vcvtpd2qq         (%rax){1to2}, %xmm19
+vcvtpd2qq         %xmm16, %xmm19 {k1}
+vcvtpd2qq         (%rax), %xmm19 {k1}
+vcvtpd2qq         (%rax){1to2}, %xmm19 {k1}
+vcvtpd2qq         %xmm16, %xmm19 {z}{k1}
+vcvtpd2qq         (%rax), %xmm19 {z}{k1}
+vcvtpd2qq         (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtpd2qq         %ymm16, %ymm19
+vcvtpd2qq         (%rax), %ymm19
+vcvtpd2qq         (%rax){1to4}, %ymm19
+vcvtpd2qq         %ymm16, %ymm19 {k1}
+vcvtpd2qq         (%rax), %ymm19 {k1}
+vcvtpd2qq         (%rax){1to4}, %ymm19 {k1}
+vcvtpd2qq         %ymm16, %ymm19 {z}{k1}
+vcvtpd2qq         (%rax), %ymm19 {z}{k1}
+vcvtpd2qq         (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtpd2uqq        %xmm16, %xmm19
+vcvtpd2uqq        (%rax), %xmm19
+vcvtpd2uqq        (%rax){1to2}, %xmm19
+vcvtpd2uqq        %xmm16, %xmm19 {k1}
+vcvtpd2uqq        (%rax), %xmm19 {k1}
+vcvtpd2uqq        (%rax){1to2}, %xmm19 {k1}
+vcvtpd2uqq        %xmm16, %xmm19 {z}{k1}
+vcvtpd2uqq        (%rax), %xmm19 {z}{k1}
+vcvtpd2uqq        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtpd2uqq        %ymm16, %ymm19
+vcvtpd2uqq        (%rax), %ymm19
+vcvtpd2uqq        (%rax){1to4}, %ymm19
+vcvtpd2uqq        %ymm16, %ymm19 {k1}
+vcvtpd2uqq        (%rax), %ymm19 {k1}
+vcvtpd2uqq        (%rax){1to4}, %ymm19 {k1}
+vcvtpd2uqq        %ymm16, %ymm19 {z}{k1}
+vcvtpd2uqq        (%rax), %ymm19 {z}{k1}
+vcvtpd2uqq        (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtps2qq         %xmm16, %xmm19
+vcvtps2qq         (%rax), %xmm19
+vcvtps2qq         (%rax){1to2}, %xmm19
+vcvtps2qq         %xmm16, %xmm19 {k1}
+vcvtps2qq         (%rax), %xmm19 {k1}
+vcvtps2qq         (%rax){1to2}, %xmm19 {k1}
+vcvtps2qq         %xmm16, %xmm19 {z}{k1}
+vcvtps2qq         (%rax), %xmm19 {z}{k1}
+vcvtps2qq         (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtps2qq         %xmm16, %ymm19
+vcvtps2qq         (%rax), %ymm19
+vcvtps2qq         (%rax){1to4}, %ymm19
+vcvtps2qq         %xmm16, %ymm19 {k1}
+vcvtps2qq         (%rax), %ymm19 {k1}
+vcvtps2qq         (%rax){1to4}, %ymm19 {k1}
+vcvtps2qq         %xmm16, %ymm19 {z}{k1}
+vcvtps2qq         (%rax), %ymm19 {z}{k1}
+vcvtps2qq         (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtps2uqq        %xmm16, %xmm19
+vcvtps2uqq        (%rax), %xmm19
+vcvtps2uqq        (%rax){1to2}, %xmm19
+vcvtps2uqq        %xmm16, %xmm19 {k1}
+vcvtps2uqq        (%rax), %xmm19 {k1}
+vcvtps2uqq        (%rax){1to2}, %xmm19 {k1}
+vcvtps2uqq        %xmm16, %xmm19 {z}{k1}
+vcvtps2uqq        (%rax), %xmm19 {z}{k1}
+vcvtps2uqq        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtps2uqq        %xmm16, %ymm19
+vcvtps2uqq        (%rax), %ymm19
+vcvtps2uqq        (%rax){1to4}, %ymm19
+vcvtps2uqq        %xmm16, %ymm19 {k1}
+vcvtps2uqq        (%rax), %ymm19 {k1}
+vcvtps2uqq        (%rax){1to4}, %ymm19 {k1}
+vcvtps2uqq        %xmm16, %ymm19 {z}{k1}
+vcvtps2uqq        (%rax), %ymm19 {z}{k1}
+vcvtps2uqq        (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtqq2pd         %xmm16, %xmm19
+vcvtqq2pd         (%rax), %xmm19
+vcvtqq2pd         (%rax){1to2}, %xmm19
+vcvtqq2pd         %xmm16, %xmm19 {k1}
+vcvtqq2pd         (%rax), %xmm19 {k1}
+vcvtqq2pd         (%rax){1to2}, %xmm19 {k1}
+vcvtqq2pd         %xmm16, %xmm19 {z}{k1}
+vcvtqq2pd         (%rax), %xmm19 {z}{k1}
+vcvtqq2pd         (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtqq2pd         %ymm16, %ymm19
+vcvtqq2pd         (%rax), %ymm19
+vcvtqq2pd         (%rax){1to4}, %ymm19
+vcvtqq2pd         %ymm16, %ymm19 {k1}
+vcvtqq2pd         (%rax), %ymm19 {k1}
+vcvtqq2pd         (%rax){1to4}, %ymm19 {k1}
+vcvtqq2pd         %ymm16, %ymm19 {z}{k1}
+vcvtqq2pd         (%rax), %ymm19 {z}{k1}
+vcvtqq2pd         (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtqq2ps         %xmm16, %xmm19
+vcvtqq2psx        (%rax), %xmm19
+vcvtqq2ps         (%rax){1to2}, %xmm19
+vcvtqq2ps         %xmm16, %xmm19 {k1}
+vcvtqq2psx        (%rax), %xmm19 {k1}
+vcvtqq2ps         (%rax){1to2}, %xmm19 {k1}
+vcvtqq2ps         %xmm16, %xmm19 {z}{k1}
+vcvtqq2psx        (%rax), %xmm19 {z}{k1}
+vcvtqq2ps         (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtqq2ps         %ymm16, %xmm19
+vcvtqq2psx        (%rax), %xmm19
+vcvtqq2ps         (%rax){1to4}, %xmm19
+vcvtqq2ps         %ymm16, %xmm19 {k1}
+vcvtqq2psx        (%rax), %xmm19 {k1}
+vcvtqq2ps         (%rax){1to4}, %xmm19 {k1}
+vcvtqq2ps         %ymm16, %xmm19 {z}{k1}
+vcvtqq2psx        (%rax), %xmm19 {z}{k1}
+vcvtqq2ps         (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvttpd2qq        %xmm16, %xmm19
+vcvttpd2qq        (%rax), %xmm19
+vcvttpd2qq        (%rax){1to2}, %xmm19
+vcvttpd2qq        %xmm16, %xmm19 {k1}
+vcvttpd2qq        (%rax), %xmm19 {k1}
+vcvttpd2qq        (%rax){1to2}, %xmm19 {k1}
+vcvttpd2qq        %xmm16, %xmm19 {z}{k1}
+vcvttpd2qq        (%rax), %xmm19 {z}{k1}
+vcvttpd2qq        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvttpd2qq        %ymm16, %ymm19
+vcvttpd2qq        (%rax), %ymm19
+vcvttpd2qq        (%rax){1to4}, %ymm19
+vcvttpd2qq        %ymm16, %ymm19 {k1}
+vcvttpd2qq        (%rax), %ymm19 {k1}
+vcvttpd2qq        (%rax){1to4}, %ymm19 {k1}
+vcvttpd2qq        %ymm16, %ymm19 {z}{k1}
+vcvttpd2qq        (%rax), %ymm19 {z}{k1}
+vcvttpd2qq        (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvttpd2uqq       %xmm16, %xmm19
+vcvttpd2uqq       (%rax), %xmm19
+vcvttpd2uqq       (%rax){1to2}, %xmm19
+vcvttpd2uqq       %xmm16, %xmm19 {k1}
+vcvttpd2uqq       (%rax), %xmm19 {k1}
+vcvttpd2uqq       (%rax){1to2}, %xmm19 {k1}
+vcvttpd2uqq       %xmm16, %xmm19 {z}{k1}
+vcvttpd2uqq       (%rax), %xmm19 {z}{k1}
+vcvttpd2uqq       (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvttpd2uqq       %ymm16, %ymm19
+vcvttpd2uqq       (%rax), %ymm19
+vcvttpd2uqq       (%rax){1to4}, %ymm19
+vcvttpd2uqq       %ymm16, %ymm19 {k1}
+vcvttpd2uqq       (%rax), %ymm19 {k1}
+vcvttpd2uqq       (%rax){1to4}, %ymm19 {k1}
+vcvttpd2uqq       %ymm16, %ymm19 {z}{k1}
+vcvttpd2uqq       (%rax), %ymm19 {z}{k1}
+vcvttpd2uqq       (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvttps2qq        %xmm16, %xmm19
+vcvttps2qq        (%rax), %xmm19
+vcvttps2qq        (%rax){1to2}, %xmm19
+vcvttps2qq        %xmm16, %xmm19 {k1}
+vcvttps2qq        (%rax), %xmm19 {k1}
+vcvttps2qq        (%rax){1to2}, %xmm19 {k1}
+vcvttps2qq        %xmm16, %xmm19 {z}{k1}
+vcvttps2qq        (%rax), %xmm19 {z}{k1}
+vcvttps2qq        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvttps2qq        %xmm16, %ymm19
+vcvttps2qq        (%rax), %ymm19
+vcvttps2qq        (%rax){1to4}, %ymm19
+vcvttps2qq        %xmm16, %ymm19 {k1}
+vcvttps2qq        (%rax), %ymm19 {k1}
+vcvttps2qq        (%rax){1to4}, %ymm19 {k1}
+vcvttps2qq        %xmm16, %ymm19 {z}{k1}
+vcvttps2qq        (%rax), %ymm19 {z}{k1}
+vcvttps2qq        (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvttps2uqq       %xmm16, %xmm19
+vcvttps2uqq       (%rax), %xmm19
+vcvttps2uqq       (%rax){1to2}, %xmm19
+vcvttps2uqq       %xmm16, %xmm19 {k1}
+vcvttps2uqq       (%rax), %xmm19 {k1}
+vcvttps2uqq       (%rax){1to2}, %xmm19 {k1}
+vcvttps2uqq       %xmm16, %xmm19 {z}{k1}
+vcvttps2uqq       (%rax), %xmm19 {z}{k1}
+vcvttps2uqq       (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvttps2uqq       %xmm16, %ymm19
+vcvttps2uqq       (%rax), %ymm19
+vcvttps2uqq       (%rax){1to4}, %ymm19
+vcvttps2uqq       %xmm16, %ymm19 {k1}
+vcvttps2uqq       (%rax), %ymm19 {k1}
+vcvttps2uqq       (%rax){1to4}, %ymm19 {k1}
+vcvttps2uqq       %xmm16, %ymm19 {z}{k1}
+vcvttps2uqq       (%rax), %ymm19 {z}{k1}
+vcvttps2uqq       (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtuqq2pd        %xmm16, %xmm19
+vcvtuqq2pd        (%rax), %xmm19
+vcvtuqq2pd        (%rax){1to2}, %xmm19
+vcvtuqq2pd        %xmm16, %xmm19 {k1}
+vcvtuqq2pd        (%rax), %xmm19 {k1}
+vcvtuqq2pd        (%rax){1to2}, %xmm19 {k1}
+vcvtuqq2pd        %xmm16, %xmm19 {z}{k1}
+vcvtuqq2pd        (%rax), %xmm19 {z}{k1}
+vcvtuqq2pd        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtuqq2pd        %ymm16, %ymm19
+vcvtuqq2pd        (%rax), %ymm19
+vcvtuqq2pd        (%rax){1to4}, %ymm19
+vcvtuqq2pd        %ymm16, %ymm19 {k1}
+vcvtuqq2pd        (%rax), %ymm19 {k1}
+vcvtuqq2pd        (%rax){1to4}, %ymm19 {k1}
+vcvtuqq2pd        %ymm16, %ymm19 {z}{k1}
+vcvtuqq2pd        (%rax), %ymm19 {z}{k1}
+vcvtuqq2pd        (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtuqq2ps        %xmm16, %xmm19
+vcvtuqq2psx       (%rax), %xmm19
+vcvtuqq2ps        (%rax){1to2}, %xmm19
+vcvtuqq2ps        %xmm16, %xmm19 {k1}
+vcvtuqq2psx       (%rax), %xmm19 {k1}
+vcvtuqq2ps        (%rax){1to2}, %xmm19 {k1}
+vcvtuqq2ps        %xmm16, %xmm19 {z}{k1}
+vcvtuqq2psx       (%rax), %xmm19 {z}{k1}
+vcvtuqq2ps        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtuqq2ps        %ymm16, %xmm19
+vcvtuqq2psx       (%rax), %xmm19
+vcvtuqq2ps        (%rax){1to4}, %xmm19
+vcvtuqq2ps        %ymm16, %xmm19 {k1}
+vcvtuqq2psx       (%rax), %xmm19 {k1}
+vcvtuqq2ps        (%rax){1to4}, %xmm19 {k1}
+vcvtuqq2ps        %ymm16, %xmm19 {z}{k1}
+vcvtuqq2psx       (%rax), %xmm19 {z}{k1}
+vcvtuqq2ps        (%rax){1to4}, %xmm19 {z}{k1}
+
+vextractf64x2     $1, %ymm16, %xmm19
+vextractf64x2     $1, %ymm16, (%rax)
+vextractf64x2     $1, %ymm16, %xmm19 {k1}
+vextractf64x2     $1, %ymm16, (%rax) {k1}
+vextractf64x2     $1, %ymm16, %xmm19 {z}{k1}
+
+vextracti64x2     $1, %ymm16, %xmm19
+vextracti64x2     $1, %ymm16, (%rax)
+vextracti64x2     $1, %ymm16, %xmm19 {k1}
+vextracti64x2     $1, %ymm16, (%rax) {k1}
+vextracti64x2     $1, %ymm16, %xmm19 {z}{k1}
+
+vfpclasspd        $0xab, %xmm16, %k1
+vfpclasspdx       $0xab, (%rax), %k1
+vfpclasspdx       $0xab, (%rax){1to2}, %k1
+vfpclasspd        $0xab, %xmm16, %k1 {k2}
+vfpclasspdx       $0xab, (%rax), %k1 {k2}
+vfpclasspdx       $0xab, (%rax){1to2}, %k1 {k2}
+
+vfpclasspd        $0xab, %ymm16, %k1
+vfpclasspdy       $0xab, (%rax), %k1
+vfpclasspdy       $0xab, (%rax){1to4}, %k1
+vfpclasspd        $0xab, %ymm16, %k1 {k2}
+vfpclasspdy       $0xab, (%rax), %k1 {k2}
+vfpclasspdy       $0xab, (%rax){1to4}, %k1 {k2}
+
+vfpclassps        $0xab, %xmm16, %k1
+vfpclasspsx       $0xab, (%rax), %k1
+vfpclasspsx       $0xab, (%rax){1to4}, %k1
+vfpclassps        $0xab, %xmm16, %k1 {k2}
+vfpclasspsx       $0xab, (%rax), %k1 {k2}
+vfpclasspsx       $0xab, (%rax){1to4}, %k1 {k2}
+
+vfpclassps        $0xab, %ymm16, %k1
+vfpclasspsy       $0xab, (%rax), %k1
+vfpclasspsy       $0xab, (%rax){1to8}, %k1
+vfpclassps        $0xab, %ymm16, %k1 {k2}
+vfpclasspsy       $0xab, (%rax), %k1 {k2}
+vfpclasspsy       $0xab, (%rax){1to8}, %k1 {k2}
+
+vinsertf64x2      $1, %xmm16, %ymm16, %ymm19
+vinsertf64x2      $1, (%rax), %ymm16, %ymm19
+vinsertf64x2      $1, %xmm16, %ymm16, %ymm19 {k1}
+vinsertf64x2      $1, (%rax), %ymm16, %ymm19 {k1}
+vinsertf64x2      $1, %xmm16, %ymm16, %ymm19 {z}{k1}
+vinsertf64x2      $1, (%rax), %ymm16, %ymm19 {z}{k1}
+
+vinserti64x2      $1, %xmm16, %ymm16, %ymm19
+vinserti64x2      $1, (%rax), %ymm16, %ymm19
+vinserti64x2      $1, %xmm16, %ymm16, %ymm19 {k1}
+vinserti64x2      $1, (%rax), %ymm16, %ymm19 {k1}
+vinserti64x2      $1, %xmm16, %ymm16, %ymm19 {z}{k1}
+vinserti64x2      $1, (%rax), %ymm16, %ymm19 {z}{k1}
+
+vpmovm2d          %k0, %xmm0
+vpmovm2q          %k0, %xmm0
+
+vpmovm2d          %k0, %ymm0
+vpmovm2q          %k0, %ymm0
+
+vpmovd2m          %xmm0, %k0
+vpmovq2m          %xmm0, %k0
+
+vpmovd2m          %ymm0, %k0
+vpmovq2m          %ymm0, %k0
+
+vorpd             %xmm16, %xmm17, %xmm19
+vorpd             (%rax), %xmm17, %xmm19
+vorpd             (%rax){1to2}, %xmm17, %xmm19
+vorpd             %xmm16, %xmm17, %xmm19 {k1}
+vorpd             (%rax), %xmm17, %xmm19 {k1}
+vorpd             (%rax){1to2}, %xmm17, %xmm19 {k1}
+vorpd             %xmm16, %xmm17, %xmm19 {z}{k1}
+vorpd             (%rax), %xmm17, %xmm19 {z}{k1}
+vorpd             (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vorpd             %ymm16, %ymm17, %ymm19
+vorpd             (%rax), %ymm17, %ymm19
+vorpd             (%rax){1to4}, %ymm17, %ymm19
+vorpd             %ymm16, %ymm17, %ymm19 {k1}
+vorpd             (%rax), %ymm17, %ymm19 {k1}
+vorpd             (%rax){1to4}, %ymm17, %ymm19 {k1}
+vorpd             %ymm16, %ymm17, %ymm19 {z}{k1}
+vorpd             (%rax), %ymm17, %ymm19 {z}{k1}
+vorpd             (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vorps             %xmm16, %xmm17, %xmm19
+vorps             (%rax), %xmm17, %xmm19
+vorps             (%rax){1to4}, %xmm17, %xmm19
+vorps             %xmm16, %xmm17, %xmm19 {k1}
+vorps             (%rax), %xmm17, %xmm19 {k1}
+vorps             (%rax){1to4}, %xmm17, %xmm19 {k1}
+vorps             %xmm16, %xmm17, %xmm19 {z}{k1}
+vorps             (%rax), %xmm17, %xmm19 {z}{k1}
+vorps             (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vorps             %ymm16, %ymm17, %ymm19
+vorps             (%rax), %ymm17, %ymm19
+vorps             (%rax){1to8}, %ymm17, %ymm19
+vorps             %ymm16, %ymm17, %ymm19 {k1}
+vorps             (%rax), %ymm17, %ymm19 {k1}
+vorps             (%rax){1to8}, %ymm17, %ymm19 {k1}
+vorps             %ymm16, %ymm17, %ymm19 {z}{k1}
+vorps             (%rax), %ymm17, %ymm19 {z}{k1}
+vorps             (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpmullq           %xmm16, %xmm17, %xmm19
+vpmullq           (%rax), %xmm17, %xmm19
+vpmullq           %xmm16, %xmm17, %xmm19 {k1}
+vpmullq           (%rax), %xmm17, %xmm19 {k1}
+vpmullq           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmullq           (%rax), %xmm17, %xmm19 {z}{k1}
+
+vpmullq           %ymm16, %ymm17, %ymm19
+vpmullq           (%rax), %ymm17, %ymm19
+vpmullq           %ymm16, %ymm17, %ymm19 {k1}
+vpmullq           (%rax), %ymm17, %ymm19 {k1}
+vpmullq           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmullq           (%rax), %ymm17, %ymm19 {z}{k1}
+
+vrangepd          $ab, %xmm16, %xmm17, %xmm19
+vrangepd          $ab, (%rax), %xmm17, %xmm19
+vrangepd          $ab, (%rax){1to2}, %xmm17, %xmm19
+vrangepd          $ab, %xmm16, %xmm17, %xmm19 {k1}
+vrangepd          $ab, (%rax), %xmm17, %xmm19 {k1}
+vrangepd          $ab, (%rax){1to2}, %xmm17, %xmm19 {k1}
+vrangepd          $ab, %xmm16, %xmm17, %xmm19 {z}{k1}
+vrangepd          $ab, (%rax), %xmm17, %xmm19 {z}{k1}
+vrangepd          $ab, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vrangepd          $ab, %ymm16, %ymm17, %ymm19
+vrangepd          $ab, (%rax), %ymm17, %ymm19
+vrangepd          $ab, (%rax){1to4}, %ymm17, %ymm19
+vrangepd          $ab, %ymm16, %ymm17, %ymm19 {k1}
+vrangepd          $ab, (%rax), %ymm17, %ymm19 {k1}
+vrangepd          $ab, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vrangepd          $ab, %ymm16, %ymm17, %ymm19 {z}{k1}
+vrangepd          $ab, (%rax), %ymm17, %ymm19 {z}{k1}
+vrangepd          $ab, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vrangeps          $ab, %xmm16, %xmm17, %xmm19
+vrangeps          $ab, (%rax), %xmm17, %xmm19
+vrangeps          $ab, (%rax){1to4}, %xmm17, %xmm19
+vrangeps          $ab, %xmm16, %xmm17, %xmm19 {k1}
+vrangeps          $ab, (%rax), %xmm17, %xmm19 {k1}
+vrangeps          $ab, (%rax){1to4}, %xmm17, %xmm19 {k1}
+vrangeps          $ab, %xmm16, %xmm17, %xmm19 {z}{k1}
+vrangeps          $ab, (%rax), %xmm17, %xmm19 {z}{k1}
+vrangeps          $ab, (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vrangeps          $ab, %ymm16, %ymm17, %ymm19
+vrangeps          $ab, (%rax), %ymm17, %ymm19
+vrangeps          $ab, (%rax){1to8}, %ymm17, %ymm19
+vrangeps          $ab, %ymm16, %ymm17, %ymm19 {k1}
+vrangeps          $ab, (%rax), %ymm17, %ymm19 {k1}
+vrangeps          $ab, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vrangeps          $ab, %ymm16, %ymm17, %ymm19 {z}{k1}
+vrangeps          $ab, (%rax), %ymm17, %ymm19 {z}{k1}
+vrangeps          $ab, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vreducepd         $ab, %xmm16, %xmm19
+vreducepd         $ab, (%rax), %xmm19
+vreducepd         $ab, (%rax){1to2}, %xmm19
+vreducepd         $ab, %xmm16, %xmm19 {k1}
+vreducepd         $ab, (%rax), %xmm19 {k1}
+vreducepd         $ab, (%rax){1to2}, %xmm19 {k1}
+vreducepd         $ab, %xmm16, %xmm19 {z}{k1}
+vreducepd         $ab, (%rax), %xmm19 {z}{k1}
+vreducepd         $ab, (%rax){1to2}, %xmm19 {z}{k1}
+
+vreducepd         $ab, %ymm16, %ymm19
+vreducepd         $ab, (%rax), %ymm19
+vreducepd         $ab, (%rax){1to4}, %ymm19
+vreducepd         $ab, %ymm16, %ymm19 {k1}
+vreducepd         $ab, (%rax), %ymm19 {k1}
+vreducepd         $ab, (%rax){1to4}, %ymm19 {k1}
+vreducepd         $ab, %ymm16, %ymm19 {z}{k1}
+vreducepd         $ab, (%rax), %ymm19 {z}{k1}
+vreducepd         $ab, (%rax){1to4}, %ymm19 {z}{k1}
+
+vreduceps         $ab, %xmm16, %xmm19
+vreduceps         $ab, (%rax), %xmm19
+vreduceps         $ab, (%rax){1to4}, %xmm19
+vreduceps         $ab, %xmm16, %xmm19 {k1}
+vreduceps         $ab, (%rax), %xmm19 {k1}
+vreduceps         $ab, (%rax){1to4}, %xmm19 {k1}
+vreduceps         $ab, %xmm16, %xmm19 {z}{k1}
+vreduceps         $ab, (%rax), %xmm19 {z}{k1}
+vreduceps         $ab, (%rax){1to4}, %xmm19 {z}{k1}
+
+vreduceps         $ab, %ymm16, %ymm19
+vreduceps         $ab, (%rax), %ymm19
+vreduceps         $ab, (%rax){1to8}, %ymm19
+vreduceps         $ab, %ymm16, %ymm19 {k1}
+vreduceps         $ab, (%rax), %ymm19 {k1}
+vreduceps         $ab, (%rax){1to8}, %ymm19 {k1}
+vreduceps         $ab, %ymm16, %ymm19 {z}{k1}
+vreduceps         $ab, (%rax), %ymm19 {z}{k1}
+vreduceps         $ab, (%rax){1to8}, %ymm19 {z}{k1}
+
+vxorpd            %xmm16, %xmm17, %xmm19
+vxorpd            (%rax), %xmm17, %xmm19
+vxorpd            (%rax){1to2}, %xmm17, %xmm19
+vxorpd            %xmm16, %xmm17, %xmm19 {k1}
+vxorpd            (%rax), %xmm17, %xmm19 {k1}
+vxorpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vxorpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vxorpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vxorpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vxorpd            %ymm16, %ymm17, %ymm19
+vxorpd            (%rax), %ymm17, %ymm19
+vxorpd            (%rax){1to4}, %ymm17, %ymm19
+vxorpd            %ymm16, %ymm17, %ymm19 {k1}
+vxorpd            (%rax), %ymm17, %ymm19 {k1}
+vxorpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vxorpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vxorpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vxorpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vxorps            %xmm16, %xmm17, %xmm19
+vxorps            (%rax), %xmm17, %xmm19
+vxorps            (%rax){1to4}, %xmm17, %xmm19
+vxorps            %xmm16, %xmm17, %xmm19 {k1}
+vxorps            (%rax), %xmm17, %xmm19 {k1}
+vxorps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vxorps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vxorps            (%rax), %xmm17, %xmm19 {z}{k1}
+vxorps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vxorps            %ymm16, %ymm17, %ymm19
+vxorps            (%rax), %ymm17, %ymm19
+vxorps            (%rax){1to8}, %ymm17, %ymm19
+vxorps            %ymm16, %ymm17, %ymm19 {k1}
+vxorps            (%rax), %ymm17, %ymm19 {k1}
+vxorps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vxorps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vxorps            (%rax), %ymm17, %ymm19 {z}{k1}
+vxorps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandnpd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnpd        (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandnps        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vandnps        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandnps        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandnps        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vandnps        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandnps        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandnps        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vandpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vandpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vandps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vandps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vandps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vandps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vbroadcastf32x2        %xmm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcastf32x2        (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00                        vbroadcastf32x2        %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcastf32x2        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vbroadcastf32x2        %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcastf32x2        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x2        (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x2        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf64x2        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vbroadcasti32x2        %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x2        (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vbroadcasti32x2        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x2        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vbroadcasti32x2        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x2        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vbroadcasti32x2        %xmm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcasti32x2        (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00                        vbroadcasti32x2        %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcasti32x2        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vbroadcasti32x2        %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vbroadcasti32x2        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x2        (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x2        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti64x2        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2qq      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2qq      (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2qq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2qq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2qq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2qq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2qq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2qq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2qq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2qq      %ymm16, %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2qq      (%rax), %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2qq      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2qq      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2qq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2qq      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2qq      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2qq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2qq      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2uqq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2uqq     (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2uqq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2uqq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2uqq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2uqq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2uqq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2uqq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2uqq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2uqq     %ymm16, %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2uqq     (%rax), %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2uqq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2uqq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2uqq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2uqq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2uqq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2uqq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2uqq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2qq      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2qq      (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2qq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtps2qq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2qq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2qq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2qq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2qq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2qq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2qq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2qq      (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2qq      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvtps2qq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2qq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2qq      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2qq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2qq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2qq      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2uqq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2uqq     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2uqq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtps2uqq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2uqq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2uqq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2uqq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2uqq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2uqq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2uqq     %xmm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2uqq     (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2uqq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvtps2uqq     %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2uqq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2uqq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2uqq     %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2uqq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2uqq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2pd      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2pd      (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2pd      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2pd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2pd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2pd      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2pd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2pd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2pd      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtqq2pd      %ymm16, %ymm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtqq2pd      (%rax), %ymm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtqq2pd      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtqq2pd      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtqq2pd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtqq2pd      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtqq2pd      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtqq2pd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtqq2pd      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2ps      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2psx     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2ps      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2ps      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2psx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2ps      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2ps      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2psx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2ps      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2ps      %ymm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2psx     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2ps      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2ps      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2psx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2ps      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtqq2ps      %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2psx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtqq2ps      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2qq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2qq     (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2qq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2qq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2qq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2qq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2qq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2qq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2qq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2qq     %ymm16, %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2qq     (%rax), %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2qq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2qq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2qq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2qq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2qq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2qq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2qq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2uqq    %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2uqq    (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2uqq    (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2uqq    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2uqq    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2uqq    (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2uqq    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2uqq    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2uqq    (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2uqq    %ymm16, %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2uqq    (%rax), %ymm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2uqq    (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2uqq    %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2uqq    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2uqq    (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2uqq    %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2uqq    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2uqq    (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2qq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2qq     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2qq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvttps2qq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2qq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2qq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2qq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2qq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2qq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2qq     %xmm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2qq     (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2qq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvttps2qq     %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2qq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2qq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2qq     %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2qq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2qq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2uqq    %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2uqq    (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2uqq    (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvttps2uqq    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2uqq    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2uqq    (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2uqq    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2uqq    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2uqq    (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2uqq    %xmm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2uqq    (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2uqq    (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvttps2uqq    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2uqq    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2uqq    (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2uqq    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2uqq    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2uqq    (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2pd     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2pd     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2pd     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2pd     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2pd     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2pd     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2pd     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2pd     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2pd     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtuqq2pd     %ymm16, %ymm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtuqq2pd     (%rax), %ymm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtuqq2pd     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtuqq2pd     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtuqq2pd     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtuqq2pd     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtuqq2pd     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtuqq2pd     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtuqq2pd     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2ps     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2psx    (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2ps     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2ps     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2psx    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2ps     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2ps     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2psx    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2ps     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2ps     %ymm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2psx    (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2ps     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2ps     %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2psx    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2ps     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtuqq2ps     %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2psx    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtuqq2ps     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vextractf64x2  $1, %ymm16, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vextractf64x2  $1, %ymm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vextractf64x2  $1, %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vextractf64x2  $1, %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vextractf64x2  $1, %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %ymm16, %xmm19
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %ymm16, (%rax)
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vextracti64x2  $1, %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      1     1.00                        vextracti64x2  $1, %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vfpclasspd     $171, %xmm16, %k1
+# CHECK-NEXT:  1      8     0.50    *                   vfpclasspdx    $171, (%rax), %k1
+# CHECK-NEXT:  1      8     0.50    *                   vfpclasspd     $171, (%rax){1to2}, %k1
+# CHECK-NEXT:  1      1     0.50                        vfpclasspd     $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  1      8     0.50    *                   vfpclasspdx    $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      8     0.50    *                   vfpclasspd     $171, (%rax){1to2}, %k1 {%k2}
+# CHECK-NEXT:  1      2     1.00                        vfpclasspd     $171, %ymm16, %k1
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasspdy    $171, (%rax), %k1
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasspd     $171, (%rax){1to4}, %k1
+# CHECK-NEXT:  1      2     1.00                        vfpclasspd     $171, %ymm16, %k1 {%k2}
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasspdy    $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasspd     $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT:  1      1     0.50                        vfpclassps     $171, %xmm16, %k1
+# CHECK-NEXT:  1      8     0.50    *                   vfpclasspsx    $171, (%rax), %k1
+# CHECK-NEXT:  1      8     0.50    *                   vfpclassps     $171, (%rax){1to4}, %k1
+# CHECK-NEXT:  1      1     0.50                        vfpclassps     $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  1      8     0.50    *                   vfpclasspsx    $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      8     0.50    *                   vfpclassps     $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT:  1      2     1.00                        vfpclassps     $171, %ymm16, %k1
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasspsy    $171, (%rax), %k1
+# CHECK-NEXT:  1      9     1.00    *                   vfpclassps     $171, (%rax){1to8}, %k1
+# CHECK-NEXT:  1      2     1.00                        vfpclassps     $171, %ymm16, %k1 {%k2}
+# CHECK-NEXT:  1      9     1.00    *                   vfpclasspsy    $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  1      9     1.00    *                   vfpclassps     $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT:  1      2     1.00                        vinsertf64x2   $1, %xmm16, %ymm16, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf64x2   $1, (%rax), %ymm16, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vinsertf64x2   $1, %xmm16, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf64x2   $1, (%rax), %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vinsertf64x2   $1, %xmm16, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vinsertf64x2   $1, (%rax), %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vinserti64x2   $1, %xmm16, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vinserti64x2   $1, (%rax), %ymm16, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vinserti64x2   $1, %xmm16, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vinserti64x2   $1, (%rax), %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vinserti64x2   $1, %xmm16, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vinserti64x2   $1, (%rax), %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vpmovm2d       %k0, %xmm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2q       %k0, %xmm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2d       %k0, %ymm0
+# CHECK-NEXT:  1      0     0.17                        vpmovm2q       %k0, %ymm0
+# CHECK-NEXT:  1      1     1.00                        vpmovd2m       %xmm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovq2m       %xmm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovd2m       %ymm0, %k0
+# CHECK-NEXT:  1      1     1.00                        vpmovq2m       %ymm0, %k0
+# CHECK-NEXT:  1      1     0.25                        vorpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vorpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vorpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vorpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vorpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vorpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vorps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vorps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vorps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vorps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vorps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vorps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vorps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmullq        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmullq        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmullq        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullq        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmullq        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullq        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmullq        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmullq        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmullq        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullq        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmullq        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmullq        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangepd       $ab, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangepd       $ab, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vrangeps       $ab, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vrangeps       $ab, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax){1to2}, %xmm19
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreducepd      $ab, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vreducepd      $ab, %ymm16, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax), %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vreducepd      $ab, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vreducepd      $ab, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreducepd      $ab, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax){1to4}, %xmm19
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     3.00                        vreduceps      $ab, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vreduceps      $ab, %ymm16, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax), %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vreduceps      $ab, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vreduceps      $ab, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vreduceps      $ab, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vxorpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vxorpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vxorpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vxorpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vxorpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vxorpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vxorps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vxorps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vxorps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vxorps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vxorps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     4.00   4.00   4.00   4.00    -     72.00  102.00 240.00 240.00 167.50 167.50 4.00   111.67 111.67 111.67 110.33 110.33 110.33 2.00   2.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandnps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandnps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vandps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vandps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastf32x2 %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x2 (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastf32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastf32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x2 (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcasti32x2 %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x2 (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x2 (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti64x2 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2qq       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2qq       (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2uqq      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2uqq      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2qq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2qq       (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2uqq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2uqq      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2pd       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2pd       (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2psx      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2psx      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2psx      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2psx      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2psx      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtqq2ps       %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2psx      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtqq2ps       (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2qq      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2qq      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2uqq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2uqq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2qq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2qq      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2uqq     %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2uqq     (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2pd      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2pd      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2psx     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2psx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2psx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2psx     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2psx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtuqq2ps      %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2psx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtuqq2ps      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf64x2   $1, %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf64x2   $1, %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf64x2   $1, %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextractf64x2   $1, %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextractf64x2   $1, %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti64x2   $1, %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti64x2   $1, %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti64x2   $1, %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vextracti64x2   $1, %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vextracti64x2   $1, %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasspd      $171, %xmm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspdx     $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspd      $171, (%rax){1to2}, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasspd      $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspdx     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspd      $171, (%rax){1to2}, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasspd      $171, %ymm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspdy     $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspd      $171, (%rax){1to4}, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclasspd      $171, %ymm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspdy     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspd      $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassps      $171, %xmm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspsx     $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassps      $171, (%rax){1to4}, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassps      $171, %xmm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspsx     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassps      $171, (%rax){1to4}, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassps      $171, %ymm16, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspsy     $171, (%rax), %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassps      $171, (%rax){1to8}, %k1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfpclassps      $171, %ymm16, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclasspsy     $171, (%rax), %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfpclassps      $171, (%rax){1to8}, %k1 {%k2}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf64x2    $1, %xmm16, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf64x2    $1, (%rax), %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf64x2    $1, %xmm16, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf64x2    $1, (%rax), %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinsertf64x2    $1, %xmm16, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinsertf64x2    $1, (%rax), %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti64x2    $1, %xmm16, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti64x2    $1, (%rax), %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti64x2    $1, %xmm16, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti64x2    $1, (%rax), %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vinserti64x2    $1, %xmm16, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vinserti64x2    $1, (%rax), %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2d        %k0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2q        %k0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2d        %k0, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovm2q        %k0, %ymm0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovd2m        %xmm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovq2m        %xmm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovd2m        %ymm0, %k0
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpmovq2m        %ymm0, %k0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorpd   %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorpd   (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vorps   %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vorps   (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmullq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmullq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangepd        $ab, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangepd        $ab, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vrangeps        $ab, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vrangeps        $ab, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vreducepd       $ab, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreducepd       $ab, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vreduceps       $ab, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vreduceps       $ab, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vxorps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vxorps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512gfni.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512gfni.s
new file mode 100644 (file)
index 0000000..501713d
--- /dev/null
@@ -0,0 +1,119 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vgf2p8affineinvqb   $0, %zmm16, %zmm17, %zmm19
+vgf2p8affineinvqb   $0, (%rax), %zmm17, %zmm19
+vgf2p8affineinvqb   $0, (%rax){1to8}, %zmm17, %zmm19
+vgf2p8affineinvqb   $0, %zmm16, %zmm17, %zmm19 {k1}
+vgf2p8affineinvqb   $0, (%rax), %zmm17, %zmm19 {k1}
+vgf2p8affineinvqb   $0, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vgf2p8affineinvqb   $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vgf2p8affineinvqb   $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vgf2p8affineinvqb   $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vgf2p8affineqb      $0, %zmm16, %zmm17, %zmm19
+vgf2p8affineqb      $0, (%rax), %zmm17, %zmm19
+vgf2p8affineqb      $0, (%rax){1to8}, %zmm17, %zmm19
+vgf2p8affineqb      $0, %zmm16, %zmm17, %zmm19
+vgf2p8affineqb      $0, (%rax), %zmm17, %zmm19
+vgf2p8affineqb      $0, (%rax){1to8}, %zmm17, %zmm19
+vgf2p8affineqb      $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vgf2p8affineqb      $0, (%rax), %zmm17, %zmm19 {z}{k1}
+vgf2p8affineqb      $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1}
+
+vgf2p8mulb          %zmm16, %zmm17, %zmm19
+vgf2p8mulb          (%rax), %zmm17, %zmm19
+vgf2p8mulb          %zmm16, %zmm17, %zmm19 {k1}
+vgf2p8mulb          (%rax), %zmm17, %zmm19 {k1}
+vgf2p8mulb          %zmm16, %zmm17, %zmm19 {z}{k1}
+vgf2p8mulb          (%rax), %zmm17, %zmm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     1.00                        vgf2p8affineinvqb      $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineinvqb      $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineinvqb      $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vgf2p8affineinvqb      $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineinvqb      $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineinvqb      $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vgf2p8affineinvqb      $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineinvqb      $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineinvqb      $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vgf2p8affineqb $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineqb $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineqb $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vgf2p8affineqb $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineqb $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineqb $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      3     1.00                        vgf2p8affineqb $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineqb $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vgf2p8affineqb $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     21.00  3.00   3.00   21.00  7.50   7.50    -     5.00   5.00   5.00   5.00   5.00   5.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512gfnivl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512gfnivl.s
new file mode 100644 (file)
index 0000000..47dc617
--- /dev/null
@@ -0,0 +1,194 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vgf2p8affineinvqb   $0, %xmm16, %xmm17, %xmm19
+vgf2p8affineinvqb   $0, (%rax), %xmm17, %xmm19
+vgf2p8affineinvqb   $0, (%rax){1to2}, %xmm17, %xmm19
+vgf2p8affineinvqb   $0, %xmm16, %xmm17, %xmm19 {k1}
+vgf2p8affineinvqb   $0, (%rax), %xmm17, %xmm19 {k1}
+vgf2p8affineinvqb   $0, (%rax){1to2}, %xmm17, %xmm19 {k1}
+vgf2p8affineinvqb   $0, %xmm16, %xmm17, %xmm19 {z}{k1}
+vgf2p8affineinvqb   $0, (%rax), %xmm17, %xmm19 {z}{k1}
+vgf2p8affineinvqb   $0, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vgf2p8affineinvqb   $0, %ymm16, %ymm17, %ymm19
+vgf2p8affineinvqb   $0, (%rax), %ymm17, %ymm19
+vgf2p8affineinvqb   $0, (%rax){1to4}, %ymm17, %ymm19
+vgf2p8affineinvqb   $0, %ymm16, %ymm17, %ymm19 {k1}
+vgf2p8affineinvqb   $0, (%rax), %ymm17, %ymm19 {k1}
+vgf2p8affineinvqb   $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vgf2p8affineinvqb   $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vgf2p8affineinvqb   $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vgf2p8affineinvqb   $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vgf2p8affineqb      $0, %xmm16, %xmm17, %xmm19
+vgf2p8affineqb      $0, (%rax), %xmm17, %xmm19
+vgf2p8affineqb      $0, (%rax){1to2}, %xmm17, %xmm19
+vgf2p8affineqb      $0, %xmm16, %xmm17, %xmm19
+vgf2p8affineqb      $0, (%rax), %xmm17, %xmm19
+vgf2p8affineqb      $0, (%rax){1to2}, %xmm17, %xmm19
+vgf2p8affineqb      $0, %xmm16, %xmm17, %xmm19 {z}{k1}
+vgf2p8affineqb      $0, (%rax), %xmm17, %xmm19 {z}{k1}
+vgf2p8affineqb      $0, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vgf2p8affineqb      $0, %ymm16, %ymm17, %ymm19
+vgf2p8affineqb      $0, (%rax), %ymm17, %ymm19
+vgf2p8affineqb      $0, (%rax){1to4}, %ymm17, %ymm19
+vgf2p8affineqb      $0, %ymm16, %ymm17, %ymm19
+vgf2p8affineqb      $0, (%rax), %ymm17, %ymm19
+vgf2p8affineqb      $0, (%rax){1to4}, %ymm17, %ymm19
+vgf2p8affineqb      $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vgf2p8affineqb      $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vgf2p8affineqb      $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vgf2p8mulb          %xmm16, %xmm17, %xmm19
+vgf2p8mulb          (%rax), %xmm17, %xmm19
+vgf2p8mulb          %xmm16, %xmm17, %xmm19 {k1}
+vgf2p8mulb          (%rax), %xmm17, %xmm19 {k1}
+vgf2p8mulb          %xmm16, %xmm17, %xmm19 {z}{k1}
+vgf2p8mulb          (%rax), %xmm17, %xmm19 {z}{k1}
+
+vgf2p8mulb          %ymm16, %ymm17, %ymm19
+vgf2p8mulb          (%rax), %ymm17, %ymm19
+vgf2p8mulb          %ymm16, %ymm17, %ymm19 {k1}
+vgf2p8mulb          (%rax), %ymm17, %ymm19 {k1}
+vgf2p8mulb          %ymm16, %ymm17, %ymm19 {z}{k1}
+vgf2p8mulb          (%rax), %ymm17, %ymm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     21.00  3.00   3.00   21.00  15.00  15.00   -     10.00  10.00  10.00  10.00  10.00  10.00   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512ifma.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512ifma.s
new file mode 100644 (file)
index 0000000..a71589e
--- /dev/null
@@ -0,0 +1,100 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpmadd52huq     %zmm16, %zmm17, %zmm19
+vpmadd52huq     (%rdi), %zmm17, %zmm19
+vpmadd52huq     (%rdi){1to8}, %zmm17, %zmm19
+vpmadd52huq     %zmm16, %zmm17, %zmm19 {%k1}
+vpmadd52huq     (%rdi), %zmm17, %zmm19 {%k1}
+vpmadd52huq     (%rdi){1to8}, %zmm17, %zmm19 {%k1}
+vpmadd52huq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+vpmadd52huq     (%rdi), %zmm17, %zmm19 {%k1} {z}
+vpmadd52huq     (%rdi){1to8}, %zmm17, %zmm19 {%k1} {z}
+
+vpmadd52luq     %zmm16, %zmm17, %zmm19
+vpmadd52luq     (%rdi), %zmm17, %zmm19
+vpmadd52luq     (%rdi){1to8}, %zmm17, %zmm19
+vpmadd52luq     %zmm16, %zmm17, %zmm19 {%k1}
+vpmadd52luq     (%rdi), %zmm17, %zmm19 {%k1}
+vpmadd52luq     (%rdi){1to8}, %zmm17, %zmm19 {%k1}
+vpmadd52luq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+vpmadd52luq     (%rdi), %zmm17, %zmm19 {%k1} {z}
+vpmadd52luq     (%rdi){1to8}, %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52huq    (%rdi), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52huq    (%rdi){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52huq    (%rdi), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52huq    (%rdi){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52huq    (%rdi), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52huq    (%rdi){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52luq    (%rdi), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52luq    (%rdi){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52luq    (%rdi), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52luq    (%rdi){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52luq    (%rdi), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpmadd52luq    (%rdi){1to8}, %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     24.00  12.00   -     12.00  6.00   6.00    -     4.00   4.00   4.00   4.00   4.00   4.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to8}, %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512ifmavl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512ifmavl.s
new file mode 100644 (file)
index 0000000..9b7393d
--- /dev/null
@@ -0,0 +1,156 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpmadd52huq     %xmm16, %xmm17, %xmm19
+vpmadd52huq     (%rdi), %xmm17, %xmm19
+vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19
+vpmadd52huq     %xmm16, %xmm17, %xmm19 {%k1}
+vpmadd52huq     (%rdi), %xmm17, %xmm19 {%k1}
+vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19 {%k1}
+vpmadd52huq     %xmm16, %xmm17, %xmm19 {%k1} {z}
+vpmadd52huq     (%rdi), %xmm17, %xmm19 {%k1} {z}
+vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
+
+vpmadd52huq     %ymm16, %ymm17, %ymm19
+vpmadd52huq     (%rdi), %ymm17, %ymm19
+vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19
+vpmadd52huq     %ymm16, %ymm17, %ymm19 {%k1}
+vpmadd52huq     (%rdi), %ymm17, %ymm19 {%k1}
+vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19 {%k1}
+vpmadd52huq     %ymm16, %ymm17, %ymm19 {%k1} {z}
+vpmadd52huq     (%rdi), %ymm17, %ymm19 {%k1} {z}
+vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
+
+vpmadd52luq     %xmm16, %xmm17, %xmm19
+vpmadd52luq     (%rdi), %xmm17, %xmm19
+vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19
+vpmadd52luq     %xmm16, %xmm17, %xmm19 {%k1}
+vpmadd52luq     (%rdi), %xmm17, %xmm19 {%k1}
+vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19 {%k1}
+vpmadd52luq     %xmm16, %xmm17, %xmm19 {%k1} {z}
+vpmadd52luq     (%rdi), %xmm17, %xmm19 {%k1} {z}
+vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
+
+vpmadd52luq     %ymm16, %ymm17, %ymm19
+vpmadd52luq     (%rdi), %ymm17, %ymm19
+vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19
+vpmadd52luq     %ymm16, %ymm17, %ymm19 {%k1}
+vpmadd52luq     (%rdi), %ymm17, %ymm19 {%k1}
+vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19 {%k1}
+vpmadd52luq     %ymm16, %ymm17, %ymm19 {%k1} {z}
+vpmadd52luq     (%rdi), %ymm17, %ymm19 {%k1} {z}
+vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52huq    %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52huq    (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpmadd52luq    %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmadd52luq    (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     36.00  24.00   -     12.00  12.00  12.00   -     8.00   8.00   8.00   8.00   8.00   8.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52huq     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpmadd52luq     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vaes.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vaes.s
new file mode 100644 (file)
index 0000000..462233c
--- /dev/null
@@ -0,0 +1,72 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vaesdec          %zmm16, %zmm17, %zmm19
+vaesdec          (%rax), %zmm17, %zmm19
+
+vaesdeclast      %zmm16, %zmm17, %zmm19
+vaesdeclast      (%rax), %zmm17, %zmm19
+
+vaesenc          %zmm16, %zmm17, %zmm19
+vaesenc          (%rax), %zmm17, %zmm19
+
+vaesenclast      %zmm16, %zmm17, %zmm19
+vaesenclast      (%rax), %zmm17, %zmm19
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     0.50                        vaesdec        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesdec        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      4     0.50                        vaesdeclast    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesdeclast    (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      4     0.50                        vaesenc        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesenc        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      4     0.50                        vaesenclast    %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesenclast    (%rax), %zmm17, %zmm19
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     2.00   2.00    -     1.33   1.33   1.33   1.33   1.33   1.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdec %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdec (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdeclast     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdeclast     (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenc %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenc (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenclast     %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenclast     (%rax), %zmm17, %zmm19
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vaesvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vaesvl.s
new file mode 100644 (file)
index 0000000..59fceb8
--- /dev/null
@@ -0,0 +1,100 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vaesdec          %xmm16, %xmm17, %xmm19
+vaesdec          (%rax), %xmm17, %xmm19
+
+vaesdec          %ymm16, %ymm17, %ymm19
+vaesdec          (%rax), %ymm17, %ymm19
+
+vaesdeclast      %xmm16, %xmm17, %xmm19
+vaesdeclast      (%rax), %xmm17, %xmm19
+
+vaesdeclast      %ymm16, %ymm17, %ymm19
+vaesdeclast      (%rax), %ymm17, %ymm19
+
+vaesenc          %xmm16, %xmm17, %xmm19
+vaesenc          (%rax), %xmm17, %xmm19
+
+vaesenc          %ymm16, %ymm17, %ymm19
+vaesenc          (%rax), %ymm17, %ymm19
+
+vaesenclast      %xmm16, %xmm17, %xmm19
+vaesenclast      (%rax), %xmm17, %xmm19
+
+vaesenclast      %ymm16, %ymm17, %ymm19
+vaesenclast      (%rax), %ymm17, %ymm19
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     0.50                        vaesdec        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesdec        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      4     0.50                        vaesdec        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesdec        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vaesdeclast    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesdeclast    (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      4     0.50                        vaesdeclast    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesdeclast    (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vaesenc        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesenc        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      4     0.50                        vaesenc        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesenc        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vaesenclast    %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesenclast    (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      4     0.50                        vaesenclast    %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vaesenclast    (%rax), %ymm17, %ymm19
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     8.00   8.00    -      -     4.00   4.00    -     2.67   2.67   2.67   2.67   2.67   2.67    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdec %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdec (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdec %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdec (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdeclast     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdeclast     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdeclast     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdeclast     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenc %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenc (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenc %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenc (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenclast     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenclast     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenclast     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenclast     (%rax), %ymm17, %ymm19
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi.s
new file mode 100644 (file)
index 0000000..845faf8
--- /dev/null
@@ -0,0 +1,129 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpermb            %zmm16, %zmm17, %zmm19
+vpermb            (%rax), %zmm17, %zmm19
+vpermb            %zmm16, %zmm17, %zmm19 {k1}
+vpermb            (%rax), %zmm17, %zmm19 {k1}
+vpermb            %zmm16, %zmm17, %zmm19 {k1}{z}
+vpermb            (%rax), %zmm17, %zmm19 {k1}{z}
+
+vpermi2b          %zmm16, %zmm17, %zmm19
+vpermi2b          (%rax), %zmm17, %zmm19
+vpermi2b          %zmm16, %zmm17, %zmm19 {k1}
+vpermi2b          (%rax), %zmm17, %zmm19 {k1}
+vpermi2b          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpermi2b          (%rax), %zmm17, %zmm19 {k1}{z}
+
+vpermt2b          %zmm16, %zmm17, %zmm19
+vpermt2b          (%rax), %zmm17, %zmm19
+vpermt2b          %zmm16, %zmm17, %zmm19 {k1}
+vpermt2b          (%rax), %zmm17, %zmm19 {k1}
+vpermt2b          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpermt2b          (%rax), %zmm17, %zmm19 {k1}{z}
+
+vpmultishiftqb    %zmm16, %zmm17, %zmm19
+vpmultishiftqb    (%rax), %zmm17, %zmm19
+vpmultishiftqb    (%rax){1to8}, %zmm17, %zmm19
+vpmultishiftqb    %zmm16, %zmm17, %zmm19 {k1}
+vpmultishiftqb    (%rax), %zmm17, %zmm19 {k1}
+vpmultishiftqb    (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpmultishiftqb    %zmm16, %zmm17, %zmm19 {k1}{z}
+vpmultishiftqb    (%rax), %zmm17, %zmm19 {k1}{z}
+vpmultishiftqb    (%rax){1to8}, %zmm17, %zmm19 {k1}{z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      5     1.00                        vpermb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermi2b       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermi2b       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermi2b       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                        vpermt2b       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpermt2b       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpermt2b       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpmultishiftqb %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpmultishiftqb %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpmultishiftqb %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.50   18.00  18.00  4.50   7.50   7.50    -     5.00   5.00   5.00   5.00   5.00   5.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2.s
new file mode 100644 (file)
index 0000000..594518d
--- /dev/null
@@ -0,0 +1,408 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpcompressb       %zmm16, %zmm19
+vpcompressb       %zmm16, (%rax)
+vpcompressb       %zmm16, %zmm19 {k1}
+vpcompressb       %zmm16, (%rax) {k1}
+vpcompressb       %zmm16, %zmm19 {k1}{z}
+
+vpcompressw       %zmm16, %zmm19
+vpcompressw       %zmm16, (%rax)
+vpcompressw       %zmm16, %zmm19 {k1}
+vpcompressw       %zmm16, (%rax) {k1}
+vpcompressw       %zmm16, %zmm19 {k1}{z}
+
+vpexpandb         %zmm16, %zmm19
+vpexpandb         (%rax), %zmm19
+vpexpandb         %zmm16, %zmm19 {k1}
+vpexpandb         (%rax), %zmm19 {k1}
+vpexpandb         %zmm16, %zmm19 {k1}{z}
+
+vpexpandw         %zmm16, %zmm19
+vpexpandw         (%rax), %zmm19
+vpexpandw         %zmm16, %zmm19 {k1}
+vpexpandw         (%rax), %zmm19 {k1}
+vpexpandw         %zmm16, %zmm19 {k1}{z}
+
+vpshldd           $1, %zmm16, %zmm17, %zmm19
+vpshldd           $1, (%rax), %zmm17, %zmm19
+vpshldd           $1, (%rax){1to16}, %zmm17, %zmm19
+vpshldd           $1, %zmm16, %zmm17, %zmm19 {k1}
+vpshldd           $1, (%rax), %zmm17, %zmm19 {k1}
+vpshldd           $1, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpshldd           $1, %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshldd           $1, (%rax), %zmm17, %zmm19 {k1}{z}
+vpshldd           $1, (%rax){1to16}, %zmm17, %zmm19 {k1}{z}
+
+vpshldq           $1, %zmm16, %zmm17, %zmm19
+vpshldq           $1, (%rax), %zmm17, %zmm19
+vpshldq           $1, (%rax){1to8}, %zmm17, %zmm19
+vpshldq           $1, %zmm16, %zmm17, %zmm19 {k1}
+vpshldq           $1, (%rax), %zmm17, %zmm19 {k1}
+vpshldq           $1, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpshldq           $1, %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshldq           $1, (%rax), %zmm17, %zmm19 {k1}{z}
+vpshldq           $1, (%rax){1to8}, %zmm17, %zmm19 {k1}{z}
+
+vpshldvd          %zmm16, %zmm17, %zmm19
+vpshldvd          (%rax), %zmm17, %zmm19
+vpshldvd          (%rax){1to16}, %zmm17, %zmm19
+vpshldvd          %zmm16, %zmm17, %zmm19 {k1}
+vpshldvd          (%rax), %zmm17, %zmm19 {k1}
+vpshldvd          (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpshldvd          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshldvd          (%rax), %zmm17, %zmm19 {k1}{z}
+vpshldvd          (%rax){1to16}, %zmm17, %zmm19 {k1}{z}
+
+vpshldvq          %zmm16, %zmm17, %zmm19
+vpshldvq          (%rax), %zmm17, %zmm19
+vpshldvq          (%rax){1to8}, %zmm17, %zmm19
+vpshldvq          %zmm16, %zmm17, %zmm19 {k1}
+vpshldvq          (%rax), %zmm17, %zmm19 {k1}
+vpshldvq          (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpshldvq          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshldvq          (%rax), %zmm17, %zmm19 {k1}{z}
+vpshldvq          (%rax){1to8}, %zmm17, %zmm19 {k1}{z}
+
+vpshldvw          %zmm16, %zmm17, %zmm19
+vpshldvw          (%rax), %zmm17, %zmm19
+vpshldvw          %zmm16, %zmm17, %zmm19 {k1}
+vpshldvw          (%rax), %zmm17, %zmm19 {k1}
+vpshldvw          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshldvw          (%rax), %zmm17, %zmm19 {k1}{z}
+
+vpshldw           $1, %zmm16, %zmm17, %zmm19
+vpshldw           $1, (%rax), %zmm17, %zmm19
+vpshldw           $1, %zmm16, %zmm17, %zmm19 {k1}
+vpshldw           $1, (%rax), %zmm17, %zmm19 {k1}
+vpshldw           $1, %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshldw           $1, (%rax), %zmm17, %zmm19 {k1}{z}
+
+vpshrdd           $1, %zmm16, %zmm17, %zmm19
+vpshrdd           $1, (%rax), %zmm17, %zmm19
+vpshrdd           $1, (%rax){1to16}, %zmm17, %zmm19
+vpshrdd           $1, %zmm16, %zmm17, %zmm19 {k1}
+vpshrdd           $1, (%rax), %zmm17, %zmm19 {k1}
+vpshrdd           $1, (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpshrdd           $1, %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshrdd           $1, (%rax), %zmm17, %zmm19 {k1}{z}
+vpshrdd           $1, (%rax){1to16}, %zmm17, %zmm19 {k1}{z}
+
+vpshrdq           $1, %zmm16, %zmm17, %zmm19
+vpshrdq           $1, (%rax), %zmm17, %zmm19
+vpshrdq           $1, (%rax){1to8}, %zmm17, %zmm19
+vpshrdq           $1, %zmm16, %zmm17, %zmm19 {k1}
+vpshrdq           $1, (%rax), %zmm17, %zmm19 {k1}
+vpshrdq           $1, (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpshrdq           $1, %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshrdq           $1, (%rax), %zmm17, %zmm19 {k1}{z}
+vpshrdq           $1, (%rax){1to8}, %zmm17, %zmm19 {k1}{z}
+
+vpshrdvd          %zmm16, %zmm17, %zmm19
+vpshrdvd          (%rax), %zmm17, %zmm19
+vpshrdvd          (%rax){1to16}, %zmm17, %zmm19
+vpshrdvd          %zmm16, %zmm17, %zmm19 {k1}
+vpshrdvd          (%rax), %zmm17, %zmm19 {k1}
+vpshrdvd          (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpshrdvd          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshrdvd          (%rax), %zmm17, %zmm19 {k1}{z}
+vpshrdvd          (%rax){1to16}, %zmm17, %zmm19 {k1}{z}
+
+vpshrdvq          %zmm16, %zmm17, %zmm19
+vpshrdvq          (%rax), %zmm17, %zmm19
+vpshrdvq          (%rax){1to8}, %zmm17, %zmm19
+vpshrdvq          %zmm16, %zmm17, %zmm19 {k1}
+vpshrdvq          (%rax), %zmm17, %zmm19 {k1}
+vpshrdvq          (%rax){1to8}, %zmm17, %zmm19 {k1}
+vpshrdvq          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshrdvq          (%rax), %zmm17, %zmm19 {k1}{z}
+vpshrdvq          (%rax){1to8}, %zmm17, %zmm19 {k1}{z}
+
+vpshrdvw          %zmm16, %zmm17, %zmm19
+vpshrdvw          (%rax), %zmm17, %zmm19
+vpshrdvw          %zmm16, %zmm17, %zmm19 {k1}
+vpshrdvw          (%rax), %zmm17, %zmm19 {k1}
+vpshrdvw          %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshrdvw          (%rax), %zmm17, %zmm19 {k1}{z}
+
+vpshrdw           $1, %zmm16, %zmm17, %zmm19
+vpshrdw           $1, (%rax), %zmm17, %zmm19
+vpshrdw           $1, %zmm16, %zmm17, %zmm19 {k1}
+vpshrdw           $1, (%rax), %zmm17, %zmm19 {k1}
+vpshrdw           $1, %zmm16, %zmm17, %zmm19 {k1}{z}
+vpshrdw           $1, (%rax), %zmm17, %zmm19 {k1}{z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      5     1.00                  U     vpcompressb    %zmm16, %zmm19
+# CHECK-NEXT:  2      8     0.50           *            vpcompressb    %zmm16, (%rax)
+# CHECK-NEXT:  1      5     1.00                        vpcompressb    %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50           *            vpcompressb    %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpcompressb    %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                  U     vpcompressw    %zmm16, %zmm19
+# CHECK-NEXT:  2      8     0.50           *            vpcompressw    %zmm16, (%rax)
+# CHECK-NEXT:  1      5     1.00                        vpcompressw    %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50           *            vpcompressw    %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpcompressw    %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                  U     vpexpandb      %zmm16, %zmm19
+# CHECK-NEXT:  2      8     0.50                  U     vpexpandb      (%rax), %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpexpandb      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpexpandb      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpexpandb      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      5     1.00                  U     vpexpandw      %zmm16, %zmm19
+# CHECK-NEXT:  2      8     0.50                  U     vpexpandw      (%rax), %zmm19
+# CHECK-NEXT:  1      5     1.00                        vpexpandw      %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpexpandw      (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  1      5     1.00                        vpexpandw      %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldd        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldd        $1, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldd        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldd        $1, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldd        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldd        $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldq        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldq        $1, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldq        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldq        $1, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldq        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldq        $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshldvd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvd       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvd       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvd       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshldvq       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvq       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvq       (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvq       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvq       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvq       (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvq       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvq       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvq       (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshldvw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldvw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshldw        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldw        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshldw        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdd        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdd        $1, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdd        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdd        $1, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdd        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdd        $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdq        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdq        $1, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdq        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdq        $1, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdq        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdq        $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshrdvd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvd       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvd       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvd       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshrdvq       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvq       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvq       (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvq       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvq       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvq       (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvq       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvq       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvq       (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpshrdvw       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvw       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvw       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvw       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvw       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdvw       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdw        $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdw        $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpshrdw        $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     96.00  46.00  16.00  66.00  34.00  34.00   -     22.67  22.67  22.67  22.67  22.67  22.67   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressb     %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressb     %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressw     %zmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressw     %zmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandb       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandb       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %zmm16, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandw       (%rax), %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %zmm16, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandw       (%rax), %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %zmm16, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to8}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to8}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to8}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2vl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2vl.s
new file mode 100644 (file)
index 0000000..7b9c251
--- /dev/null
@@ -0,0 +1,772 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpcompressb       %xmm16, %xmm19
+vpcompressb       %xmm16, (%rax)
+vpcompressb       %xmm16, %xmm19 {k1}
+vpcompressb       %xmm16, (%rax) {k1}
+vpcompressb       %xmm16, %xmm19 {k1}{z}
+
+vpcompressb       %ymm16, %ymm19
+vpcompressb       %ymm16, (%rax)
+vpcompressb       %ymm16, %ymm19 {k1}
+vpcompressb       %ymm16, (%rax) {k1}
+vpcompressb       %ymm16, %ymm19 {k1}{z}
+
+vpcompressw       %xmm16, %xmm19
+vpcompressw       %xmm16, (%rax)
+vpcompressw       %xmm16, %xmm19 {k1}
+vpcompressw       %xmm16, (%rax) {k1}
+vpcompressw       %xmm16, %xmm19 {k1}{z}
+
+vpcompressw       %ymm16, %ymm19
+vpcompressw       %ymm16, (%rax)
+vpcompressw       %ymm16, %ymm19 {k1}
+vpcompressw       %ymm16, (%rax) {k1}
+vpcompressw       %ymm16, %ymm19 {k1}{z}
+
+vpexpandb         %xmm16, %xmm19
+vpexpandb         (%rax), %xmm19
+vpexpandb         %xmm16, %xmm19 {k1}
+vpexpandb         (%rax), %xmm19 {k1}
+vpexpandb         %xmm16, %xmm19 {k1}{z}
+
+vpexpandb         %ymm16, %ymm19
+vpexpandb         (%rax), %ymm19
+vpexpandb         %ymm16, %ymm19 {k1}
+vpexpandb         (%rax), %ymm19 {k1}
+vpexpandb         %ymm16, %ymm19 {k1}{z}
+
+vpexpandw         %xmm16, %xmm19
+vpexpandw         (%rax), %xmm19
+vpexpandw         %xmm16, %xmm19 {k1}
+vpexpandw         (%rax), %xmm19 {k1}
+vpexpandw         %xmm16, %xmm19 {k1}{z}
+
+vpexpandw         %ymm16, %ymm19
+vpexpandw         (%rax), %ymm19
+vpexpandw         %ymm16, %ymm19 {k1}
+vpexpandw         (%rax), %ymm19 {k1}
+vpexpandw         %ymm16, %ymm19 {k1}{z}
+
+vpshldd           $1, %xmm16, %xmm17, %xmm19
+vpshldd           $1, (%rax), %xmm17, %xmm19
+vpshldd           $1, (%rax){1to4}, %xmm17, %xmm19
+vpshldd           $1, %xmm16, %xmm17, %xmm19 {k1}
+vpshldd           $1, (%rax), %xmm17, %xmm19 {k1}
+vpshldd           $1, (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpshldd           $1, %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshldd           $1, (%rax), %xmm17, %xmm19 {k1}{z}
+vpshldd           $1, (%rax){1to4}, %xmm17, %xmm19 {k1}{z}
+
+vpshldd           $1, %ymm16, %ymm17, %ymm19
+vpshldd           $1, (%rax), %ymm17, %ymm19
+vpshldd           $1, (%rax){1to8}, %ymm17, %ymm19
+vpshldd           $1, %ymm16, %ymm17, %ymm19 {k1}
+vpshldd           $1, (%rax), %ymm17, %ymm19 {k1}
+vpshldd           $1, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpshldd           $1, %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshldd           $1, (%rax), %ymm17, %ymm19 {k1}{z}
+vpshldd           $1, (%rax){1to8}, %ymm17, %ymm19 {k1}{z}
+
+vpshldq           $1, %xmm16, %xmm17, %xmm19
+vpshldq           $1, (%rax), %xmm17, %xmm19
+vpshldq           $1, (%rax){1to2}, %xmm17, %xmm19
+vpshldq           $1, %xmm16, %xmm17, %xmm19 {k1}
+vpshldq           $1, (%rax), %xmm17, %xmm19 {k1}
+vpshldq           $1, (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpshldq           $1, %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshldq           $1, (%rax), %xmm17, %xmm19 {k1}{z}
+vpshldq           $1, (%rax){1to2}, %xmm17, %xmm19 {k1}{z}
+
+vpshldq           $1, %ymm16, %ymm17, %ymm19
+vpshldq           $1, (%rax), %ymm17, %ymm19
+vpshldq           $1, (%rax){1to4}, %ymm17, %ymm19
+vpshldq           $1, %ymm16, %ymm17, %ymm19 {k1}
+vpshldq           $1, (%rax), %ymm17, %ymm19 {k1}
+vpshldq           $1, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpshldq           $1, %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshldq           $1, (%rax), %ymm17, %ymm19 {k1}{z}
+vpshldq           $1, (%rax){1to4}, %ymm17, %ymm19 {k1}{z}
+
+vpshldvd          %xmm16, %xmm17, %xmm19
+vpshldvd          (%rax), %xmm17, %xmm19
+vpshldvd          (%rax){1to4}, %xmm17, %xmm19
+vpshldvd          %xmm16, %xmm17, %xmm19 {k1}
+vpshldvd          (%rax), %xmm17, %xmm19 {k1}
+vpshldvd          (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpshldvd          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshldvd          (%rax), %xmm17, %xmm19 {k1}{z}
+vpshldvd          (%rax){1to4}, %xmm17, %xmm19 {k1}{z}
+
+vpshldvd          %ymm16, %ymm17, %ymm19
+vpshldvd          (%rax), %ymm17, %ymm19
+vpshldvd          (%rax){1to8}, %ymm17, %ymm19
+vpshldvd          %ymm16, %ymm17, %ymm19 {k1}
+vpshldvd          (%rax), %ymm17, %ymm19 {k1}
+vpshldvd          (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpshldvd          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshldvd          (%rax), %ymm17, %ymm19 {k1}{z}
+vpshldvd          (%rax){1to8}, %ymm17, %ymm19 {k1}{z}
+
+vpshldvq          %xmm16, %xmm17, %xmm19
+vpshldvq          (%rax), %xmm17, %xmm19
+vpshldvq          (%rax){1to2}, %xmm17, %xmm19
+vpshldvq          %xmm16, %xmm17, %xmm19 {k1}
+vpshldvq          (%rax), %xmm17, %xmm19 {k1}
+vpshldvq          (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpshldvq          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshldvq          (%rax), %xmm17, %xmm19 {k1}{z}
+vpshldvq          (%rax){1to2}, %xmm17, %xmm19 {k1}{z}
+
+vpshldvq          %ymm16, %ymm17, %ymm19
+vpshldvq          (%rax), %ymm17, %ymm19
+vpshldvq          (%rax){1to4}, %ymm17, %ymm19
+vpshldvq          %ymm16, %ymm17, %ymm19 {k1}
+vpshldvq          (%rax), %ymm17, %ymm19 {k1}
+vpshldvq          (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpshldvq          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshldvq          (%rax), %ymm17, %ymm19 {k1}{z}
+vpshldvq          (%rax){1to4}, %ymm17, %ymm19 {k1}{z}
+
+vpshldvw          %xmm16, %xmm17, %xmm19
+vpshldvw          (%rax), %xmm17, %xmm19
+vpshldvw          %xmm16, %xmm17, %xmm19 {k1}
+vpshldvw          (%rax), %xmm17, %xmm19 {k1}
+vpshldvw          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshldvw          (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpshldvw          %ymm16, %ymm17, %ymm19
+vpshldvw          (%rax), %ymm17, %ymm19
+vpshldvw          %ymm16, %ymm17, %ymm19 {k1}
+vpshldvw          (%rax), %ymm17, %ymm19 {k1}
+vpshldvw          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshldvw          (%rax), %ymm17, %ymm19 {k1}{z}
+
+vpshldw           $1, %xmm16, %xmm17, %xmm19
+vpshldw           $1, (%rax), %xmm17, %xmm19
+vpshldw           $1, %xmm16, %xmm17, %xmm19 {k1}
+vpshldw           $1, (%rax), %xmm17, %xmm19 {k1}
+vpshldw           $1, %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshldw           $1, (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpshldw           $1, %ymm16, %ymm17, %ymm19
+vpshldw           $1, (%rax), %ymm17, %ymm19
+vpshldw           $1, %ymm16, %ymm17, %ymm19 {k1}
+vpshldw           $1, (%rax), %ymm17, %ymm19 {k1}
+vpshldw           $1, %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshldw           $1, (%rax), %ymm17, %ymm19 {k1}{z}
+
+vpshrdd           $1, %xmm16, %xmm17, %xmm19
+vpshrdd           $1, (%rax), %xmm17, %xmm19
+vpshrdd           $1, (%rax){1to4}, %xmm17, %xmm19
+vpshrdd           $1, %xmm16, %xmm17, %xmm19 {k1}
+vpshrdd           $1, (%rax), %xmm17, %xmm19 {k1}
+vpshrdd           $1, (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpshrdd           $1, %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshrdd           $1, (%rax), %xmm17, %xmm19 {k1}{z}
+vpshrdd           $1, (%rax){1to4}, %xmm17, %xmm19 {k1}{z}
+
+vpshrdd           $1, %ymm16, %ymm17, %ymm19
+vpshrdd           $1, (%rax), %ymm17, %ymm19
+vpshrdd           $1, (%rax){1to8}, %ymm17, %ymm19
+vpshrdd           $1, %ymm16, %ymm17, %ymm19 {k1}
+vpshrdd           $1, (%rax), %ymm17, %ymm19 {k1}
+vpshrdd           $1, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpshrdd           $1, %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshrdd           $1, (%rax), %ymm17, %ymm19 {k1}{z}
+vpshrdd           $1, (%rax){1to8}, %ymm17, %ymm19 {k1}{z}
+
+vpshrdq           $1, %xmm16, %xmm17, %xmm19
+vpshrdq           $1, (%rax), %xmm17, %xmm19
+vpshrdq           $1, (%rax){1to2}, %xmm17, %xmm19
+vpshrdq           $1, %xmm16, %xmm17, %xmm19 {k1}
+vpshrdq           $1, (%rax), %xmm17, %xmm19 {k1}
+vpshrdq           $1, (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpshrdq           $1, %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshrdq           $1, (%rax), %xmm17, %xmm19 {k1}{z}
+vpshrdq           $1, (%rax){1to2}, %xmm17, %xmm19 {k1}{z}
+
+vpshrdq           $1, %ymm16, %ymm17, %ymm19
+vpshrdq           $1, (%rax), %ymm17, %ymm19
+vpshrdq           $1, (%rax){1to4}, %ymm17, %ymm19
+vpshrdq           $1, %ymm16, %ymm17, %ymm19 {k1}
+vpshrdq           $1, (%rax), %ymm17, %ymm19 {k1}
+vpshrdq           $1, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpshrdq           $1, %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshrdq           $1, (%rax), %ymm17, %ymm19 {k1}{z}
+vpshrdq           $1, (%rax){1to4}, %ymm17, %ymm19 {k1}{z}
+
+vpshrdvd          %xmm16, %xmm17, %xmm19
+vpshrdvd          (%rax), %xmm17, %xmm19
+vpshrdvd          (%rax){1to4}, %xmm17, %xmm19
+vpshrdvd          %xmm16, %xmm17, %xmm19 {k1}
+vpshrdvd          (%rax), %xmm17, %xmm19 {k1}
+vpshrdvd          (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpshrdvd          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshrdvd          (%rax), %xmm17, %xmm19 {k1}{z}
+vpshrdvd          (%rax){1to4}, %xmm17, %xmm19 {k1}{z}
+
+vpshrdvd          %ymm16, %ymm17, %ymm19
+vpshrdvd          (%rax), %ymm17, %ymm19
+vpshrdvd          (%rax){1to8}, %ymm17, %ymm19
+vpshrdvd          %ymm16, %ymm17, %ymm19 {k1}
+vpshrdvd          (%rax), %ymm17, %ymm19 {k1}
+vpshrdvd          (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpshrdvd          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshrdvd          (%rax), %ymm17, %ymm19 {k1}{z}
+vpshrdvd          (%rax){1to8}, %ymm17, %ymm19 {k1}{z}
+
+vpshrdvq          %xmm16, %xmm17, %xmm19
+vpshrdvq          (%rax), %xmm17, %xmm19
+vpshrdvq          (%rax){1to2}, %xmm17, %xmm19
+vpshrdvq          %xmm16, %xmm17, %xmm19 {k1}
+vpshrdvq          (%rax), %xmm17, %xmm19 {k1}
+vpshrdvq          (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpshrdvq          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshrdvq          (%rax), %xmm17, %xmm19 {k1}{z}
+vpshrdvq          (%rax){1to2}, %xmm17, %xmm19 {k1}{z}
+
+vpshrdvq          %ymm16, %ymm17, %ymm19
+vpshrdvq          (%rax), %ymm17, %ymm19
+vpshrdvq          (%rax){1to4}, %ymm17, %ymm19
+vpshrdvq          %ymm16, %ymm17, %ymm19 {k1}
+vpshrdvq          (%rax), %ymm17, %ymm19 {k1}
+vpshrdvq          (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpshrdvq          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshrdvq          (%rax), %ymm17, %ymm19 {k1}{z}
+vpshrdvq          (%rax){1to4}, %ymm17, %ymm19 {k1}{z}
+
+vpshrdvw          %xmm16, %xmm17, %xmm19
+vpshrdvw          (%rax), %xmm17, %xmm19
+vpshrdvw          %xmm16, %xmm17, %xmm19 {k1}
+vpshrdvw          (%rax), %xmm17, %xmm19 {k1}
+vpshrdvw          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshrdvw          (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpshrdvw          %ymm16, %ymm17, %ymm19
+vpshrdvw          (%rax), %ymm17, %ymm19
+vpshrdvw          %ymm16, %ymm17, %ymm19 {k1}
+vpshrdvw          (%rax), %ymm17, %ymm19 {k1}
+vpshrdvw          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshrdvw          (%rax), %ymm17, %ymm19 {k1}{z}
+
+vpshrdw           $1, %xmm16, %xmm17, %xmm19
+vpshrdw           $1, (%rax), %xmm17, %xmm19
+vpshrdw           $1, %xmm16, %xmm17, %xmm19 {k1}
+vpshrdw           $1, (%rax), %xmm17, %xmm19 {k1}
+vpshrdw           $1, %xmm16, %xmm17, %xmm19 {k1}{z}
+vpshrdw           $1, (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpshrdw           $1, %ymm16, %ymm17, %ymm19
+vpshrdw           $1, (%rax), %ymm17, %ymm19
+vpshrdw           $1, %ymm16, %ymm17, %ymm19 {k1}
+vpshrdw           $1, (%rax), %ymm17, %ymm19 {k1}
+vpshrdw           $1, %ymm16, %ymm17, %ymm19 {k1}{z}
+vpshrdw           $1, (%rax), %ymm17, %ymm19 {k1}{z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      2     1.00                  U     vpcompressb    %xmm16, %xmm19
+# CHECK-NEXT:  2      8     0.50           *            vpcompressb    %xmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vpcompressb    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50           *            vpcompressb    %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpcompressb    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                  U     vpcompressb    %ymm16, %ymm19
+# CHECK-NEXT:  2      8     0.50           *            vpcompressb    %ymm16, (%rax)
+# CHECK-NEXT:  1      4     1.00                        vpcompressb    %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50           *            vpcompressb    %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpcompressb    %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                  U     vpcompressw    %xmm16, %xmm19
+# CHECK-NEXT:  2      8     0.50           *            vpcompressw    %xmm16, (%rax)
+# CHECK-NEXT:  1      2     1.00                        vpcompressw    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50           *            vpcompressw    %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpcompressw    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                  U     vpcompressw    %ymm16, %ymm19
+# CHECK-NEXT:  2      8     0.50           *            vpcompressw    %ymm16, (%rax)
+# CHECK-NEXT:  1      4     1.00                        vpcompressw    %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50           *            vpcompressw    %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpcompressw    %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      1     0.50                  U     vpexpandb      %xmm16, %xmm19
+# CHECK-NEXT:  2      8     0.50                  U     vpexpandb      (%rax), %xmm19
+# CHECK-NEXT:  2      1     0.50                        vpexpandb      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpexpandb      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      1     0.50                        vpexpandb      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                  U     vpexpandb      %ymm16, %ymm19
+# CHECK-NEXT:  2      8     0.50                  U     vpexpandb      (%rax), %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpexpandb      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpexpandb      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpexpandb      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      1     0.50                  U     vpexpandw      %xmm16, %xmm19
+# CHECK-NEXT:  2      8     0.50                  U     vpexpandw      (%rax), %xmm19
+# CHECK-NEXT:  2      1     0.50                        vpexpandw      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpexpandw      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      1     0.50                        vpexpandw      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                  U     vpexpandw      %ymm16, %ymm19
+# CHECK-NEXT:  2      8     0.50                  U     vpexpandw      (%rax), %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpexpandw      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpexpandw      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpexpandw      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldd        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldd        $1, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldq        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldq        $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshldvd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshldvd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvd       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshldvq       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvq       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvq       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshldvq       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvq       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvq       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvq       (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshldvw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshldvw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshldvw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldvw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldvw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldw        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldw        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldw        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshldw        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldw        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshldw        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshldw        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdd        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdd        $1, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdq        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdq        $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshrdvd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshrdvd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvd       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshrdvq       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvq       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvq       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshrdvq       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvq       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvq       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvq       (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshrdvw       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvw       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvw       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvw       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvw       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvw       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpshrdvw       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvw       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdvw       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvw       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdvw       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdvw       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdw        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdw        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdw        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdw        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdw        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpshrdw        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpshrdw        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     126.00 89.00  29.00  66.00  68.00  68.00   -     45.33  45.33  45.33  45.33  45.33  45.33   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressb     %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressb     %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressb     %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressb     %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressb     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressw     %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressw     %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressw     %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcompressw     %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpcompressw     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandb       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandb       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandb       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandb       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandb       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandw       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandw       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandw       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpexpandw       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpexpandw       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldd $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldd $1, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvd        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvq        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvq        (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldvw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldvw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshldw $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshldw $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdd $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdd $1, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvd        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvq        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvq        (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdvw        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdvw        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpshrdw $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshrdw $1, (%rax), %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmivl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmivl.s
new file mode 100644 (file)
index 0000000..887f2f2
--- /dev/null
@@ -0,0 +1,214 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpermb            %xmm16, %xmm17, %xmm19
+vpermb            (%rax), %xmm17, %xmm19
+vpermb            %xmm16, %xmm17, %xmm19 {k1}
+vpermb            (%rax), %xmm17, %xmm19 {k1}
+vpermb            %xmm16, %xmm17, %xmm19 {k1}{z}
+vpermb            (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpermb            %ymm16, %ymm17, %ymm19
+vpermb            (%rax), %ymm17, %ymm19
+vpermb            %ymm16, %ymm17, %ymm19 {k1}
+vpermb            (%rax), %ymm17, %ymm19 {k1}
+vpermb            %ymm16, %ymm17, %ymm19 {k1}{z}
+vpermb            (%rax), %ymm17, %ymm19 {k1}{z}
+
+vpermi2b          %xmm16, %xmm17, %xmm19
+vpermi2b          (%rax), %xmm17, %xmm19
+vpermi2b          %xmm16, %xmm17, %xmm19 {k1}
+vpermi2b          (%rax), %xmm17, %xmm19 {k1}
+vpermi2b          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpermi2b          (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpermi2b          %ymm16, %ymm17, %ymm19
+vpermi2b          (%rax), %ymm17, %ymm19
+vpermi2b          %ymm16, %ymm17, %ymm19 {k1}
+vpermi2b          (%rax), %ymm17, %ymm19 {k1}
+vpermi2b          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpermi2b          (%rax), %ymm17, %ymm19 {k1}{z}
+
+vpermt2b          %xmm16, %xmm17, %xmm19
+vpermt2b          (%rax), %xmm17, %xmm19
+vpermt2b          %xmm16, %xmm17, %xmm19 {k1}
+vpermt2b          (%rax), %xmm17, %xmm19 {k1}
+vpermt2b          %xmm16, %xmm17, %xmm19 {k1}{z}
+vpermt2b          (%rax), %xmm17, %xmm19 {k1}{z}
+
+vpermt2b          %ymm16, %ymm17, %ymm19
+vpermt2b          (%rax), %ymm17, %ymm19
+vpermt2b          %ymm16, %ymm17, %ymm19 {k1}
+vpermt2b          (%rax), %ymm17, %ymm19 {k1}
+vpermt2b          %ymm16, %ymm17, %ymm19 {k1}{z}
+vpermt2b          (%rax), %ymm17, %ymm19 {k1}{z}
+
+vpmultishiftqb    %xmm16, %xmm17, %xmm19
+vpmultishiftqb    (%rax), %xmm17, %xmm19
+vpmultishiftqb    (%rax){1to2}, %xmm17, %xmm19
+vpmultishiftqb    %xmm16, %xmm17, %xmm19 {k1}
+vpmultishiftqb    (%rax), %xmm17, %xmm19 {k1}
+vpmultishiftqb    (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpmultishiftqb    %xmm16, %xmm17, %xmm19 {k1}{z}
+vpmultishiftqb    (%rax), %xmm17, %xmm19 {k1}{z}
+vpmultishiftqb    (%rax){1to2}, %xmm17, %xmm19 {k1}{z}
+
+vpmultishiftqb    %ymm16, %ymm17, %ymm19
+vpmultishiftqb    (%rax), %ymm17, %ymm19
+vpmultishiftqb    (%rax){1to4}, %ymm17, %ymm19
+vpmultishiftqb    %ymm16, %ymm17, %ymm19 {k1}
+vpmultishiftqb    (%rax), %ymm17, %ymm19 {k1}
+vpmultishiftqb    (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpmultishiftqb    %ymm16, %ymm17, %ymm19 {k1}{z}
+vpmultishiftqb    (%rax), %ymm17, %ymm19 {k1}{z}
+vpmultishiftqb    (%rax){1to4}, %ymm17, %ymm19 {k1}{z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      2     1.00                        vpermb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpermb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpermb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpermi2b       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vpermi2b       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpermi2b       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermi2b       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermi2b       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermi2b       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermi2b       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vpermt2b       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vpermt2b       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vpermt2b       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermt2b       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermt2b       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermt2b       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermt2b       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmultishiftqb %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpmultishiftqb %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmultishiftqb %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpmultishiftqb %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpmultishiftqb %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpmultishiftqb %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmultishiftqb (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.50   31.50  31.50  4.50   15.00  15.00   -     10.00  10.00  10.00  10.00  10.00  10.00   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermb  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermi2b        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermi2b        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermt2b        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermt2b        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpmultishiftqb  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmultishiftqb  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vl.s
new file mode 100644 (file)
index 0000000..1408037
--- /dev/null
@@ -0,0 +1,4419 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vaddpd            %xmm16, %xmm17, %xmm19
+vaddpd            (%rax), %xmm17, %xmm19
+vaddpd            (%rax){1to2}, %xmm17, %xmm19
+vaddpd            %xmm16, %xmm17, %xmm19 {k1}
+vaddpd            (%rax), %xmm17, %xmm19 {k1}
+vaddpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vaddpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vaddpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vaddpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vaddpd            %ymm16, %ymm17, %ymm19
+vaddpd            (%rax), %ymm17, %ymm19
+vaddpd            (%rax){1to4}, %ymm17, %ymm19
+vaddpd            %ymm16, %ymm17, %ymm19 {k1}
+vaddpd            (%rax), %ymm17, %ymm19 {k1}
+vaddpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vaddpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vaddpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vaddpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vaddps            %xmm16, %xmm17, %xmm19
+vaddps            (%rax), %xmm17, %xmm19
+vaddps            (%rax){1to4}, %xmm17, %xmm19
+vaddps            %xmm16, %xmm17, %xmm19 {k1}
+vaddps            (%rax), %xmm17, %xmm19 {k1}
+vaddps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vaddps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vaddps            (%rax), %xmm17, %xmm19 {z}{k1}
+vaddps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vaddps            %ymm16, %ymm17, %ymm19
+vaddps            (%rax), %ymm17, %ymm19
+vaddps            (%rax){1to8}, %ymm17, %ymm19
+vaddps            %ymm16, %ymm17, %ymm19 {k1}
+vaddps            (%rax), %ymm17, %ymm19 {k1}
+vaddps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vaddps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vaddps            (%rax), %ymm17, %ymm19 {z}{k1}
+vaddps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+valignd           $1, %xmm16, %xmm17, %xmm19
+valignd           $1, (%rax), %xmm17, %xmm19
+valignd           $1, (%rax){1to4}, %xmm17, %xmm19
+valignd           $1, %xmm16, %xmm17, %xmm19 {k1}
+valignd           $1, (%rax), %xmm17, %xmm19 {k1}
+valignd           $1, (%rax){1to4}, %xmm17, %xmm19 {k1}
+valignd           $1, %xmm16, %xmm17, %xmm19 {z}{k1}
+valignd           $1, (%rax), %xmm17, %xmm19 {z}{k1}
+valignd           $1, (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+valignd           $1, %ymm16, %ymm17, %ymm19
+valignd           $1, (%rax), %ymm17, %ymm19
+valignd           $1, (%rax){1to8}, %ymm17, %ymm19
+valignd           $1, %ymm16, %ymm17, %ymm19 {k1}
+valignd           $1, (%rax), %ymm17, %ymm19 {k1}
+valignd           $1, (%rax){1to8}, %ymm17, %ymm19 {k1}
+valignd           $1, %ymm16, %ymm17, %ymm19 {z}{k1}
+valignd           $1, (%rax), %ymm17, %ymm19 {z}{k1}
+valignd           $1, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+valignq           $1, %xmm16, %xmm17, %xmm19
+valignq           $1, (%rax), %xmm17, %xmm19
+valignq           $1, (%rax){1to2}, %xmm17, %xmm19
+valignq           $1, %xmm16, %xmm17, %xmm19 {k1}
+valignq           $1, (%rax), %xmm17, %xmm19 {k1}
+valignq           $1, (%rax){1to2}, %xmm17, %xmm19 {k1}
+valignq           $1, %xmm16, %xmm17, %xmm19 {z}{k1}
+valignq           $1, (%rax), %xmm17, %xmm19 {z}{k1}
+valignq           $1, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+valignq           $1, %ymm16, %ymm17, %ymm19
+valignq           $1, (%rax), %ymm17, %ymm19
+valignq           $1, (%rax){1to4}, %ymm17, %ymm19
+valignq           $1, %ymm16, %ymm17, %ymm19 {k1}
+valignq           $1, (%rax), %ymm17, %ymm19 {k1}
+valignq           $1, (%rax){1to4}, %ymm17, %ymm19 {k1}
+valignq           $1, %ymm16, %ymm17, %ymm19 {z}{k1}
+valignq           $1, (%rax), %ymm17, %ymm19 {z}{k1}
+valignq           $1, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vbroadcastf32x4   (%rax), %ymm19
+vbroadcastf32x4   (%rax), %ymm19 {k1}
+vbroadcastf32x4   (%rax), %ymm19 {z}{k1}
+
+vbroadcasti32x4   (%rax), %ymm19
+vbroadcasti32x4   (%rax), %ymm19 {k1}
+vbroadcasti32x4   (%rax), %ymm19 {z}{k1}
+
+vbroadcastsd      %xmm16, %ymm19
+vbroadcastsd      (%rax), %ymm19
+vbroadcastsd      %xmm16, %ymm19 {k1}
+vbroadcastsd      (%rax), %ymm19 {k1}
+vbroadcastsd      %xmm16, %ymm19 {z}{k1}
+vbroadcastsd      (%rax), %ymm19 {z}{k1}
+
+vbroadcastss      %xmm16, %xmm19
+vbroadcastss      (%rax), %xmm19
+vbroadcastss      %xmm16, %xmm19 {k1}
+vbroadcastss      (%rax), %xmm19 {k1}
+vbroadcastss      %xmm16, %xmm19 {z}{k1}
+vbroadcastss      (%rax), %xmm19 {z}{k1}
+
+vbroadcastss      %xmm16, %ymm19
+vbroadcastss      (%rax), %ymm19
+vbroadcastss      %xmm16, %ymm19 {k1}
+vbroadcastss      (%rax), %ymm19 {k1}
+vbroadcastss      %xmm16, %ymm19 {z}{k1}
+vbroadcastss      (%rax), %ymm19 {z}{k1}
+
+vcmppd            $0, %xmm0, %xmm1, %k2
+vcmppd            $0, (%rax), %xmm1, %k2
+vcmppd            $0, (%rax){1to2}, %xmm1, %k2
+vcmppd            $0, %xmm0, %xmm1, %k2 {k3}
+vcmppd            $0, (%rax), %xmm1, %k2 {k3}
+vcmppd            $0, (%rax){1to2}, %xmm1, %k2 {k3}
+
+vcmppd            $0, %ymm0, %ymm1, %k2
+vcmppd            $0, (%rax), %ymm1, %k2
+vcmppd            $0, (%rax){1to4}, %ymm1, %k2
+vcmppd            $0, %ymm0, %ymm1, %k2 {k3}
+vcmppd            $0, (%rax), %ymm1, %k2 {k3}
+vcmppd            $0, (%rax){1to4}, %ymm1, %k2 {k3}
+
+vcmpps            $0, %xmm0, %xmm1, %k2
+vcmpps            $0, (%rax), %xmm1, %k2
+vcmpps            $0, (%rax){1to4}, %xmm1, %k2
+vcmpps            $0, %xmm0, %xmm1, %k2 {k3}
+vcmpps            $0, (%rax), %xmm1, %k2 {k3}
+vcmpps            $0, (%rax){1to4}, %xmm1, %k2 {k3}
+
+vcmpps            $0, %ymm0, %ymm1, %k2
+vcmpps            $0, (%rax), %ymm1, %k2
+vcmpps            $0, (%rax){1to8}, %ymm1, %k2
+vcmpps            $0, %ymm0, %ymm1, %k2 {k3}
+vcmpps            $0, (%rax), %ymm1, %k2 {k3}
+vcmpps            $0, (%rax){1to8}, %ymm1, %k2 {k3}
+
+vcvtdq2pd         %xmm16, %xmm19
+vcvtdq2pd         (%rax), %xmm19
+vcvtdq2pd         (%rax){1to2}, %xmm19
+vcvtdq2pd         %xmm16, %xmm19 {k1}
+vcvtdq2pd         (%rax), %xmm19 {k1}
+vcvtdq2pd         (%rax){1to2}, %xmm19 {k1}
+vcvtdq2pd         %xmm16, %xmm19 {z}{k1}
+vcvtdq2pd         (%rax), %xmm19 {z}{k1}
+vcvtdq2pd         (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtdq2pd         %xmm16, %ymm19
+vcvtdq2pd         (%rax), %ymm19
+vcvtdq2pd         (%rax){1to4}, %ymm19
+vcvtdq2pd         %xmm16, %ymm19 {k1}
+vcvtdq2pd         (%rax), %ymm19 {k1}
+vcvtdq2pd         (%rax){1to4}, %ymm19 {k1}
+vcvtdq2pd         %xmm16, %ymm19 {z}{k1}
+vcvtdq2pd         (%rax), %ymm19 {z}{k1}
+vcvtdq2pd         (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtdq2ps         %xmm16, %xmm19
+vcvtdq2ps         (%rax), %xmm19
+vcvtdq2ps         (%rax){1to4}, %xmm19
+vcvtdq2ps         %xmm16, %xmm19 {k1}
+vcvtdq2ps         (%rax), %xmm19 {k1}
+vcvtdq2ps         (%rax){1to4},%xmm19 {k1}
+vcvtdq2ps         %xmm16, %xmm19 {z}{k1}
+vcvtdq2ps         (%rax), %xmm19 {z}{k1}
+vcvtdq2ps         (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvtdq2ps         %ymm16, %ymm19
+vcvtdq2ps         (%rax), %ymm19
+vcvtdq2ps         (%rax){1to8}, %ymm19
+vcvtdq2ps         %ymm16,%ymm19 {k1}
+vcvtdq2ps         (%rax),%ymm19 {k1}
+vcvtdq2ps         (%rax){1to8}, %ymm19 {k1}
+vcvtdq2ps         %ymm16, %ymm19 {z}{k1}
+vcvtdq2ps         (%rax), %ymm19 {z}{k1}
+vcvtdq2ps         (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvtpd2dqy        %ymm16, %xmm19
+vcvtpd2dqy        (%rax), %xmm19
+vcvtpd2dqy        (%rax){1to4}, %xmm19
+vcvtpd2dqy        %ymm16, %xmm19 {k1}
+vcvtpd2dqy        (%rax), %xmm19 {k1}
+vcvtpd2dqy        (%rax){1to4}, %xmm19 {k1}
+vcvtpd2dqy        %ymm16, %xmm19 {z}{k1}
+vcvtpd2dqy        (%rax), %xmm19 {z}{k1}
+vcvtpd2dqy        (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvtpd2dqx        %xmm16, %xmm19
+vcvtpd2dqx        (%rax), %xmm19
+vcvtpd2dqx        (%rax){1to2}, %xmm19
+vcvtpd2dqx        %xmm16, %xmm19 {k1}
+vcvtpd2dqx        (%rax), %xmm19 {k1}
+vcvtpd2dqx        (%rax){1to2},%xmm19 {k1}
+vcvtpd2dqx        %xmm16, %xmm19 {z}{k1}
+vcvtpd2dqx        (%rax), %xmm19 {z}{k1}
+vcvtpd2dqx        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtpd2psy        %ymm16, %xmm19
+vcvtpd2psy        (%rax), %xmm19
+vcvtpd2psy        (%rax){1to4}, %xmm19
+vcvtpd2psy        %ymm16, %xmm19 {k1}
+vcvtpd2psy        (%rax), %xmm19 {k1}
+vcvtpd2psy        (%rax){1to4}, %xmm19 {k1}
+vcvtpd2psy        %ymm16, %xmm19 {z}{k1}
+vcvtpd2psy        (%rax), %xmm19 {z}{k1}
+vcvtpd2psy        (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvtpd2psx        %xmm16, %xmm19
+vcvtpd2psx        (%rax), %xmm19
+vcvtpd2psx        (%rax){1to2}, %xmm19
+vcvtpd2psx        %xmm16, %xmm19 {k1}
+vcvtpd2psx        (%rax), %xmm19 {k1}
+vcvtpd2psx        (%rax){1to2},%xmm19 {k1}
+vcvtpd2psx        %xmm16, %xmm19 {z}{k1}
+vcvtpd2psx        (%rax), %xmm19 {z}{k1}
+vcvtpd2psx        (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtpd2udqy       %ymm16, %xmm19
+vcvtpd2udqy       (%rax), %xmm19
+vcvtpd2udqy       (%rax){1to4}, %xmm19
+vcvtpd2udqy       %ymm16, %xmm19 {k1}
+vcvtpd2udqy       (%rax), %xmm19 {k1}
+vcvtpd2udqy       (%rax){1to4}, %xmm19 {k1}
+vcvtpd2udqy       %ymm16, %xmm19 {z}{k1}
+vcvtpd2udqy       (%rax), %xmm19 {z}{k1}
+vcvtpd2udqy       (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvtpd2udqx       %xmm16, %xmm19
+vcvtpd2udqx       (%rax), %xmm19
+vcvtpd2udqx       (%rax){1to2}, %xmm19
+vcvtpd2udqx       %xmm16, %xmm19 {k1}
+vcvtpd2udqx       (%rax), %xmm19 {k1}
+vcvtpd2udqx       (%rax){1to2},%xmm19 {k1}
+vcvtpd2udqx       %xmm16, %xmm19 {z}{k1}
+vcvtpd2udqx       (%rax), %xmm19 {z}{k1}
+vcvtpd2udqx       (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtps2dq         %xmm16, %xmm19
+vcvtps2dq         (%rax), %xmm19
+vcvtps2dq         (%rax){1to4}, %xmm19
+vcvtps2dq         %xmm16, %xmm19 {k1}
+vcvtps2dq         (%rax), %xmm19 {k1}
+vcvtps2dq         (%rax){1to4},%xmm19 {k1}
+vcvtps2dq         %xmm16, %xmm19 {z}{k1}
+vcvtps2dq         (%rax), %xmm19 {z}{k1}
+vcvtps2dq         (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvtps2dq         %ymm16, %ymm19
+vcvtps2dq         (%rax), %ymm19
+vcvtps2dq         (%rax){1to8}, %ymm19
+vcvtps2dq         %ymm16,%ymm19 {k1}
+vcvtps2dq         (%rax),%ymm19 {k1}
+vcvtps2dq         (%rax){1to8}, %ymm19 {k1}
+vcvtps2dq         %ymm16, %ymm19 {z}{k1}
+vcvtps2dq         (%rax), %ymm19 {z}{k1}
+vcvtps2dq         (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvtps2pd         %xmm16, %xmm19
+vcvtps2pd         (%rax), %xmm19
+vcvtps2pd         (%rax){1to2}, %xmm19
+vcvtps2pd         %xmm16, %xmm19 {k1}
+vcvtps2pd         (%rax), %xmm19 {k1}
+vcvtps2pd         (%rax){1to2},%xmm19 {k1}
+vcvtps2pd         %xmm16, %xmm19 {z}{k1}
+vcvtps2pd         (%rax), %xmm19 {z}{k1}
+vcvtps2pd         (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvtps2pd         %xmm16, %ymm19
+vcvtps2pd         (%rax), %ymm19
+vcvtps2pd         (%rax){1to4}, %ymm19
+vcvtps2pd         %xmm16,%ymm19 {k1}
+vcvtps2pd         (%rax),%ymm19 {k1}
+vcvtps2pd         (%rax){1to4}, %ymm19 {k1}
+vcvtps2pd         %xmm16, %ymm19 {z}{k1}
+vcvtps2pd         (%rax), %ymm19 {z}{k1}
+vcvtps2pd         (%rax){1to4}, %ymm19 {z}{k1}
+
+vcvtps2udq        %xmm16, %xmm19
+vcvtps2udq        (%rax), %xmm19
+vcvtps2udq        (%rax){1to4}, %xmm19
+vcvtps2udq        %xmm16, %xmm19 {k1}
+vcvtps2udq        (%rax), %xmm19 {k1}
+vcvtps2udq        (%rax){1to4},%xmm19 {k1}
+vcvtps2udq        %xmm16, %xmm19 {z}{k1}
+vcvtps2udq        (%rax), %xmm19 {z}{k1}
+vcvtps2udq        (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvtps2udq        %ymm16, %ymm19
+vcvtps2udq        (%rax), %ymm19
+vcvtps2udq        (%rax){1to8}, %ymm19
+vcvtps2udq        %ymm16,%ymm19 {k1}
+vcvtps2udq        (%rax),%ymm19 {k1}
+vcvtps2udq        (%rax){1to8}, %ymm19 {k1}
+vcvtps2udq        %ymm16, %ymm19 {z}{k1}
+vcvtps2udq        (%rax), %ymm19 {z}{k1}
+vcvtps2udq        (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvttpd2dqy       %ymm16, %xmm19
+vcvttpd2dqy       (%rax), %xmm19
+vcvttpd2dqy       (%rax){1to4}, %xmm19
+vcvttpd2dqy       %ymm16, %xmm19 {k1}
+vcvttpd2dqy       (%rax), %xmm19 {k1}
+vcvttpd2dqy       (%rax){1to4}, %xmm19 {k1}
+vcvttpd2dqy       %ymm16, %xmm19 {z}{k1}
+vcvttpd2dqy       (%rax), %xmm19 {z}{k1}
+vcvttpd2dqy       (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvttpd2dqx       %xmm16, %xmm19
+vcvttpd2dqx       (%rax), %xmm19
+vcvttpd2dqx       (%rax){1to2}, %xmm19
+vcvttpd2dqx       %xmm16, %xmm19 {k1}
+vcvttpd2dqx       (%rax), %xmm19 {k1}
+vcvttpd2dqx       (%rax){1to2},%xmm19 {k1}
+vcvttpd2dqx       %xmm16, %xmm19 {z}{k1}
+vcvttpd2dqx       (%rax), %xmm19 {z}{k1}
+vcvttpd2dqx       (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvttps2dq        %xmm16, %xmm19
+vcvttps2dq        (%rax), %xmm19
+vcvttps2dq        (%rax){1to4}, %xmm19
+vcvttps2dq        %xmm16, %xmm19 {k1}
+vcvttps2dq        (%rax), %xmm19 {k1}
+vcvttps2dq        (%rax){1to4},%xmm19 {k1}
+vcvttps2dq        %xmm16, %xmm19 {z}{k1}
+vcvttps2dq        (%rax), %xmm19 {z}{k1}
+vcvttps2dq        (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvttps2dq        %ymm16, %ymm19
+vcvttps2dq        (%rax), %ymm19
+vcvttps2dq        (%rax){1to8}, %ymm19
+vcvttps2dq        %ymm16,%ymm19 {k1}
+vcvttps2dq        (%rax),%ymm19 {k1}
+vcvttps2dq        (%rax){1to8}, %ymm19 {k1}
+vcvttps2dq        %ymm16, %ymm19 {z}{k1}
+vcvttps2dq        (%rax), %ymm19 {z}{k1}
+vcvttps2dq        (%rax){1to8}, %ymm19 {z}{k1}
+
+vcvttpd2udqy      %ymm16, %xmm19
+vcvttpd2udqy      (%rax), %xmm19
+vcvttpd2udqy      (%rax){1to4}, %xmm19
+vcvttpd2udqy      %ymm16, %xmm19 {k1}
+vcvttpd2udqy      (%rax), %xmm19 {k1}
+vcvttpd2udqy      (%rax){1to4}, %xmm19 {k1}
+vcvttpd2udqy      %ymm16, %xmm19 {z}{k1}
+vcvttpd2udqy      (%rax), %xmm19 {z}{k1}
+vcvttpd2udqy      (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvttpd2udqx      %xmm16, %xmm19
+vcvttpd2udqx      (%rax), %xmm19
+vcvttpd2udqx      (%rax){1to2}, %xmm19
+vcvttpd2udqx      %xmm16, %xmm19 {k1}
+vcvttpd2udqx      (%rax), %xmm19 {k1}
+vcvttpd2udqx      (%rax){1to2},%xmm19 {k1}
+vcvttpd2udqx      %xmm16, %xmm19 {z}{k1}
+vcvttpd2udqx      (%rax), %xmm19 {z}{k1}
+vcvttpd2udqx      (%rax){1to2}, %xmm19 {z}{k1}
+
+vcvttps2udq       %xmm16, %xmm19
+vcvttps2udq       (%rax), %xmm19
+vcvttps2udq       (%rax){1to4}, %xmm19
+vcvttps2udq       %xmm16, %xmm19 {k1}
+vcvttps2udq       (%rax), %xmm19 {k1}
+vcvttps2udq       (%rax){1to4},%xmm19 {k1}
+vcvttps2udq       %xmm16, %xmm19 {z}{k1}
+vcvttps2udq       (%rax), %xmm19 {z}{k1}
+vcvttps2udq       (%rax){1to4}, %xmm19 {z}{k1}
+
+vcvttps2udq       %ymm16, %ymm19
+vcvttps2udq       (%rax), %ymm19
+vcvttps2udq       (%rax){1to8}, %ymm19
+vcvttps2udq       %ymm16,%ymm19 {k1}
+vcvttps2udq       (%rax),%ymm19 {k1}
+vcvttps2udq       (%rax){1to8}, %ymm19 {k1}
+vcvttps2udq       %ymm16, %ymm19 {z}{k1}
+vcvttps2udq       (%rax), %ymm19 {z}{k1}
+vcvttps2udq       (%rax){1to8}, %ymm19 {z}{k1}
+
+vdivpd            %xmm16, %xmm17, %xmm19
+vdivpd            (%rax), %xmm17, %xmm19
+vdivpd            (%rax){1to2}, %xmm17, %xmm19
+vdivpd            %xmm16, %xmm17, %xmm19 {k1}
+vdivpd            (%rax), %xmm17, %xmm19 {k1}
+vdivpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vdivpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vdivpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vdivpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vdivpd            %ymm16, %ymm17, %ymm19
+vdivpd            (%rax), %ymm17, %ymm19
+vdivpd            (%rax){1to4}, %ymm17, %ymm19
+vdivpd            %ymm16, %ymm17, %ymm19 {k1}
+vdivpd            (%rax), %ymm17, %ymm19 {k1}
+vdivpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vdivpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vdivpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vdivpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vdivps            %xmm16, %xmm17, %xmm19
+vdivps            (%rax), %xmm17, %xmm19
+vdivps            (%rax){1to4}, %xmm17, %xmm19
+vdivps            %xmm16, %xmm17, %xmm19 {k1}
+vdivps            (%rax), %xmm17, %xmm19 {k1}
+vdivps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vdivps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vdivps            (%rax), %xmm17, %xmm19 {z}{k1}
+vdivps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vdivps            %ymm16, %ymm17, %ymm19
+vdivps            (%rax), %ymm17, %ymm19
+vdivps            (%rax){1to8}, %ymm17, %ymm19
+vdivps            %ymm16, %ymm17, %ymm19 {k1}
+vdivps            (%rax), %ymm17, %ymm19 {k1}
+vdivps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vdivps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vdivps            (%rax), %ymm17, %ymm19 {z}{k1}
+vdivps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vgatherdpd        (%rax,%xmm1,2), %ymm2 {k1}
+vgatherdps        (%rax,%ymm1,2), %ymm2 {k1}
+vgatherqpd        (%rax,%ymm1,2), %ymm2 {k1}
+vgatherqps        (%rax,%ymm1,2), %xmm2 {k1}
+
+vgatherdpd        (%rax,%xmm1,2), %xmm2 {k1}
+vgatherdps        (%rax,%xmm1,2), %xmm2 {k1}
+vgatherqpd        (%rax,%xmm1,2), %xmm2 {k1}
+vgatherqps        (%rax,%xmm1,2), %xmm2 {k1}
+
+vmaxpd            %xmm16, %xmm17, %xmm19
+vmaxpd            (%rax), %xmm17, %xmm19
+vmaxpd            (%rax){1to2}, %xmm17, %xmm19
+vmaxpd            %xmm16, %xmm17, %xmm19 {k1}
+vmaxpd            (%rax), %xmm17, %xmm19 {k1}
+vmaxpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vmaxpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vmaxpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vmaxpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vmaxpd            %ymm16, %ymm17, %ymm19
+vmaxpd            (%rax), %ymm17, %ymm19
+vmaxpd            (%rax){1to4}, %ymm17, %ymm19
+vmaxpd            %ymm16, %ymm17, %ymm19 {k1}
+vmaxpd            (%rax), %ymm17, %ymm19 {k1}
+vmaxpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vmaxpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vmaxpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vmaxpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vmaxps            %xmm16, %xmm17, %xmm19
+vmaxps            (%rax), %xmm17, %xmm19
+vmaxps            (%rax){1to4}, %xmm17, %xmm19
+vmaxps            %xmm16, %xmm17, %xmm19 {k1}
+vmaxps            (%rax), %xmm17, %xmm19 {k1}
+vmaxps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vmaxps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vmaxps            (%rax), %xmm17, %xmm19 {z}{k1}
+vmaxps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vmaxps            %ymm16, %ymm17, %ymm19
+vmaxps            (%rax), %ymm17, %ymm19
+vmaxps            (%rax){1to8}, %ymm17, %ymm19
+vmaxps            %ymm16, %ymm17, %ymm19 {k1}
+vmaxps            (%rax), %ymm17, %ymm19 {k1}
+vmaxps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vmaxps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vmaxps            (%rax), %ymm17, %ymm19 {z}{k1}
+vmaxps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vminpd            %xmm16, %xmm17, %xmm19
+vminpd            (%rax), %xmm17, %xmm19
+vminpd            (%rax){1to2}, %xmm17, %xmm19
+vminpd            %xmm16, %xmm17, %xmm19 {k1}
+vminpd            (%rax), %xmm17, %xmm19 {k1}
+vminpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vminpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vminpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vminpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vminpd            %ymm16, %ymm17, %ymm19
+vminpd            (%rax), %ymm17, %ymm19
+vminpd            (%rax){1to4}, %ymm17, %ymm19
+vminpd            %ymm16, %ymm17, %ymm19 {k1}
+vminpd            (%rax), %ymm17, %ymm19 {k1}
+vminpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vminpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vminpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vminpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vminps            %xmm16, %xmm17, %xmm19
+vminps            (%rax), %xmm17, %xmm19
+vminps            (%rax){1to4}, %xmm17, %xmm19
+vminps            %xmm16, %xmm17, %xmm19 {k1}
+vminps            (%rax), %xmm17, %xmm19 {k1}
+vminps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vminps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vminps            (%rax), %xmm17, %xmm19 {z}{k1}
+vminps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vminps            %ymm16, %ymm17, %ymm19
+vminps            (%rax), %ymm17, %ymm19
+vminps            (%rax){1to8}, %ymm17, %ymm19
+vminps            %ymm16, %ymm17, %ymm19 {k1}
+vminps            (%rax), %ymm17, %ymm19 {k1}
+vminps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vminps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vminps            (%rax), %ymm17, %ymm19 {z}{k1}
+vminps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vmovapd           %xmm16, %xmm19
+vmovapd           (%rax), %xmm19
+vmovapd           %xmm16, (%rax)
+vmovapd           %xmm16, %xmm19 {k1}
+vmovapd           (%rax), %xmm19 {k1}
+vmovapd           %xmm16, (%rax) {k1}
+vmovapd           %xmm16, %xmm19 {z}{k1}
+vmovapd           (%rax), %xmm19 {z}{k1}
+
+vmovapd           %ymm16, %ymm19
+vmovapd           (%rax), %ymm19
+vmovapd           %ymm16, (%rax)
+vmovapd           %ymm16, %ymm19 {k1}
+vmovapd           (%rax), %ymm19 {k1}
+vmovapd           %ymm16, (%rax) {k1}
+vmovapd           %ymm16, %ymm19 {z}{k1}
+vmovapd           (%rax), %ymm19 {z}{k1}
+
+vmovaps           %xmm16, %xmm19
+vmovaps           (%rax), %xmm19
+vmovaps           %xmm16, (%rax)
+vmovaps           %xmm16, %xmm19 {k1}
+vmovaps           (%rax), %xmm19 {k1}
+vmovaps           %xmm16, (%rax) {k1}
+vmovaps           %xmm16, %xmm19 {z}{k1}
+vmovaps           (%rax), %xmm19 {z}{k1}
+
+vmovaps           %ymm16, %ymm19
+vmovaps           (%rax), %ymm19
+vmovaps           %ymm16, (%rax)
+vmovaps           %ymm16, %ymm19 {k1}
+vmovaps           (%rax), %ymm19 {k1}
+vmovaps           %ymm16, (%rax) {k1}
+vmovaps           %ymm16, %ymm19 {z}{k1}
+vmovaps           (%rax), %ymm19 {z}{k1}
+
+vmovddup          %xmm16, %xmm19
+vmovddup          (%rax), %xmm19
+vmovddup          %xmm16, %xmm19 {k1}
+vmovddup          (%rax), %xmm19 {k1}
+vmovddup          %xmm16, %xmm19 {z}{k1}
+vmovddup          (%rax), %xmm19 {z}{k1}
+
+vmovdqa32         %xmm16, %xmm19
+vmovdqa32         (%rax), %xmm19
+vmovdqa32         %xmm16, (%rax)
+vmovdqa32         %xmm16, %xmm19 {k1}
+vmovdqa32         (%rax), %xmm19 {k1}
+vmovdqa32         %xmm16, (%rax) {k1}
+vmovdqa32         %xmm16, %xmm19 {z}{k1}
+vmovdqa32         (%rax), %xmm19 {z}{k1}
+
+vmovdqa32         %ymm16, %ymm19
+vmovdqa32         (%rax), %ymm19
+vmovdqa32         %ymm16, (%rax)
+vmovdqa32         %ymm16, %ymm19 {k1}
+vmovdqa32         (%rax), %ymm19 {k1}
+vmovdqa32         %ymm16, (%rax) {k1}
+vmovdqa32         %ymm16, %ymm19 {z}{k1}
+vmovdqa32         (%rax), %ymm19 {z}{k1}
+
+vmovdqa64         %xmm16, %xmm19
+vmovdqa64         (%rax), %xmm19
+vmovdqa64         %xmm16, (%rax)
+vmovdqa64         %xmm16, %xmm19 {k1}
+vmovdqa64         (%rax), %xmm19 {k1}
+vmovdqa64         %xmm16, (%rax) {k1}
+vmovdqa64         %xmm16, %xmm19 {z}{k1}
+vmovdqa64         (%rax), %xmm19 {z}{k1}
+
+vmovdqa64         %ymm16, %ymm19
+vmovdqa64         (%rax), %ymm19
+vmovdqa64         %ymm16, (%rax)
+vmovdqa64         %ymm16, %ymm19 {k1}
+vmovdqa64         (%rax), %ymm19 {k1}
+vmovdqa64         %ymm16, (%rax) {k1}
+vmovdqa64         %ymm16, %ymm19 {z}{k1}
+vmovdqa64         (%rax), %ymm19 {z}{k1}
+
+vmovdqu32         %xmm16, %xmm19
+vmovdqu32         (%rax), %xmm19
+vmovdqu32         %xmm16, (%rax)
+vmovdqu32         %xmm16, %xmm19 {k1}
+vmovdqu32         (%rax), %xmm19 {k1}
+vmovdqu32         %xmm16, (%rax) {k1}
+vmovdqu32         %xmm16, %xmm19 {z}{k1}
+vmovdqu32         (%rax), %xmm19 {z}{k1}
+
+vmovdqu32         %ymm16, %ymm19
+vmovdqu32         (%rax), %ymm19
+vmovdqu32         %ymm16, (%rax)
+vmovdqu32         %ymm16, %ymm19 {k1}
+vmovdqu32         (%rax), %ymm19 {k1}
+vmovdqu32         %ymm16, (%rax) {k1}
+vmovdqu32         %ymm16, %ymm19 {z}{k1}
+vmovdqu32         (%rax), %ymm19 {z}{k1}
+
+vmovdqu64         %xmm16, %xmm19
+vmovdqu64         (%rax), %xmm19
+vmovdqu64         %xmm16, (%rax)
+vmovdqu64         %xmm16, %xmm19 {k1}
+vmovdqu64         (%rax), %xmm19 {k1}
+vmovdqu64         %xmm16, (%rax) {k1}
+vmovdqu64         %xmm16, %xmm19 {z}{k1}
+vmovdqu64         (%rax), %xmm19 {z}{k1}
+
+vmovdqu64         %ymm16, %ymm19
+vmovdqu64         (%rax), %ymm19
+vmovdqu64         %ymm16, (%rax)
+vmovdqu64         %ymm16, %ymm19 {k1}
+vmovdqu64         (%rax), %ymm19 {k1}
+vmovdqu64         %ymm16, (%rax) {k1}
+vmovdqu64         %ymm16, %ymm19 {z}{k1}
+vmovdqu64         (%rax), %ymm19 {z}{k1}
+
+vmovddup          %ymm16, %ymm19
+vmovddup          (%rax), %ymm19
+vmovddup          %ymm16, %ymm19 {k1}
+vmovddup          (%rax), %ymm19 {k1}
+vmovddup          %ymm16, %ymm19 {z}{k1}
+vmovddup          (%rax), %ymm19 {z}{k1}
+
+vmovshdup         %xmm16, %xmm19
+vmovshdup         (%rax), %xmm19
+vmovshdup         %xmm16, %xmm19 {k1}
+vmovshdup         (%rax), %xmm19 {k1}
+vmovshdup         %xmm16, %xmm19 {z}{k1}
+vmovshdup         (%rax), %xmm19 {z}{k1}
+
+vmovshdup         %ymm16, %ymm19
+vmovshdup         (%rax), %ymm19
+vmovshdup         %ymm16, %ymm19 {k1}
+vmovshdup         (%rax), %ymm19 {k1}
+vmovshdup         %ymm16, %ymm19 {z}{k1}
+vmovshdup         (%rax), %ymm19 {z}{k1}
+
+vmovsldup         %xmm16, %xmm19
+vmovsldup         (%rax), %xmm19
+vmovsldup         %xmm16, %xmm19 {k1}
+vmovsldup         (%rax), %xmm19 {k1}
+vmovsldup         %xmm16, %xmm19 {z}{k1}
+vmovsldup         (%rax), %xmm19 {z}{k1}
+
+vmovsldup         %ymm16, %ymm19
+vmovsldup         (%rax), %ymm19
+vmovsldup         %ymm16, %ymm19 {k1}
+vmovsldup         (%rax), %ymm19 {k1}
+vmovsldup         %ymm16, %ymm19 {z}{k1}
+vmovsldup         (%rax), %ymm19 {z}{k1}
+
+vmovupd           %xmm16, %xmm19
+vmovupd           (%rax), %xmm19
+vmovupd           %xmm16, (%rax)
+vmovupd           %xmm16, %xmm19 {k1}
+vmovupd           (%rax), %xmm19 {k1}
+vmovupd           %xmm16, (%rax) {k1}
+vmovupd           %xmm16, %xmm19 {z}{k1}
+vmovupd           (%rax), %xmm19 {z}{k1}
+
+vmovupd           %ymm16, %ymm19
+vmovupd           (%rax), %ymm19
+vmovupd           %ymm16, (%rax)
+vmovupd           %ymm16, %ymm19 {k1}
+vmovupd           (%rax), %ymm19 {k1}
+vmovupd           %ymm16, (%rax) {k1}
+vmovupd           %ymm16, %ymm19 {z}{k1}
+vmovupd           (%rax), %ymm19 {z}{k1}
+
+vmovups           %xmm16, %xmm19
+vmovups           (%rax), %xmm19
+vmovups           %xmm16, (%rax)
+vmovups           %xmm16, %xmm19 {k1}
+vmovups           (%rax), %xmm19 {k1}
+vmovups           %xmm16, (%rax) {k1}
+vmovups           %xmm16, %xmm19 {z}{k1}
+vmovups           (%rax), %xmm19 {z}{k1}
+
+vmovups           %ymm16, %ymm19
+vmovups           (%rax), %ymm19
+vmovups           %ymm16, (%rax)
+vmovups           %ymm16, %ymm19 {k1}
+vmovups           (%rax), %ymm19 {k1}
+vmovups           %ymm16, (%rax) {k1}
+vmovups           %ymm16, %ymm19 {z}{k1}
+vmovups           (%rax), %ymm19 {z}{k1}
+
+vmulpd            %xmm16, %xmm17, %xmm19
+vmulpd            (%rax), %xmm17, %xmm19
+vmulpd            (%rax){1to2}, %xmm17, %xmm19
+vmulpd            %xmm16, %xmm17, %xmm19 {k1}
+vmulpd            (%rax), %xmm17, %xmm19 {k1}
+vmulpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vmulpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vmulpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vmulpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vmulpd            %ymm16, %ymm17, %ymm19
+vmulpd            (%rax), %ymm17, %ymm19
+vmulpd            (%rax){1to4}, %ymm17, %ymm19
+vmulpd            %ymm16, %ymm17, %ymm19 {k1}
+vmulpd            (%rax), %ymm17, %ymm19 {k1}
+vmulpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vmulpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vmulpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vmulpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vmulps            %xmm16, %xmm17, %xmm19
+vmulps            (%rax), %xmm17, %xmm19
+vmulps            (%rax){1to4}, %xmm17, %xmm19
+vmulps            %xmm16, %xmm17, %xmm19 {k1}
+vmulps            (%rax), %xmm17, %xmm19 {k1}
+vmulps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vmulps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vmulps            (%rax), %xmm17, %xmm19 {z}{k1}
+vmulps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vmulps            %ymm16, %ymm17, %ymm19
+vmulps            (%rax), %ymm17, %ymm19
+vmulps            (%rax){1to8}, %ymm17, %ymm19
+vmulps            %ymm16, %ymm17, %ymm19 {k1}
+vmulps            (%rax), %ymm17, %ymm19 {k1}
+vmulps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vmulps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vmulps            (%rax), %ymm17, %ymm19 {z}{k1}
+vmulps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpaddd            %xmm16, %xmm17, %xmm19
+vpaddd            (%rax), %xmm17, %xmm19
+vpaddd            (%rax){1to4}, %xmm17, %xmm19
+vpaddd            %xmm16, %xmm17, %xmm19 {k1}
+vpaddd            (%rax), %xmm17, %xmm19 {k1}
+vpaddd            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpaddd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddd            (%rax), %xmm17, %xmm19 {z}{k1}
+vpaddd            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpaddd            %ymm16, %ymm17, %ymm19
+vpaddd            (%rax), %ymm17, %ymm19
+vpaddd            (%rax){1to8}, %ymm17, %ymm19
+vpaddd            %ymm16, %ymm17, %ymm19 {k1}
+vpaddd            (%rax), %ymm17, %ymm19 {k1}
+vpaddd            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpaddd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddd            (%rax), %ymm17, %ymm19 {z}{k1}
+vpaddd            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpaddq            %xmm16, %xmm17, %xmm19
+vpaddq            (%rax), %xmm17, %xmm19
+vpaddq            (%rax){1to2}, %xmm17, %xmm19
+vpaddq            %xmm16, %xmm17, %xmm19 {k1}
+vpaddq            (%rax), %xmm17, %xmm19 {k1}
+vpaddq            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpaddq            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpaddq            (%rax), %xmm17, %xmm19 {z}{k1}
+vpaddq            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vpaddq            %ymm16, %ymm17, %ymm19
+vpaddq            (%rax), %ymm17, %ymm19
+vpaddq            (%rax){1to4}, %ymm17, %ymm19
+vpaddq            %ymm16, %ymm17, %ymm19 {k1}
+vpaddq            (%rax), %ymm17, %ymm19 {k1}
+vpaddq            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpaddq            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpaddq            (%rax), %ymm17, %ymm19 {z}{k1}
+vpaddq            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpbroadcastd      %xmm16, %xmm19
+vpbroadcastd      (%rax), %xmm19
+vpbroadcastd      %xmm16, %xmm19 {k1}
+vpbroadcastd      (%rax), %xmm19 {k1}
+vpbroadcastd      %xmm16, %xmm19 {z}{k1}
+vpbroadcastd      (%rax), %xmm19 {z}{k1}
+
+vpbroadcastd      %xmm16, %ymm19
+vpbroadcastd      (%rax), %ymm19
+vpbroadcastd      %xmm16, %ymm19 {k1}
+vpbroadcastd      (%rax), %ymm19 {k1}
+vpbroadcastd      %xmm16, %ymm19 {z}{k1}
+vpbroadcastd      (%rax), %ymm19 {z}{k1}
+
+vpbroadcastq      %xmm16, %xmm19
+vpbroadcastq      (%rax), %xmm19
+vpbroadcastq      %xmm16, %xmm19 {k1}
+vpbroadcastq      (%rax), %xmm19 {k1}
+vpbroadcastq      %xmm16, %xmm19 {z}{k1}
+vpbroadcastq      (%rax), %xmm19 {z}{k1}
+
+vpbroadcastq      %xmm16, %ymm19
+vpbroadcastq      (%rax), %ymm19
+vpbroadcastq      %xmm16, %ymm19 {k1}
+vpbroadcastq      (%rax), %ymm19 {k1}
+vpbroadcastq      %xmm16, %ymm19 {z}{k1}
+vpbroadcastq      (%rax), %ymm19 {z}{k1}
+
+vpcmpd            $0, %xmm0, %xmm1, %k2
+vpcmpd            $0, (%rax), %xmm1, %k2
+vpcmpd            $0, (%rax){1to4}, %xmm1, %k2
+vpcmpd            $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpd            $0, (%rax), %xmm1, %k2 {k3}
+vpcmpd            $0, (%rax){1to4}, %xmm1, %k2 {k3}
+
+vpcmpd            $0, %ymm0, %ymm1, %k2
+vpcmpd            $0, (%rax), %ymm1, %k2
+vpcmpd            $0, (%rax){1to8}, %ymm1, %k2
+vpcmpd            $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpd            $0, (%rax), %ymm1, %k2 {k3}
+vpcmpd            $0, (%rax){1to8}, %ymm1, %k2 {k3}
+
+vpcmpeqd          %xmm0, %xmm1, %k2
+vpcmpeqd          (%rax), %xmm1, %k2
+vpcmpeqd          (%rax){1to4}, %xmm1, %k2
+vpcmpeqd          %xmm0, %xmm1, %k2 {k3}
+vpcmpeqd          (%rax), %xmm1, %k2 {k3}
+vpcmpeqd          (%rax){1to4}, %xmm1, %k2 {k3}
+
+vpcmpeqd          %ymm0, %ymm1, %k2
+vpcmpeqd          (%rax), %ymm1, %k2
+vpcmpeqd          (%rax){1to8}, %ymm1, %k2
+vpcmpeqd          %ymm0, %ymm1, %k2 {k3}
+vpcmpeqd          (%rax), %ymm1, %k2 {k3}
+vpcmpeqd          (%rax){1to8}, %ymm1, %k2 {k3}
+
+vpcmpeqq          %xmm0, %xmm1, %k2
+vpcmpeqq          (%rax), %xmm1, %k2
+vpcmpeqq          (%rax){1to2}, %xmm1, %k2
+vpcmpeqq          %xmm0, %xmm1, %k2 {k3}
+vpcmpeqq          (%rax), %xmm1, %k2 {k3}
+vpcmpeqq          (%rax){1to2}, %xmm1, %k2 {k3}
+
+vpcmpeqq          %ymm0, %ymm1, %k2
+vpcmpeqq          (%rax), %ymm1, %k2
+vpcmpeqq          (%rax){1to4}, %ymm1, %k2
+vpcmpeqq          %ymm0, %ymm1, %k2 {k3}
+vpcmpeqq          (%rax), %ymm1, %k2 {k3}
+vpcmpeqq          (%rax){1to4}, %ymm1, %k2 {k3}
+
+vpcmpgtd          %xmm0, %xmm1, %k2
+vpcmpgtd          (%rax), %xmm1, %k2
+vpcmpgtd          (%rax){1to4}, %xmm1, %k2
+vpcmpgtd          %xmm0, %xmm1, %k2 {k3}
+vpcmpgtd          (%rax), %xmm1, %k2 {k3}
+vpcmpgtd          (%rax){1to4}, %xmm1, %k2 {k3}
+
+vpcmpgtd          %ymm0, %ymm1, %k2
+vpcmpgtd          (%rax), %ymm1, %k2
+vpcmpgtd          (%rax){1to8}, %ymm1, %k2
+vpcmpgtd          %ymm0, %ymm1, %k2 {k3}
+vpcmpgtd          (%rax), %ymm1, %k2 {k3}
+vpcmpgtd          (%rax){1to8}, %ymm1, %k2 {k3}
+
+vpcmpgtq          %xmm0, %xmm1, %k2
+vpcmpgtq          (%rax), %xmm1, %k2
+vpcmpgtq          (%rax){1to2}, %xmm1, %k2
+vpcmpgtq          %xmm0, %xmm1, %k2 {k3}
+vpcmpgtq          (%rax), %xmm1, %k2 {k3}
+vpcmpgtq          (%rax){1to2}, %xmm1, %k2 {k3}
+
+vpcmpgtq          %ymm0, %ymm1, %k2
+vpcmpgtq          (%rax), %ymm1, %k2
+vpcmpgtq          (%rax){1to4}, %ymm1, %k2
+vpcmpgtq          %ymm0, %ymm1, %k2 {k3}
+vpcmpgtq          (%rax), %ymm1, %k2 {k3}
+vpcmpgtq          (%rax){1to4}, %ymm1, %k2 {k3}
+
+vpcmpq            $0, %xmm0, %xmm1, %k2
+vpcmpq            $0, (%rax), %xmm1, %k2
+vpcmpq            $0, (%rax){1to2}, %xmm1, %k2
+vpcmpq            $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpq            $0, (%rax), %xmm1, %k2 {k3}
+vpcmpq            $0, (%rax){1to2}, %xmm1, %k2 {k3}
+
+vpcmpq            $0, %ymm0, %ymm1, %k2
+vpcmpq            $0, (%rax), %ymm1, %k2
+vpcmpq            $0, (%rax){1to4}, %ymm1, %k2
+vpcmpq            $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpq            $0, (%rax), %ymm1, %k2 {k3}
+vpcmpq            $0, (%rax){1to4}, %ymm1, %k2 {k3}
+
+vpcmpud           $0, %xmm0, %xmm1, %k2
+vpcmpud           $0, (%rax), %xmm1, %k2
+vpcmpud           $0, (%rax){1to4}, %xmm1, %k2
+vpcmpud           $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpud           $0, (%rax), %xmm1, %k2 {k3}
+vpcmpud           $0, (%rax){1to4}, %xmm1, %k2 {k3}
+
+vpcmpud           $0, %ymm0, %ymm1, %k2
+vpcmpud           $0, (%rax), %ymm1, %k2
+vpcmpud           $0, (%rax){1to8}, %ymm1, %k2
+vpcmpud           $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpud           $0, (%rax), %ymm1, %k2 {k3}
+vpcmpud           $0, (%rax){1to8}, %ymm1, %k2 {k3}
+
+vpcmpuq           $0, %xmm0, %xmm1, %k2
+vpcmpuq           $0, (%rax), %xmm1, %k2
+vpcmpuq           $0, (%rax){1to2}, %xmm1, %k2
+vpcmpuq           $0, %xmm0, %xmm1, %k2 {k3}
+vpcmpuq           $0, (%rax), %xmm1, %k2 {k3}
+vpcmpuq           $0, (%rax){1to2}, %xmm1, %k2 {k3}
+
+vpcmpuq           $0, %ymm0, %ymm1, %k2
+vpcmpuq           $0, (%rax), %ymm1, %k2
+vpcmpuq           $0, (%rax){1to4}, %ymm1, %k2
+vpcmpuq           $0, %ymm0, %ymm1, %k2 {k3}
+vpcmpuq           $0, (%rax), %ymm1, %k2 {k3}
+vpcmpuq           $0, (%rax){1to4}, %ymm1, %k2 {k3}
+
+vpermd            %ymm16, %ymm17, %ymm19
+vpermd            (%rax), %ymm17, %ymm19
+vpermd            (%rax){1to8}, %ymm17, %ymm19
+vpermd            %ymm16, %ymm17, %ymm19 {k1}
+vpermd            (%rax), %ymm17, %ymm19 {k1}
+vpermd            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermd            (%rax), %ymm17, %ymm19 {z}{k1}
+vpermd            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermilpd         $0, %xmm16, %xmm19
+vpermilpd         $0, (%rax), %xmm19
+vpermilpd         $0, (%rax){1to2}, %xmm19
+vpermilpd         $0, %xmm16, %xmm19 {k1}
+vpermilpd         $0, (%rax), %xmm19 {k1}
+vpermilpd         $0, (%rax){1to2}, %xmm19 {k1}
+vpermilpd         $0, %xmm16, %xmm19 {z}{k1}
+vpermilpd         $0, (%rax), %xmm19 {z}{k1}
+vpermilpd         $0, (%rax){1to2}, %xmm19 {z}{k1}
+
+vpermilpd         $0, %ymm16, %ymm19
+vpermilpd         $0, (%rax), %ymm19
+vpermilpd         $0, (%rax){1to4}, %ymm19
+vpermilpd         $0, %ymm16, %ymm19 {k1}
+vpermilpd         $0, (%rax), %ymm19 {k1}
+vpermilpd         $0, (%rax){1to4}, %ymm19 {k1}
+vpermilpd         $0, %ymm16, %ymm19 {z}{k1}
+vpermilpd         $0, (%rax), %ymm19 {z}{k1}
+vpermilpd         $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermilpd         %xmm16, %xmm17, %xmm19
+vpermilpd         (%rax), %xmm17, %xmm19
+vpermilpd         (%rax){1to2}, %xmm17, %xmm19
+vpermilpd         %xmm16, %xmm17, %xmm19 {k1}
+vpermilpd         (%rax), %xmm17, %xmm19 {k1}
+vpermilpd         (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpermilpd         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermilpd         (%rax), %xmm17, %xmm19 {z}{k1}
+vpermilpd         (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vpermilpd         %ymm16, %ymm17, %ymm19
+vpermilpd         (%rax), %ymm17, %ymm19
+vpermilpd         (%rax){1to4}, %ymm17, %ymm19
+vpermilpd         %ymm16, %ymm17, %ymm19 {k1}
+vpermilpd         (%rax), %ymm17, %ymm19 {k1}
+vpermilpd         (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermilpd         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermilpd         (%rax), %ymm17, %ymm19 {z}{k1}
+vpermilpd         (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpermilps         $0, %xmm16, %xmm19
+vpermilps         $0, (%rax), %xmm19
+vpermilps         $0, (%rax){1to4}, %xmm19
+vpermilps         $0, %xmm16, %xmm19 {k1}
+vpermilps         $0, (%rax), %xmm19 {k1}
+vpermilps         $0, (%rax){1to4}, %xmm19 {k1}
+vpermilps         $0, %xmm16, %xmm19 {z}{k1}
+vpermilps         $0, (%rax), %xmm19 {z}{k1}
+vpermilps         $0, (%rax){1to4}, %xmm19 {z}{k1}
+
+vpermilps         $0, %ymm16, %ymm19
+vpermilps         $0, (%rax), %ymm19
+vpermilps         $0, (%rax){1to8}, %ymm19
+vpermilps         $0, %ymm16, %ymm19 {k1}
+vpermilps         $0, (%rax), %ymm19 {k1}
+vpermilps         $0, (%rax){1to8}, %ymm19 {k1}
+vpermilps         $0, %ymm16, %ymm19 {z}{k1}
+vpermilps         $0, (%rax), %ymm19 {z}{k1}
+vpermilps         $0, (%rax){1to8}, %ymm19 {z}{k1}
+
+vpermilps         %xmm16, %xmm17, %xmm19
+vpermilps         (%rax), %xmm17, %xmm19
+vpermilps         (%rax){1to4}, %xmm17, %xmm19
+vpermilps         %xmm16, %xmm17, %xmm19 {k1}
+vpermilps         (%rax), %xmm17, %xmm19 {k1}
+vpermilps         (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpermilps         %xmm16, %xmm17, %xmm19 {z}{k1}
+vpermilps         (%rax), %xmm17, %xmm19 {z}{k1}
+vpermilps         (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpermilps         %ymm16, %ymm17, %ymm19
+vpermilps         (%rax), %ymm17, %ymm19
+vpermilps         (%rax){1to8}, %ymm17, %ymm19
+vpermilps         %ymm16, %ymm17, %ymm19 {k1}
+vpermilps         (%rax), %ymm17, %ymm19 {k1}
+vpermilps         (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermilps         %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermilps         (%rax), %ymm17, %ymm19 {z}{k1}
+vpermilps         (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermpd           $0, %ymm16, %ymm19
+vpermpd           $0, (%rax), %ymm19
+vpermpd           $0, (%rax){1to4}, %ymm19
+vpermpd           $0, %ymm16, %ymm19 {k1}
+vpermpd           $0, (%rax), %ymm19 {k1}
+vpermpd           $0, (%rax){1to4}, %ymm19 {k1}
+vpermpd           $0, %ymm16, %ymm19 {z}{k1}
+vpermpd           $0, (%rax), %ymm19 {z}{k1}
+vpermpd           $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermpd           %ymm16, %ymm17, %ymm19
+vpermpd           (%rax), %ymm17, %ymm19
+vpermpd           (%rax){1to4}, %ymm17, %ymm19
+vpermpd           %ymm16, %ymm17, %ymm19 {k1}
+vpermpd           (%rax), %ymm17, %ymm19 {k1}
+vpermpd           (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermpd           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermpd           (%rax), %ymm17, %ymm19 {z}{k1}
+vpermpd           (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpermps           %ymm16, %ymm17, %ymm19
+vpermps           (%rax), %ymm17, %ymm19
+vpermps           (%rax){1to8}, %ymm17, %ymm19
+vpermps           %ymm16, %ymm17, %ymm19 {k1}
+vpermps           (%rax), %ymm17, %ymm19 {k1}
+vpermps           (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpermps           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermps           (%rax), %ymm17, %ymm19 {z}{k1}
+vpermps           (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpermq            $0, %ymm16, %ymm19
+vpermq            $0, (%rax), %ymm19
+vpermq            $0, (%rax){1to4}, %ymm19
+vpermq            $0, %ymm16, %ymm19 {k1}
+vpermq            $0, (%rax), %ymm19 {k1}
+vpermq            $0, (%rax){1to4}, %ymm19 {k1}
+vpermq            $0, %ymm16, %ymm19 {z}{k1}
+vpermq            $0, (%rax), %ymm19 {z}{k1}
+vpermq            $0, (%rax){1to4}, %ymm19 {z}{k1}
+
+vpermq            %ymm16, %ymm17, %ymm19
+vpermq            (%rax), %ymm17, %ymm19
+vpermq            (%rax){1to4}, %ymm17, %ymm19
+vpermq            %ymm16, %ymm17, %ymm19 {k1}
+vpermq            (%rax), %ymm17, %ymm19 {k1}
+vpermq            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpermq            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpermq            (%rax), %ymm17, %ymm19 {z}{k1}
+vpermq            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vpgatherdq        (%rax,%xmm1,2), %ymm2 {k1}
+vpgatherdd        (%rax,%ymm1,2), %ymm2 {k1}
+vpgatherqq        (%rax,%ymm1,2), %ymm2 {k1}
+vpgatherqd        (%rax,%ymm1,2), %xmm2 {k1}
+
+vpgatherdq        (%rax,%xmm1,2), %xmm2 {k1}
+vpgatherdd        (%rax,%xmm1,2), %xmm2 {k1}
+vpgatherqq        (%rax,%xmm1,2), %xmm2 {k1}
+vpgatherqd        (%rax,%xmm1,2), %xmm2 {k1}
+
+vpmovsxbd         %xmm16, %xmm19
+vpmovsxbd         (%rax), %xmm19
+vpmovsxbd         %xmm16, %xmm19 {k1}
+vpmovsxbd         (%rax), %xmm19 {k1}
+vpmovsxbd         %xmm16, %xmm19 {z}{k1}
+vpmovsxbd         (%rax), %xmm19 {z}{k1}
+
+vpmovsxbd         %xmm16, %ymm19
+vpmovsxbd         (%rax), %ymm19
+vpmovsxbd         %xmm16, %ymm19 {k1}
+vpmovsxbd         (%rax), %ymm19 {k1}
+vpmovsxbd         %xmm16, %ymm19 {z}{k1}
+vpmovsxbd         (%rax), %ymm19 {z}{k1}
+
+vpmovsxbq         %xmm16, %xmm19
+vpmovsxbq         (%rax), %xmm19
+vpmovsxbq         %xmm16, %xmm19 {k1}
+vpmovsxbq         (%rax), %xmm19 {k1}
+vpmovsxbq         %xmm16, %xmm19 {z}{k1}
+vpmovsxbq         (%rax), %xmm19 {z}{k1}
+
+vpmovsxbq         %xmm16, %ymm19
+vpmovsxbq         (%rax), %ymm19
+vpmovsxbq         %xmm16, %ymm19 {k1}
+vpmovsxbq         (%rax), %ymm19 {k1}
+vpmovsxbq         %xmm16, %ymm19 {z}{k1}
+vpmovsxbq         (%rax), %ymm19 {z}{k1}
+
+vpmovsxdq         %xmm16, %xmm19
+vpmovsxdq         (%rax), %xmm19
+vpmovsxdq         %xmm16, %xmm19 {k1}
+vpmovsxdq         (%rax), %xmm19 {k1}
+vpmovsxdq         %xmm16, %xmm19 {z}{k1}
+vpmovsxdq         (%rax), %xmm19 {z}{k1}
+
+vpmovsxdq         %xmm16, %ymm19
+vpmovsxdq         (%rax), %ymm19
+vpmovsxdq         %xmm16, %ymm19 {k1}
+vpmovsxdq         (%rax), %ymm19 {k1}
+vpmovsxdq         %xmm16, %ymm19 {z}{k1}
+vpmovsxdq         (%rax), %ymm19 {z}{k1}
+
+vpmovsxwd         %xmm16, %xmm19
+vpmovsxwd         (%rax), %xmm19
+vpmovsxwd         %xmm16, %xmm19 {k1}
+vpmovsxwd         (%rax), %xmm19 {k1}
+vpmovsxwd         %xmm16, %xmm19 {z}{k1}
+vpmovsxwd         (%rax), %xmm19 {z}{k1}
+
+vpmovsxwd         %xmm16, %ymm19
+vpmovsxwd         (%rax), %ymm19
+vpmovsxwd         %xmm16, %ymm19 {k1}
+vpmovsxwd         (%rax), %ymm19 {k1}
+vpmovsxwd         %xmm16, %ymm19 {z}{k1}
+vpmovsxwd         (%rax), %ymm19 {z}{k1}
+
+vpmovsxwq         %xmm16, %xmm19
+vpmovsxwq         (%rax), %xmm19
+vpmovsxwq         %xmm16, %xmm19 {k1}
+vpmovsxwq         (%rax), %xmm19 {k1}
+vpmovsxwq         %xmm16, %xmm19 {z}{k1}
+vpmovsxwq         (%rax), %xmm19 {z}{k1}
+
+vpmovsxwq         %xmm16, %ymm19
+vpmovsxwq         (%rax), %ymm19
+vpmovsxwq         %xmm16, %ymm19 {k1}
+vpmovsxwq         (%rax), %ymm19 {k1}
+vpmovsxwq         %xmm16, %ymm19 {z}{k1}
+vpmovsxwq         (%rax), %ymm19 {z}{k1}
+
+vpmovzxbd         %xmm16, %xmm19
+vpmovzxbd         (%rax), %xmm19
+vpmovzxbd         %xmm16, %xmm19 {k1}
+vpmovzxbd         (%rax), %xmm19 {k1}
+vpmovzxbd         %xmm16, %xmm19 {z}{k1}
+vpmovzxbd         (%rax), %xmm19 {z}{k1}
+
+vpmovzxbd         %xmm16, %ymm19
+vpmovzxbd         (%rax), %ymm19
+vpmovzxbd         %xmm16, %ymm19 {k1}
+vpmovzxbd         (%rax), %ymm19 {k1}
+vpmovzxbd         %xmm16, %ymm19 {z}{k1}
+vpmovzxbd         (%rax), %ymm19 {z}{k1}
+
+vpmovzxbq         %xmm16, %xmm19
+vpmovzxbq         (%rax), %xmm19
+vpmovzxbq         %xmm16, %xmm19 {k1}
+vpmovzxbq         (%rax), %xmm19 {k1}
+vpmovzxbq         %xmm16, %xmm19 {z}{k1}
+vpmovzxbq         (%rax), %xmm19 {z}{k1}
+
+vpmovzxbq         %xmm16, %ymm19
+vpmovzxbq         (%rax), %ymm19
+vpmovzxbq         %xmm16, %ymm19 {k1}
+vpmovzxbq         (%rax), %ymm19 {k1}
+vpmovzxbq         %xmm16, %ymm19 {z}{k1}
+vpmovzxbq         (%rax), %ymm19 {z}{k1}
+
+vpmovzxdq         %xmm16, %xmm19
+vpmovzxdq         (%rax), %xmm19
+vpmovzxdq         %xmm16, %xmm19 {k1}
+vpmovzxdq         (%rax), %xmm19 {k1}
+vpmovzxdq         %xmm16, %xmm19 {z}{k1}
+vpmovzxdq         (%rax), %xmm19 {z}{k1}
+
+vpmovzxdq         %xmm16, %ymm19
+vpmovzxdq         (%rax), %ymm19
+vpmovzxdq         %xmm16, %ymm19 {k1}
+vpmovzxdq         (%rax), %ymm19 {k1}
+vpmovzxdq         %xmm16, %ymm19 {z}{k1}
+vpmovzxdq         (%rax), %ymm19 {z}{k1}
+
+vpmovzxwd         %xmm16, %xmm19
+vpmovzxwd         (%rax), %xmm19
+vpmovzxwd         %xmm16, %xmm19 {k1}
+vpmovzxwd         (%rax), %xmm19 {k1}
+vpmovzxwd         %xmm16, %xmm19 {z}{k1}
+vpmovzxwd         (%rax), %xmm19 {z}{k1}
+
+vpmovzxwd         %xmm16, %ymm19
+vpmovzxwd         (%rax), %ymm19
+vpmovzxwd         %xmm16, %ymm19 {k1}
+vpmovzxwd         (%rax), %ymm19 {k1}
+vpmovzxwd         %xmm16, %ymm19 {z}{k1}
+vpmovzxwd         (%rax), %ymm19 {z}{k1}
+
+vpmovzxwq         %xmm16, %xmm19
+vpmovzxwq         (%rax), %xmm19
+vpmovzxwq         %xmm16, %xmm19 {k1}
+vpmovzxwq         (%rax), %xmm19 {k1}
+vpmovzxwq         %xmm16, %xmm19 {z}{k1}
+vpmovzxwq         (%rax), %xmm19 {z}{k1}
+
+vpmovzxwq         %xmm16, %ymm19
+vpmovzxwq         (%rax), %ymm19
+vpmovzxwq         %xmm16, %ymm19 {k1}
+vpmovzxwq         (%rax), %ymm19 {k1}
+vpmovzxwq         %xmm16, %ymm19 {z}{k1}
+vpmovzxwq         (%rax), %ymm19 {z}{k1}
+
+vpmulld           %xmm16, %xmm17, %xmm19
+vpmulld           (%rax), %xmm17, %xmm19
+vpmulld           (%rax){1to4}, %xmm17, %xmm19
+vpmulld           %xmm16, %xmm17, %xmm19 {k1}
+vpmulld           (%rax), %xmm17, %xmm19 {k1}
+vpmulld           (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpmulld           %xmm16, %xmm17, %xmm19 {z}{k1}
+vpmulld           (%rax), %xmm17, %xmm19 {z}{k1}
+vpmulld           (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpmulld           %ymm16, %ymm17, %ymm19
+vpmulld           (%rax), %ymm17, %ymm19
+vpmulld           (%rax){1to8}, %ymm17, %ymm19
+vpmulld           %ymm16, %ymm17, %ymm19 {k1}
+vpmulld           (%rax), %ymm17, %ymm19 {k1}
+vpmulld           (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpmulld           %ymm16, %ymm17, %ymm19 {z}{k1}
+vpmulld           (%rax), %ymm17, %ymm19 {z}{k1}
+vpmulld           (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpshufd           $0, %xmm16, %xmm19
+vpshufd           $0, (%rax), %xmm19
+vpshufd           $0, (%rax){1to4}, %xmm19
+vpshufd           $0, %xmm16, %xmm19 {k1}
+vpshufd           $0, (%rax), %xmm19 {k1}
+vpshufd           $0, (%rax){1to4}, %xmm19 {k1}
+vpshufd           $0, %xmm16, %xmm19 {z}{k1}
+vpshufd           $0, (%rax), %xmm19 {z}{k1}
+vpshufd           $0, (%rax){1to4}, %xmm19 {z}{k1}
+
+vpshufd           $0, %ymm16, %ymm19
+vpshufd           $0, (%rax), %ymm19
+vpshufd           $0, (%rax){1to8}, %ymm19
+vpshufd           $0, %ymm16, %ymm19 {k1}
+vpshufd           $0, (%rax), %ymm19 {k1}
+vpshufd           $0, (%rax){1to8}, %ymm19 {k1}
+vpshufd           $0, %ymm16, %ymm19 {z}{k1}
+vpshufd           $0, (%rax), %ymm19 {z}{k1}
+vpshufd           $0, (%rax){1to8}, %ymm19 {z}{k1}
+
+vpsubd            %xmm16, %xmm17, %xmm19
+vpsubd            (%rax), %xmm17, %xmm19
+vpsubd            (%rax){1to4}, %xmm17, %xmm19
+vpsubd            %xmm16, %xmm17, %xmm19 {k1}
+vpsubd            (%rax), %xmm17, %xmm19 {k1}
+vpsubd            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpsubd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubd            (%rax), %xmm17, %xmm19 {z}{k1}
+vpsubd            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpsubd            %ymm16, %ymm17, %ymm19
+vpsubd            (%rax), %ymm17, %ymm19
+vpsubd            (%rax){1to8}, %ymm17, %ymm19
+vpsubd            %ymm16, %ymm17, %ymm19 {k1}
+vpsubd            (%rax), %ymm17, %ymm19 {k1}
+vpsubd            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpsubd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubd            (%rax), %ymm17, %ymm19 {z}{k1}
+vpsubd            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpsubq            %xmm16, %xmm17, %xmm19
+vpsubq            (%rax), %xmm17, %xmm19
+vpsubq            (%rax){1to2}, %xmm17, %xmm19
+vpsubq            %xmm16, %xmm17, %xmm19 {k1}
+vpsubq            (%rax), %xmm17, %xmm19 {k1}
+vpsubq            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vpsubq            %xmm16, %xmm17, %xmm19 {z}{k1}
+vpsubq            (%rax), %xmm17, %xmm19 {z}{k1}
+vpsubq            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vpsubq            %ymm16, %ymm17, %ymm19
+vpsubq            (%rax), %ymm17, %ymm19
+vpsubq            (%rax){1to4}, %ymm17, %ymm19
+vpsubq            %ymm16, %ymm17, %ymm19 {k1}
+vpsubq            (%rax), %ymm17, %ymm19 {k1}
+vpsubq            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vpsubq            %ymm16, %ymm17, %ymm19 {z}{k1}
+vpsubq            (%rax), %ymm17, %ymm19 {z}{k1}
+vpsubq            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vptestmd          %xmm0, %xmm1, %k2
+vptestmd          (%rax), %xmm1, %k2
+vptestmd          (%rax){1to4}, %xmm1, %k2
+vptestmd          %xmm0, %xmm1, %k2 {k3}
+vptestmd          (%rax), %xmm1, %k2 {k3}
+vptestmd          (%rax){1to4}, %xmm1, %k2 {k3}
+
+vptestmd          %ymm0, %ymm1, %k2
+vptestmd          (%rax), %ymm1, %k2
+vptestmd          (%rax){1to8}, %ymm1, %k2
+vptestmd          %ymm0, %ymm1, %k2 {k3}
+vptestmd          (%rax), %ymm1, %k2 {k3}
+vptestmd          (%rax){1to8}, %ymm1, %k2 {k3}
+
+vptestmq          %xmm0, %xmm1, %k2
+vptestmq          (%rax), %xmm1, %k2
+vptestmq          (%rax){1to2}, %xmm1, %k2
+vptestmq          %xmm0, %xmm1, %k2 {k3}
+vptestmq          (%rax), %xmm1, %k2 {k3}
+vptestmq          (%rax){1to2}, %xmm1, %k2 {k3}
+
+vptestmq          %ymm0, %ymm1, %k2
+vptestmq          (%rax), %ymm1, %k2
+vptestmq          (%rax){1to4}, %ymm1, %k2
+vptestmq          %ymm0, %ymm1, %k2 {k3}
+vptestmq          (%rax), %ymm1, %k2 {k3}
+vptestmq          (%rax){1to4}, %ymm1, %k2 {k3}
+
+vptestnmd         %xmm0, %xmm1, %k2
+vptestnmd         (%rax), %xmm1, %k2
+vptestnmd         (%rax){1to4}, %xmm1, %k2
+vptestnmd         %xmm0, %xmm1, %k2 {k3}
+vptestnmd         (%rax), %xmm1, %k2 {k3}
+vptestnmd         (%rax){1to4}, %xmm1, %k2 {k3}
+
+vptestnmd         %ymm0, %ymm1, %k2
+vptestnmd         (%rax), %ymm1, %k2
+vptestnmd         (%rax){1to8}, %ymm1, %k2
+vptestnmd         %ymm0, %ymm1, %k2 {k3}
+vptestnmd         (%rax), %ymm1, %k2 {k3}
+vptestnmd         (%rax){1to8}, %ymm1, %k2 {k3}
+
+vptestnmq         %xmm0, %xmm1, %k2
+vptestnmq         (%rax), %xmm1, %k2
+vptestnmq         (%rax){1to2}, %xmm1, %k2
+vptestnmq         %xmm0, %xmm1, %k2 {k3}
+vptestnmq         (%rax), %xmm1, %k2 {k3}
+vptestnmq         (%rax){1to2}, %xmm1, %k2 {k3}
+
+vptestnmq         %ymm0, %ymm1, %k2
+vptestnmq         (%rax), %ymm1, %k2
+vptestnmq         (%rax){1to4}, %ymm1, %k2
+vptestnmq         %ymm0, %ymm1, %k2 {k3}
+vptestnmq         (%rax), %ymm1, %k2 {k3}
+vptestnmq         (%rax){1to4}, %ymm1, %k2 {k3}
+
+vpunpckhdq        %xmm16, %xmm17, %xmm19
+vpunpckhdq        (%rax), %xmm17, %xmm19
+vpunpckhdq        (%rax){1to4}, %xmm17, %xmm19
+vpunpckhdq        %xmm16, %xmm17, %xmm19 {k1}
+vpunpckhdq        (%rax), %xmm17, %xmm19 {k1}
+vpunpckhdq        (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpunpckhdq        %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckhdq        (%rax), %xmm17, %xmm19 {z}{k1}
+vpunpckhdq        (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpunpckhdq        %ymm16, %ymm17, %ymm19
+vpunpckhdq        (%rax), %ymm17, %ymm19
+vpunpckhdq        (%rax){1to8}, %ymm17, %ymm19
+vpunpckhdq        %ymm16, %ymm17, %ymm19 {k1}
+vpunpckhdq        (%rax), %ymm17, %ymm19 {k1}
+vpunpckhdq        (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpunpckhdq        %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckhdq        (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckhdq        (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpunpckldq        %xmm16, %xmm17, %xmm19
+vpunpckldq        (%rax), %xmm17, %xmm19
+vpunpckldq        (%rax){1to4}, %xmm17, %xmm19
+vpunpckldq        %xmm16, %xmm17, %xmm19 {k1}
+vpunpckldq        (%rax), %xmm17, %xmm19 {k1}
+vpunpckldq        (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpunpckldq        %xmm16, %xmm17, %xmm19 {z}{k1}
+vpunpckldq        (%rax), %xmm17, %xmm19 {z}{k1}
+vpunpckldq        (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpunpckldq        %ymm16, %ymm17, %ymm19
+vpunpckldq        (%rax), %ymm17, %ymm19
+vpunpckldq        (%rax){1to8}, %ymm17, %ymm19
+vpunpckldq        %ymm16, %ymm17, %ymm19 {k1}
+vpunpckldq        (%rax), %ymm17, %ymm19 {k1}
+vpunpckldq        (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpunpckldq        %ymm16, %ymm17, %ymm19 {z}{k1}
+vpunpckldq        (%rax), %ymm17, %ymm19 {z}{k1}
+vpunpckldq        (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshuff32x4        $0, %ymm16, %ymm17, %ymm19
+vshuff32x4        $0, (%rax), %ymm17, %ymm19
+vshuff32x4        $0, (%rax){1to8}, %ymm17, %ymm19
+vshuff32x4        $0, %ymm16, %ymm17, %ymm19 {k1}
+vshuff32x4        $0, (%rax), %ymm17, %ymm19 {k1}
+vshuff32x4        $0, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vshuff32x4        $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshuff32x4        $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshuff32x4        $0, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshuff64x2        $0, %ymm16, %ymm17, %ymm19
+vshuff64x2        $0, (%rax), %ymm17, %ymm19
+vshuff64x2        $0, (%rax){1to4}, %ymm17, %ymm19
+vshuff64x2        $0, %ymm16, %ymm17, %ymm19 {k1}
+vshuff64x2        $0, (%rax), %ymm17, %ymm19 {k1}
+vshuff64x2        $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vshuff64x2        $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshuff64x2        $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshuff64x2        $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vshufi32x4        $0, %ymm16, %ymm17, %ymm19
+vshufi32x4        $0, (%rax), %ymm17, %ymm19
+vshufi32x4        $0, (%rax){1to8}, %ymm17, %ymm19
+vshufi32x4        $0, %ymm16, %ymm17, %ymm19 {k1}
+vshufi32x4        $0, (%rax), %ymm17, %ymm19 {k1}
+vshufi32x4        $0, (%rax){1to8}, %ymm17, %ymm19 {k1}
+vshufi32x4        $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshufi32x4        $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshufi32x4        $0, (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vshufi64x2        $0, %ymm16, %ymm17, %ymm19
+vshufi64x2        $0, (%rax), %ymm17, %ymm19
+vshufi64x2        $0, (%rax){1to4}, %ymm17, %ymm19
+vshufi64x2        $0, %ymm16, %ymm17, %ymm19 {k1}
+vshufi64x2        $0, (%rax), %ymm17, %ymm19 {k1}
+vshufi64x2        $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
+vshufi64x2        $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vshufi64x2        $0, (%rax), %ymm17, %ymm19 {z}{k1}
+vshufi64x2        $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vsqrtpd           %xmm16, %xmm19
+vsqrtpd           (%rax), %xmm19
+vsqrtpd           (%rax){1to2}, %xmm19
+vsqrtpd           %xmm16, %xmm19 {k1}
+vsqrtpd           (%rax), %xmm19 {k1}
+vsqrtpd           (%rax){1to2}, %xmm19 {k1}
+vsqrtpd           %xmm16, %xmm19 {z}{k1}
+vsqrtpd           (%rax), %xmm19 {z}{k1}
+vsqrtpd           (%rax){1to2}, %xmm19 {z}{k1}
+
+vsqrtpd           %ymm16, %ymm19
+vsqrtpd           (%rax), %ymm19
+vsqrtpd           (%rax){1to4}, %ymm19
+vsqrtpd           %ymm16, %ymm19 {k1}
+vsqrtpd           (%rax), %ymm19 {k1}
+vsqrtpd           (%rax){1to4}, %ymm19 {k1}
+vsqrtpd           %ymm16, %ymm19 {z}{k1}
+vsqrtpd           (%rax), %ymm19 {z}{k1}
+vsqrtpd           (%rax){1to4}, %ymm19 {z}{k1}
+
+vsqrtps           %xmm16, %xmm19
+vsqrtps           (%rax), %xmm19
+vsqrtps           (%rax){1to4}, %xmm19
+vsqrtps           %xmm16, %xmm19 {k1}
+vsqrtps           (%rax), %xmm19 {k1}
+vsqrtps           (%rax){1to4}, %xmm19 {k1}
+vsqrtps           %xmm16, %xmm19 {z}{k1}
+vsqrtps           (%rax), %xmm19 {z}{k1}
+vsqrtps           (%rax){1to4}, %xmm19 {z}{k1}
+
+vsqrtps           %ymm16, %ymm19
+vsqrtps           (%rax), %ymm19
+vsqrtps           (%rax){1to8}, %ymm19
+vsqrtps           %ymm16, %ymm19 {k1}
+vsqrtps           (%rax), %ymm19 {k1}
+vsqrtps           (%rax){1to8}, %ymm19 {k1}
+vsqrtps           %ymm16, %ymm19 {z}{k1}
+vsqrtps           (%rax), %ymm19 {z}{k1}
+vsqrtps           (%rax){1to8}, %ymm19 {z}{k1}
+
+vsubpd            %xmm16, %xmm17, %xmm19
+vsubpd            (%rax), %xmm17, %xmm19
+vsubpd            (%rax){1to2}, %xmm17, %xmm19
+vsubpd            %xmm16, %xmm17, %xmm19 {k1}
+vsubpd            (%rax), %xmm17, %xmm19 {k1}
+vsubpd            (%rax){1to2}, %xmm17, %xmm19 {k1}
+vsubpd            %xmm16, %xmm17, %xmm19 {z}{k1}
+vsubpd            (%rax), %xmm17, %xmm19 {z}{k1}
+vsubpd            (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vsubpd            %ymm16, %ymm17, %ymm19
+vsubpd            (%rax), %ymm17, %ymm19
+vsubpd            (%rax){1to4}, %ymm17, %ymm19
+vsubpd            %ymm16, %ymm17, %ymm19 {k1}
+vsubpd            (%rax), %ymm17, %ymm19 {k1}
+vsubpd            (%rax){1to4}, %ymm17, %ymm19 {k1}
+vsubpd            %ymm16, %ymm17, %ymm19 {z}{k1}
+vsubpd            (%rax), %ymm17, %ymm19 {z}{k1}
+vsubpd            (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vsubps            %xmm16, %xmm17, %xmm19
+vsubps            (%rax), %xmm17, %xmm19
+vsubps            (%rax){1to4}, %xmm17, %xmm19
+vsubps            %xmm16, %xmm17, %xmm19 {k1}
+vsubps            (%rax), %xmm17, %xmm19 {k1}
+vsubps            (%rax){1to4}, %xmm17, %xmm19 {k1}
+vsubps            %xmm16, %xmm17, %xmm19 {z}{k1}
+vsubps            (%rax), %xmm17, %xmm19 {z}{k1}
+vsubps            (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vsubps            %ymm16, %ymm17, %ymm19
+vsubps            (%rax), %ymm17, %ymm19
+vsubps            (%rax){1to8}, %ymm17, %ymm19
+vsubps            %ymm16, %ymm17, %ymm19 {k1}
+vsubps            (%rax), %ymm17, %ymm19 {k1}
+vsubps            (%rax){1to8}, %ymm17, %ymm19 {k1}
+vsubps            %ymm16, %ymm17, %ymm19 {z}{k1}
+vsubps            (%rax), %ymm17, %ymm19 {z}{k1}
+vsubps            (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vunpckhpd         %xmm16, %xmm17, %xmm19
+vunpckhpd         (%rax), %xmm17, %xmm19
+vunpckhpd         (%rax){1to2}, %xmm17, %xmm19
+vunpckhpd         %xmm16, %xmm17, %xmm19 {k1}
+vunpckhpd         (%rax), %xmm17, %xmm19 {k1}
+vunpckhpd         (%rax){1to2}, %xmm17, %xmm19 {k1}
+vunpckhpd         %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpckhpd         (%rax), %xmm17, %xmm19 {z}{k1}
+vunpckhpd         (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vunpckhpd         %ymm16, %ymm17, %ymm19
+vunpckhpd         (%rax), %ymm17, %ymm19
+vunpckhpd         (%rax){1to4}, %ymm17, %ymm19
+vunpckhpd         %ymm16, %ymm17, %ymm19 {k1}
+vunpckhpd         (%rax), %ymm17, %ymm19 {k1}
+vunpckhpd         (%rax){1to4}, %ymm17, %ymm19 {k1}
+vunpckhpd         %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpckhpd         (%rax), %ymm17, %ymm19 {z}{k1}
+vunpckhpd         (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vunpckhps         %xmm16, %xmm17, %xmm19
+vunpckhps         (%rax), %xmm17, %xmm19
+vunpckhps         (%rax){1to4}, %xmm17, %xmm19
+vunpckhps         %xmm16, %xmm17, %xmm19 {k1}
+vunpckhps         (%rax), %xmm17, %xmm19 {k1}
+vunpckhps         (%rax){1to4}, %xmm17, %xmm19 {k1}
+vunpckhps         %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpckhps         (%rax), %xmm17, %xmm19 {z}{k1}
+vunpckhps         (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vunpckhps         %ymm16, %ymm17, %ymm19
+vunpckhps         (%rax), %ymm17, %ymm19
+vunpckhps         (%rax){1to8}, %ymm17, %ymm19
+vunpckhps         %ymm16, %ymm17, %ymm19 {k1}
+vunpckhps         (%rax), %ymm17, %ymm19 {k1}
+vunpckhps         (%rax){1to8}, %ymm17, %ymm19 {k1}
+vunpckhps         %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpckhps         (%rax), %ymm17, %ymm19 {z}{k1}
+vunpckhps         (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vunpcklpd         %xmm16, %xmm17, %xmm19
+vunpcklpd         (%rax), %xmm17, %xmm19
+vunpcklpd         (%rax){1to2}, %xmm17, %xmm19
+vunpcklpd         %xmm16, %xmm17, %xmm19 {k1}
+vunpcklpd         (%rax), %xmm17, %xmm19 {k1}
+vunpcklpd         (%rax){1to2}, %xmm17, %xmm19 {k1}
+vunpcklpd         %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpcklpd         (%rax), %xmm17, %xmm19 {z}{k1}
+vunpcklpd         (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
+
+vunpcklpd         %ymm16, %ymm17, %ymm19
+vunpcklpd         (%rax), %ymm17, %ymm19
+vunpcklpd         (%rax){1to4}, %ymm17, %ymm19
+vunpcklpd         %ymm16, %ymm17, %ymm19 {k1}
+vunpcklpd         (%rax), %ymm17, %ymm19 {k1}
+vunpcklpd         (%rax){1to4}, %ymm17, %ymm19 {k1}
+vunpcklpd         %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpcklpd         (%rax), %ymm17, %ymm19 {z}{k1}
+vunpcklpd         (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
+
+vunpcklps         %xmm16, %xmm17, %xmm19
+vunpcklps         (%rax), %xmm17, %xmm19
+vunpcklps         (%rax){1to4}, %xmm17, %xmm19
+vunpcklps         %xmm16, %xmm17, %xmm19 {k1}
+vunpcklps         (%rax), %xmm17, %xmm19 {k1}
+vunpcklps         (%rax){1to4}, %xmm17, %xmm19 {k1}
+vunpcklps         %xmm16, %xmm17, %xmm19 {z}{k1}
+vunpcklps         (%rax), %xmm17, %xmm19 {z}{k1}
+vunpcklps         (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vunpcklps         %ymm16, %ymm17, %ymm19
+vunpcklps         (%rax), %ymm17, %ymm19
+vunpcklps         (%rax){1to8}, %ymm17, %ymm19
+vunpcklps         %ymm16, %ymm17, %ymm19 {k1}
+vunpcklps         (%rax), %ymm17, %ymm19 {k1}
+vunpcklps         (%rax){1to8}, %ymm17, %ymm19 {k1}
+vunpcklps         %ymm16, %ymm17, %ymm19 {z}{k1}
+vunpcklps         (%rax), %ymm17, %ymm19 {z}{k1}
+vunpcklps         (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        vaddpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vaddpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vaddpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vaddpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vaddpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vaddpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vaddps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vaddps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vaddps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vaddps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vaddps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vaddps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        valignd        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        valignd        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        valignd        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        valignd        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        valignd        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        valignd        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignd        $1, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        valignq        $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        valignq        $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        valignq        $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        valignq        $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        valignq        $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        valignq        $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   valignq        $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x4        (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x4        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcastf32x4        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x4        (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x4        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vbroadcasti32x4        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm16, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastsd   (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastsd   (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastsd   %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastsd   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %xmm19
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vbroadcastss   %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vbroadcastss   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vcmpeqpd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqpd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqpd       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vcmpeqpd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqpd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqpd       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      2     1.00                        vcmpeqpd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqpd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqpd       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqpd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqpd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqpd       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vcmpeqps       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqps       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqps       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.50                        vcmpeqps       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqps       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vcmpeqps       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      2     1.00                        vcmpeqps       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqps       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqps       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      2     1.00                        vcmpeqps       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqps       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      9     1.00    *                   vcmpeqps       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2pd      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2pd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2pd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2pd      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2pd      %xmm16, %ymm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax), %ymm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2pd      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtdq2pd      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtdq2pd      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %ymm16, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtdq2ps      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtdq2ps      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2dq      %ymm16, %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dqy     (%rax), %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dq      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2dq      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dqy     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dq      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2dq      %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dqy     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2dq      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2dq      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dqx     (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2dq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dqx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2dq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dqx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2dq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     1.00                        vcvtpd2ps      %ymm16, %xmm19
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2psy     (%rax), %xmm19
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2ps      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  2      6     1.00                        vcvtpd2ps      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2psy     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2ps      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  2      6     1.00                        vcvtpd2ps      %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2psy     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      13    1.00    *                   vcvtpd2ps      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtpd2ps      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2psx     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2ps      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtpd2ps      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2psx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2ps      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtpd2ps      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2psx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtpd2ps      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2udq     %ymm16, %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2udqy    (%rax), %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2udq     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2udq     %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2udqy    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2udq     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvtpd2udq     %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2udqy    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvtpd2udq     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2udq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2udqx    (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2udq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2udq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2udqx    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2udq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvtpd2udq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2udqx    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvtpd2udq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2dq      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtps2dq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2dq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2dq      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2dq      %ymm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvtps2dq      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2dq      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2dq      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2pd      %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtps2pd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2pd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2pd      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2pd      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax), %ymm19
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax){1to4}, %ymm19
+# CHECK-NEXT:  2      4     1.00                        vcvtps2pd      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  2      4     1.00                        vcvtps2pd      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.00    *                   vcvtps2pd      (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2udq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2udq     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2udq     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvtps2udq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2udq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2udq     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvtps2udq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2udq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvtps2udq     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2udq     %ymm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2udq     (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2udq     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvtps2udq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2udq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2udq     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvtps2udq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2udq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvtps2udq     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2dq     %ymm16, %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dqy    (%rax), %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dq     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2dq     %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dqy    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dq     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2dq     %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dqy    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2dq     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2dq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dqx    (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2dq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dqx    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2dq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dqx    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2dq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2dq     %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvttps2dq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2dq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2dq     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2dq     %ymm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvttps2dq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2dq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2dq     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2udq    %ymm16, %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2udqy   (%rax), %xmm19
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2udq    (%rax){1to4}, %xmm19
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2udq    %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2udqy   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2udq    (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  2      3     1.00                        vcvttpd2udq    %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2udqy   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  2      10    1.00    *                   vcvttpd2udq    (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2udq    %xmm16, %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2udqx   (%rax), %xmm19
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2udq    (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2udq    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2udqx   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2udq    (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     1.00                        vcvttpd2udq    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2udqx   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vcvttpd2udq    (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2udq    %xmm16, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2udq    (%rax), %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2udq    (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vcvttps2udq    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2udq    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2udq    (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vcvttps2udq    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2udq    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vcvttps2udq    (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2udq    %ymm16, %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2udq    (%rax), %ymm19
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2udq    (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      4     0.50                        vcvttps2udq    %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2udq    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2udq    (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     0.50                        vcvttps2udq    %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2udq    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    0.50    *                   vcvttps2udq    (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      13    5.00                        vdivpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      13    5.00                        vdivpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      13    5.00                        vdivpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      13    5.00                        vdivpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      13    5.00                        vdivpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      13    5.00                        vdivpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      20    5.00    *                   vdivpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    3.00                        vdivps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      11    3.00                        vdivps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      11    3.00                        vdivps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      11    3.00                        vdivps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      11    3.00                        vdivps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    3.00                        vdivps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      18    3.00    *                   vdivps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdpd     (%rax,%xmm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdps     (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqpd     (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqps     (%rax,%ymm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdpd     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherdps     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqpd     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vgatherqps     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmaxpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vmaxps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vmaxps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vmaxps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vmaxps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vmaxps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmaxps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vminpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     1.00                        vminpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vminpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vminpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vminpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vminpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vminps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vminps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vminps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vminps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vminps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vminps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      9     1.00    *                   vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovapd        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovapd        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovapd        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovaps        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovaps        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovaps        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa32      %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa32      %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa32      %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa32      %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa32      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa32      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa64      %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa64      %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa64      %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqa64      %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqa64      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqa64      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu32      %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu32      %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu32      %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu32      %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu32      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu32      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu64      %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu64      %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu64      %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovdqu64      %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovdqu64      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovdqu64      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vmovddup       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovddup       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vmovshdup      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovshdup      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %ymm19
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vmovsldup      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovsldup      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovupd        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovupd        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovupd        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovups        %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %xmm19
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %xmm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovups        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovups        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      0     0.17                        vmovups        %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %ymm16, (%rax)
+# CHECK-NEXT:  1      0     0.17                        vmovups        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00           *            vmovups        %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  1      0     0.17                        vmovups        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vmovups        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vmulpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vmulpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vmulpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vmulpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vmulpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vmulpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vmulps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vmulps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vmulps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vmulps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vmulps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vmulps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpaddd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpaddq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpaddq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpaddq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastd   %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastd   (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastd   %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastd   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastd   %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastd   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastd   (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastd   (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastd   %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastd   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastq   %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastq   (%rax), %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastq   %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastq   (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpbroadcastq   %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpbroadcastq   (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastq   (%rax), %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastq   (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpbroadcastq   %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpbroadcastq   (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqd       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtd       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtq       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtq       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtq       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpgtq       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpgtq       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpeqq       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpeqq       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequd      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequd      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequd      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequd      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequd      (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequq      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequq      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vpcmpequq      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      1     0.25                        vpcmpequq      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vpcmpequq      (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     1.00                        vpermd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax), %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpermilpd      $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilpd      $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     0.67                        vpermilpd      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilpd      (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax), %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpermilps      $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpermilps      $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     0.67                        vpermilps      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpermilps      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpermpd        $0, %ymm16, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax), %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpermpd        $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpermpd        $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vpermpd        $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermpd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermpd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermpd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermpd        (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermps        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermps        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermps        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      14    1.00    *                   vpermps        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     1.00                        vpermq $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax), %ymm19
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      1     1.00                        vpermq $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     1.00                        vpermq $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     1.00    *                   vpermq $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     1.00                        vpermq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     1.00                        vpermq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     1.00                        vpermq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  2      8     0.50    *                   vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdq     (%rax,%xmm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdd     (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqq     (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqd     (%rax,%ymm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdq     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherdd     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqq     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      5     0.33    *                   vpgatherqd     (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbd      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbd      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbq      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxbq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxbq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxbq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxdq      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxdq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxdq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxdq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxdq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwd      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwd      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwq      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovsxwq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovsxwq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovsxwq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbd      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbd      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbq      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxbq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxbq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxbq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxdq      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxdq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxdq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxdq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxdq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwd      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwd      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwd      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwd      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwd      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwq      (%rax), %xmm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpmovzxwq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm16, %ymm19
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %ymm19
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpmovzxwq      %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      11    1.50    *                   vpmovzxwq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vpmulld        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpmulld        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $0, %xmm16, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax), %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $0, %ymm16, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax), %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpshufd        $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpshufd        $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubq %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubq %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubq %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpsubq %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubq %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpsubq %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vptestmd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestmd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestmd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestmd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmd       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vptestmq       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestmq       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestmq       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestmq       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestmq       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vptestnmd      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestnmd      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestnmd      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestnmd      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmd      (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.25                        vptestnmq      %xmm0, %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax), %xmm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  1      3     1.50                        vptestnmq      %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  1      4     2.00                        vptestnmq      %ymm0, %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax), %ymm1, %k2
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  1      4     2.00                        vptestnmq      %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      8     0.50    *                   vptestnmq      (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckhdq     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckhdq     (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpunpckldq     %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpunpckldq     (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshuff32x4     $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vshuff32x4     $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshuff32x4     $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff32x4     $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshuff64x2     $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vshuff64x2     $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshuff64x2     $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshuff64x2     $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshufi32x4     $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vshufi32x4     $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshufi32x4     $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi32x4     $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vshufi64x2     $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      2     1.00                        vshufi64x2     $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vshufi64x2     $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  3      9     1.00    *                   vshufi64x2     $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %xmm16, %xmm19
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %xmm19
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax){1to2}, %xmm19
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %ymm16, %ymm19
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %ymm19
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax){1to4}, %ymm19
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  1      21    9.00                        vsqrtpd        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      28    9.00    *                   vsqrtpd        (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %xmm16, %xmm19
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %xmm19
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax){1to4}, %xmm19
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %ymm16, %ymm19
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %ymm19
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax){1to8}, %ymm19
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  1      15    5.00                        vsqrtps        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      22    5.00    *                   vsqrtps        (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vsubpd %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vsubpd %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vsubpd %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vsubpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vsubpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vsubpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vsubps %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      3     0.50                        vsubps %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vsubps %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      3     0.50                        vsubps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      3     0.50                        vsubps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      3     0.50                        vsubps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vsubps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpckhpd      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhpd      (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpckhps      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpckhps      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpcklpd      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklpd      (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vunpcklps      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vunpcklps      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 5.33   5.33   5.33    -      -      -      -      -     175.00 945.00 531.50 261.50 442.50 442.50 32.00  300.33 300.33 300.33 289.67 289.67 289.67 16.00  16.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vaddps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaddps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignd $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignd $1, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     valignq $1, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     valignq $1, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x4 (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastf32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x4 (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x4 (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcasti32x4 (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastsd    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastsd    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vbroadcastss    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vbroadcastss    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqpd        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqpd        (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vcmpeqps        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcmpeqps        (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2pd       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2pd       (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtdq2ps       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtdq2ps       (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqy      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqy      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqy      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqx      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqx      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2dq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dqx      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2dq       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psy      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psy      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psy      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psx      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psx      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2ps       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2psx      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2ps       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udqy     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udqy     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udqy     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udqx     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udqx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtpd2udq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udqx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtpd2udq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2dq       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2dq       (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2pd       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2pd       (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtps2udq      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtps2udq      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqy     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqy     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqy     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqx     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqx     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2dq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dqx     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2dq      (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2dq      %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2dq      (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %ymm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udqy    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %ymm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udqy    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %ymm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udqy    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udqx    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udqx    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvttpd2udq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udqx    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttpd2udq     (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvttps2udq     %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvttps2udq     (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vdivps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vdivps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdpd      (%rax,%xmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdps      (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqpd      (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqps      (%rax,%ymm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdpd      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherdps      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqpd      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgatherqps      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vmaxps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmaxps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vminps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vminps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovapd %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovapd %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovapd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovaps %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovaps %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovaps (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa32       %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa32       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa32       %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa32       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa32       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa32       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa64       %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa64       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa64       %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqa64       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqa64       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqa64       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu32       %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu32       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu32       %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu32       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu32       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu32       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu64       %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu64       %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu64       %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovdqu64       %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovdqu64       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovdqu64       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vmovddup        %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovddup        (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovshdup       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovshdup       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vmovsldup       %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovsldup       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovupd %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovupd %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovupd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %xmm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %xmm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %ymm16, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vmovups %ymm16, (%rax) {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vmovups %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmovups (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vmulps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vmulps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddd  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpaddq  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpaddq  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastd    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastd    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpbroadcastq    %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpbroadcastq    (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqd        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqd        (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtd        (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpgtq        (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpeqq        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpeqq        (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequd       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequq       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequq       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequq       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpcmpequq       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpcmpequq       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermd  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilpd       $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilpd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilpd       (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpermilps       $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -     vpermilps       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermilps       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermpd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermpd %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermpd %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermpd %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermps %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermps %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermps %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpermq  $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  $0, (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermq  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermq  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpermq  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpermq  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdq      (%rax,%xmm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdd      (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqq      (%rax,%ymm1,2), %ymm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqd      (%rax,%ymm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdq      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherdd      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqq      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpgatherqd      (%rax,%xmm1,2), %xmm2 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbd       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxbq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxbq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxdq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxdq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwd       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovsxwq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovsxwq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbd       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxbq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxbq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxdq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxdq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwd       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwd       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpmovzxwq       %xmm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmovzxwq       (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpshufd $0, %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubd  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpsubq  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestmd        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmd        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmd        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmd        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmd        (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestmq        %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmq        %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmq        %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestmq        %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestmq        (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestnmd       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax){1to4}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmd       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax){1to4}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmd       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax){1to8}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmd       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmd       (%rax){1to8}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vptestnmq       %xmm0, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax), %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax){1to2}, %xmm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmq       %xmm0, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax), %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax){1to2}, %xmm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmq       %ymm0, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax), %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax){1to4}, %ymm1, %k2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vptestnmq       %ymm0, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax), %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vptestnmq       (%rax){1to4}, %ymm1, %k2 {%k3}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckhdq      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckhdq      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vpunpckldq      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpunpckldq      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff32x4      $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff32x4      $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff32x4      $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff32x4      $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff64x2      $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff64x2      $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshuff64x2      $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshuff64x2      $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi32x4      $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi32x4      $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi32x4      $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi32x4      $0, (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi64x2      $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi64x2      $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vshufi64x2      $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vshufi64x2      $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to2}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to2}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to2}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to4}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to4}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtpd %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtpd (%rax){1to4}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %xmm16, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to4}, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %xmm16, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to4}, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %xmm16, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to4}, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %ymm16, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to8}, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %ymm16, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to8}, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vsqrtps %ymm16, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax), %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsqrtps (%rax){1to8}, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubpd  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubpd  (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vsubps  %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vsubps  (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhpd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhpd       (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpckhps       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpckhps       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to2}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to2}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to4}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to4}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklpd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklpd       (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     vunpcklps       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vunpcklps       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vnni.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vnni.s
new file mode 100644 (file)
index 0000000..ecb64c5
--- /dev/null
@@ -0,0 +1,156 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpdpbusd    %zmm16, %zmm17, %zmm19
+vpdpbusd    (%rax), %zmm17, %zmm19
+vpdpbusd    (%rax){1to16}, %zmm17, %zmm19
+vpdpbusd    %zmm16, %zmm17, %zmm19 {k1}
+vpdpbusd    (%rax), %zmm17, %zmm19 {k1}
+vpdpbusd    (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpdpbusd    %zmm16, %zmm17, %zmm19 {z}{k1}
+vpdpbusd    (%rax), %zmm17, %zmm19 {z}{k1}
+vpdpbusd    (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpdpbusds   %zmm16, %zmm17, %zmm19
+vpdpbusds   (%rax), %zmm17, %zmm19
+vpdpbusds   (%rax){1to16}, %zmm17, %zmm19
+vpdpbusds   %zmm16, %zmm17, %zmm19 {k1}
+vpdpbusds   (%rax), %zmm17, %zmm19 {k1}
+vpdpbusds   (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpdpbusds   %zmm16, %zmm17, %zmm19 {z}{k1}
+vpdpbusds   (%rax), %zmm17, %zmm19 {z}{k1}
+vpdpbusds   (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpdpwssd    %zmm16, %zmm17, %zmm19
+vpdpwssd    (%rax), %zmm17, %zmm19
+vpdpwssd    (%rax){1to16}, %zmm17, %zmm19
+vpdpwssd    %zmm16, %zmm17, %zmm19 {k1}
+vpdpwssd    (%rax), %zmm17, %zmm19 {k1}
+vpdpwssd    (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpdpwssd    %zmm16, %zmm17, %zmm19 {z}{k1}
+vpdpwssd    (%rax), %zmm17, %zmm19 {z}{k1}
+vpdpwssd    (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+vpdpwssds   %zmm16, %zmm17, %zmm19
+vpdpwssds   (%rax), %zmm17, %zmm19
+vpdpwssds   (%rax){1to16}, %zmm17, %zmm19
+vpdpwssds   %zmm16, %zmm17, %zmm19 {k1}
+vpdpwssds   (%rax), %zmm17, %zmm19 {k1}
+vpdpwssds   (%rax){1to16}, %zmm17, %zmm19 {k1}
+vpdpwssds   %zmm16, %zmm17, %zmm19 {z}{k1}
+vpdpwssds   (%rax), %zmm17, %zmm19 {z}{k1}
+vpdpwssds   (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusd       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusd       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusd       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusds      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusds      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusds      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusds      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusds      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpbusds      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssd       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssd       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssd       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssd       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssd       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssd       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssds      (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssds      (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssds      (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssds      (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssds      (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    1.00    *                   vpdpwssds      (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     48.00  24.00   -     24.00  12.00  12.00   -     8.00   8.00   8.00   8.00   8.00   8.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to16}, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to16}, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -     1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vnnivl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vnnivl.s
new file mode 100644 (file)
index 0000000..f101bc1
--- /dev/null
@@ -0,0 +1,268 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpdpbusd    %xmm16, %xmm17, %xmm19
+vpdpbusd    (%rax), %xmm17, %xmm19
+vpdpbusd    (%rax){1to4}, %xmm17, %xmm19
+vpdpbusd    %xmm16, %xmm17, %xmm19 {k1}
+vpdpbusd    (%rax), %xmm17, %xmm19 {k1}
+vpdpbusd    (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpdpbusd    %xmm16, %xmm17, %xmm19 {z}{k1}
+vpdpbusd    (%rax), %xmm17, %xmm19 {z}{k1}
+vpdpbusd    (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpdpbusd    %ymm16, %ymm17, %ymm19
+vpdpbusd    (%rax), %ymm17, %ymm19
+vpdpbusd    (%rax){1to8}, %ymm17, %ymm19
+vpdpbusd    %ymm16, %ymm17, %ymm19 {k1}
+vpdpbusd    (%rax), %ymm17, %ymm19 {k1}
+vpdpbusd    (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpdpbusd    %ymm16, %ymm17, %ymm19 {z}{k1}
+vpdpbusd    (%rax), %ymm17, %ymm19 {z}{k1}
+vpdpbusd    (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpdpbusds   %xmm16, %xmm17, %xmm19
+vpdpbusds   (%rax), %xmm17, %xmm19
+vpdpbusds   (%rax){1to4}, %xmm17, %xmm19
+vpdpbusds   %xmm16, %xmm17, %xmm19 {k1}
+vpdpbusds   (%rax), %xmm17, %xmm19 {k1}
+vpdpbusds   (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpdpbusds   %xmm16, %xmm17, %xmm19 {z}{k1}
+vpdpbusds   (%rax), %xmm17, %xmm19 {z}{k1}
+vpdpbusds   (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpdpbusds   %ymm16, %ymm17, %ymm19
+vpdpbusds   (%rax), %ymm17, %ymm19
+vpdpbusds   (%rax){1to8}, %ymm17, %ymm19
+vpdpbusds   %ymm16, %ymm17, %ymm19 {k1}
+vpdpbusds   (%rax), %ymm17, %ymm19 {k1}
+vpdpbusds   (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpdpbusds   %ymm16, %ymm17, %ymm19 {z}{k1}
+vpdpbusds   (%rax), %ymm17, %ymm19 {z}{k1}
+vpdpbusds   (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpdpwssd    %xmm16, %xmm17, %xmm19
+vpdpwssd    (%rax), %xmm17, %xmm19
+vpdpwssd    (%rax){1to4}, %xmm17, %xmm19
+vpdpwssd    %xmm16, %xmm17, %xmm19 {k1}
+vpdpwssd    (%rax), %xmm17, %xmm19 {k1}
+vpdpwssd    (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpdpwssd    %xmm16, %xmm17, %xmm19 {z}{k1}
+vpdpwssd    (%rax), %xmm17, %xmm19 {z}{k1}
+vpdpwssd    (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpdpwssd    %ymm16, %ymm17, %ymm19
+vpdpwssd    (%rax), %ymm17, %ymm19
+vpdpwssd    (%rax){1to8}, %ymm17, %ymm19
+vpdpwssd    %ymm16, %ymm17, %ymm19 {k1}
+vpdpwssd    (%rax), %ymm17, %ymm19 {k1}
+vpdpwssd    (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpdpwssd    %ymm16, %ymm17, %ymm19 {z}{k1}
+vpdpwssd    (%rax), %ymm17, %ymm19 {z}{k1}
+vpdpwssd    (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+vpdpwssds   %xmm16, %xmm17, %xmm19
+vpdpwssds   (%rax), %xmm17, %xmm19
+vpdpwssds   (%rax){1to4}, %xmm17, %xmm19
+vpdpwssds   %xmm16, %xmm17, %xmm19 {k1}
+vpdpwssds   (%rax), %xmm17, %xmm19 {k1}
+vpdpwssds   (%rax){1to4}, %xmm17, %xmm19 {k1}
+vpdpwssds   %xmm16, %xmm17, %xmm19 {z}{k1}
+vpdpwssds   (%rax), %xmm17, %xmm19 {z}{k1}
+vpdpwssds   (%rax){1to4}, %xmm17, %xmm19 {z}{k1}
+
+vpdpwssds   %ymm16, %ymm17, %ymm19
+vpdpwssds   (%rax), %ymm17, %ymm19
+vpdpwssds   (%rax){1to8}, %ymm17, %ymm19
+vpdpwssds   %ymm16, %ymm17, %ymm19 {k1}
+vpdpwssds   (%rax), %ymm17, %ymm19 {k1}
+vpdpwssds   (%rax){1to8}, %ymm17, %ymm19 {k1}
+vpdpwssds   %ymm16, %ymm17, %ymm19 {z}{k1}
+vpdpwssds   (%rax), %ymm17, %ymm19 {z}{k1}
+vpdpwssds   (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     72.00  48.00   -     24.00  24.00  24.00   -     16.00  16.00  16.00  16.00  16.00  16.00   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to4}, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to4}, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to8}, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to8}, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vp2intersect.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vp2intersect.s
new file mode 100644 (file)
index 0000000..3230ae9
--- /dev/null
@@ -0,0 +1,53 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=tigerlake -instruction-tables < %s | FileCheck %s
+
+vp2intersectd    %zmm16, %zmm19, %k0
+vp2intersectd    (%rax), %zmm19, %k0
+vp2intersectd    (%rax){1to16}, %zmm19, %k0
+
+vp2intersectq    %zmm16, %zmm19, %k0
+vp2intersectq    (%rax), %zmm19, %k0
+vp2intersectq    (%rax){1to8}, %zmm19, %k0
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     1.00                        vp2intersectd  %zmm16, %zmm19, %k0
+# CHECK-NEXT:  2      8     1.00    *                   vp2intersectd  (%rax), %zmm19, %k0
+# CHECK-NEXT:  2      8     1.00    *                   vp2intersectd  (%rax){1to16}, %zmm19, %k0
+# CHECK-NEXT:  1      1     1.00                        vp2intersectq  %zmm16, %zmm19, %k0
+# CHECK-NEXT:  2      8     1.00    *                   vp2intersectq  (%rax), %zmm19, %k0
+# CHECK-NEXT:  2      8     1.00    *                   vp2intersectq  (%rax){1to8}, %zmm19, %k0
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - ICXDivider
+# CHECK-NEXT: [1]   - ICXFPDivider
+# CHECK-NEXT: [2]   - ICXPort0
+# CHECK-NEXT: [3]   - ICXPort1
+# CHECK-NEXT: [4]   - ICXPort2
+# CHECK-NEXT: [5]   - ICXPort3
+# CHECK-NEXT: [6]   - ICXPort4
+# CHECK-NEXT: [7]   - ICXPort5
+# CHECK-NEXT: [8]   - ICXPort6
+# CHECK-NEXT: [9]   - ICXPort7
+# CHECK-NEXT: [10]  - ICXPort8
+# CHECK-NEXT: [11]  - ICXPort9
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
+# CHECK-NEXT:  -      -     6.00    -     2.00   2.00    -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -      -      -     vp2intersectd        %zmm16, %zmm19, %k0
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -      -      -     vp2intersectd        (%rax), %zmm19, %k0
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -      -      -     vp2intersectd        (%rax){1to16}, %zmm19, %k0
+# CHECK-NEXT:  -      -     1.00    -      -      -      -      -      -      -      -      -     vp2intersectq        %zmm16, %zmm19, %k0
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -      -      -     vp2intersectq        (%rax), %zmm19, %k0
+# CHECK-NEXT:  -      -     1.00    -     0.50   0.50    -      -      -      -      -      -     vp2intersectq        (%rax){1to8}, %zmm19, %k0
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vp2intersectvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vp2intersectvl.s
new file mode 100644 (file)
index 0000000..b7e81f5
--- /dev/null
@@ -0,0 +1,73 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=tigerlake -instruction-tables < %s | FileCheck %s
+
+vp2intersectd    %xmm16, %xmm19, %k0
+vp2intersectd    (%rax), %xmm19, %k0
+vp2intersectd    (%rax){1to4}, %xmm19, %k0
+
+vp2intersectd    %ymm16, %ymm19, %k0
+vp2intersectd    (%rax), %ymm19, %k0
+vp2intersectd    (%rax){1to8}, %ymm19, %k0
+
+vp2intersectq    %xmm16, %xmm19, %k0
+vp2intersectq    (%rax), %xmm19, %k0
+vp2intersectq    (%rax){1to2}, %xmm19, %k0
+
+vp2intersectq    %ymm16, %ymm19, %k0
+vp2intersectq    (%rax), %ymm19, %k0
+vp2intersectq    (%rax){1to4}, %ymm19, %k0
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        vp2intersectd  %xmm16, %xmm19, %k0
+# CHECK-NEXT:  2      7     0.50    *                   vp2intersectd  (%rax), %xmm19, %k0
+# CHECK-NEXT:  2      7     0.50    *                   vp2intersectd  (%rax){1to4}, %xmm19, %k0
+# CHECK-NEXT:  1      1     0.50                        vp2intersectd  %ymm16, %ymm19, %k0
+# CHECK-NEXT:  2      8     0.50    *                   vp2intersectd  (%rax), %ymm19, %k0
+# CHECK-NEXT:  2      8     0.50    *                   vp2intersectd  (%rax){1to8}, %ymm19, %k0
+# CHECK-NEXT:  1      1     0.50                        vp2intersectq  %xmm16, %xmm19, %k0
+# CHECK-NEXT:  2      7     0.50    *                   vp2intersectq  (%rax), %xmm19, %k0
+# CHECK-NEXT:  2      7     0.50    *                   vp2intersectq  (%rax){1to2}, %xmm19, %k0
+# CHECK-NEXT:  1      1     0.50                        vp2intersectq  %ymm16, %ymm19, %k0
+# CHECK-NEXT:  2      8     0.50    *                   vp2intersectq  (%rax), %ymm19, %k0
+# CHECK-NEXT:  2      8     0.50    *                   vp2intersectq  (%rax){1to4}, %ymm19, %k0
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - ICXDivider
+# CHECK-NEXT: [1]   - ICXFPDivider
+# CHECK-NEXT: [2]   - ICXPort0
+# CHECK-NEXT: [3]   - ICXPort1
+# CHECK-NEXT: [4]   - ICXPort2
+# CHECK-NEXT: [5]   - ICXPort3
+# CHECK-NEXT: [6]   - ICXPort4
+# CHECK-NEXT: [7]   - ICXPort5
+# CHECK-NEXT: [8]   - ICXPort6
+# CHECK-NEXT: [9]   - ICXPort7
+# CHECK-NEXT: [10]  - ICXPort8
+# CHECK-NEXT: [11]  - ICXPort9
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
+# CHECK-NEXT:  -      -     6.00   6.00   4.00   4.00    -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vp2intersectd        %xmm16, %xmm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectd        (%rax), %xmm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectd        (%rax){1to4}, %xmm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vp2intersectd        %ymm16, %ymm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectd        (%rax), %ymm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectd        (%rax){1to8}, %ymm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vp2intersectq        %xmm16, %xmm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectq        (%rax), %xmm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectq        (%rax){1to2}, %xmm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vp2intersectq        %ymm16, %ymm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectq        (%rax), %ymm19, %k0
+# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vp2intersectq        (%rax){1to4}, %ymm19, %k0
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpclmulqdq.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpclmulqdq.s
new file mode 100644 (file)
index 0000000..87ba060
--- /dev/null
@@ -0,0 +1,51 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpclmulqdq    $11, %zmm16, %zmm17, %zmm19
+vpclmulqdq    $11, (%rax), %zmm17, %zmm19
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  4      4     2.00                        vpclmulqdq     $11, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  4      11    2.00    *                   vpclmulqdq     $11, (%rax), %zmm17, %zmm19
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpclmulqdq      $11, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpclmulqdq      $11, (%rax), %zmm17, %zmm19
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpclmulqdqvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpclmulqdqvl.s
new file mode 100644 (file)
index 0000000..3c80c56
--- /dev/null
@@ -0,0 +1,58 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpclmulqdq    $11, %xmm16, %xmm17, %xmm19
+vpclmulqdq    $11, (%rax), %xmm17, %xmm19
+
+vpclmulqdq    $11, %ymm16, %ymm17, %ymm19
+vpclmulqdq    $11, (%rax), %ymm17, %ymm19
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  4      4     2.00                        vpclmulqdq     $11, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  4      11    2.00    *                   vpclmulqdq     $11, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  4      4     2.00                        vpclmulqdq     $11, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  4      11    2.00    *                   vpclmulqdq     $11, (%rax), %ymm17, %ymm19
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     8.00   8.00    -      -     1.00   1.00    -     0.67   0.67   0.67   0.67   0.67   0.67    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpclmulqdq      $11, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpclmulqdq      $11, (%rax), %xmm17, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpclmulqdq      $11, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpclmulqdq      $11, (%rax), %ymm17, %ymm19
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpopcntdq.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpopcntdq.s
new file mode 100644 (file)
index 0000000..43b5165
--- /dev/null
@@ -0,0 +1,104 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpopcntd    %zmm1, %zmm0
+vpopcntd    (%rdi), %zmm0
+vpopcntd    (%rdi){1to16}, %zmm0
+
+vpopcntd    %zmm1, %zmm0 {%k1}
+vpopcntd    (%rdi), %zmm0 {%k1}
+vpopcntd    (%rdi){1to16}, %zmm0 {%k1}
+
+vpopcntd    %zmm1, %zmm0 {%k1} {z}
+vpopcntd    (%rdi), %zmm0 {%k1} {z}
+vpopcntd    (%rdi){1to16}, %zmm0 {%k1} {z}
+
+vpopcntq    %zmm1, %zmm0
+vpopcntq    (%rdi), %zmm0
+vpopcntq    (%rdi){1to8}, %zmm0
+
+vpopcntq    %zmm1, %zmm0 {%k1}
+vpopcntq    (%rdi), %zmm0 {%k1}
+vpopcntq    (%rdi){1to8}, %zmm0 {%k1}
+
+vpopcntq    %zmm1, %zmm0 {%k1} {z}
+vpopcntq    (%rdi), %zmm0 {%k1} {z}
+vpopcntq    (%rdi){1to8}, %zmm0 {%k1} {z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        vpopcntd       %zmm1, %zmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %zmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to16}, %zmm0
+# CHECK-NEXT:  1      1     0.50                        vpopcntd       %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to16}, %zmm0 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpopcntd       %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to16}, %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      1     0.50                        vpopcntq       %zmm1, %zmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %zmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to8}, %zmm0
+# CHECK-NEXT:  1      1     0.50                        vpopcntq       %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to8}, %zmm0 {%k1}
+# CHECK-NEXT:  1      1     0.50                        vpopcntq       %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to8}, %zmm0 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     9.00   9.00   9.00   9.00   6.00   6.00    -     4.00   4.00   4.00   4.00   4.00   4.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %zmm1, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to16}, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to16}, %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to16}, %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %zmm1, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to8}, %zmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %zmm1, %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to8}, %zmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %zmm1, %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %zmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to8}, %zmm0 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpopcntdqvl.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vpopcntdqvl.s
new file mode 100644 (file)
index 0000000..cfb2569
--- /dev/null
@@ -0,0 +1,164 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpopcntd    %xmm1, %xmm0
+vpopcntd    (%rdi), %xmm0
+vpopcntd    (%rdi){1to4}, %xmm0
+
+vpopcntd    %xmm1, %xmm0 {%k1}
+vpopcntd    (%rdi), %xmm0 {%k1}
+vpopcntd    (%rdi){1to4}, %xmm0 {%k1}
+
+vpopcntd    %xmm1, %xmm0 {%k1} {z}
+vpopcntd    (%rdi), %xmm0 {%k1} {z}
+vpopcntd    (%rdi){1to4}, %xmm0 {%k1} {z}
+
+vpopcntd    %ymm1, %ymm0
+vpopcntd    (%rdi), %ymm0
+vpopcntd    (%rdi){1to8}, %ymm0
+
+vpopcntd    %ymm1, %ymm0 {%k1}
+vpopcntd    (%rdi), %ymm0 {%k1}
+vpopcntd    (%rdi){1to8}, %ymm0 {%k1}
+
+vpopcntd    %ymm1, %ymm0 {%k1} {z}
+vpopcntd    (%rdi), %ymm0 {%k1} {z}
+vpopcntd    (%rdi){1to8}, %ymm0 {%k1} {z}
+
+vpopcntq    %xmm1, %xmm0
+vpopcntq    (%rdi), %xmm0
+vpopcntq    (%rdi){1to2}, %xmm0
+
+vpopcntq    %xmm1, %xmm0 {%k1}
+vpopcntq    (%rdi), %xmm0 {%k1}
+vpopcntq    (%rdi){1to2}, %xmm0 {%k1}
+
+vpopcntq    %xmm1, %xmm0 {%k1} {z}
+vpopcntq    (%rdi), %xmm0 {%k1} {z}
+vpopcntq    (%rdi){1to2}, %xmm0 {%k1} {z}
+
+vpopcntq    %ymm1, %ymm0
+vpopcntq    (%rdi), %ymm0
+vpopcntq    (%rdi){1to4}, %ymm0
+
+vpopcntq    %ymm1, %ymm0 {%k1}
+vpopcntq    (%rdi), %ymm0 {%k1}
+vpopcntq    (%rdi){1to4}, %ymm0 {%k1}
+
+vpopcntq    %ymm1, %ymm0 {%k1} {z}
+vpopcntq    (%rdi), %ymm0 {%k1} {z}
+vpopcntq    (%rdi){1to4}, %ymm0 {%k1} {z}
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      2     1.00                        vpopcntd       %xmm1, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to4}, %xmm0
+# CHECK-NEXT:  1      2     1.00                        vpopcntd       %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to4}, %xmm0 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpopcntd       %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to4}, %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpopcntd       %ymm1, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to8}, %ymm0
+# CHECK-NEXT:  1      1     0.25                        vpopcntd       %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to8}, %ymm0 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpopcntd       %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntd       (%rdi){1to8}, %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      2     1.00                        vpopcntq       %xmm1, %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %xmm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to2}, %xmm0
+# CHECK-NEXT:  1      2     1.00                        vpopcntq       %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to2}, %xmm0 {%k1}
+# CHECK-NEXT:  1      2     1.00                        vpopcntq       %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to2}, %xmm0 {%k1} {z}
+# CHECK-NEXT:  1      1     0.25                        vpopcntq       %ymm1, %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %ymm0
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to4}, %ymm0
+# CHECK-NEXT:  1      1     0.25                        vpopcntq       %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to4}, %ymm0 {%k1}
+# CHECK-NEXT:  1      1     0.25                        vpopcntq       %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  1      8     0.50    *                   vpopcntq       (%rdi){1to4}, %ymm0 {%k1} {z}
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     13.50  13.50  7.50   7.50   12.00  12.00   -     8.00   8.00   8.00   8.00   8.00   8.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %xmm1, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to4}, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to4}, %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to4}, %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %ymm1, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to8}, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to8}, %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntd        %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntd        (%rdi){1to8}, %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %xmm1, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to2}, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %xmm1, %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to2}, %xmm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %xmm1, %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to2}, %xmm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %ymm1, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to4}, %ymm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %ymm1, %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to4}, %ymm0 {%k1}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vpopcntq        %ymm1, %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi), %ymm0 {%k1} {z}
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpopcntq        (%rdi){1to4}, %ymm0 {%k1} {z}
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avxgfni.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avxgfni.s
new file mode 100644 (file)
index 0000000..f1aa550
--- /dev/null
@@ -0,0 +1,86 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vgf2p8affineinvqb   $0, %xmm0, %xmm1, %xmm2
+vgf2p8affineinvqb   $0, (%rax), %xmm1, %xmm2
+
+vgf2p8affineinvqb   $0, %ymm0, %ymm1, %ymm2
+vgf2p8affineinvqb   $0, (%rax), %ymm1, %ymm2
+
+vgf2p8affineqb      $0, %xmm0, %xmm1, %xmm2
+vgf2p8affineqb      $0, (%rax), %xmm1, %xmm2
+
+vgf2p8affineqb      $0, %ymm0, %ymm1, %ymm2
+vgf2p8affineqb      $0, (%rax), %ymm1, %ymm2
+
+vgf2p8mulb          %xmm0, %xmm1, %xmm2
+vgf2p8mulb          (%rax), %xmm1, %xmm2
+
+vgf2p8mulb          %ymm0, %ymm1, %ymm2
+vgf2p8mulb          (%rax), %ymm1, %ymm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineinvqb      $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineinvqb      $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      3     0.50                        vgf2p8affineqb $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vgf2p8affineqb $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      1     0.25                        vgf2p8mulb     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      8     0.50    *                   vgf2p8mulb     (%rax), %ymm1, %ymm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     5.00   1.00   1.00   5.00   3.00   3.00    -     2.00   2.00   2.00   2.00   2.00   2.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineinvqb       $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineinvqb       $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     vgf2p8affineqb  $0, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8affineqb  $0, (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     vgf2p8mulb      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vgf2p8mulb      (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-avxvnni.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-avxvnni.s
new file mode 100644 (file)
index 0000000..f0d426d
--- /dev/null
@@ -0,0 +1,100 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpdpbusd    %xmm0, %xmm1, %xmm2
+vpdpbusd    (%rax), %xmm1, %xmm2
+
+vpdpbusd    %ymm0, %ymm1, %ymm2
+vpdpbusd    (%rax), %ymm1, %ymm2
+
+vpdpbusds   %xmm0, %xmm1, %xmm2
+vpdpbusds   (%rax), %xmm1, %xmm2
+
+vpdpbusds   %ymm0, %ymm1, %ymm2
+vpdpbusds   (%rax), %ymm1, %ymm2
+
+vpdpwssd    %xmm0, %xmm1, %xmm2
+vpdpwssd    (%rax), %xmm1, %xmm2
+
+vpdpwssd    %ymm0, %ymm1, %ymm2
+vpdpwssd    (%rax), %ymm1, %ymm2
+
+vpdpwssds   %xmm0, %xmm1, %xmm2
+vpdpwssds   (%rax), %xmm1, %xmm2
+
+vpdpwssds   %ymm0, %ymm1, %ymm2
+vpdpwssds   (%rax), %ymm1, %ymm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpdpbusd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpdpbusds      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpbusds      (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpdpwssd       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssd       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     2.00                        vpdpwssds      %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      10    0.50    *                   vpdpwssds      (%rax), %ymm1, %ymm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     20.00  16.00   -     4.00   4.00   4.00    -     2.67   2.67   2.67   2.67   2.67   2.67    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpbusds       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpbusds       (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssd        %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssd        (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpdpwssds       %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpdpwssds       (%rax), %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-bmi1.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-bmi1.s
new file mode 100644 (file)
index 0000000..f4888cf
--- /dev/null
@@ -0,0 +1,135 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+andn        %eax, %ebx, %ecx
+andn        (%rax), %ebx, %ecx
+
+andn        %rax, %rbx, %rcx
+andn        (%rax), %rbx, %rcx
+
+bextr       %eax, %ebx, %ecx
+bextr       %eax, (%rbx), %ecx
+
+bextr       %rax, %rbx, %rcx
+bextr       %rax, (%rbx), %rcx
+
+blsi        %eax, %ecx
+blsi        (%rax), %ecx
+
+blsi        %rax, %rcx
+blsi        (%rax), %rcx
+
+blsmsk      %eax, %ecx
+blsmsk      (%rax), %ecx
+
+blsmsk      %rax, %rcx
+blsmsk      (%rax), %rcx
+
+blsr        %eax, %ecx
+blsr        (%rax), %ecx
+
+blsr        %rax, %rcx
+blsr        (%rax), %rcx
+
+tzcnt       %ax, %cx
+tzcnt       (%rax), %cx
+
+tzcnt       %eax, %ecx
+tzcnt       (%rax), %ecx
+
+tzcnt       %rax, %rcx
+tzcnt       (%rax), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.25                        andnl  %eax, %ebx, %ecx
+# CHECK-NEXT:  1      5     0.33    *                   andnl  (%rax), %ebx, %ecx
+# CHECK-NEXT:  1      1     0.25                        andnq  %rax, %rbx, %rcx
+# CHECK-NEXT:  1      5     0.33    *                   andnq  (%rax), %rbx, %rcx
+# CHECK-NEXT:  1      1     0.50                        bextrl %eax, %ebx, %ecx
+# CHECK-NEXT:  2      5     0.50    *                   bextrl %eax, (%rbx), %ecx
+# CHECK-NEXT:  1      1     0.50                        bextrq %rax, %rbx, %rcx
+# CHECK-NEXT:  2      5     0.50    *                   bextrq %rax, (%rbx), %rcx
+# CHECK-NEXT:  1      1     0.25                        blsil  %eax, %ecx
+# CHECK-NEXT:  2      5     0.33    *                   blsil  (%rax), %ecx
+# CHECK-NEXT:  1      1     0.25                        blsiq  %rax, %rcx
+# CHECK-NEXT:  2      5     0.33    *                   blsiq  (%rax), %rcx
+# CHECK-NEXT:  1      1     0.25                        blsmskl        %eax, %ecx
+# CHECK-NEXT:  2      5     0.33    *                   blsmskl        (%rax), %ecx
+# CHECK-NEXT:  1      1     0.25                        blsmskq        %rax, %rcx
+# CHECK-NEXT:  2      5     0.33    *                   blsmskq        (%rax), %rcx
+# CHECK-NEXT:  1      1     0.25                        blsrl  %eax, %ecx
+# CHECK-NEXT:  2      5     0.33    *                   blsrl  (%rax), %ecx
+# CHECK-NEXT:  1      1     0.25                        blsrq  %rax, %rcx
+# CHECK-NEXT:  2      5     0.33    *                   blsrq  (%rax), %rcx
+# CHECK-NEXT:  2      2     1.00                        tzcntw %ax, %cx
+# CHECK-NEXT:  2      6     0.50    *                   tzcntw (%rax), %cx
+# CHECK-NEXT:  2      2     0.50                        tzcntl %eax, %ecx
+# CHECK-NEXT:  2      6     0.50    *                   tzcntl (%rax), %ecx
+# CHECK-NEXT:  2      2     0.50                        tzcntq %rax, %rcx
+# CHECK-NEXT:  2      6     0.50    *                   tzcntq (%rax), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 4.33   4.33   4.33   5.00   9.50   9.50   5.00    -      -      -      -      -      -      -      -     4.33   4.33   4.33   4.33   4.33   4.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andnl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andnl   (%rax), %ebx, %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andnq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andnq   (%rax), %rbx, %rcx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bextrl  %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bextrl  %eax, (%rbx), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bextrq  %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bextrq  %rax, (%rbx), %rcx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     blsil   %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blsil   (%rax), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     blsiq   %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blsiq   (%rax), %rcx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     blsmskl %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blsmskl (%rax), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     blsmskq %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blsmskq (%rax), %rcx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     blsrl   %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blsrl   (%rax), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     blsrq   %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blsrq   (%rax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     tzcntw  %ax, %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     tzcntw  (%rax), %cx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     tzcntl  %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     tzcntl  (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     tzcntq  %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     tzcntq  (%rax), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-bmi2.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-bmi2.s
new file mode 100644 (file)
index 0000000..2e38ed4
--- /dev/null
@@ -0,0 +1,156 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+bzhi        %eax, %ebx, %ecx
+bzhi        %eax, (%rbx), %ecx
+
+bzhi        %rax, %rbx, %rcx
+bzhi        %rax, (%rbx), %rcx
+
+mulx        %eax, %ebx, %ecx
+mulx        (%rax), %ebx, %ecx
+
+mulx        %rax, %rbx, %rcx
+mulx        (%rax), %rbx, %rcx
+
+pdep        %eax, %ebx, %ecx
+pdep        (%rax), %ebx, %ecx
+
+pdep        %rax, %rbx, %rcx
+pdep        (%rax), %rbx, %rcx
+
+pext        %eax, %ebx, %ecx
+pext        (%rax), %ebx, %ecx
+
+pext        %rax, %rbx, %rcx
+pext        (%rax), %rbx, %rcx
+
+rorx        $1, %eax, %ecx
+rorx        $1, (%rax), %ecx
+
+rorx        $1, %rax, %rcx
+rorx        $1, (%rax), %rcx
+
+sarx        %eax, %ebx, %ecx
+sarx        %eax, (%rbx), %ecx
+
+sarx        %rax, %rbx, %rcx
+sarx        %rax, (%rbx), %rcx
+
+shlx        %eax, %ebx, %ecx
+shlx        %eax, (%rbx), %ecx
+
+shlx        %rax, %rbx, %rcx
+shlx        %rax, (%rbx), %rcx
+
+shrx        %eax, %ebx, %ecx
+shrx        %eax, (%rbx), %ecx
+
+shrx        %rax, %rbx, %rcx
+shrx        %rax, (%rbx), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        bzhil  %eax, %ebx, %ecx
+# CHECK-NEXT:  2      5     0.50    *                   bzhil  %eax, (%rbx), %ecx
+# CHECK-NEXT:  1      1     0.50                        bzhiq  %rax, %rbx, %rcx
+# CHECK-NEXT:  2      5     0.50    *                   bzhiq  %rax, (%rbx), %rcx
+# CHECK-NEXT:  2      4     1.00                        mulxl  %eax, %ebx, %ecx
+# CHECK-NEXT:  2      8     1.00    *                   mulxl  (%rax), %ebx, %ecx
+# CHECK-NEXT:  2      4     1.00                        mulxq  %rax, %rbx, %rcx
+# CHECK-NEXT:  2      8     1.00    *                   mulxq  (%rax), %rbx, %rcx
+# CHECK-NEXT:  1      3     1.00                        pdepl  %eax, %ebx, %ecx
+# CHECK-NEXT:  1      5     0.33    *                   pdepl  (%rax), %ebx, %ecx
+# CHECK-NEXT:  1      3     1.00                        pdepq  %rax, %rbx, %rcx
+# CHECK-NEXT:  1      5     0.33    *                   pdepq  (%rax), %rbx, %rcx
+# CHECK-NEXT:  1      3     1.00                        pextl  %eax, %ebx, %ecx
+# CHECK-NEXT:  1      5     0.33    *                   pextl  (%rax), %ebx, %ecx
+# CHECK-NEXT:  1      3     1.00                        pextq  %rax, %rbx, %rcx
+# CHECK-NEXT:  1      5     0.33    *                   pextq  (%rax), %rbx, %rcx
+# CHECK-NEXT:  1      1     0.50                        rorxl  $1, %eax, %ecx
+# CHECK-NEXT:  2      5     0.50    *                   rorxl  $1, (%rax), %ecx
+# CHECK-NEXT:  1      1     0.50                        rorxq  $1, %rax, %rcx
+# CHECK-NEXT:  2      5     0.50    *                   rorxq  $1, (%rax), %rcx
+# CHECK-NEXT:  1      1     0.50                        sarxl  %eax, %ebx, %ecx
+# CHECK-NEXT:  2      5     0.50    *                   sarxl  %eax, (%rbx), %ecx
+# CHECK-NEXT:  1      1     0.50                        sarxq  %rax, %rbx, %rcx
+# CHECK-NEXT:  2      5     0.50    *                   sarxq  %rax, (%rbx), %rcx
+# CHECK-NEXT:  1      1     0.50                        shlxl  %eax, %ebx, %ecx
+# CHECK-NEXT:  2      5     0.50    *                   shlxl  %eax, (%rbx), %ecx
+# CHECK-NEXT:  1      1     0.50                        shlxq  %rax, %rbx, %rcx
+# CHECK-NEXT:  2      5     0.50    *                   shlxq  %rax, (%rbx), %rcx
+# CHECK-NEXT:  1      1     0.50                        shrxl  %eax, %ebx, %ecx
+# CHECK-NEXT:  2      5     0.50    *                   shrxl  %eax, (%rbx), %ecx
+# CHECK-NEXT:  1      1     0.50                        shrxq  %rax, %rbx, %rcx
+# CHECK-NEXT:  2      5     0.50    *                   shrxq  %rax, (%rbx), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 5.33   5.33   5.33   1.00   19.00  11.00  1.00    -      -      -      -      -      -      -      -     5.33   5.33   5.33   5.33   5.33   5.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bzhil   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bzhil   %eax, (%rbx), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bzhiq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bzhiq   %rax, (%rbx), %rcx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulxl   (%rax), %ebx, %ecx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulxq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulxq   (%rax), %rbx, %rcx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pdepl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pdepl   (%rax), %ebx, %ecx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pdepq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pdepq   (%rax), %rbx, %rcx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pextl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pextl   (%rax), %ebx, %ecx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pextq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pextq   (%rax), %rbx, %rcx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorxl   $1, %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rorxl   $1, (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorxq   $1, %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rorxq   $1, (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarxl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sarxl   %eax, (%rbx), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarxq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sarxq   %rax, (%rbx), %rcx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlxl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shlxl   %eax, (%rbx), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlxq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shlxq   %rax, (%rbx), %rcx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrxl   %eax, %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrxl   %eax, (%rbx), %ecx
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrxq   %rax, %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrxq   %rax, (%rbx), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-clflushopt.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-clflushopt.s
new file mode 100644 (file)
index 0000000..a78a70a
--- /dev/null
@@ -0,0 +1,48 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+clflushopt (%rax)
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      5     0.33    *      *      U     clflushopt     (%rax)
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     clflushopt      (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-clwb.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-clwb.s
new file mode 100644 (file)
index 0000000..97c05c1
--- /dev/null
@@ -0,0 +1,48 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+clwb (%rax)
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      5     0.33    *      *      U     clwb   (%rax)
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     clwb    (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-cmov.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-cmov.s
new file mode 100644 (file)
index 0000000..ad74d00
--- /dev/null
@@ -0,0 +1,338 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+cmovow    %si, %di
+cmovnow   %si, %di
+cmovbw    %si, %di
+cmovaew   %si, %di
+cmovew    %si, %di
+cmovnew   %si, %di
+cmovbew   %si, %di
+cmovaw    %si, %di
+cmovsw    %si, %di
+cmovnsw   %si, %di
+cmovpw    %si, %di
+cmovnpw   %si, %di
+cmovlw    %si, %di
+cmovgew   %si, %di
+cmovlew   %si, %di
+cmovgw    %si, %di
+
+cmovow    (%rax), %di
+cmovnow   (%rax), %di
+cmovbw    (%rax), %di
+cmovaew   (%rax), %di
+cmovew    (%rax), %di
+cmovnew   (%rax), %di
+cmovbew   (%rax), %di
+cmovaw    (%rax), %di
+cmovsw    (%rax), %di
+cmovnsw   (%rax), %di
+cmovpw    (%rax), %di
+cmovnpw   (%rax), %di
+cmovlw    (%rax), %di
+cmovgew   (%rax), %di
+cmovlew   (%rax), %di
+cmovgw    (%rax), %di
+
+cmovol    %esi, %edi
+cmovnol   %esi, %edi
+cmovbl    %esi, %edi
+cmovael   %esi, %edi
+cmovel    %esi, %edi
+cmovnel   %esi, %edi
+cmovbel   %esi, %edi
+cmoval    %esi, %edi
+cmovsl    %esi, %edi
+cmovnsl   %esi, %edi
+cmovpl    %esi, %edi
+cmovnpl   %esi, %edi
+cmovll    %esi, %edi
+cmovgel   %esi, %edi
+cmovlel   %esi, %edi
+cmovgl    %esi, %edi
+
+cmovol    (%rax), %edi
+cmovnol   (%rax), %edi
+cmovbl    (%rax), %edi
+cmovael   (%rax), %edi
+cmovel    (%rax), %edi
+cmovnel   (%rax), %edi
+cmovbel   (%rax), %edi
+cmoval    (%rax), %edi
+cmovsl    (%rax), %edi
+cmovnsl   (%rax), %edi
+cmovpl    (%rax), %edi
+cmovnpl   (%rax), %edi
+cmovll    (%rax), %edi
+cmovgel   (%rax), %edi
+cmovlel   (%rax), %edi
+cmovgl    (%rax), %edi
+
+cmovoq    %rsi, %rdi
+cmovnoq   %rsi, %rdi
+cmovbq    %rsi, %rdi
+cmovaeq   %rsi, %rdi
+cmoveq    %rsi, %rdi
+cmovneq   %rsi, %rdi
+cmovbeq   %rsi, %rdi
+cmovaq    %rsi, %rdi
+cmovsq    %rsi, %rdi
+cmovnsq   %rsi, %rdi
+cmovpq    %rsi, %rdi
+cmovnpq   %rsi, %rdi
+cmovlq    %rsi, %rdi
+cmovgeq   %rsi, %rdi
+cmovleq   %rsi, %rdi
+cmovgq    %rsi, %rdi
+
+cmovoq    (%rax), %rdi
+cmovnoq   (%rax), %rdi
+cmovbq    (%rax), %rdi
+cmovaeq   (%rax), %rdi
+cmoveq    (%rax), %rdi
+cmovneq   (%rax), %rdi
+cmovbeq   (%rax), %rdi
+cmovaq    (%rax), %rdi
+cmovsq    (%rax), %rdi
+cmovnsq   (%rax), %rdi
+cmovpq    (%rax), %rdi
+cmovnpq   (%rax), %rdi
+cmovlq    (%rax), %rdi
+cmovgeq   (%rax), %rdi
+cmovleq   (%rax), %rdi
+cmovgq    (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        cmovow %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnow        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbw %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaew        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovew %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnew        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovbew        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovaw %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovsw %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnsw        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovpw %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovnpw        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlw %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgew        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovlew        %si, %di
+# CHECK-NEXT:  1      1     0.50                        cmovgw %si, %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovow (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovnow        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovbw (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovaew        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovew (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovnew        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovbew        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovaw (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovsw (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovnsw        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovpw (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovnpw        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovlw (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovgew        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovlew        (%rax), %di
+# CHECK-NEXT:  1      5     0.50    *                   cmovgw (%rax), %di
+# CHECK-NEXT:  1      1     0.50                        cmovol %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnol        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbl %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovael        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovel %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnel        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovbel        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmoval %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovsl %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnsl        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovpl %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovnpl        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovll %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgel        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovlel        %esi, %edi
+# CHECK-NEXT:  1      1     0.50                        cmovgl %esi, %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovol (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnol        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovbl (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovael        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovel (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnel        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovbel        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmoval (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovsl (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnsl        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovpl (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnpl        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovll (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovgel        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovlel        (%rax), %edi
+# CHECK-NEXT:  1      5     0.50    *                   cmovgl (%rax), %edi
+# CHECK-NEXT:  1      1     0.50                        cmovoq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnoq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaeq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmoveq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovneq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovbeq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovaq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovsq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnsq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovpq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovnpq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovlq %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgeq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovleq        %rsi, %rdi
+# CHECK-NEXT:  1      1     0.50                        cmovgq %rsi, %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovoq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnoq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovbq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovaeq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmoveq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovneq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovbeq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovaq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovsq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnsq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovpq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovnpq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovlq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovgeq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovleq        (%rax), %rdi
+# CHECK-NEXT:  1      5     0.50    *                   cmovgq (%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 16.00  16.00  16.00  48.00   -      -     48.00   -      -      -      -      -      -      -      -     16.00  16.00  16.00  16.00  16.00  16.00   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovow  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnow %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovbw  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovaew %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovew  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnew %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovbew %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovaw  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovsw  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnsw %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovpw  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnpw %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovlw  %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovgew %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovlew %si, %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovgw  %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovow  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnow (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovbw  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovaew (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovew  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnew (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovbew (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovaw  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovsw  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnsw (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovpw  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnpw (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovlw  (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovgew (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovlew (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovgw  (%rax), %di
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovol  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnol %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovbl  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovael %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovel  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnel %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovbel %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmoval  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovsl  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnsl %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovpl  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnpl %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovll  %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovgel %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovlel %esi, %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovgl  %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovol  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnol (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovbl  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovael (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovel  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnel (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovbel (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmoval  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovsl  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnsl (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovpl  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnpl (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovll  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovgel (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovlel (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovgl  (%rax), %edi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovoq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnoq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovbq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovaeq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmoveq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovneq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovbeq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovaq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovsq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnsq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovpq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovnpq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovlq  %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovgeq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovleq %rsi, %rdi
+# CHECK-NEXT:  -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmovgq  %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovoq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnoq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovbq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovaeq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmoveq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovneq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovbeq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovaq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovsq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnsq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovpq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovnpq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovlq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovgeq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovleq (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.50    -      -     0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmovgq  (%rax), %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-cmpxchg.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-cmpxchg.s
new file mode 100644 (file)
index 0000000..64feeaf
--- /dev/null
@@ -0,0 +1,57 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+cmpxchg8b  (%rax)
+cmpxchg16b (%rax)
+lock cmpxchg8b  (%rax)
+lock cmpxchg16b (%rax)
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  19     3     6.00    *      *            cmpxchg8b      (%rax)
+# CHECK-NEXT:  28     4     14.75   *      *            cmpxchg16b     (%rax)
+# CHECK-NEXT:  19     3     6.00    *      *            lock           cmpxchg8b       (%rax)
+# CHECK-NEXT:  28     4     14.75   *      *            lock           cmpxchg16b      (%rax)
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     41.50  41.50  41.50  41.50   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     6.00   6.00   6.00   6.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchg8b       (%rax)
+# CHECK-NEXT:  -      -      -     14.75  14.75  14.75  14.75   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchg16b      (%rax)
+# CHECK-NEXT:  -      -      -     6.00   6.00   6.00   6.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchg8b       (%rax)
+# CHECK-NEXT:  -      -      -     14.75  14.75  14.75  14.75   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchg16b      (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-f16c.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-f16c.s
new file mode 100644 (file)
index 0000000..f8badb5
--- /dev/null
@@ -0,0 +1,72 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vcvtph2ps   %xmm0, %xmm2
+vcvtph2ps   (%rax), %xmm2
+
+vcvtph2ps   %xmm0, %ymm2
+vcvtph2ps   (%rax), %ymm2
+
+vcvtps2ph   $0, %xmm0, %xmm2
+vcvtps2ph   $0, %xmm0, (%rax)
+
+vcvtps2ph   $0, %ymm0, %xmm2
+vcvtps2ph   $0, %ymm0, (%rax)
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        vcvtph2ps      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   vcvtph2ps      (%rax), %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtph2ps      %xmm0, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vcvtph2ps      (%rax), %ymm2
+# CHECK-NEXT:  1      3     1.00                        vcvtps2ph      $0, %xmm0, %xmm2
+# CHECK-NEXT:  2      4     1.00           *            vcvtps2ph      $0, %xmm0, (%rax)
+# CHECK-NEXT:  2      6     1.00                        vcvtps2ph      $0, %ymm0, %xmm2
+# CHECK-NEXT:  3      7     1.00           *            vcvtps2ph      $0, %ymm0, (%rax)
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     6.50   6.50   2.00   2.00   2.00   1.33   1.33   1.33   0.67   0.67   0.67   1.00   1.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     vcvtph2ps       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtph2ps       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtph2ps       %xmm0, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vcvtph2ps       (%rax), %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2ph       $0, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vcvtps2ph       $0, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     vcvtps2ph       $0, %ymm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   vcvtps2ph       $0, %ymm0, (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-fma.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-fma.s
new file mode 100644 (file)
index 0000000..3d2dd4c
--- /dev/null
@@ -0,0 +1,716 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vfmadd132pd %xmm0, %xmm1, %xmm2
+vfmadd132pd (%rax), %xmm1, %xmm2
+
+vfmadd132pd %ymm0, %ymm1, %ymm2
+vfmadd132pd (%rax), %ymm1, %ymm2
+
+vfmadd213pd %xmm0, %xmm1, %xmm2
+vfmadd213pd (%rax), %xmm1, %xmm2
+
+vfmadd213pd %ymm0, %ymm1, %ymm2
+vfmadd213pd (%rax), %ymm1, %ymm2
+
+vfmadd231pd %xmm0, %xmm1, %xmm2
+vfmadd231pd (%rax), %xmm1, %xmm2
+
+vfmadd231pd %ymm0, %ymm1, %ymm2
+vfmadd231pd (%rax), %ymm1, %ymm2
+
+vfmadd132ps %xmm0, %xmm1, %xmm2
+vfmadd132ps (%rax), %xmm1, %xmm2
+
+vfmadd132ps %ymm0, %ymm1, %ymm2
+vfmadd132ps (%rax), %ymm1, %ymm2
+
+vfmadd213ps %xmm0, %xmm1, %xmm2
+vfmadd213ps (%rax), %xmm1, %xmm2
+
+vfmadd213ps %ymm0, %ymm1, %ymm2
+vfmadd213ps (%rax), %ymm1, %ymm2
+
+vfmadd231ps %xmm0, %xmm1, %xmm2
+vfmadd231ps (%rax), %xmm1, %xmm2
+
+vfmadd231ps %ymm0, %ymm1, %ymm2
+vfmadd231ps (%rax), %ymm1, %ymm2
+
+vfmadd132sd %xmm0, %xmm1, %xmm2
+vfmadd132sd (%rax), %xmm1, %xmm2
+
+vfmadd213sd %xmm0, %xmm1, %xmm2
+vfmadd213sd (%rax), %xmm1, %xmm2
+
+vfmadd231sd %xmm0, %xmm1, %xmm2
+vfmadd231sd (%rax), %xmm1, %xmm2
+
+vfmadd132ss %xmm0, %xmm1, %xmm2
+vfmadd132ss (%rax), %xmm1, %xmm2
+
+vfmadd213ss %xmm0, %xmm1, %xmm2
+vfmadd213ss (%rax), %xmm1, %xmm2
+
+vfmadd231ss %xmm0, %xmm1, %xmm2
+vfmadd231ss (%rax), %xmm1, %xmm2
+
+vfmaddsub132pd %xmm0, %xmm1, %xmm2
+vfmaddsub132pd (%rax), %xmm1, %xmm2
+
+vfmaddsub132pd %ymm0, %ymm1, %ymm2
+vfmaddsub132pd (%rax), %ymm1, %ymm2
+
+vfmaddsub213pd %xmm0, %xmm1, %xmm2
+vfmaddsub213pd (%rax), %xmm1, %xmm2
+
+vfmaddsub213pd %ymm0, %ymm1, %ymm2
+vfmaddsub213pd (%rax), %ymm1, %ymm2
+
+vfmaddsub231pd %xmm0, %xmm1, %xmm2
+vfmaddsub231pd (%rax), %xmm1, %xmm2
+
+vfmaddsub231pd %ymm0, %ymm1, %ymm2
+vfmaddsub231pd (%rax), %ymm1, %ymm2
+
+vfmaddsub132ps %xmm0, %xmm1, %xmm2
+vfmaddsub132ps (%rax), %xmm1, %xmm2
+
+vfmaddsub132ps %ymm0, %ymm1, %ymm2
+vfmaddsub132ps (%rax), %ymm1, %ymm2
+
+vfmaddsub213ps %xmm0, %xmm1, %xmm2
+vfmaddsub213ps (%rax), %xmm1, %xmm2
+
+vfmaddsub213ps %ymm0, %ymm1, %ymm2
+vfmaddsub213ps (%rax), %ymm1, %ymm2
+
+vfmaddsub231ps %xmm0, %xmm1, %xmm2
+vfmaddsub231ps (%rax), %xmm1, %xmm2
+
+vfmaddsub231ps %ymm0, %ymm1, %ymm2
+vfmaddsub231ps (%rax), %ymm1, %ymm2
+
+vfmsub132pd %xmm0, %xmm1, %xmm2
+vfmsub132pd (%rax), %xmm1, %xmm2
+
+vfmsub132pd %ymm0, %ymm1, %ymm2
+vfmsub132pd (%rax), %ymm1, %ymm2
+
+vfmsub213pd %xmm0, %xmm1, %xmm2
+vfmsub213pd (%rax), %xmm1, %xmm2
+
+vfmsub213pd %ymm0, %ymm1, %ymm2
+vfmsub213pd (%rax), %ymm1, %ymm2
+
+vfmsub231pd %xmm0, %xmm1, %xmm2
+vfmsub231pd (%rax), %xmm1, %xmm2
+
+vfmsub231pd %ymm0, %ymm1, %ymm2
+vfmsub231pd (%rax), %ymm1, %ymm2
+
+vfmsub132ps %xmm0, %xmm1, %xmm2
+vfmsub132ps (%rax), %xmm1, %xmm2
+
+vfmsub132ps %ymm0, %ymm1, %ymm2
+vfmsub132ps (%rax), %ymm1, %ymm2
+
+vfmsub213ps %xmm0, %xmm1, %xmm2
+vfmsub213ps (%rax), %xmm1, %xmm2
+
+vfmsub213ps %ymm0, %ymm1, %ymm2
+vfmsub213ps (%rax), %ymm1, %ymm2
+
+vfmsub231ps %xmm0, %xmm1, %xmm2
+vfmsub231ps (%rax), %xmm1, %xmm2
+
+vfmsub231ps %ymm0, %ymm1, %ymm2
+vfmsub231ps (%rax), %ymm1, %ymm2
+
+vfmsub132sd %xmm0, %xmm1, %xmm2
+vfmsub132sd (%rax), %xmm1, %xmm2
+
+vfmsub213sd %xmm0, %xmm1, %xmm2
+vfmsub213sd (%rax), %xmm1, %xmm2
+
+vfmsub231sd %xmm0, %xmm1, %xmm2
+vfmsub231sd (%rax), %xmm1, %xmm2
+
+vfmsub132ss %xmm0, %xmm1, %xmm2
+vfmsub132ss (%rax), %xmm1, %xmm2
+
+vfmsub213ss %xmm0, %xmm1, %xmm2
+vfmsub213ss (%rax), %xmm1, %xmm2
+
+vfmsub231ss %xmm0, %xmm1, %xmm2
+vfmsub231ss (%rax), %xmm1, %xmm2
+
+vfmsubadd132pd %xmm0, %xmm1, %xmm2
+vfmsubadd132pd (%rax), %xmm1, %xmm2
+
+vfmsubadd132pd %ymm0, %ymm1, %ymm2
+vfmsubadd132pd (%rax), %ymm1, %ymm2
+
+vfmsubadd213pd %xmm0, %xmm1, %xmm2
+vfmsubadd213pd (%rax), %xmm1, %xmm2
+
+vfmsubadd213pd %ymm0, %ymm1, %ymm2
+vfmsubadd213pd (%rax), %ymm1, %ymm2
+
+vfmsubadd231pd %xmm0, %xmm1, %xmm2
+vfmsubadd231pd (%rax), %xmm1, %xmm2
+
+vfmsubadd231pd %ymm0, %ymm1, %ymm2
+vfmsubadd231pd (%rax), %ymm1, %ymm2
+
+vfmsubadd132ps %xmm0, %xmm1, %xmm2
+vfmsubadd132ps (%rax), %xmm1, %xmm2
+
+vfmsubadd132ps %ymm0, %ymm1, %ymm2
+vfmsubadd132ps (%rax), %ymm1, %ymm2
+
+vfmsubadd213ps %xmm0, %xmm1, %xmm2
+vfmsubadd213ps (%rax), %xmm1, %xmm2
+
+vfmsubadd213ps %ymm0, %ymm1, %ymm2
+vfmsubadd213ps (%rax), %ymm1, %ymm2
+
+vfmsubadd231ps %xmm0, %xmm1, %xmm2
+vfmsubadd231ps (%rax), %xmm1, %xmm2
+
+vfmsubadd231ps %ymm0, %ymm1, %ymm2
+vfmsubadd231ps (%rax), %ymm1, %ymm2
+
+vfnmadd132pd %xmm0, %xmm1, %xmm2
+vfnmadd132pd (%rax), %xmm1, %xmm2
+
+vfnmadd132pd %ymm0, %ymm1, %ymm2
+vfnmadd132pd (%rax), %ymm1, %ymm2
+
+vfnmadd213pd %xmm0, %xmm1, %xmm2
+vfnmadd213pd (%rax), %xmm1, %xmm2
+
+vfnmadd213pd %ymm0, %ymm1, %ymm2
+vfnmadd213pd (%rax), %ymm1, %ymm2
+
+vfnmadd231pd %xmm0, %xmm1, %xmm2
+vfnmadd231pd (%rax), %xmm1, %xmm2
+
+vfnmadd231pd %ymm0, %ymm1, %ymm2
+vfnmadd231pd (%rax), %ymm1, %ymm2
+
+vfnmadd132ps %xmm0, %xmm1, %xmm2
+vfnmadd132ps (%rax), %xmm1, %xmm2
+
+vfnmadd132ps %ymm0, %ymm1, %ymm2
+vfnmadd132ps (%rax), %ymm1, %ymm2
+
+vfnmadd213ps %xmm0, %xmm1, %xmm2
+vfnmadd213ps (%rax), %xmm1, %xmm2
+
+vfnmadd213ps %ymm0, %ymm1, %ymm2
+vfnmadd213ps (%rax), %ymm1, %ymm2
+
+vfnmadd231ps %xmm0, %xmm1, %xmm2
+vfnmadd231ps (%rax), %xmm1, %xmm2
+
+vfnmadd231ps %ymm0, %ymm1, %ymm2
+vfnmadd231ps (%rax), %ymm1, %ymm2
+
+vfnmadd132sd %xmm0, %xmm1, %xmm2
+vfnmadd132sd (%rax), %xmm1, %xmm2
+
+vfnmadd213sd %xmm0, %xmm1, %xmm2
+vfnmadd213sd (%rax), %xmm1, %xmm2
+
+vfnmadd231sd %xmm0, %xmm1, %xmm2
+vfnmadd231sd (%rax), %xmm1, %xmm2
+
+vfnmadd132ss %xmm0, %xmm1, %xmm2
+vfnmadd132ss (%rax), %xmm1, %xmm2
+
+vfnmadd213ss %xmm0, %xmm1, %xmm2
+vfnmadd213ss (%rax), %xmm1, %xmm2
+
+vfnmadd231ss %xmm0, %xmm1, %xmm2
+vfnmadd231ss (%rax), %xmm1, %xmm2
+
+vfnmsub132pd %xmm0, %xmm1, %xmm2
+vfnmsub132pd (%rax), %xmm1, %xmm2
+
+vfnmsub132pd %ymm0, %ymm1, %ymm2
+vfnmsub132pd (%rax), %ymm1, %ymm2
+
+vfnmsub213pd %xmm0, %xmm1, %xmm2
+vfnmsub213pd (%rax), %xmm1, %xmm2
+
+vfnmsub213pd %ymm0, %ymm1, %ymm2
+vfnmsub213pd (%rax), %ymm1, %ymm2
+
+vfnmsub231pd %xmm0, %xmm1, %xmm2
+vfnmsub231pd (%rax), %xmm1, %xmm2
+
+vfnmsub231pd %ymm0, %ymm1, %ymm2
+vfnmsub231pd (%rax), %ymm1, %ymm2
+
+vfnmsub132ps %xmm0, %xmm1, %xmm2
+vfnmsub132ps (%rax), %xmm1, %xmm2
+
+vfnmsub132ps %ymm0, %ymm1, %ymm2
+vfnmsub132ps (%rax), %ymm1, %ymm2
+
+vfnmsub213ps %xmm0, %xmm1, %xmm2
+vfnmsub213ps (%rax), %xmm1, %xmm2
+
+vfnmsub213ps %ymm0, %ymm1, %ymm2
+vfnmsub213ps (%rax), %ymm1, %ymm2
+
+vfnmsub231ps %xmm0, %xmm1, %xmm2
+vfnmsub231ps (%rax), %xmm1, %xmm2
+
+vfnmsub231ps %ymm0, %ymm1, %ymm2
+vfnmsub231ps (%rax), %ymm1, %ymm2
+
+vfnmsub132sd %xmm0, %xmm1, %xmm2
+vfnmsub132sd (%rax), %xmm1, %xmm2
+
+vfnmsub213sd %xmm0, %xmm1, %xmm2
+vfnmsub213sd (%rax), %xmm1, %xmm2
+
+vfnmsub231sd %xmm0, %xmm1, %xmm2
+vfnmsub231sd (%rax), %xmm1, %xmm2
+
+vfnmsub132ss %xmm0, %xmm1, %xmm2
+vfnmsub132ss (%rax), %xmm1, %xmm2
+
+vfnmsub213ss %xmm0, %xmm1, %xmm2
+vfnmsub213ss (%rax), %xmm1, %xmm2
+
+vfnmsub231ss %xmm0, %xmm1, %xmm2
+vfnmsub231ss (%rax), %xmm1, %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     1.00                        vfmadd132pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd132pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd132pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd132pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd213pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd213pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd213pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd213pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd231pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd231pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd231pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd231pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd132ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd132ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd132ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd132ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd213ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd213ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd213ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd213ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd231ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd231ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd231ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd231ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd132sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd132sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd213sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd213sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd231sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd231sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd132ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd132ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd213ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd213ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmadd231ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmadd231ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmaddsub231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmaddsub231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub132pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub132pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub132pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub132pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub213pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub213pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub213pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub213pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub231pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub231pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub231pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub231pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub132ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub132ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub132ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub132ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub213ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub213ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub213ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub213ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub231ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub231ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub231ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub231ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub132sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub132sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub213sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub213sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub231sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub231sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub132ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub132ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub213ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub213ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsub231ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsub231ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd132pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd132pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd132pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd132pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd213pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd213pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd213pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd213pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd231pd %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd231pd (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd231pd %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd231pd (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd132ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd132ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd132ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd132ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd213ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd213ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd213ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd213ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd231ps %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd231ps (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfmsubadd231ps %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfmsubadd231ps (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd132pd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd132pd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd132pd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd132pd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd213pd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd213pd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd213pd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd213pd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd231pd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd231pd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd231pd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd231pd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd132ps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd132ps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd132ps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd132ps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd213ps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd213ps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd213ps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd213ps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd231ps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd231ps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd231ps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd231ps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd132sd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd132sd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd213sd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd213sd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd231sd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd231sd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd132ss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd132ss   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd213ss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd213ss   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmadd231ss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmadd231ss   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub132pd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub132pd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub132pd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub132pd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub213pd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub213pd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub213pd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub213pd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub231pd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub231pd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub231pd   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub231pd   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub132ps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub132ps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub132ps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub132ps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub213ps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub213ps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub213ps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub213ps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub231ps   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub231ps   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub231ps   %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub231ps   (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub132sd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub132sd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub213sd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub213sd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub231sd   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub231sd   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub132ss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub132ss   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub213ss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub213ss   (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  1      4     1.00                        vfnmsub231ss   %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   vfnmsub231ss   (%rax), %xmm1, %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     192.00 192.00  -      -     48.00  48.00   -     32.00  32.00  32.00  32.00  32.00  32.00   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd132pd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd132pd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd132pd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd132pd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd213pd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd213pd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd213pd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd213pd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd231pd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd231pd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd231pd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd231pd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd132ps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd132ps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd132ps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd132ps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd213ps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd213ps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd213ps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd213ps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd231ps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd231ps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd231ps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd231ps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd132sd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd132sd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd213sd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd213sd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd231sd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd231sd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd132ss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd132ss     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd213ss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd213ss     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmadd231ss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmadd231ss     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub132pd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub132pd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub132pd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub132pd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub213pd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub213pd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub213pd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub213pd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub231pd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub231pd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub231pd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub231pd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub132ps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub132ps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub132ps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub132ps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub213ps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub213ps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub213ps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub213ps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub231ps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub231ps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmaddsub231ps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmaddsub231ps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub132pd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub132pd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub132pd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub132pd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub213pd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub213pd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub213pd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub213pd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub231pd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub231pd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub231pd     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub231pd     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub132ps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub132ps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub132ps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub132ps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub213ps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub213ps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub213ps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub213ps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub231ps     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub231ps     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub231ps     %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub231ps     (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub132sd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub132sd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub213sd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub213sd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub231sd     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub231sd     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub132ss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub132ss     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub213ss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub213ss     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsub231ss     %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsub231ss     (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd132pd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd132pd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd132pd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd132pd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd213pd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd213pd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd213pd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd213pd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd231pd  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd231pd  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd231pd  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd231pd  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd132ps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd132ps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd132ps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd132ps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd213ps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd213ps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd213ps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd213ps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd231ps  %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd231ps  (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfmsubadd231ps  %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfmsubadd231ps  (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd132pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd132pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd132pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd132pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd213pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd213pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd213pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd213pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd231pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd231pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd231pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd231pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd132ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd132ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd132ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd132ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd213ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd213ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd213ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd213ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd231ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd231ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd231ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd231ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd132sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd132sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd213sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd213sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd231sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd231sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd132ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd132ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd213ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd213ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmadd231ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmadd231ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub132pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub132pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub132pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub132pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub213pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub213pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub213pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub213pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub231pd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub231pd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub231pd    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub231pd    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub132ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub132ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub132ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub132ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub213ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub213ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub213ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub213ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub231ps    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub231ps    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub231ps    %ymm0, %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub231ps    (%rax), %ymm1, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub132sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub132sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub213sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub213sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub231sd    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub231sd    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub132ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub132ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub213ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub213ss    (%rax), %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vfnmsub231ss    %xmm0, %xmm1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vfnmsub231ss    (%rax), %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-fsgsbase.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-fsgsbase.s
new file mode 100644 (file)
index 0000000..ee00cdb
--- /dev/null
@@ -0,0 +1,72 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+rdfsbase %eax
+rdfsbase %rax
+
+rdgsbase %eax
+rdgsbase %rax
+
+wrfsbase %edi
+wrfsbase %rdi
+
+wrgsbase %edi
+wrgsbase %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  100    100   25.00   *      *      U     rdfsbasel      %eax
+# CHECK-NEXT:  100    100   25.00   *      *      U     rdfsbaseq      %rax
+# CHECK-NEXT:  100    100   25.00   *      *      U     rdgsbasel      %eax
+# CHECK-NEXT:  100    100   25.00   *      *      U     rdgsbaseq      %rax
+# CHECK-NEXT:  100    100   25.00   *      *      U     wrfsbasel      %edi
+# CHECK-NEXT:  100    100   25.00   *      *      U     wrfsbaseq      %rdi
+# CHECK-NEXT:  100    100   25.00   *      *      U     wrgsbasel      %edi
+# CHECK-NEXT:  100    100   25.00   *      *      U     wrgsbaseq      %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     200.00 200.00 200.00 200.00  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdfsbasel       %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdfsbaseq       %rax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdgsbasel       %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdgsbaseq       %rax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrfsbasel       %edi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrfsbaseq       %rdi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrgsbasel       %edi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrgsbaseq       %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-gfni.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-gfni.s
new file mode 100644 (file)
index 0000000..7cbc22c
--- /dev/null
@@ -0,0 +1,65 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+gf2p8affineinvqb    $0, %xmm0, %xmm1
+gf2p8affineinvqb    $0, (%rax), %xmm1
+
+gf2p8affineqb       $0, %xmm0, %xmm1
+gf2p8affineqb       $0, (%rax), %xmm1
+
+gf2p8mulb           %xmm0, %xmm1
+gf2p8mulb           (%rax), %xmm1
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        gf2p8affineinvqb       $0, %xmm0, %xmm1
+# CHECK-NEXT:  1      10    0.50    *                   gf2p8affineinvqb       $0, (%rax), %xmm1
+# CHECK-NEXT:  1      3     0.50                        gf2p8affineqb  $0, %xmm0, %xmm1
+# CHECK-NEXT:  1      10    0.50    *                   gf2p8affineqb  $0, (%rax), %xmm1
+# CHECK-NEXT:  1      1     0.25                        gf2p8mulb      %xmm0, %xmm1
+# CHECK-NEXT:  1      8     0.50    *                   gf2p8mulb      (%rax), %xmm1
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.50   0.50   0.50   2.50   1.50   1.50    -     1.00   1.00   1.00   1.00   1.00   1.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     gf2p8affineinvqb        $0, %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     gf2p8affineinvqb        $0, (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     gf2p8affineqb   $0, %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     gf2p8affineqb   $0, (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     gf2p8mulb       %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     gf2p8mulb       (%rax), %xmm1
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-lea.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-lea.s
new file mode 100644 (file)
index 0000000..d259949
--- /dev/null
@@ -0,0 +1,452 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+lea 0(), %cx
+lea 0(), %ecx
+lea 0(), %rcx
+lea (%eax), %cx
+lea (%eax), %ecx
+lea (%eax), %rcx
+lea (%rax), %cx
+lea (%rax), %ecx
+lea (%rax), %rcx
+lea (, %ebx), %cx
+lea (, %ebx), %ecx
+lea (, %ebx), %rcx
+lea (, %rbx), %cx
+lea (, %rbx), %ecx
+lea (, %rbx), %rcx
+lea (, %ebx, 1), %cx
+lea (, %ebx, 1), %ecx
+lea (, %ebx, 1), %rcx
+lea (, %rbx, 1), %cx
+lea (, %rbx, 1), %ecx
+lea (, %rbx, 1), %rcx
+lea (, %ebx, 2), %cx
+lea (, %ebx, 2), %ecx
+lea (, %ebx, 2), %rcx
+lea (, %rbx, 2), %cx
+lea (, %rbx, 2), %ecx
+lea (, %rbx, 2), %rcx
+lea (%eax, %ebx), %cx
+lea (%eax, %ebx), %ecx
+lea (%eax, %ebx), %rcx
+lea (%rax, %rbx), %cx
+lea (%rax, %rbx), %ecx
+lea (%rax, %rbx), %rcx
+lea (%eax, %ebx, 1), %cx
+lea (%eax, %ebx, 1), %ecx
+lea (%eax, %ebx, 1), %rcx
+lea (%rax, %rbx, 1), %cx
+lea (%rax, %rbx, 1), %ecx
+lea (%rax, %rbx, 1), %rcx
+lea (%eax, %ebx, 2), %cx
+lea (%eax, %ebx, 2), %ecx
+lea (%eax, %ebx, 2), %rcx
+lea (%rax, %rbx, 2), %cx
+lea (%rax, %rbx, 2), %ecx
+lea (%rax, %rbx, 2), %rcx
+
+lea -16(), %cx
+lea -16(), %ecx
+lea -16(), %rcx
+lea -16(%eax), %cx
+lea -16(%eax), %ecx
+lea -16(%eax), %rcx
+lea -16(%rax), %cx
+lea -16(%rax), %ecx
+lea -16(%rax), %rcx
+lea -16(, %ebx), %cx
+lea -16(, %ebx), %ecx
+lea -16(, %ebx), %rcx
+lea -16(, %rbx), %cx
+lea -16(, %rbx), %ecx
+lea -16(, %rbx), %rcx
+lea -16(, %ebx, 1), %cx
+lea -16(, %ebx, 1), %ecx
+lea -16(, %ebx, 1), %rcx
+lea -16(, %rbx, 1), %cx
+lea -16(, %rbx, 1), %ecx
+lea -16(, %rbx, 1), %rcx
+lea -16(, %ebx, 2), %cx
+lea -16(, %ebx, 2), %ecx
+lea -16(, %ebx, 2), %rcx
+lea -16(, %rbx, 2), %cx
+lea -16(, %rbx, 2), %ecx
+lea -16(, %rbx, 2), %rcx
+lea -16(%eax, %ebx), %cx
+lea -16(%eax, %ebx), %ecx
+lea -16(%eax, %ebx), %rcx
+lea -16(%rax, %rbx), %cx
+lea -16(%rax, %rbx), %ecx
+lea -16(%rax, %rbx), %rcx
+lea -16(%eax, %ebx, 1), %cx
+lea -16(%eax, %ebx, 1), %ecx
+lea -16(%eax, %ebx, 1), %rcx
+lea -16(%rax, %rbx, 1), %cx
+lea -16(%rax, %rbx, 1), %ecx
+lea -16(%rax, %rbx, 1), %rcx
+lea -16(%eax, %ebx, 2), %cx
+lea -16(%eax, %ebx, 2), %ecx
+lea -16(%eax, %ebx, 2), %rcx
+lea -16(%rax, %rbx, 2), %cx
+lea -16(%rax, %rbx, 2), %ecx
+lea -16(%rax, %rbx, 2), %rcx
+
+lea 1024(), %cx
+lea 1024(), %ecx
+lea 1024(), %rcx
+lea 1024(%eax), %cx
+lea 1024(%eax), %ecx
+lea 1024(%eax), %rcx
+lea 1024(%rax), %cx
+lea 1024(%rax), %ecx
+lea 1024(%rax), %rcx
+lea 1024(, %ebx), %cx
+lea 1024(, %ebx), %ecx
+lea 1024(, %ebx), %rcx
+lea 1024(, %rbx), %cx
+lea 1024(, %rbx), %ecx
+lea 1024(, %rbx), %rcx
+lea 1024(, %ebx, 1), %cx
+lea 1024(, %ebx, 1), %ecx
+lea 1024(, %ebx, 1), %rcx
+lea 1024(, %rbx, 1), %cx
+lea 1024(, %rbx, 1), %ecx
+lea 1024(, %rbx, 1), %rcx
+lea 1024(, %ebx, 2), %cx
+lea 1024(, %ebx, 2), %ecx
+lea 1024(, %ebx, 2), %rcx
+lea 1024(, %rbx, 2), %cx
+lea 1024(, %rbx, 2), %ecx
+lea 1024(, %rbx, 2), %rcx
+lea 1024(%eax, %ebx), %cx
+lea 1024(%eax, %ebx), %ecx
+lea 1024(%eax, %ebx), %rcx
+lea 1024(%rax, %rbx), %cx
+lea 1024(%rax, %rbx), %ecx
+lea 1024(%rax, %rbx), %rcx
+lea 1024(%eax, %ebx, 1), %cx
+lea 1024(%eax, %ebx, 1), %ecx
+lea 1024(%eax, %ebx, 1), %rcx
+lea 1024(%rax, %rbx, 1), %cx
+lea 1024(%rax, %rbx, 1), %ecx
+lea 1024(%rax, %rbx, 1), %rcx
+lea 1024(%eax, %ebx, 2), %cx
+lea 1024(%eax, %ebx, 2), %ecx
+lea 1024(%eax, %ebx, 2), %rcx
+lea 1024(%rax, %rbx, 2), %cx
+lea 1024(%rax, %rbx, 2), %ecx
+lea 1024(%rax, %rbx, 2), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  2      2     1.00                        leaw   0, %cx
+# CHECK-NEXT:  1      1     0.33                        leal   0, %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   0, %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%eax), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (%eax), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (%eax), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%rax), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (%rax), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (%rax), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (,%ebx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   (,%ebx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   (,%ebx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (,%rbx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   (,%rbx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   (,%rbx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%eax,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (%eax,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (%eax,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%rax,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (%rax,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (%rax,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%eax,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (%eax,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (%eax,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%rax,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   (%rax,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   (%rax,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%eax,%ebx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   (%eax,%ebx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   (%eax,%ebx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   (%rax,%rbx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   (%rax,%rbx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   (%rax,%rbx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16, %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16, %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16, %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%eax), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16(%eax), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16(%eax), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%rax), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16(%rax), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16(%rax), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16(,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16(,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16(,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16(,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16(,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16(,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   -16(,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   -16(,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(,%ebx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(,%ebx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(,%ebx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(,%rbx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(,%rbx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(,%rbx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%eax,%ebx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(%eax,%ebx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(%eax,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%rax,%rbx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(%rax,%rbx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(%rax,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%eax,%ebx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(%eax,%ebx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(%eax,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%rax,%rbx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(%rax,%rbx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(%rax,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%eax,%ebx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   -16(%rax,%rbx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024, %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024, %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024, %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%eax), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024(%eax), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024(%eax), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%rax), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024(%rax), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024(%rax), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024(,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024(,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024(,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024(,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(,%ebx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024(,%ebx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024(,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(,%rbx), %cx
+# CHECK-NEXT:  1      1     0.33                        leal   1024(,%rbx), %ecx
+# CHECK-NEXT:  1      1     0.33                        leaq   1024(,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(,%ebx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(,%ebx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(,%ebx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(,%rbx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(,%rbx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(,%rbx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%eax,%ebx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(%eax,%ebx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(%eax,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%rax,%rbx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(%rax,%rbx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(%rax,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%eax,%ebx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(%eax,%ebx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(%eax,%ebx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%rax,%rbx), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(%rax,%rbx), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(%rax,%rbx), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%eax,%ebx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT:  2      2     1.00                        leaw   1024(%rax,%rbx,2), %cx
+# CHECK-NEXT:  2      2     0.25                        leal   1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT:  2      2     0.25                        leaq   1024(%rax,%rbx,2), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 16.67  16.67  16.67  55.00  55.00  55.00  55.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    0, %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    0, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    0, %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%eax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%eax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%eax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%rax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%rax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%rax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (,%ebx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (,%ebx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (,%ebx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (,%rbx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (,%rbx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (,%rbx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%eax,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%eax,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%eax,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%rax,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%rax,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%rax,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%eax,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%eax,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%eax,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%rax,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%rax,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%rax,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%eax,%ebx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%eax,%ebx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%eax,%ebx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    (%rax,%rbx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    (%rax,%rbx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    (%rax,%rbx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16, %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16, %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%eax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%eax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%eax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%rax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%rax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%rax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(,%ebx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(,%ebx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(,%ebx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(,%rbx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(,%rbx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(,%rbx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%eax,%ebx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%eax,%ebx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%eax,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%rax,%rbx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%rax,%rbx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%rax,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%eax,%ebx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%eax,%ebx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%eax,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%rax,%rbx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%rax,%rbx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%rax,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%eax,%ebx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%eax,%ebx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%eax,%ebx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    -16(%rax,%rbx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    -16(%rax,%rbx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    -16(%rax,%rbx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024, %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024, %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%eax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%eax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%eax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%rax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%rax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%rax), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(,%ebx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(,%ebx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(,%rbx), %cx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(,%rbx), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(,%ebx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(,%ebx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(,%ebx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(,%rbx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(,%rbx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(,%rbx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%eax,%ebx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%eax,%ebx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%eax,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%rax,%rbx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%rax,%rbx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%rax,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%eax,%ebx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%eax,%ebx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%eax,%ebx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%rax,%rbx), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%rax,%rbx), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%rax,%rbx), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%eax,%ebx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%eax,%ebx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%eax,%ebx,2), %rcx
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaw    1024(%rax,%rbx,2), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leal    1024(%rax,%rbx,2), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leaq    1024(%rax,%rbx,2), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-lzcnt.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-lzcnt.s
new file mode 100644 (file)
index 0000000..1339ad5
--- /dev/null
@@ -0,0 +1,65 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+lzcntw      %cx, %cx
+lzcntw      (%rax), %cx
+
+lzcntl      %eax, %ecx
+lzcntl      (%rax), %ecx
+
+lzcntq      %rax, %rcx
+lzcntq      (%rax), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     1.00                        lzcntw %cx, %cx
+# CHECK-NEXT:  1      5     0.33    *                   lzcntw (%rax), %cx
+# CHECK-NEXT:  1      1     0.25                        lzcntl %eax, %ecx
+# CHECK-NEXT:  1      5     0.33    *                   lzcntl (%rax), %ecx
+# CHECK-NEXT:  1      1     0.25                        lzcntq %rax, %rcx
+# CHECK-NEXT:  1      5     0.33    *                   lzcntq (%rax), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 1.00   1.00   1.00   2.25   2.25   2.25   2.25    -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   1.00   1.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lzcntw  %cx, %cx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lzcntw  (%rax), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lzcntl  %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lzcntl  (%rax), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lzcntq  %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lzcntq  (%rax), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-mmx.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-mmx.s
new file mode 100644 (file)
index 0000000..23d352c
--- /dev/null
@@ -0,0 +1,408 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+emms
+
+movd        %eax, %mm2
+movd        (%rax), %mm2
+
+movd        %mm0, %ecx
+movd        %mm0, (%rax)
+
+movq        %rax, %mm2
+movq        (%rax), %mm2
+
+movq        %mm0, %rcx
+movq        %mm0, (%rax)
+
+packsswb    %mm0, %mm2
+packsswb    (%rax), %mm2
+
+packssdw    %mm0, %mm2
+packssdw    (%rax), %mm2
+
+packuswb    %mm0, %mm2
+packuswb    (%rax), %mm2
+
+paddb       %mm0, %mm2
+paddb       (%rax), %mm2
+
+paddd       %mm0, %mm2
+paddd       (%rax), %mm2
+
+paddsb      %mm0, %mm2
+paddsb      (%rax), %mm2
+
+paddsw      %mm0, %mm2
+paddsw      (%rax), %mm2
+
+paddusb     %mm0, %mm2
+paddusb     (%rax), %mm2
+
+paddusw     %mm0, %mm2
+paddusw     (%rax), %mm2
+
+paddw       %mm0, %mm2
+paddw       (%rax), %mm2
+
+pand        %mm0, %mm2
+pand        (%rax), %mm2
+
+pandn       %mm0, %mm2
+pandn       (%rax), %mm2
+
+pcmpeqb     %mm0, %mm2
+pcmpeqb     (%rax), %mm2
+
+pcmpeqd     %mm0, %mm2
+pcmpeqd     (%rax), %mm2
+
+pcmpeqw     %mm0, %mm2
+pcmpeqw     (%rax), %mm2
+
+pcmpgtb     %mm0, %mm2
+pcmpgtb     (%rax), %mm2
+
+pcmpgtd     %mm0, %mm2
+pcmpgtd     (%rax), %mm2
+
+pcmpgtw     %mm0, %mm2
+pcmpgtw     (%rax), %mm2
+
+pmaddwd     %mm0, %mm2
+pmaddwd     (%rax), %mm2
+
+pmulhw      %mm0, %mm2
+pmulhw      (%rax), %mm2
+
+pmullw      %mm0, %mm2
+pmullw      (%rax), %mm2
+
+por         %mm0, %mm2
+por         (%rax), %mm2
+
+pslld       $1, %mm2
+pslld       %mm0, %mm2
+pslld       (%rax), %mm2
+
+psllq       $1, %mm2
+psllq       %mm0, %mm2
+psllq       (%rax), %mm2
+
+psllw       $1, %mm2
+psllw       %mm0, %mm2
+psllw       (%rax), %mm2
+
+psrad       $1, %mm2
+psrad       %mm0, %mm2
+psrad       (%rax), %mm2
+
+psraw       $1, %mm2
+psraw       %mm0, %mm2
+psraw       (%rax), %mm2
+
+psrld       $1, %mm2
+psrld       %mm0, %mm2
+psrld       (%rax), %mm2
+
+psrlq       $1, %mm2
+psrlq       %mm0, %mm2
+psrlq       (%rax), %mm2
+
+psrlw       $1, %mm2
+psrlw       %mm0, %mm2
+psrlw       (%rax), %mm2
+
+psubb       %mm0, %mm2
+psubb       (%rax), %mm2
+
+psubd       %mm0, %mm2
+psubd       (%rax), %mm2
+
+psubsb      %mm0, %mm2
+psubsb      (%rax), %mm2
+
+psubsw      %mm0, %mm2
+psubsw      (%rax), %mm2
+
+psubusb     %mm0, %mm2
+psubusb     (%rax), %mm2
+
+psubusw     %mm0, %mm2
+psubusw     (%rax), %mm2
+
+psubw       %mm0, %mm2
+psubw       (%rax), %mm2
+
+punpckhbw   %mm0, %mm2
+punpckhbw   (%rax), %mm2
+
+punpckhdq   %mm0, %mm2
+punpckhdq   (%rax), %mm2
+
+punpckhwd   %mm0, %mm2
+punpckhwd   (%rax), %mm2
+
+punpcklbw   %mm0, %mm2
+punpcklbw   (%rax), %mm2
+
+punpckldq   %mm0, %mm2
+punpckldq   (%rax), %mm2
+
+punpcklwd   %mm0, %mm2
+punpcklwd   (%rax), %mm2
+
+pxor        %mm0, %mm2
+pxor        (%rax), %mm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      2     0.25    *      *      U     emms
+# CHECK-NEXT:  2      1     1.00                        movd   %eax, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   movd   (%rax), %mm2
+# CHECK-NEXT:  1      1     1.00                        movd   %mm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *      U     movd   %mm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        movq   %rax, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   movq   (%rax), %mm2
+# CHECK-NEXT:  1      1     1.00                        movq   %mm0, %rcx
+# CHECK-NEXT:  1      1     1.00           *            movq   %mm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        packsswb       %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packsswb       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        packssdw       %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packssdw       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        packuswb       %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   packuswb       (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddb  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddb  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddd  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddd  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddsb %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddsb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddsw %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddsw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddusb        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddusb        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddusw        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddusw        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pand   %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pand   (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pandn  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pandn  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqb        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqb        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqd        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqd        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqw        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqw        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtb        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtb        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtd        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtd        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtw        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtw        (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        pmaddwd        %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmaddwd        (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        pmulhw %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulhw (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        pmullw %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmullw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        por    %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   por    (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        pslld  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        pslld  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pslld  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psllq  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psllq  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psllq  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psllw  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psllw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psllw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psrad  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psrad  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psrad  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psraw  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psraw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psraw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psrld  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psrld  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psrld  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psrlq  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psrlq  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psrlq  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        psrlw  $1, %mm2
+# CHECK-NEXT:  1      1     0.50                        psrlw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psrlw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubb  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubb  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubd  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubd  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubsb %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubsb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubsw %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubsw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubusb        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubusb        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubusw        %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubusw        (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubw  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        punpckhbw      %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhbw      (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        punpckhdq      %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhdq      (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        punpckhwd      %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhwd      (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        punpcklbw      %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   punpcklbw      (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        punpckldq      %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckldq      (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        punpcklwd      %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   punpcklwd      (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pxor   %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pxor   (%rax), %mm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -     17.00  35.00  35.00  17.00  27.00  27.00  2.00   16.00  16.00  16.00  15.33  15.33  15.33  1.00   1.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     emms
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   0.50   0.50    -      -      -      -      -      -      -      -      -     movd    %eax, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movd    (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     movd    %mm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movd    %mm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   0.50   0.50    -      -      -      -      -      -      -      -      -     movq    %rax, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movq    (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     movq    %mm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movq    %mm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     packsswb        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packsswb        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     packssdw        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packssdw        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     packuswb        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packuswb        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddd   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddd   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddsb  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddsb  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddusb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddusb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddusw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddusw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pand    %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pand    (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pandn   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pandn   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqd %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqd (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtd %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtd (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmaddwd %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaddwd (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulhw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulhw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmullw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmullw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     por     %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     por     (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pslld   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pslld   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pslld   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psllq   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psllq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psllq   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psllw   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psllw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psllw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrad   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrad   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrad   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psraw   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psraw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psraw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrld   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrld   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrld   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrlq   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrlq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrlq   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrlw   $1, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrlw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrlw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubd   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubd   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubsb  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubsb  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubusb %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubusb (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubusw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubusw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhbw       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhbw       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhdq       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhdq       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhwd       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhwd       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpcklbw       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpcklbw       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckldq       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckldq       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpcklwd       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpcklwd       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pxor    %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pxor    (%rax), %mm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-movbe.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-movbe.s
new file mode 100644 (file)
index 0000000..5e180f3
--- /dev/null
@@ -0,0 +1,65 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+movbe  %cx, (%rax)
+movbe  (%rax), %cx
+
+movbe  %ecx, (%rax)
+movbe  (%rax), %ecx
+
+movbe  %rcx, (%rax)
+movbe  (%rax), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  2      1     1.00           *            movbew %cx, (%rax)
+# CHECK-NEXT:  1      4     1.00    *                   movbew (%rax), %cx
+# CHECK-NEXT:  2      1     1.00           *            movbel %ecx, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   movbel (%rax), %ecx
+# CHECK-NEXT:  2      1     1.00           *            movbeq %rcx, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   movbeq (%rax), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 2.00   2.00   2.00   4.50   4.50   4.50   4.50    -      -      -      -      -      -      -      -     2.00   2.00   2.00   1.00   1.00   1.00   1.50   1.50
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   movbew  %cx, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movbew  (%rax), %cx
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   movbel  %ecx, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movbel  (%rax), %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   movbeq  %rcx, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movbeq  (%rax), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-pclmul.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-pclmul.s
new file mode 100644 (file)
index 0000000..a36fb2a
--- /dev/null
@@ -0,0 +1,51 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+pclmulqdq     $11, %xmm0, %xmm2
+pclmulqdq     $11, (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  4      4     2.00                        pclmulqdq      $11, %xmm0, %xmm2
+# CHECK-NEXT:  4      11    2.00    *                   pclmulqdq      $11, (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pclmulqdq       $11, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pclmulqdq       $11, (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-popcnt.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-popcnt.s
new file mode 100644 (file)
index 0000000..aa77de9
--- /dev/null
@@ -0,0 +1,65 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+popcntw     %cx, %cx
+popcntw     (%rax), %cx
+
+popcntl     %eax, %ecx
+popcntl     (%rax), %ecx
+
+popcntq     %rax, %rcx
+popcntq     (%rax), %rcx
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     1.00                        popcntw        %cx, %cx
+# CHECK-NEXT:  1      5     0.33    *                   popcntw        (%rax), %cx
+# CHECK-NEXT:  1      1     0.25                        popcntl        %eax, %ecx
+# CHECK-NEXT:  1      5     0.33    *                   popcntl        (%rax), %ecx
+# CHECK-NEXT:  1      1     0.25                        popcntq        %rax, %rcx
+# CHECK-NEXT:  1      5     0.33    *                   popcntq        (%rax), %rcx
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 1.00   1.00   1.00   2.25   2.25   2.25   2.25    -      -      -      -      -      -      -      -     1.00   1.00   1.00   1.00   1.00   1.00    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     popcntw %cx, %cx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     popcntw (%rax), %cx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     popcntl %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     popcntl (%rax), %ecx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     popcntq %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     popcntq (%rax), %rcx
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-prefetchw.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-prefetchw.s
new file mode 100644 (file)
index 0000000..20d211c
--- /dev/null
@@ -0,0 +1,51 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+prefetch    (%rax)
+prefetchw   (%rax)
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      5     0.33    *      *            prefetch       (%rax)
+# CHECK-NEXT:  1      5     0.33    *      *            prefetchw      (%rax)
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 0.67   0.67   0.67    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.67   0.67   0.67    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     prefetch        (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     prefetchw       (%rax)
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-rdrand.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-rdrand.s
new file mode 100644 (file)
index 0000000..7552386
--- /dev/null
@@ -0,0 +1,54 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+rdrand   %ax
+rdrand   %eax
+rdrand   %rax
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  100    100   25.00                 U     rdrandw        %ax
+# CHECK-NEXT:  100    100   25.00                 U     rdrandl        %eax
+# CHECK-NEXT:  100    100   25.00                 U     rdrandq        %rax
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     75.00  75.00  75.00  75.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdrandw %ax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdrandl %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdrandq %rax
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-rdseed.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-rdseed.s
new file mode 100644 (file)
index 0000000..e2b028c
--- /dev/null
@@ -0,0 +1,54 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+rdseed   %ax
+rdseed   %eax
+rdseed   %rax
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  100    100   25.00                 U     rdseedw        %ax
+# CHECK-NEXT:  100    100   25.00                 U     rdseedl        %eax
+# CHECK-NEXT:  100    100   25.00                 U     rdseedq        %rax
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     75.00  75.00  75.00  75.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdseedw %ax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdseedl %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdseedq %rax
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse1.s
new file mode 100644 (file)
index 0000000..6879fb2
--- /dev/null
@@ -0,0 +1,476 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+addps       %xmm0, %xmm2
+addps       (%rax), %xmm2
+
+addss       %xmm0, %xmm2
+addss       (%rax), %xmm2
+
+andnps      %xmm0, %xmm2
+andnps      (%rax), %xmm2
+
+andps       %xmm0, %xmm2
+andps       (%rax), %xmm2
+
+cmpps       $0, %xmm0, %xmm2
+cmpps       $0, (%rax), %xmm2
+
+cmpss       $0, %xmm0, %xmm2
+cmpss       $0, (%rax), %xmm2
+
+comiss      %xmm0, %xmm1
+comiss      (%rax), %xmm1
+
+cvtpi2ps    %mm0, %xmm2
+cvtpi2ps    (%rax), %xmm2
+
+cvtps2pi    %xmm0, %mm2
+cvtps2pi    (%rax), %mm2
+
+cvtsi2ss    %ecx, %xmm2
+cvtsi2ss    %rcx, %xmm2
+cvtsi2ssl   (%rax), %xmm2
+cvtsi2ssq   (%rax), %xmm2
+
+cvtss2si    %xmm0, %ecx
+cvtss2si    %xmm0, %rcx
+cvtss2si    (%rax), %ecx
+cvtss2si    (%rax), %rcx
+
+cvttps2pi   %xmm0, %mm2
+cvttps2pi   (%rax), %mm2
+
+cvttss2si   %xmm0, %ecx
+cvttss2si   %xmm0, %rcx
+cvttss2si   (%rax), %ecx
+cvttss2si   (%rax), %rcx
+
+divps       %xmm0, %xmm2
+divps       (%rax), %xmm2
+
+divss       %xmm0, %xmm2
+divss       (%rax), %xmm2
+
+ldmxcsr     (%rax)
+
+maskmovq    %mm0, %mm1
+
+maxps       %xmm0, %xmm2
+maxps       (%rax), %xmm2
+
+maxss       %xmm0, %xmm2
+maxss       (%rax), %xmm2
+
+minps       %xmm0, %xmm2
+minps       (%rax), %xmm2
+
+minss       %xmm0, %xmm2
+minss       (%rax), %xmm2
+
+movaps      %xmm0, %xmm2
+movaps      %xmm0, (%rax)
+movaps      (%rax), %xmm2
+
+movhlps     %xmm0, %xmm2
+movlhps     %xmm0, %xmm2
+
+movhps      %xmm0, (%rax)
+movhps      (%rax), %xmm2
+
+movlps      %xmm0, (%rax)
+movlps      (%rax), %xmm2
+
+movmskps    %xmm0, %rcx
+
+movntps     %xmm0, (%rax)
+movntq      %mm0, (%rax)
+
+movss       %xmm0, %xmm2
+movss       %xmm0, (%rax)
+movss       (%rax), %xmm2
+
+movups      %xmm0, %xmm2
+movups      %xmm0, (%rax)
+movups      (%rax), %xmm2
+
+mulps       %xmm0, %xmm2
+mulps       (%rax), %xmm2
+
+mulss       %xmm0, %xmm2
+mulss       (%rax), %xmm2
+
+orps        %xmm0, %xmm2
+orps        (%rax), %xmm2
+
+pavgb       %mm0, %mm2
+pavgb       (%rax), %mm2
+
+pavgw       %mm0, %mm2
+pavgw       (%rax), %mm2
+
+pextrw      $1, %mm0, %rcx
+
+pinsrw      $1, %rax, %mm2
+pinsrw      $1, (%rax), %mm2
+
+pmaxsw      %mm0, %mm2
+pmaxsw      (%rax), %mm2
+
+pmaxub      %mm0, %mm2
+pmaxub      (%rax), %mm2
+
+pminsw      %mm0, %mm2
+pminsw      (%rax), %mm2
+
+pminub      %mm0, %mm2
+pminub      (%rax), %mm2
+
+pmovmskb    %mm0, %rcx
+
+pmulhuw     %mm0, %mm2
+pmulhuw     (%rax), %mm2
+
+prefetcht0  (%rax)
+prefetcht1  (%rax)
+prefetcht2  (%rax)
+prefetchnta (%rax)
+
+psadbw      %mm0, %mm2
+psadbw      (%rax), %mm2
+
+pshufw      $1, %mm0, %mm2
+pshufw      $1, (%rax), %mm2
+
+rcpps       %xmm0, %xmm2
+rcpps       (%rax), %xmm2
+
+rcpss       %xmm0, %xmm2
+rcpss       (%rax), %xmm2
+
+rsqrtps     %xmm0, %xmm2
+rsqrtps     (%rax), %xmm2
+
+rsqrtss     %xmm0, %xmm2
+rsqrtss     (%rax), %xmm2
+
+sfence
+
+shufps      $1, %xmm0, %xmm2
+shufps      $1, (%rax), %xmm2
+
+sqrtps      %xmm0, %xmm2
+sqrtps      (%rax), %xmm2
+
+sqrtss      %xmm0, %xmm2
+sqrtss      (%rax), %xmm2
+
+stmxcsr     (%rax)
+
+subps       %xmm0, %xmm2
+subps       (%rax), %xmm2
+
+subss       %xmm0, %xmm2
+subss       (%rax), %xmm2
+
+ucomiss     %xmm0, %xmm1
+ucomiss     (%rax), %xmm1
+
+unpckhps    %xmm0, %xmm2
+unpckhps    (%rax), %xmm2
+
+unpcklps    %xmm0, %xmm2
+unpcklps    (%rax), %xmm2
+
+xorps       %xmm0, %xmm2
+xorps       (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        addps  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   addps  (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        addss  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   addss  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        andnps %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   andnps (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        andps  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   andps  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqps        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   cmpeqps        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqss        %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   cmpeqss        (%rax), %xmm2
+# CHECK-NEXT:  2      4     1.00                        comiss %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   comiss (%rax), %xmm1
+# CHECK-NEXT:  1      3     0.50                        cvtpi2ps       %mm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtpi2ps       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        cvtps2pi       %xmm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtps2pi       (%rax), %mm2
+# CHECK-NEXT:  2      4     1.00                        cvtsi2ss       %ecx, %xmm2
+# CHECK-NEXT:  2      4     1.00                        cvtsi2ss       %rcx, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cvtsi2ssl      (%rax), %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cvtsi2ssq      (%rax), %xmm2
+# CHECK-NEXT:  2      5     2.50                        cvtss2si       %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        cvtss2si       %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   cvtss2si       (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   cvtss2si       (%rax), %rcx
+# CHECK-NEXT:  1      3     0.50                        cvttps2pi      %xmm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   cvttps2pi      (%rax), %mm2
+# CHECK-NEXT:  2      5     2.50                        cvttss2si      %xmm0, %ecx
+# CHECK-NEXT:  2      5     2.50                        cvttss2si      %xmm0, %rcx
+# CHECK-NEXT:  2      12    2.50    *                   cvttss2si      (%rax), %ecx
+# CHECK-NEXT:  2      12    2.50    *                   cvttss2si      (%rax), %rcx
+# CHECK-NEXT:  1      11    3.00                        divps  %xmm0, %xmm2
+# CHECK-NEXT:  1      18    3.00    *                   divps  (%rax), %xmm2
+# CHECK-NEXT:  1      11    3.00                        divss  %xmm0, %xmm2
+# CHECK-NEXT:  1      18    3.00    *                   divss  (%rax), %xmm2
+# CHECK-NEXT:  1      5     1.50    *      *      U     ldmxcsr        (%rax)
+# CHECK-NEXT:  1      1     0.50    *      *      U     maskmovq       %mm0, %mm1
+# CHECK-NEXT:  1      1     0.50                        maxps  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   maxps  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        maxss  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   maxss  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        minps  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   minps  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        minss  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   minss  (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        movaps %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movaps %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movaps (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        movhlps        %xmm0, %xmm2
+# CHECK-NEXT:  1      1     0.50                        movlhps        %xmm0, %xmm2
+# CHECK-NEXT:  2      2     1.00           *            movhps %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movhps (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movlps %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movlps (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        movmskps       %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *            movntps        %xmm0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *      U     movntq %mm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        movss  %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movss  %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movss  (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        movups %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movups %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movups (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        mulps  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   mulps  (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        mulss  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   mulss  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        orps   %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   orps   (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pavgb  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pavgb  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pavgw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pavgw  (%rax), %mm2
+# CHECK-NEXT:  2      1     1.00                        pextrw $1, %mm0, %ecx
+# CHECK-NEXT:  2      2     1.00                        pinsrw $1, %eax, %mm2
+# CHECK-NEXT:  1      8     1.50    *                   pinsrw $1, (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pmaxsw %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxsw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pmaxub %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxub (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pminsw %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pminsw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        pminub %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pminub (%rax), %mm2
+# CHECK-NEXT:  1      1     1.00                        pmovmskb       %mm0, %ecx
+# CHECK-NEXT:  1      3     0.50                        pmulhuw        %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulhuw        (%rax), %mm2
+# CHECK-NEXT:  1      5     0.33    *      *            prefetcht0     (%rax)
+# CHECK-NEXT:  1      5     0.33    *      *            prefetcht1     (%rax)
+# CHECK-NEXT:  1      5     0.33    *      *            prefetcht2     (%rax)
+# CHECK-NEXT:  1      5     0.33    *      *            prefetchnta    (%rax)
+# CHECK-NEXT:  1      3     0.50                        psadbw %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   psadbw (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        pshufw $1, %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pshufw $1, (%rax), %mm2
+# CHECK-NEXT:  1      4     0.50                        rcpps  %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   rcpps  (%rax), %xmm2
+# CHECK-NEXT:  1      4     0.50                        rcpss  %xmm0, %xmm2
+# CHECK-NEXT:  1      11    0.50    *                   rcpss  (%rax), %xmm2
+# CHECK-NEXT:  1      4     1.00                        rsqrtps        %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   rsqrtps        (%rax), %xmm2
+# CHECK-NEXT:  1      4     1.00                        rsqrtss        %xmm0, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   rsqrtss        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.33    *      *      U     sfence
+# CHECK-NEXT:  1      1     0.50                        shufps $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   shufps $1, (%rax), %xmm2
+# CHECK-NEXT:  1      15    5.00                        sqrtps %xmm0, %xmm2
+# CHECK-NEXT:  1      22    5.00    *                   sqrtps (%rax), %xmm2
+# CHECK-NEXT:  1      15    5.00                        sqrtss %xmm0, %xmm2
+# CHECK-NEXT:  1      22    5.00    *                   sqrtss (%rax), %xmm2
+# CHECK-NEXT:  2      2     15.00          *      U     stmxcsr        (%rax)
+# CHECK-NEXT:  1      3     0.50                        subps  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   subps  (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        subss  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   subss  (%rax), %xmm2
+# CHECK-NEXT:  2      4     1.00                        ucomiss        %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   ucomiss        (%rax), %xmm1
+# CHECK-NEXT:  1      1     0.50                        unpckhps       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   unpckhps       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        unpcklps       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   unpcklps       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        xorps  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   xorps  (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 2.00   2.00   2.00   16.50  16.50  16.50  16.50   -     24.50  66.50  46.00  38.00  33.00  33.00  7.00   22.33  22.33  22.33  19.33  19.33  19.33  4.00   4.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     addps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     addss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     andnps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andnps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     andps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     cmpeqps %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpeqps (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     cmpeqss %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpeqss (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     comiss  %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     comiss  (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtpi2ps        %mm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtpi2ps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtps2pi        %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtps2pi        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvtsi2ss        %ecx, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvtsi2ss        %rcx, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsi2ssl       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsi2ssq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     cvtss2si        %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     cvtss2si        %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtss2si        (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtss2si        (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvttps2pi       %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttps2pi       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     cvttss2si       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50    -      -      -      -      -      -      -      -      -      -      -     cvttss2si       %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttss2si       (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.50   2.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttss2si       (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     divps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     divss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divss   (%rax), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33   1.50   1.50   1.50   1.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ldmxcsr (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     maskmovq        %mm0, %mm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     maxps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     maxps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     maxss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     maxss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     minps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     minps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     minss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     minss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movaps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movaps  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movaps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movhlps %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movlhps %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movhps  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movhps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movlps  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movlps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     movmskps        %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movntps %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movntq  %mm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movss   %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movups  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movups  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movups  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     mulps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     mulss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     orps    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orps    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pavgb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pavgb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pavgw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pavgw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pextrw  $1, %mm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pinsrw  $1, %eax, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pinsrw  $1, (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxub  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxub  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminsw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminsw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminub  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminub  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovmskb        %mm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulhuw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulhuw (%rax), %mm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     prefetcht0      (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     prefetcht1      (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     prefetcht2      (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     prefetchnta     (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     psadbw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psadbw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pshufw  $1, %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pshufw  $1, (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     rcpps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcpps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     rcpss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcpss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     rsqrtps %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rsqrtps (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     rsqrtss %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rsqrtss (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -      -      -     sfence
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     shufps  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shufps  $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     sqrtps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sqrtps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     sqrtss  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sqrtss  (%rax), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33   15.00  15.00  15.00  15.00   -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   stmxcsr (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     subps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subps   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     subss   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subss   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     ucomiss %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ucomiss (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     unpckhps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     unpckhps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     unpcklps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     unpcklps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     xorps   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorps   (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse2.s
new file mode 100644 (file)
index 0000000..02013b8
--- /dev/null
@@ -0,0 +1,975 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+addpd       %xmm0, %xmm2
+addpd       (%rax), %xmm2
+
+addsd       %xmm0, %xmm2
+addsd       (%rax), %xmm2
+
+andnpd      %xmm0, %xmm2
+andnpd      (%rax), %xmm2
+
+andpd       %xmm0, %xmm2
+andpd       (%rax), %xmm2
+
+clflush     (%rax)
+
+cmppd       $0, %xmm0, %xmm2
+cmppd       $0, (%rax), %xmm2
+
+cmpsd       $0, %xmm0, %xmm2
+cmpsd       $0, (%rax), %xmm2
+
+comisd      %xmm0, %xmm1
+comisd      (%rax), %xmm1
+
+cvtdq2pd    %xmm0, %xmm2
+cvtdq2pd    (%rax), %xmm2
+
+cvtdq2ps    %xmm0, %xmm2
+cvtdq2ps    (%rax), %xmm2
+
+cvtpd2dq    %xmm0, %xmm2
+cvtpd2dq    (%rax), %xmm2
+
+cvtpd2pi    %xmm0, %mm2
+cvtpd2pi    (%rax), %mm2
+
+cvtpd2ps    %xmm0, %xmm2
+cvtpd2ps    (%rax), %xmm2
+
+cvtpi2pd    %mm0, %xmm2
+cvtpi2pd    (%rax), %xmm2
+
+cvtps2dq    %xmm0, %xmm2
+cvtps2dq    (%rax), %xmm2
+
+cvtps2pd    %xmm0, %xmm2
+cvtps2pd    (%rax), %xmm2
+
+cvtsd2si    %xmm0, %ecx
+cvtsd2si    %xmm0, %rcx
+cvtsd2si    (%rax), %ecx
+cvtsd2si    (%rax), %rcx
+
+cvtsd2ss    %xmm0, %xmm2
+cvtsd2ss    (%rax), %xmm2
+
+cvtsi2sd    %ecx, %xmm2
+cvtsi2sd    %rcx, %xmm2
+cvtsi2sdl   (%rax), %xmm2
+cvtsi2sdq   (%rax), %xmm2
+
+cvtss2sd    %xmm0, %xmm2
+cvtss2sd    (%rax), %xmm2
+
+cvttpd2dq   %xmm0, %xmm2
+cvttpd2dq   (%rax), %xmm2
+
+cvttpd2pi   %xmm0, %mm2
+cvttpd2pi   (%rax), %mm2
+
+cvttps2dq   %xmm0, %xmm2
+cvttps2dq   (%rax), %xmm2
+
+cvttsd2si   %xmm0, %ecx
+cvttsd2si   %xmm0, %rcx
+cvttsd2si   (%rax), %ecx
+cvttsd2si   (%rax), %rcx
+
+divpd       %xmm0, %xmm2
+divpd       (%rax), %xmm2
+
+divsd       %xmm0, %xmm2
+divsd       (%rax), %xmm2
+
+lfence
+
+maskmovdqu  %xmm0, %xmm1
+
+maxpd       %xmm0, %xmm2
+maxpd       (%rax), %xmm2
+
+maxsd       %xmm0, %xmm2
+maxsd       (%rax), %xmm2
+
+mfence
+
+minpd       %xmm0, %xmm2
+minpd       (%rax), %xmm2
+
+minsd       %xmm0, %xmm2
+minsd       (%rax), %xmm2
+
+movapd      %xmm0, %xmm2
+movapd      %xmm0, (%rax)
+movapd      (%rax), %xmm2
+
+movd        %eax, %xmm2
+movd        (%rax), %xmm2
+
+movd        %xmm0, %ecx
+movd        %xmm0, (%rax)
+
+movdqa      %xmm0, %xmm2
+movdqa      %xmm0, (%rax)
+movdqa      (%rax), %xmm2
+
+movdqu      %xmm0, %xmm2
+movdqu      %xmm0, (%rax)
+movdqu      (%rax), %xmm2
+
+movdq2q     %xmm0, %mm2
+
+movhpd      %xmm0, (%rax)
+movhpd      (%rax), %xmm2
+
+movlpd      %xmm0, (%rax)
+movlpd      (%rax), %xmm2
+
+movmskpd    %xmm0, %rcx
+
+movntil     %eax, (%rax)
+movntiq     %rax, (%rax)
+
+movntdq     %xmm0, (%rax)
+movntpd     %xmm0, (%rax)
+
+movq        %xmm0, %xmm2
+
+movq        %rax, %xmm2
+movq        (%rax), %xmm2
+
+movq        %xmm0, %rcx
+movq        %xmm0, (%rax)
+
+movq2dq     %mm0, %xmm2
+
+movsd       %xmm0, %xmm2
+movsd       %xmm0, (%rax)
+movsd       (%rax), %xmm2
+
+movupd      %xmm0, %xmm2
+movupd      %xmm0, (%rax)
+movupd      (%rax), %xmm2
+
+mulpd       %xmm0, %xmm2
+mulpd       (%rax), %xmm2
+
+mulsd       %xmm0, %xmm2
+mulsd       (%rax), %xmm2
+
+orpd        %xmm0, %xmm2
+orpd        (%rax), %xmm2
+
+packssdw    %xmm0, %xmm2
+packssdw    (%rax), %xmm2
+
+packsswb    %xmm0, %xmm2
+packsswb    (%rax), %xmm2
+
+packuswb    %xmm0, %xmm2
+packuswb    (%rax), %xmm2
+
+paddb       %xmm0, %xmm2
+paddb       (%rax), %xmm2
+
+paddd       %xmm0, %xmm2
+paddd       (%rax), %xmm2
+
+paddq       %mm0, %mm2
+paddq       (%rax), %mm2
+
+paddq       %xmm0, %xmm2
+paddq       (%rax), %xmm2
+
+paddsb      %xmm0, %xmm2
+paddsb      (%rax), %xmm2
+
+paddsw      %xmm0, %xmm2
+paddsw      (%rax), %xmm2
+
+paddusb     %xmm0, %xmm2
+paddusb     (%rax), %xmm2
+
+paddusw     %xmm0, %xmm2
+paddusw     (%rax), %xmm2
+
+paddw       %xmm0, %xmm2
+paddw       (%rax), %xmm2
+
+pand        %xmm0, %xmm2
+pand        (%rax), %xmm2
+
+pandn       %xmm0, %xmm2
+pandn       (%rax), %xmm2
+
+pavgb       %xmm0, %xmm2
+pavgb       (%rax), %xmm2
+
+pavgw       %xmm0, %xmm2
+pavgw       (%rax), %xmm2
+
+pcmpeqb     %xmm0, %xmm2
+pcmpeqb     (%rax), %xmm2
+
+pcmpeqd     %xmm0, %xmm2
+pcmpeqd     (%rax), %xmm2
+
+pcmpeqw     %xmm0, %xmm2
+pcmpeqw     (%rax), %xmm2
+
+pcmpgtb     %xmm0, %xmm2
+pcmpgtb     (%rax), %xmm2
+
+pcmpgtd     %xmm0, %xmm2
+pcmpgtd     (%rax), %xmm2
+
+pcmpgtw     %xmm0, %xmm2
+pcmpgtw     (%rax), %xmm2
+
+pextrw      $1, %xmm0, %rcx
+
+pinsrw      $1, %rax, %xmm0
+pinsrw      $1, (%rax), %xmm0
+
+pmaddwd     %xmm0, %xmm2
+pmaddwd     (%rax), %xmm2
+
+pmaxsw      %xmm0, %xmm2
+pmaxsw      (%rax), %xmm2
+
+pmaxub      %xmm0, %xmm2
+pmaxub      (%rax), %xmm2
+
+pminsw      %xmm0, %xmm2
+pminsw      (%rax), %xmm2
+
+pminub      %xmm0, %xmm2
+pminub      (%rax), %xmm2
+
+pmovmskb    %xmm0, %rcx
+
+pmulhuw     %xmm0, %xmm2
+pmulhuw     (%rax), %xmm2
+
+pmulhw      %xmm0, %xmm2
+pmulhw      (%rax), %xmm2
+
+pmullw      %xmm0, %xmm2
+pmullw      (%rax), %xmm2
+
+pmuludq     %mm0, %mm2
+pmuludq     (%rax), %mm2
+
+pmuludq     %xmm0, %xmm2
+pmuludq     (%rax), %xmm2
+
+por         %xmm0, %xmm2
+por         (%rax), %xmm2
+
+psadbw      %xmm0, %xmm2
+psadbw      (%rax), %xmm2
+
+pshufd      $1, %xmm0, %xmm2
+pshufd      $1, (%rax), %xmm2
+
+pshufhw     $1, %xmm0, %xmm2
+pshufhw     $1, (%rax), %xmm2
+
+pshuflw     $1, %xmm0, %xmm2
+pshuflw     $1, (%rax), %xmm2
+
+pslld       $1, %xmm2
+pslld       %xmm0, %xmm2
+pslld       (%rax), %xmm2
+
+pslldq      $1, %xmm2
+
+psllq       $1, %xmm2
+psllq       %xmm0, %xmm2
+psllq       (%rax), %xmm2
+
+psllw       $1, %xmm2
+psllw       %xmm0, %xmm2
+psllw       (%rax), %xmm2
+
+psrad       $1, %xmm2
+psrad       %xmm0, %xmm2
+psrad       (%rax), %xmm2
+
+psraw       $1, %xmm2
+psraw       %xmm0, %xmm2
+psraw       (%rax), %xmm2
+
+psrld       $1, %xmm2
+psrld       %xmm0, %xmm2
+psrld       (%rax), %xmm2
+
+psrldq      $1, %xmm2
+
+psrlq       $1, %xmm2
+psrlq       %xmm0, %xmm2
+psrlq       (%rax), %xmm2
+
+psrlw       $1, %xmm2
+psrlw       %xmm0, %xmm2
+psrlw       (%rax), %xmm2
+
+psubb       %xmm0, %xmm2
+psubb       (%rax), %xmm2
+
+psubd       %xmm0, %xmm2
+psubd       (%rax), %xmm2
+
+psubq       %mm0, %mm2
+psubq       (%rax), %mm2
+
+psubq       %xmm0, %xmm2
+psubq       (%rax), %xmm2
+
+psubsb      %xmm0, %xmm2
+psubsb      (%rax), %xmm2
+
+psubsw      %xmm0, %xmm2
+psubsw      (%rax), %xmm2
+
+psubusb     %xmm0, %xmm2
+psubusb     (%rax), %xmm2
+
+psubusw     %xmm0, %xmm2
+psubusw     (%rax), %xmm2
+
+psubw       %xmm0, %xmm2
+psubw       (%rax), %xmm2
+
+punpckhbw   %xmm0, %xmm2
+punpckhbw   (%rax), %xmm2
+
+punpckhdq   %xmm0, %xmm2
+punpckhdq   (%rax), %xmm2
+
+punpckhqdq  %xmm0, %xmm2
+punpckhqdq  (%rax), %xmm2
+
+punpckhwd   %xmm0, %xmm2
+punpckhwd   (%rax), %xmm2
+
+punpcklbw   %xmm0, %xmm2
+punpcklbw   (%rax), %xmm2
+
+punpckldq   %xmm0, %xmm2
+punpckldq   (%rax), %xmm2
+
+punpcklqdq  %xmm0, %xmm2
+punpcklqdq  (%rax), %xmm2
+
+punpcklwd   %xmm0, %xmm2
+punpcklwd   (%rax), %xmm2
+
+pxor        %xmm0, %xmm2
+pxor        (%rax), %xmm2
+
+shufpd      $1, %xmm0, %xmm2
+shufpd      $1, (%rax), %xmm2
+
+sqrtpd      %xmm0, %xmm2
+sqrtpd      (%rax), %xmm2
+
+sqrtsd      %xmm0, %xmm2
+sqrtsd      (%rax), %xmm2
+
+subpd       %xmm0, %xmm2
+subpd       (%rax), %xmm2
+
+subsd       %xmm0, %xmm2
+subsd       (%rax), %xmm2
+
+ucomisd     %xmm0, %xmm1
+ucomisd     (%rax), %xmm1
+
+unpckhpd    %xmm0, %xmm2
+unpckhpd    (%rax), %xmm2
+
+unpcklpd    %xmm0, %xmm2
+unpcklpd    (%rax), %xmm2
+
+xorpd       %xmm0, %xmm2
+xorpd       (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        addpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   addpd  (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        addsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   addsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        andnpd %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   andnpd (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        andpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   andpd  (%rax), %xmm2
+# CHECK-NEXT:  1      5     0.33    *      *      U     clflush        (%rax)
+# CHECK-NEXT:  1      2     1.00                        cmpeqpd        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   cmpeqpd        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        cmpeqsd        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   cmpeqsd        (%rax), %xmm2
+# CHECK-NEXT:  2      4     1.00                        comisd %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   comisd (%rax), %xmm1
+# CHECK-NEXT:  1      3     0.50                        cvtdq2pd       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtdq2pd       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        cvtdq2ps       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtdq2ps       (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cvtpd2dq       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cvtpd2dq       (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cvtpd2pi       %xmm0, %mm2
+# CHECK-NEXT:  1      10    1.00    *                   cvtpd2pi       (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        cvtpd2ps       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtpd2ps       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        cvtpi2pd       %mm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtpi2pd       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        cvtps2dq       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtps2dq       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        cvtps2pd       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtps2pd       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        cvtsd2si       %xmm0, %ecx
+# CHECK-NEXT:  1      1     0.50                        cvtsd2si       %xmm0, %rcx
+# CHECK-NEXT:  1      8     0.50    *                   cvtsd2si       (%rax), %ecx
+# CHECK-NEXT:  1      8     0.50    *                   cvtsd2si       (%rax), %rcx
+# CHECK-NEXT:  1      3     0.50                        cvtsd2ss       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtsd2ss       (%rax), %xmm2
+# CHECK-NEXT:  2      5     1.00                        cvtsi2sd       %ecx, %xmm2
+# CHECK-NEXT:  2      5     1.00                        cvtsi2sd       %rcx, %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   cvtsi2sdl      (%rax), %xmm2
+# CHECK-NEXT:  1      11    1.00    *                   cvtsi2sdq      (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        cvtss2sd       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvtss2sd       (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cvttpd2dq      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    1.00    *                   cvttpd2dq      (%rax), %xmm2
+# CHECK-NEXT:  1      3     1.00                        cvttpd2pi      %xmm0, %mm2
+# CHECK-NEXT:  1      10    1.00    *                   cvttpd2pi      (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        cvttps2dq      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   cvttps2dq      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        cvttsd2si      %xmm0, %ecx
+# CHECK-NEXT:  1      1     0.50                        cvttsd2si      %xmm0, %rcx
+# CHECK-NEXT:  1      8     0.50    *                   cvttsd2si      (%rax), %ecx
+# CHECK-NEXT:  1      8     0.50    *                   cvttsd2si      (%rax), %rcx
+# CHECK-NEXT:  1      13    5.00                        divpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      20    5.00    *                   divpd  (%rax), %xmm2
+# CHECK-NEXT:  1      13    5.00                        divsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      20    5.00    *                   divsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     10.00   *      *      U     lfence
+# CHECK-NEXT:  1      1     1.00    *      *      U     maskmovdqu     %xmm0, %xmm1
+# CHECK-NEXT:  1      1     0.50                        maxpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   maxpd  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        maxsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   maxsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     25.00   *      *      U     mfence
+# CHECK-NEXT:  1      1     0.50                        minpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   minpd  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        minsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   minsd  (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        movapd %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movapd %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movapd (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        movd   %eax, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   movd   (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        movd   %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *            movd   %xmm0, (%rax)
+# CHECK-NEXT:  1      0     0.17                        movdqa %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movdqa %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movdqa (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        movdqu %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movdqu %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movdqu (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        movdq2q        %xmm0, %mm2
+# CHECK-NEXT:  2      2     1.00           *            movhpd %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movhpd (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movlpd %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movlpd (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        movmskpd       %xmm0, %ecx
+# CHECK-NEXT:  1      1     1.00           *            movntil        %eax, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            movntiq        %rax, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            movntdq        %xmm0, (%rax)
+# CHECK-NEXT:  1      1     1.00           *            movntpd        %xmm0, (%rax)
+# CHECK-NEXT:  1      1     0.25                        movq   %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00                        movq   %rax, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   movq   (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        movq   %xmm0, %rcx
+# CHECK-NEXT:  1      1     1.00           *            movq   %xmm0, (%rax)
+# CHECK-NEXT:  2      1     0.50                        movq2dq        %mm0, %xmm2
+# CHECK-NEXT:  1      1     0.50                        movsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movsd  %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movsd  (%rax), %xmm2
+# CHECK-NEXT:  1      0     0.17                        movupd %xmm0, %xmm2
+# CHECK-NEXT:  1      1     1.00           *            movupd %xmm0, (%rax)
+# CHECK-NEXT:  1      8     0.50    *                   movupd (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        mulpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   mulpd  (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        mulsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   mulsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        orpd   %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   orpd   (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        packssdw       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   packssdw       (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        packsswb       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   packsswb       (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        packuswb       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   packuswb       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        paddb  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddb  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        paddd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        paddq  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   paddq  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        paddq  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddq  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        paddsb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddsb (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        paddsw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddsw (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        paddusb        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddusb        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        paddusw        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddusw        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        paddw  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   paddw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pand   %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pand   (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pandn  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pandn  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        pavgb  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pavgb  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        pavgw  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pavgw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqb        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqb        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqd        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqd        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqw        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqw        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtb        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtb        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtd        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtd        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtw        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtw        (%rax), %xmm2
+# CHECK-NEXT:  2      1     1.00                        pextrw $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00                        pinsrw $1, %eax, %xmm0
+# CHECK-NEXT:  1      8     1.50    *                   pinsrw $1, (%rax), %xmm0
+# CHECK-NEXT:  1      3     0.50                        pmaddwd        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmaddwd        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pmaxsw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxsw (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pmaxub %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxub (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pminsw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pminsw (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pminub %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pminub (%rax), %xmm2
+# CHECK-NEXT:  1      1     1.00                        pmovmskb       %xmm0, %ecx
+# CHECK-NEXT:  1      3     0.50                        pmulhuw        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulhuw        (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmulhw %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulhw (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmullw %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmullw (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmuludq        %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmuludq        (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        pmuludq        %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmuludq        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        por    %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   por    (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        psadbw %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   psadbw (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        pshufd $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pshufd $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        pshufhw        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pshufhw        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        pshuflw        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pshuflw        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        pslld  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        pslld  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   pslld  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        pslldq $1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        psllq  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psllq  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psllq  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        psllw  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psllw  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psllw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        psrad  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psrad  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psrad  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        psraw  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psraw  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psraw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        psrld  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psrld  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psrld  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        psrldq $1, %xmm2
+# CHECK-NEXT:  1      1     0.50                        psrlq  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psrlq  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psrlq  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        psrlw  $1, %xmm2
+# CHECK-NEXT:  1      2     1.00                        psrlw  %xmm0, %xmm2
+# CHECK-NEXT:  1      9     1.00    *                   psrlw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubb  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubb  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubq  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psubq  (%rax), %mm2
+# CHECK-NEXT:  1      1     0.25                        psubq  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubq  (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        psubsb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubsb (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        psubsw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubsw (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        psubusb        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubusb        (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        psubusw        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubusw        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubw  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psubw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpckhbw      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhbw      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpckhdq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhdq      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpckhqdq     %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhqdq     (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpckhwd      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckhwd      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpcklbw      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpcklbw      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpckldq      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpckldq      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpcklqdq     %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpcklqdq     (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        punpcklwd      %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   punpcklwd      (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pxor   %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pxor   (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        shufpd $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   shufpd $1, (%rax), %xmm2
+# CHECK-NEXT:  1      21    9.00                        sqrtpd %xmm0, %xmm2
+# CHECK-NEXT:  1      28    9.00    *                   sqrtpd (%rax), %xmm2
+# CHECK-NEXT:  1      21    9.00                        sqrtsd %xmm0, %xmm2
+# CHECK-NEXT:  1      28    9.00    *                   sqrtsd (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        subpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   subpd  (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        subsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   subsd  (%rax), %xmm2
+# CHECK-NEXT:  2      4     1.00                        ucomisd        %xmm0, %xmm1
+# CHECK-NEXT:  2      11    1.00    *                   ucomisd        (%rax), %xmm1
+# CHECK-NEXT:  1      1     0.50                        unpckhpd       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   unpckhpd       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        unpcklpd       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   unpcklpd       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        xorpd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   xorpd  (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 1.00   1.00   1.00   25.00  25.00  25.00  25.00   -     58.25  140.25 81.25  53.25  72.00  72.00  12.00  54.67  54.67  54.67  39.33  39.33  39.33  8.00   8.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     addpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     addsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     andnpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andnpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     andpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andpd   (%rax), %xmm2
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     clflush (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     cmpeqpd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpeqpd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     cmpeqsd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpeqsd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     comisd  %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     comisd  (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtdq2pd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtdq2pd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtdq2ps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtdq2ps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvtpd2dq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtpd2dq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvtpd2pi        %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtpd2pi        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtpd2ps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtpd2ps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtpi2pd        %mm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtpi2pd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtps2dq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtps2dq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtps2pd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtps2pd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtsd2si        %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtsd2si        %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsd2si        (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsd2si        (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtsd2ss        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsd2ss        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvtsi2sd        %ecx, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvtsi2sd        %rcx, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsi2sdl       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtsi2sdq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvtss2sd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvtss2sd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvttpd2dq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttpd2dq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -     cvttpd2pi       %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00   1.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttpd2pi       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvttps2dq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttps2dq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvttsd2si       %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     cvttsd2si       %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttsd2si       (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cvttsd2si       (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     divpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -      -      -      -      -      -      -      -      -      -      -      -     divsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     5.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     10.00  10.00  10.00   -      -      -      -      -     lfence
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   maskmovdqu      %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     maxpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     maxpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     maxsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     maxsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mfence
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     minpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     minpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     minsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     minsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movapd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movapd  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movapd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     movd    %eax, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     movd    %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movd    %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movdqa  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movdqa  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movdqa  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movdqu  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movdqu  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movdqu  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movdq2q %xmm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movhpd  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movhpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movlpd  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movlpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     movmskpd        %xmm0, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   movntil %eax, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   movntiq %rax, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movntdq %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movntpd %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     movq    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     movq    %rax, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movq    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     movq    %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movq    %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -     movq2dq %mm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movsd   %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movupd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   movupd  %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movupd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     mulpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     mulsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     orpd    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orpd    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     packssdw        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packssdw        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     packsswb        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packsswb        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     packuswb        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packuswb        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddb   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddb   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddq   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddq   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddq   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     paddsb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddsb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     paddsw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddsw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     paddusb %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddusb (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     paddusw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddusw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     paddw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     paddw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pand    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pand    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pandn   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pandn   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pavgb   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pavgb   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pavgw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pavgw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqb %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqb (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtb %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtb (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pextrw  $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pinsrw  $1, %eax, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pinsrw  $1, (%rax), %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmaddwd %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaddwd (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxsw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxsw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxub  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxub  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminsw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminsw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminub  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminub  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovmskb        %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulhuw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulhuw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulhw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulhw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmullw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmullw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmuludq %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmuludq (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmuludq %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmuludq (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     por     %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     por     (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     psadbw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psadbw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pshufd  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pshufd  $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pshufhw $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pshufhw $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pshuflw $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pshuflw $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pslld   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pslld   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pslld   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pslldq  $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psllq   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psllq   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psllq   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psllw   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psllw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psllw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrad   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psrad   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrad   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psraw   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psraw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psraw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrld   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psrld   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrld   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psrldq  $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrlq   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psrlq   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrlq   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     psrlw   $1, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psrlw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psrlw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubb   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubb   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubq   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubq   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubq   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubq   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psubsb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubsb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psubsw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubsw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psubusb %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubusb (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psubusw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubusw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psubw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psubw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhbw       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhbw       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhdq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhdq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhqdq      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhqdq      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckhwd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckhwd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpcklbw       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpcklbw       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpckldq       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpckldq       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpcklqdq      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpcklqdq      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     punpcklwd       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     punpcklwd       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pxor    %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pxor    (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     shufpd  $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shufpd  $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     sqrtpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sqrtpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -      -      -      -      -      -      -      -      -      -      -      -     sqrtsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     9.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sqrtsd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     subpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subpd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     subsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     ucomisd %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ucomisd (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     unpckhpd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     unpckhpd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     unpcklpd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     unpcklpd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     xorpd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorpd   (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse3.s
new file mode 100644 (file)
index 0000000..51ffdc6
--- /dev/null
@@ -0,0 +1,119 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+addsubpd  %xmm0, %xmm2
+addsubpd  (%rax),  %xmm2
+
+addsubps  %xmm0, %xmm2
+addsubps  (%rax), %xmm2
+
+haddpd    %xmm0, %xmm2
+haddpd    (%rax), %xmm2
+
+haddps    %xmm0, %xmm2
+haddps    (%rax), %xmm2
+
+hsubpd    %xmm0, %xmm2
+hsubpd    (%rax), %xmm2
+
+hsubps    %xmm0, %xmm2
+hsubps    (%rax), %xmm2
+
+lddqu     (%rax), %xmm2
+
+monitor
+
+movddup   %xmm0, %xmm2
+movddup   (%rax), %xmm2
+
+movshdup  %xmm0, %xmm2
+movshdup  (%rax), %xmm2
+
+movsldup  %xmm0, %xmm2
+movsldup  (%rax), %xmm2
+
+mwait
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     0.50                        addsubpd       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   addsubpd       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        addsubps       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   addsubps       (%rax), %xmm2
+# CHECK-NEXT:  3      4     2.00                        haddpd %xmm0, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   haddpd (%rax), %xmm2
+# CHECK-NEXT:  3      4     2.00                        haddps %xmm0, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   haddps (%rax), %xmm2
+# CHECK-NEXT:  3      4     2.00                        hsubpd %xmm0, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   hsubpd (%rax), %xmm2
+# CHECK-NEXT:  3      4     2.00                        hsubps %xmm0, %xmm2
+# CHECK-NEXT:  3      11    2.00    *                   hsubps (%rax), %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   lddqu  (%rax), %xmm2
+# CHECK-NEXT:  100    100   25.00                 U     monitor
+# CHECK-NEXT:  1      1     0.50                        movddup        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   movddup        (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        movshdup       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   movshdup       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        movsldup       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   movsldup       (%rax), %xmm2
+# CHECK-NEXT:  100    100   25.00   *      *      U     mwait
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     50.00  50.00  50.00  50.00   -      -     3.00   21.00  2.00   5.00   5.00    -     3.33   3.33   3.33   3.33   3.33   3.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     addsubpd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addsubpd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     addsubps        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addsubps        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     haddpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     haddpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     haddps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     haddps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     hsubpd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     hsubpd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     hsubps  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     hsubps  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lddqu   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     monitor
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movddup %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movddup (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movshdup        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movshdup        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     movsldup        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movsldup        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mwait
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse41.s
new file mode 100644 (file)
index 0000000..5521c1e
--- /dev/null
@@ -0,0 +1,381 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+blendpd     $11, %xmm0, %xmm2
+blendpd     $11, (%rax), %xmm2
+
+blendps     $11, %xmm0, %xmm2
+blendps     $11, (%rax), %xmm2
+
+blendvpd    %xmm0, %xmm2
+blendvpd    (%rax), %xmm2
+
+blendvps    %xmm0, %xmm2
+blendvps    (%rax), %xmm2
+
+dppd        $22, %xmm0, %xmm2
+dppd        $22, (%rax), %xmm2
+
+dpps        $22, %xmm0, %xmm2
+dpps        $22, (%rax), %xmm2
+
+extractps   $1, %xmm0, %rcx
+extractps   $1, %xmm0, (%rax)
+
+insertps    $1, %xmm0, %xmm2
+insertps    $1, (%rax), %xmm2
+
+movntdqa    (%rax), %xmm2
+
+mpsadbw     $1, %xmm0, %xmm2
+mpsadbw     $1, (%rax), %xmm2
+
+packusdw    %xmm0, %xmm2
+packusdw    (%rax), %xmm2
+
+pblendvb    %xmm0, %xmm2
+pblendvb    (%rax), %xmm2
+
+pblendw     $11, %xmm0, %xmm2
+pblendw     $11, (%rax), %xmm2
+
+pcmpeqq     %xmm0, %xmm2
+pcmpeqq     (%rax), %xmm2
+
+pextrb      $1, %xmm0, %ecx
+pextrb      $1, %xmm0, (%rax)
+
+pextrd      $1, %xmm0, %ecx
+pextrd      $1, %xmm0, (%rax)
+
+pextrq      $1, %xmm0, %rcx
+pextrq      $1, %xmm0, (%rax)
+
+pextrw      $1, %xmm0, (%rax)
+
+phminposuw  %xmm0, %xmm2
+phminposuw  (%rax), %xmm2
+
+pinsrb      $1, %eax, %xmm1
+pinsrb      $1, (%rax), %xmm1
+
+pinsrd      $1, %eax, %xmm1
+pinsrd      $1, (%rax), %xmm1
+
+pinsrq      $1, %rax, %xmm1
+pinsrq      $1, (%rax), %xmm1
+
+pmaxsb      %xmm0, %xmm2
+pmaxsb      (%rax), %xmm2
+
+pmaxsd      %xmm0, %xmm2
+pmaxsd      (%rax), %xmm2
+
+pmaxud      %xmm0, %xmm2
+pmaxud      (%rax), %xmm2
+
+pmaxuw      %xmm0, %xmm2
+pmaxuw      (%rax), %xmm2
+
+pminsb      %xmm0, %xmm2
+pminsb      (%rax), %xmm2
+
+pminsd      %xmm0, %xmm2
+pminsd      (%rax), %xmm2
+
+pminud      %xmm0, %xmm2
+pminud      (%rax), %xmm2
+
+pminuw      %xmm0, %xmm2
+pminuw      (%rax), %xmm2
+
+pmovsxbd    %xmm0, %xmm2
+pmovsxbd    (%rax), %xmm2
+
+pmovsxbq    %xmm0, %xmm2
+pmovsxbq    (%rax), %xmm2
+
+pmovsxbw    %xmm0, %xmm2
+pmovsxbw    (%rax), %xmm2
+
+pmovsxdq    %xmm0, %xmm2
+pmovsxdq    (%rax), %xmm2
+
+pmovsxwd    %xmm0, %xmm2
+pmovsxwd    (%rax), %xmm2
+
+pmovsxwq    %xmm0, %xmm2
+pmovsxwq    (%rax), %xmm2
+
+pmovzxbd    %xmm0, %xmm2
+pmovzxbd    (%rax), %xmm2
+
+pmovzxbq    %xmm0, %xmm2
+pmovzxbq    (%rax), %xmm2
+
+pmovzxbw    %xmm0, %xmm2
+pmovzxbw    (%rax), %xmm2
+
+pmovzxdq    %xmm0, %xmm2
+pmovzxdq    (%rax), %xmm2
+
+pmovzxwd    %xmm0, %xmm2
+pmovzxwd    (%rax), %xmm2
+
+pmovzxwq    %xmm0, %xmm2
+pmovzxwq    (%rax), %xmm2
+
+pmuldq      %xmm0, %xmm2
+pmuldq      (%rax), %xmm2
+
+pmulld      %xmm0, %xmm2
+pmulld      (%rax), %xmm2
+
+ptest       %xmm0, %xmm1
+ptest       (%rax), %xmm1
+
+roundpd     $1, %xmm0, %xmm2
+roundpd     $1, (%rax), %xmm2
+
+roundps     $1, %xmm0, %xmm2
+roundps     $1, (%rax), %xmm2
+
+roundsd     $1, %xmm0, %xmm2
+roundsd     $1, (%rax), %xmm2
+
+roundss     $1, %xmm0, %xmm2
+roundss     $1, (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.50                        blendpd        $11, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   blendpd        $11, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        blendps        $11, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   blendps        $11, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        blendvpd       %xmm0, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   blendvpd       %xmm0, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        blendvps       %xmm0, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   blendvps       %xmm0, (%rax), %xmm2
+# CHECK-NEXT:  3      7     3.00                        dppd   $22, %xmm0, %xmm2
+# CHECK-NEXT:  5      14    3.00    *                   dppd   $22, (%rax), %xmm2
+# CHECK-NEXT:  8      11    4.00                        dpps   $22, %xmm0, %xmm2
+# CHECK-NEXT:  10     18    4.00    *                   dpps   $22, (%rax), %xmm2
+# CHECK-NEXT:  2      1     1.00                        extractps      $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            extractps      $1, %xmm0, (%rax)
+# CHECK-NEXT:  1      1     0.50                        insertps       $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   insertps       $1, (%rax), %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   movntdqa       (%rax), %xmm2
+# CHECK-NEXT:  4      4     2.00                        mpsadbw        $1, %xmm0, %xmm2
+# CHECK-NEXT:  6      11    2.00    *                   mpsadbw        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      2     1.00                        packusdw       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   packusdw       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        pblendvb       %xmm0, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pblendvb       %xmm0, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pblendw        $11, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pblendw        $11, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpeqq        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpeqq        (%rax), %xmm2
+# CHECK-NEXT:  2      1     1.00                        pextrb $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            pextrb $1, %xmm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        pextrd $1, %xmm0, %ecx
+# CHECK-NEXT:  2      2     1.00           *            pextrd $1, %xmm0, (%rax)
+# CHECK-NEXT:  2      1     1.00                        pextrq $1, %xmm0, %rcx
+# CHECK-NEXT:  2      2     1.00           *            pextrq $1, %xmm0, (%rax)
+# CHECK-NEXT:  2      2     1.00           *            pextrw $1, %xmm0, (%rax)
+# CHECK-NEXT:  1      3     0.50                        phminposuw     %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   phminposuw     (%rax), %xmm2
+# CHECK-NEXT:  2      2     1.00                        pinsrb $1, %eax, %xmm1
+# CHECK-NEXT:  1      8     1.50    *                   pinsrb $1, (%rax), %xmm1
+# CHECK-NEXT:  2      2     1.00                        pinsrd $1, %eax, %xmm1
+# CHECK-NEXT:  1      8     1.50    *                   pinsrd $1, (%rax), %xmm1
+# CHECK-NEXT:  2      2     1.00                        pinsrq $1, %rax, %xmm1
+# CHECK-NEXT:  1      8     1.50    *                   pinsrq $1, (%rax), %xmm1
+# CHECK-NEXT:  1      1     0.25                        pmaxsb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxsb (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pmaxsd %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxsd (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pmaxud %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxud (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pmaxuw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmaxuw (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pminsb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pminsb (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pminsd %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pminsd (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pminud %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pminud (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pminuw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pminuw (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovsxbd       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovsxbd       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovsxbq       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovsxbq       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovsxbw       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovsxbw       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovsxdq       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovsxdq       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovsxwd       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovsxwd       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovsxwq       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovsxwq       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovzxbd       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovzxbd       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovzxbq       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovzxbq       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovzxbw       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovzxbw       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovzxdq       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovzxdq       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovzxwd       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovzxwd       (%rax), %xmm2
+# CHECK-NEXT:  1      4     2.00                        pmovzxwq       %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pmovzxwq       (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmuldq %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmuldq (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmulld %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulld (%rax), %xmm2
+# CHECK-NEXT:  2      1     1.00                        ptest  %xmm0, %xmm1
+# CHECK-NEXT:  2      8     1.00    *                   ptest  (%rax), %xmm1
+# CHECK-NEXT:  1      3     0.50                        roundpd        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   roundpd        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        roundps        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   roundps        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        roundsd        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   roundsd        $1, (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        roundss        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   roundss        $1, (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     31.00  61.50  46.50  16.00  35.50  35.50  7.00   16.33  16.33  16.33  14.67  14.67  14.67  2.50   2.50
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     blendpd $11, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blendpd $11, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     blendps $11, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blendps $11, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     blendvpd        %xmm0, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blendvpd        %xmm0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     blendvps        %xmm0, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     blendvps        %xmm0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     dppd    $22, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     dppd    $22, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -     dpps    $22, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     dpps    $22, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     extractps       $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   extractps       $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     insertps        $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     insertps        $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movntdqa        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     mpsadbw $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mpsadbw $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     packusdw        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     packusdw        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pblendvb        %xmm0, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pblendvb        %xmm0, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pblendw $11, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pblendw $11, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpeqq %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpeqq (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pextrb  $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   pextrb  $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pextrd  $1, %xmm0, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   pextrd  $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pextrq  $1, %xmm0, %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   pextrq  $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   1.00   0.33   0.33   0.33    -      -      -     0.50   0.50   pextrw  $1, %xmm0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     phminposuw      %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phminposuw      (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pinsrb  $1, %eax, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pinsrb  $1, (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pinsrd  $1, %eax, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pinsrd  $1, (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -     pinsrq  $1, %rax, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pinsrq  $1, (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxsb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxsb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxsd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxud  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxud  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pmaxuw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaxuw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminsb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminsb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminsd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminsd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminud  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminud  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pminuw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pminuw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovsxbd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovsxbd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovsxbq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovsxbq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovsxbw        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovsxbw        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovsxdq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovsxdq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovsxwd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovsxwd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovsxwq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovsxwq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovzxbd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovzxbd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovzxbq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovzxbq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovzxbw        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovzxbw        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovzxdq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovzxdq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovzxwd        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovzxwd        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -     pmovzxwq        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmovzxwq        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmuldq  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmuldq  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulld  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulld  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50   1.00    -      -      -      -      -      -      -      -     ptest   %xmm0, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     1.00   1.00   1.00   0.33   0.33   0.33   0.33   0.33   0.33    -      -     ptest   (%rax), %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     roundpd $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     roundpd $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     roundps $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     roundps $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     roundsd $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     roundsd $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     roundss $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     roundss $1, (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse42.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-sse42.s
new file mode 100644 (file)
index 0000000..015d37e
--- /dev/null
@@ -0,0 +1,114 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+crc32b      %al, %ecx
+crc32b      (%rax), %ecx
+
+crc32l      %eax, %ecx
+crc32l      (%rax), %ecx
+
+crc32w      %ax, %ecx
+crc32w      (%rax), %ecx
+
+crc32b      %al, %rcx
+crc32b      (%rax), %rcx
+
+crc32q      %rax, %rcx
+crc32q      (%rax), %rcx
+
+pcmpestri   $1, %xmm0, %xmm2
+pcmpestri   $1, (%rax), %xmm2
+
+pcmpestrm   $1, %xmm0, %xmm2
+pcmpestrm   $1, (%rax), %xmm2
+
+pcmpistri   $1, %xmm0, %xmm2
+pcmpistri   $1, (%rax), %xmm2
+
+pcmpistrm   $1, %xmm0, %xmm2
+pcmpistrm   $1, (%rax), %xmm2
+
+pcmpgtq     %xmm0, %xmm2
+pcmpgtq     (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      3     1.00                        crc32b %al, %ecx
+# CHECK-NEXT:  1      7     1.00    *                   crc32b (%rax), %ecx
+# CHECK-NEXT:  1      3     1.00                        crc32l %eax, %ecx
+# CHECK-NEXT:  1      7     1.00    *                   crc32l (%rax), %ecx
+# CHECK-NEXT:  1      3     1.00                        crc32w %ax, %ecx
+# CHECK-NEXT:  1      7     1.00    *                   crc32w (%rax), %ecx
+# CHECK-NEXT:  1      3     1.00                        crc32b %al, %rcx
+# CHECK-NEXT:  1      7     1.00    *                   crc32b (%rax), %rcx
+# CHECK-NEXT:  1      3     1.00                        crc32q %rax, %rcx
+# CHECK-NEXT:  1      7     1.00    *                   crc32q (%rax), %rcx
+# CHECK-NEXT:  8      6     3.00                        pcmpestri      $1, %xmm0, %xmm2
+# CHECK-NEXT:  12     13    3.00    *                   pcmpestri      $1, (%rax), %xmm2
+# CHECK-NEXT:  7      6     3.00                        pcmpestrm      $1, %xmm0, %xmm2
+# CHECK-NEXT:  12     13    3.00    *                   pcmpestrm      $1, (%rax), %xmm2
+# CHECK-NEXT:  4      2     2.00                        pcmpistri      $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      9     2.00    *                   pcmpistri      $1, (%rax), %xmm2
+# CHECK-NEXT:  3      6     2.00                        pcmpistrm      $1, %xmm0, %xmm2
+# CHECK-NEXT:  4      13    2.00    *                   pcmpistrm      $1, (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtq        %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pcmpgtq        (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 1.67   1.67   1.67    -     10.00   -      -      -     20.50  20.50  20.50  20.50  2.50   2.50    -     3.33   3.33   3.33   3.33   3.33   3.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     crc32b  %al, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     crc32b  (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     crc32l  %eax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     crc32l  (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     crc32w  %ax, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     crc32w  (%rax), %ecx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     crc32b  %al, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     crc32b  (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     crc32q  %rax, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     crc32q  (%rax), %rcx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     pcmpestri       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpestri       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -     pcmpestrm       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     3.00   3.00   3.00   3.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpestrm       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     pcmpistri       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpistri       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -     pcmpistrm       $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00   2.00   2.00   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpistrm       $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pcmpgtq %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pcmpgtq (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-ssse3.s
new file mode 100644 (file)
index 0000000..173c721
--- /dev/null
@@ -0,0 +1,268 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+pabsb       %mm0, %mm2
+pabsb       (%rax), %mm2
+
+pabsb       %xmm0, %xmm2
+pabsb       (%rax), %xmm2
+
+pabsd       %mm0, %mm2
+pabsd       (%rax), %mm2
+
+pabsd       %xmm0, %xmm2
+pabsd       (%rax), %xmm2
+
+pabsw       %mm0, %mm2
+pabsw       (%rax), %mm2
+
+pabsw       %xmm0, %xmm2
+pabsw       (%rax), %xmm2
+
+palignr     $1, %mm0, %mm2
+palignr     $1, (%rax), %mm2
+
+palignr     $1, %xmm0, %xmm2
+palignr     $1, (%rax), %xmm2
+
+phaddd      %mm0, %mm2
+phaddd      (%rax), %mm2
+
+phaddd      %xmm0, %xmm2
+phaddd      (%rax), %xmm2
+
+phaddsw     %mm0, %mm2
+phaddsw     (%rax), %mm2
+
+phaddsw     %xmm0, %xmm2
+phaddsw     (%rax), %xmm2
+
+phaddw      %mm0, %mm2
+phaddw      (%rax), %mm2
+
+phaddw      %xmm0, %xmm2
+phaddw      (%rax), %xmm2
+
+phsubd      %mm0, %mm2
+phsubd      (%rax), %mm2
+
+phsubd      %xmm0, %xmm2
+phsubd      (%rax), %xmm2
+
+phsubsw     %mm0, %mm2
+phsubsw     (%rax), %mm2
+
+phsubsw     %xmm0, %xmm2
+phsubsw     (%rax), %xmm2
+
+phsubw      %mm0, %mm2
+phsubw      (%rax), %mm2
+
+phsubw      %xmm0, %xmm2
+phsubw      (%rax), %xmm2
+
+pmaddubsw   %mm0, %mm2
+pmaddubsw   (%rax), %mm2
+
+pmaddubsw   %xmm0, %xmm2
+pmaddubsw   (%rax), %xmm2
+
+pmulhrsw    %mm0, %mm2
+pmulhrsw    (%rax), %mm2
+
+pmulhrsw    %xmm0, %xmm2
+pmulhrsw    (%rax), %xmm2
+
+pshufb      %mm0, %mm2
+pshufb      (%rax), %mm2
+
+pshufb      %xmm0, %xmm2
+pshufb      (%rax), %xmm2
+
+psignb      %mm0, %mm2
+psignb      (%rax), %mm2
+
+psignb      %xmm0, %xmm2
+psignb      (%rax), %xmm2
+
+psignd      %mm0, %mm2
+psignd      (%rax), %mm2
+
+psignd      %xmm0, %xmm2
+psignd      (%rax), %xmm2
+
+psignw      %mm0, %mm2
+psignw      (%rax), %mm2
+
+psignw      %xmm0, %xmm2
+psignw      (%rax), %xmm2
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     0.25                        pabsb  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pabsb  (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        pabsb  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pabsb  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pabsd  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pabsd  (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        pabsd  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pabsd  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        pabsw  %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pabsw  (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        pabsw  %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pabsw  (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        palignr        $1, %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   palignr        $1, (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        palignr        $1, %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   palignr        $1, (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        phaddd %mm0, %mm2
+# CHECK-NEXT:  4      9     2.00    *                   phaddd (%rax), %mm2
+# CHECK-NEXT:  3      2     2.00                        phaddd %xmm0, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   phaddd (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        phaddsw        %mm0, %mm2
+# CHECK-NEXT:  4      9     2.00    *                   phaddsw        (%rax), %mm2
+# CHECK-NEXT:  3      2     2.00                        phaddsw        %xmm0, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   phaddsw        (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        phaddw %mm0, %mm2
+# CHECK-NEXT:  4      9     2.00    *                   phaddw (%rax), %mm2
+# CHECK-NEXT:  3      2     2.00                        phaddw %xmm0, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   phaddw (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        phsubd %mm0, %mm2
+# CHECK-NEXT:  4      9     2.00    *                   phsubd (%rax), %mm2
+# CHECK-NEXT:  3      2     2.00                        phsubd %xmm0, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   phsubd (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        phsubsw        %mm0, %mm2
+# CHECK-NEXT:  4      9     2.00    *                   phsubsw        (%rax), %mm2
+# CHECK-NEXT:  3      2     2.00                        phsubsw        %xmm0, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   phsubsw        (%rax), %xmm2
+# CHECK-NEXT:  3      2     2.00                        phsubw %mm0, %mm2
+# CHECK-NEXT:  4      9     2.00    *                   phsubw (%rax), %mm2
+# CHECK-NEXT:  3      2     2.00                        phsubw %xmm0, %xmm2
+# CHECK-NEXT:  3      9     2.00    *                   phsubw (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmaddubsw      %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmaddubsw      (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        pmaddubsw      %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmaddubsw      (%rax), %xmm2
+# CHECK-NEXT:  1      3     0.50                        pmulhrsw       %mm0, %mm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulhrsw       (%rax), %mm2
+# CHECK-NEXT:  1      3     0.50                        pmulhrsw       %xmm0, %xmm2
+# CHECK-NEXT:  1      10    0.50    *                   pmulhrsw       (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.50                        pshufb %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   pshufb (%rax), %mm2
+# CHECK-NEXT:  1      1     0.50                        pshufb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   pshufb (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psignb %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psignb (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        psignb %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psignb (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psignd %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psignd (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        psignd %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psignd (%rax), %xmm2
+# CHECK-NEXT:  1      1     0.25                        psignw %mm0, %mm2
+# CHECK-NEXT:  1      8     0.50    *                   psignw (%rax), %mm2
+# CHECK-NEXT:  1      2     1.00                        psignw %xmm0, %xmm2
+# CHECK-NEXT:  1      8     0.50    *                   psignw (%rax), %xmm2
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     62.50  15.00  9.00   8.50   16.00  16.00   -     10.67  10.67  10.67  10.67  10.67  10.67   -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pabsb   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pabsb   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pabsb   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pabsb   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pabsd   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pabsd   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pabsd   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pabsd   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     pabsw   %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pabsw   (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pabsw   %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pabsw   (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     palignr $1, %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     palignr $1, (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     palignr $1, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     palignr $1, (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phaddd  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phaddd  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phaddd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phaddd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phaddsw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phaddsw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phaddsw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phaddsw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phaddw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phaddw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phaddw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phaddw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phsubd  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phsubd  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phsubd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phsubd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phsubsw %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phsubsw (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phsubsw %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phsubsw (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phsubw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phsubw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     phsubw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     phsubw  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmaddubsw       %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaddubsw       (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmaddubsw       %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmaddubsw       (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulhrsw        %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulhrsw        (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50    -      -      -      -      -      -      -      -      -      -      -     pmulhrsw        %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50    -      -     0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pmulhrsw        (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pshufb  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pshufb  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     pshufb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     0.50   0.50    -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     pshufb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psignb  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psignb  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psignb  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psignb  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psignd  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psignd  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psignd  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psignd  (%rax), %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -     psignw  %mm0, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psignw  (%rax), %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psignw  %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.25   0.25   0.25   0.25   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     psignw  (%rax), %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-vaes.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-vaes.s
new file mode 100644 (file)
index 0000000..5389413
--- /dev/null
@@ -0,0 +1,72 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vaesdec          %ymm0, %ymm1, %ymm3
+vaesdec          (%rax), %ymm1, %ymm3
+
+vaesdeclast      %ymm0, %ymm1, %ymm3
+vaesdeclast      (%rax), %ymm1, %ymm3
+
+vaesenc          %ymm0, %ymm1, %ymm3
+vaesenc          (%rax), %ymm1, %ymm3
+
+vaesenclast      %ymm0, %ymm1, %ymm3
+vaesenclast      (%rax), %ymm1, %ymm3
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      4     0.50                        vaesdec        %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  1      11    0.50    *                   vaesdec        (%rax), %ymm1, %ymm3
+# CHECK-NEXT:  1      4     0.50                        vaesdeclast    %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  1      11    0.50    *                   vaesdeclast    (%rax), %ymm1, %ymm3
+# CHECK-NEXT:  1      4     0.50                        vaesenc        %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  1      11    0.50    *                   vaesenc        (%rax), %ymm1, %ymm3
+# CHECK-NEXT:  1      4     0.50                        vaesenclast    %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  1      11    0.50    *                   vaesenclast    (%rax), %ymm1, %ymm3
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     2.00   2.00    -     1.33   1.33   1.33   1.33   1.33   1.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdec %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdec (%rax), %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesdeclast     %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesdeclast     (%rax), %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenc %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenc (%rax), %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     vaesenclast     %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vaesenclast     (%rax), %ymm1, %ymm3
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-vpclmulqdq.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-vpclmulqdq.s
new file mode 100644 (file)
index 0000000..55a36d0
--- /dev/null
@@ -0,0 +1,51 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+vpclmulqdq    $11,  %ymm0, %ymm1, %ymm3
+vpclmulqdq    $11, (%rax), %ymm1, %ymm3
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  4      4     2.00                        vpclmulqdq     $11, %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  4      11    2.00    *                   vpclmulqdq     $11, (%rax), %ymm1, %ymm3
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     4.00   4.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpclmulqdq      $11, %ymm0, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00   2.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     vpclmulqdq      $11, (%rax), %ymm1, %ymm3
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-x86_32.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-x86_32.s
new file mode 100644 (file)
index 0000000..894a221
--- /dev/null
@@ -0,0 +1,93 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=i686-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+aaa
+
+aad
+aad $7
+
+aam
+aam $7
+
+aas
+
+bound %bx, (%eax)
+bound %ebx, (%eax)
+
+daa
+
+das
+
+into
+
+leave
+
+salc
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  100    100   25.00                       aaa
+# CHECK-NEXT:  100    100   25.00                       aad
+# CHECK-NEXT:  100    100   25.00                       aad    $7
+# CHECK-NEXT:  100    100   25.00                       aam
+# CHECK-NEXT:  100    100   25.00                       aam    $7
+# CHECK-NEXT:  100    100   25.00                       aas
+# CHECK-NEXT:  100    100   25.00                 U     bound  %bx, (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     bound  %ebx, (%eax)
+# CHECK-NEXT:  100    100   25.00                       daa
+# CHECK-NEXT:  100    100   25.00                       das
+# CHECK-NEXT:  100    100   25.00                 U     into
+# CHECK-NEXT:  1      1     0.25    *                   leave
+# CHECK-NEXT:  1      1     0.25                  U     salc
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     275.50 275.50 275.50 275.50  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     aaa
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     aad
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     aad     $7
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     aam
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     aam     $7
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     aas
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bound   %bx, (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bound   %ebx, (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     daa
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     das
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     into
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leave
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     salc
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-x86_64.s
new file mode 100644 (file)
index 0000000..bc06a60
--- /dev/null
@@ -0,0 +1,2894 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+adcb $0, %al
+adcb $0, %dil
+adcb $0, (%rax)
+lock adcb $0, (%rax)
+adcb $7, %al
+adcb $7, %dil
+adcb $7, (%rax)
+lock adcb $7, (%rax)
+adcb %sil, %dil
+adcb %sil, (%rax)
+lock adcb %sil, (%rax)
+adcb (%rax), %dil
+
+adcw $0, %ax
+adcw $0, %di
+adcw $0, (%rax)
+lock adcw $0, (%rax)
+adcw $511, %ax
+adcw $511, %di
+adcw $511, (%rax)
+lock adcw $511, (%rax)
+adcw $7, %di
+adcw $7, (%rax)
+lock adcw $7, (%rax)
+adcw %si, %di
+adcw %si, (%rax)
+lock adcw %si, (%rax)
+adcw (%rax), %di
+
+adcl $0, %eax
+adcl $0, %edi
+adcl $0, (%rax)
+lock adcl $0, (%rax)
+adcl $665536, %eax
+adcl $665536, %edi
+adcl $665536, (%rax)
+lock adcl $665536, (%rax)
+adcl $7, %edi
+adcl $7, (%rax)
+lock adcl $7, (%rax)
+adcl %esi, %edi
+adcl %esi, (%rax)
+lock adcl %esi, (%rax)
+adcl (%rax), %edi
+
+adcq $0, %rax
+adcq $0, %rdi
+adcq $0, (%rax)
+lock adcq $0, (%rax)
+adcq $665536, %rax
+adcq $665536, %rdi
+adcq $665536, (%rax)
+lock adcq $665536, (%rax)
+adcq $7, %rdi
+adcq $7, (%rax)
+lock adcq $7, (%rax)
+adcq %rsi, %rdi
+adcq %rsi, (%rax)
+lock adcq %rsi, (%rax)
+adcq (%rax), %rdi
+
+addb $7, %al
+addb $7, %dil
+addb $7, (%rax)
+lock addb $7, (%rax)
+addb %sil, %dil
+addb %sil, (%rax)
+lock addb %sil, (%rax)
+addb (%rax), %dil
+
+addw $511, %ax
+addw $511, %di
+addw $511, (%rax)
+lock addw $511, (%rax)
+addw $7, %di
+addw $7, (%rax)
+lock addw $7, (%rax)
+addw %si, %di
+addw %si, (%rax)
+lock addw %si, (%rax)
+addw (%rax), %di
+
+addl $665536, %eax
+addl $665536, %edi
+addl $665536, (%rax)
+lock addl $665536, (%rax)
+addl $7, %edi
+addl $7, (%rax)
+lock addl $7, (%rax)
+addl %esi, %edi
+addl %esi, (%rax)
+lock addl %esi, (%rax)
+addl (%rax), %edi
+
+addq $665536, %rax
+addq $665536, %rdi
+addq $665536, (%rax)
+lock addq $665536, (%rax)
+addq $7, %rdi
+addq $7, (%rax)
+lock addq $7, (%rax)
+addq %rsi, %rdi
+addq %rsi, (%rax)
+lock addq %rsi, (%rax)
+addq (%rax), %rdi
+
+andb $7, %al
+andb $7, %dil
+andb $7, (%rax)
+lock andb $7, (%rax)
+andb %sil, %dil
+andb %sil, (%rax)
+lock andb %sil, (%rax)
+andb (%rax), %dil
+
+andw $511, %ax
+andw $511, %di
+andw $511, (%rax)
+lock andw $511, (%rax)
+andw $7, %di
+andw $7, (%rax)
+lock andw $7, (%rax)
+andw %si, %di
+andw %si, (%rax)
+lock andw %si, (%rax)
+andw (%rax), %di
+
+andl $665536, %eax
+andl $665536, %edi
+andl $665536, (%rax)
+lock andl $665536, (%rax)
+andl $7, %edi
+andl $7, (%rax)
+lock andl $7, (%rax)
+andl %esi, %edi
+andl %esi, (%rax)
+lock andl %esi, (%rax)
+andl (%rax), %edi
+
+andq $665536, %rax
+andq $665536, %rdi
+andq $665536, (%rax)
+lock andq $665536, (%rax)
+andq $7, %rdi
+andq $7, (%rax)
+lock andq $7, (%rax)
+andq %rsi, %rdi
+andq %rsi, (%rax)
+lock andq %rsi, (%rax)
+andq (%rax), %rdi
+
+bsfw %si, %di
+bsrw %si, %di
+bsfw (%rax), %di
+bsrw (%rax), %di
+
+bsfl %esi, %edi
+bsrl %esi, %edi
+bsfl (%rax), %edi
+bsrl (%rax), %edi
+
+bsfq %rsi, %rdi
+bsrq %rsi, %rdi
+bsfq (%rax), %rdi
+bsrq (%rax), %rdi
+
+bswap %eax
+bswap %rax
+
+btw  %si, %di
+btcw %si, %di
+btrw %si, %di
+btsw %si, %di
+btw  %si, (%rax)
+btcw %si, (%rax)
+btrw %si, (%rax)
+btsw %si, (%rax)
+lock btcw %si, (%rax)
+lock btrw %si, (%rax)
+lock btsw %si, (%rax)
+btw  $7, %di
+btcw $7, %di
+btrw $7, %di
+btsw $7, %di
+btw  $7, (%rax)
+btcw $7, (%rax)
+btrw $7, (%rax)
+btsw $7, (%rax)
+lock btcw $7, (%rax)
+lock btrw $7, (%rax)
+lock btsw $7, (%rax)
+
+btl  %esi, %edi
+btcl %esi, %edi
+btrl %esi, %edi
+btsl %esi, %edi
+btl  %esi, (%rax)
+btcl %esi, (%rax)
+btrl %esi, (%rax)
+btsl %esi, (%rax)
+lock btcl %esi, (%rax)
+lock btrl %esi, (%rax)
+lock btsl %esi, (%rax)
+btl  $7, %edi
+btcl $7, %edi
+btrl $7, %edi
+btsl $7, %edi
+btl  $7, (%rax)
+btcl $7, (%rax)
+btrl $7, (%rax)
+btsl $7, (%rax)
+lock btcl $7, (%rax)
+lock btrl $7, (%rax)
+lock btsl $7, (%rax)
+
+btq  %rsi, %rdi
+btcq %rsi, %rdi
+btrq %rsi, %rdi
+btsq %rsi, %rdi
+btq  %rsi, (%rax)
+btcq %rsi, (%rax)
+btrq %rsi, (%rax)
+btsq %rsi, (%rax)
+lock btcq %rsi, (%rax)
+lock btrq %rsi, (%rax)
+lock btsq %rsi, (%rax)
+btq  $7, %rdi
+btcq $7, %rdi
+btrq $7, %rdi
+btsq $7, %rdi
+btq  $7, (%rax)
+btcq $7, (%rax)
+btrq $7, (%rax)
+btsq $7, (%rax)
+lock btcq $7, (%rax)
+lock btrq $7, (%rax)
+lock btsq $7, (%rax)
+
+cbw
+cwde
+cdqe
+cwd
+cdq
+cqo
+
+clc
+cld
+cmc
+
+cmpb $7, %al
+cmpb $7, %dil
+cmpb $7, (%rax)
+cmpb %sil, %dil
+cmpb %sil, (%rax)
+cmpb (%rax), %dil
+
+cmpw $511, %ax
+cmpw $511, %di
+cmpw $511, (%rax)
+cmpw $7, %di
+cmpw $7, (%rax)
+cmpw %si, %di
+cmpw %si, (%rax)
+cmpw (%rax), %di
+
+cmpl $665536, %eax
+cmpl $665536, %edi
+cmpl $665536, (%rax)
+cmpl $7, %edi
+cmpl $7, (%rax)
+cmpl %esi, %edi
+cmpl %esi, (%rax)
+cmpl (%rax), %edi
+
+cmpq $665536, %rax
+cmpq $665536, %rdi
+cmpq $665536, (%rax)
+cmpq $7, %rdi
+cmpq $7, (%rax)
+cmpq %rsi, %rdi
+cmpq %rsi, (%rax)
+cmpq (%rax), %rdi
+
+cmpsb
+cmpsw
+cmpsl
+cmpsq
+
+cmpxchgb %cl, %bl
+cmpxchgb %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
+
+cmpxchgw %cx, %bx
+cmpxchgw %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
+
+cmpxchgl %ecx, %ebx
+cmpxchgl %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
+
+cmpxchgq %rcx, %rbx
+cmpxchgq %rcx, (%rbx)
+lock cmpxchgq %rcx, (%rbx)
+
+cpuid
+
+decb %dil
+decb (%rax)
+lock decb (%rax)
+decw %di
+decw (%rax)
+lock decw (%rax)
+decl %edi
+decl (%rax)
+lock decl (%rax)
+decq %rdi
+decq (%rax)
+lock decq (%rax)
+
+divb %dil
+divb (%rax)
+divw %si
+divw (%rax)
+divl %edx
+divl (%rax)
+divq %rcx
+divq (%rax)
+
+enter $7, $4095
+
+idivb %dil
+idivb (%rax)
+idivw %si
+idivw (%rax)
+idivl %edx
+idivl (%rax)
+idivq %rcx
+idivq (%rax)
+
+imulb %dil
+imulb (%rax)
+
+imulw %di
+imulw (%rax)
+imulw %si, %di
+imulw (%rax), %di
+imulw $511, %si, %di
+imulw $511, (%rax), %di
+imulw $7, %si, %di
+imulw $7, (%rax), %di
+
+imull %edi
+imull (%rax)
+imull %esi, %edi
+imull (%rax), %edi
+imull $665536, %esi, %edi
+imull $665536, (%rax), %edi
+imull $7, %esi, %edi
+imull $7, (%rax), %edi
+
+imulq %rdi
+imulq (%rax)
+imulq %rsi, %rdi
+imulq (%rax), %rdi
+imulq $665536, %rsi, %rdi
+imulq $665536, (%rax), %rdi
+imulq $7, %rsi, %rdi
+imulq $7, (%rax), %rdi
+
+inb $7,  %al
+inb %dx, %al
+inw $7,  %ax
+inw %dx, %ax
+inl $7,  %eax
+inl %dx, %eax
+
+incb %dil
+incb (%rax)
+lock incb (%rax)
+incw %di
+incw (%rax)
+lock incw (%rax)
+incl %edi
+incl (%rax)
+lock incl (%rax)
+incq %rdi
+incq (%rax)
+lock incq (%rax)
+
+insb
+insw
+insl
+
+int $7
+
+invlpg  (%rax)
+invlpga %rax, %ecx
+
+lahf
+
+leave
+
+lodsb
+lodsw
+lodsl
+lodsq
+
+loop 0
+loope 0
+loopne 0
+
+movsb
+movsw
+movsl
+movsq
+
+movsbw %al, %di
+movzbw %al, %di
+movsbw (%rax), %di
+movzbw (%rax), %di
+movsbl %al, %edi
+movzbl %al, %edi
+movsbl (%rax), %edi
+movzbl (%rax), %edi
+movsbq %al, %rdi
+movzbq %al, %rdi
+movsbq (%rax), %rdi
+movzbq (%rax), %rdi
+
+movswl %ax, %edi
+movzwl %ax, %edi
+movswl (%rax), %edi
+movzwl (%rax), %edi
+movswq %ax, %rdi
+movzwq %ax, %rdi
+movswq (%rax), %rdi
+movzwq (%rax), %rdi
+
+movslq %eax, %rdi
+movslq (%rax), %rdi
+
+mulb %dil
+mulb (%rax)
+mulw %si
+mulw (%rax)
+mull %edx
+mull (%rax)
+mulq %rcx
+mulq (%rax)
+
+negb %dil
+negb (%r8)
+lock negb (%r8)
+negw %si
+negw (%r9)
+lock negw (%r9)
+negl %edx
+negl (%rax)
+lock negl (%rax)
+negq %rcx
+negq (%r10)
+lock negq (%r10)
+
+nop
+nopw %di
+nopw (%rcx)
+nopl %esi
+nopl (%r8)
+nopq %rdx
+nopq (%r9)
+
+notb %dil
+notb (%r8)
+lock notb (%r8)
+notw %si
+notw (%r9)
+lock notw (%r9)
+notl %edx
+notl (%rax)
+lock notl (%rax)
+notq %rcx
+notq (%r10)
+lock notq (%r10)
+
+orb $7, %al
+orb $7, %dil
+orb $7, (%rax)
+lock orb $7, (%rax)
+orb %sil, %dil
+orb %sil, (%rax)
+lock orb %sil, (%rax)
+orb (%rax), %dil
+
+orw $511, %ax
+orw $511, %di
+orw $511, (%rax)
+lock orw $511, (%rax)
+orw $7, %di
+orw $7, (%rax)
+lock orw $7, (%rax)
+orw %si, %di
+orw %si, (%rax)
+lock orw %si, (%rax)
+orw (%rax), %di
+
+orl $665536, %eax
+orl $665536, %edi
+orl $665536, (%rax)
+lock orl $665536, (%rax)
+orl $7, %edi
+orl $7, (%rax)
+lock orl $7, (%rax)
+orl %esi, %edi
+orl %esi, (%rax)
+lock orl %esi, (%rax)
+orl (%rax), %edi
+
+orq $665536, %rax
+orq $665536, %rdi
+orq $665536, (%rax)
+lock orq $665536, (%rax)
+orq $7, %rdi
+orq $7, (%rax)
+lock orq $7, (%rax)
+orq %rsi, %rdi
+orq %rsi, (%rax)
+lock orq %rsi, (%rax)
+orq (%rax), %rdi
+
+outb %al,  $7
+outb %al,  %dx
+outw %ax,  $7
+outw %ax,  %dx
+outl %eax, $7
+outl %eax, %dx
+
+outsb
+outsw
+outsl
+
+pause
+
+rclb %dil
+rcrb %dil
+rclb (%rax)
+rcrb (%rax)
+rclb $7, %dil
+rcrb $7, %dil
+rclb $7, (%rax)
+rcrb $7, (%rax)
+rclb %cl, %dil
+rcrb %cl, %dil
+rclb %cl, (%rax)
+rcrb %cl, (%rax)
+
+rclw %di
+rcrw %di
+rclw (%rax)
+rcrw (%rax)
+rclw $7, %di
+rcrw $7, %di
+rclw $7, (%rax)
+rcrw $7, (%rax)
+rclw %cl, %di
+rcrw %cl, %di
+rclw %cl, (%rax)
+rcrw %cl, (%rax)
+
+rcll %edi
+rcrl %edi
+rcll (%rax)
+rcrl (%rax)
+rcll $7, %edi
+rcrl $7, %edi
+rcll $7, (%rax)
+rcrl $7, (%rax)
+rcll %cl, %edi
+rcrl %cl, %edi
+rcll %cl, (%rax)
+rcrl %cl, (%rax)
+
+rclq %rdi
+rcrq %rdi
+rclq (%rax)
+rcrq (%rax)
+rclq $7, %rdi
+rcrq $7, %rdi
+rclq $7, (%rax)
+rcrq $7, (%rax)
+rclq %cl, %rdi
+rcrq %cl, %rdi
+rclq %cl, (%rax)
+rcrq %cl, (%rax)
+
+rdmsr
+rdpmc
+rdtsc
+rdtscp
+
+rolb %dil
+rorb %dil
+rolb (%rax)
+rorb (%rax)
+rolb $7, %dil
+rorb $7, %dil
+rolb $7, (%rax)
+rorb $7, (%rax)
+rolb %cl, %dil
+rorb %cl, %dil
+rolb %cl, (%rax)
+rorb %cl, (%rax)
+
+rolw %di
+rorw %di
+rolw (%rax)
+rorw (%rax)
+rolw $7, %di
+rorw $7, %di
+rolw $7, (%rax)
+rorw $7, (%rax)
+rolw %cl, %di
+rorw %cl, %di
+rolw %cl, (%rax)
+rorw %cl, (%rax)
+
+roll %edi
+rorl %edi
+roll (%rax)
+rorl (%rax)
+roll $7, %edi
+rorl $7, %edi
+roll $7, (%rax)
+rorl $7, (%rax)
+roll %cl, %edi
+rorl %cl, %edi
+roll %cl, (%rax)
+rorl %cl, (%rax)
+
+rolq %rdi
+rorq %rdi
+rolq (%rax)
+rorq (%rax)
+rolq $7, %rdi
+rorq $7, %rdi
+rolq $7, (%rax)
+rorq $7, (%rax)
+rolq %cl, %rdi
+rorq %cl, %rdi
+rolq %cl, (%rax)
+rorq %cl, (%rax)
+
+sahf
+
+sarb %dil
+shlb %dil
+shrb %dil
+sarb (%rax)
+shlb (%rax)
+shrb (%rax)
+sarb $7, %dil
+shlb $7, %dil
+shrb $7, %dil
+sarb $7, (%rax)
+shlb $7, (%rax)
+shrb $7, (%rax)
+sarb %cl, %dil
+shlb %cl, %dil
+shrb %cl, %dil
+sarb %cl, (%rax)
+shlb %cl, (%rax)
+shrb %cl, (%rax)
+
+sarw %di
+shlw %di
+shrw %di
+sarw (%rax)
+shlw (%rax)
+shrw (%rax)
+sarw $7, %di
+shlw $7, %di
+shrw $7, %di
+sarw $7, (%rax)
+shlw $7, (%rax)
+shrw $7, (%rax)
+sarw %cl, %di
+shlw %cl, %di
+shrw %cl, %di
+sarw %cl, (%rax)
+shlw %cl, (%rax)
+shrw %cl, (%rax)
+
+sarl %edi
+shll %edi
+shrl %edi
+sarl (%rax)
+shll (%rax)
+shrl (%rax)
+sarl $7, %edi
+shll $7, %edi
+shrl $7, %edi
+sarl $7, (%rax)
+shll $7, (%rax)
+shrl $7, (%rax)
+sarl %cl, %edi
+shll %cl, %edi
+shrl %cl, %edi
+sarl %cl, (%rax)
+shll %cl, (%rax)
+shrl %cl, (%rax)
+
+sarq %rdi
+shlq %rdi
+shrq %rdi
+sarq (%rax)
+shlq (%rax)
+shrq (%rax)
+sarq $7, %rdi
+shlq $7, %rdi
+shrq $7, %rdi
+sarq $7, (%rax)
+shlq $7, (%rax)
+shrq $7, (%rax)
+sarq %cl, %rdi
+shlq %cl, %rdi
+shrq %cl, %rdi
+sarq %cl, (%rax)
+shlq %cl, (%rax)
+shrq %cl, (%rax)
+
+sbbb $0, %al
+sbbb $0, %dil
+sbbb $0, (%rax)
+lock sbbb $0, (%rax)
+sbbb $7, %al
+sbbb $7, %dil
+sbbb $7, (%rax)
+lock sbbb $7, (%rax)
+sbbb %sil, %dil
+sbbb %sil, (%rax)
+lock sbbb %sil, (%rax)
+sbbb (%rax), %dil
+
+sbbw $0, %ax
+sbbw $0, %di
+sbbw $0, (%rax)
+lock sbbw $0, (%rax)
+sbbw $511, %ax
+sbbw $511, %di
+sbbw $511, (%rax)
+lock sbbw $511, (%rax)
+sbbw $7, %di
+sbbw $7, (%rax)
+lock sbbw $7, (%rax)
+sbbw %si, %di
+sbbw %si, (%rax)
+lock sbbw %si, (%rax)
+sbbw (%rax), %di
+
+sbbl $0, %eax
+sbbl $0, %edi
+sbbl $0, (%rax)
+lock sbbl $0, (%rax)
+sbbl $665536, %eax
+sbbl $665536, %edi
+sbbl $665536, (%rax)
+lock sbbl $665536, (%rax)
+sbbl $7, %edi
+sbbl $7, (%rax)
+lock sbbl $7, (%rax)
+sbbl %esi, %edi
+sbbl %esi, (%rax)
+lock sbbl %esi, (%rax)
+sbbl (%rax), %edi
+
+sbbq $0, %rax
+sbbq $0, %rdi
+sbbq $0, (%rax)
+lock sbbq $0, (%rax)
+sbbq $665536, %rax
+sbbq $665536, %rdi
+sbbq $665536, (%rax)
+lock sbbq $665536, (%rax)
+sbbq $7, %rdi
+sbbq $7, (%rax)
+lock sbbq $7, (%rax)
+sbbq %rsi, %rdi
+sbbq %rsi, (%rax)
+lock sbbq %rsi, (%rax)
+sbbq (%rax), %rdi
+
+scasb
+scasw
+scasl
+scasq
+
+seto  %al
+seto  (%rax)
+setno %al
+setno (%rax)
+setb  %al
+setb  (%rax)
+setnb %al
+setnb (%rax)
+setz  %al
+setz  (%rax)
+setnz %al
+setnz (%rax)
+seta  %al
+seta  (%rax)
+setna %al
+setna (%rax)
+sets  %al
+sets  (%rax)
+setns %al
+setns (%rax)
+setp  %al
+setp  (%rax)
+setnp %al
+setnp (%rax)
+setl  %al
+setl  (%rax)
+setnl %al
+setnl (%rax)
+setg  %al
+setg  (%rax)
+setng %al
+setng (%rax)
+
+shldw %cl, %si, %di
+shrdw %cl, %si, %di
+shldw %cl, %si, (%rax)
+shrdw %cl, %si, (%rax)
+shldw $7, %si, %di
+shrdw $7, %si, %di
+shldw $7, %si, (%rax)
+shrdw $7, %si, (%rax)
+
+shldl %cl, %esi, %edi
+shrdl %cl, %esi, %edi
+shldl %cl, %esi, (%rax)
+shrdl %cl, %esi, (%rax)
+shldl $7, %esi, %edi
+shrdl $7, %esi, %edi
+shldl $7, %esi, (%rax)
+shrdl $7, %esi, (%rax)
+
+shldq %cl, %rsi, %rdi
+shrdq %cl, %rsi, %rdi
+shldq %cl, %rsi, (%rax)
+shrdq %cl, %rsi, (%rax)
+shldq $7, %rsi, %rdi
+shrdq $7, %rsi, %rdi
+shldq $7, %rsi, (%rax)
+shrdq $7, %rsi, (%rax)
+
+stc
+std
+
+stosb
+stosw
+stosl
+stosq
+
+subb $7, %al
+subb $7, %dil
+subb $7, (%rax)
+lock subb $7, (%rax)
+subb %sil, %dil
+subb %sil, (%rax)
+lock subb %sil, (%rax)
+subb (%rax), %dil
+
+subw $511, %ax
+subw $511, %di
+subw $511, (%rax)
+lock subw $511, (%rax)
+subw $7, %di
+subw $7, (%rax)
+lock subw $7, (%rax)
+subw %si, %di
+subw %si, (%rax)
+lock subw %si, (%rax)
+subw (%rax), %di
+
+subl $665536, %eax
+subl $665536, %edi
+subl $665536, (%rax)
+lock subl $665536, (%rax)
+subl $7, %edi
+subl $7, (%rax)
+lock subl $7, (%rax)
+subl %esi, %edi
+subl %esi, (%rax)
+lock subl %esi, (%rax)
+subl (%rax), %edi
+
+subq $665536, %rax
+subq $665536, %rdi
+subq $665536, (%rax)
+lock subq $665536, (%rax)
+subq $7, %rdi
+subq $7, (%rax)
+lock subq $7, (%rax)
+subq %rsi, %rdi
+subq %rsi, (%rax)
+lock subq %rsi, (%rax)
+subq (%rax), %rdi
+
+testb $7, %al
+testb $7, %dil
+testb $7, (%rax)
+testb %sil, %dil
+testb %sil, (%rax)
+
+testw $511, %ax
+testw $511, %di
+testw $511, (%rax)
+testw $7, %di
+testw $7, (%rax)
+testw %si, %di
+testw %si, (%rax)
+
+testl $665536, %eax
+testl $665536, %edi
+testl $665536, (%rax)
+testl $7, %edi
+testl $7, (%rax)
+testl %esi, %edi
+testl %esi, (%rax)
+
+testq $665536, %rax
+testq $665536, %rdi
+testq $665536, (%rax)
+testq $7, %rdi
+testq $7, (%rax)
+testq %rsi, %rdi
+testq %rsi, (%rax)
+
+ud2
+
+wrmsr
+
+xaddb %bl, %cl
+xaddb %bl, (%rcx)
+lock xaddb %bl, (%rcx)
+
+xaddw %bx, %cx
+xaddw %ax, (%rbx)
+lock xaddw %ax, (%rbx)
+
+xaddl %ebx, %ecx
+xaddl %eax, (%rbx)
+lock xaddl %eax, (%rbx)
+
+xaddq %rbx, %rcx
+xaddq %rax, (%rbx)
+lock xaddq %rax, (%rbx)
+
+xchgb %bl, %cl
+xchgb %bl, (%rbx)
+lock xchgb %bl, (%rbx)
+
+xchgw %ax, %bx
+xchgw %bx, %cx
+xchgw %ax, (%rbx)
+lock xchgw %ax, (%rbx)
+
+xchgl %eax, %ebx
+xchgl %ebx, %ecx
+xchgl %eax, (%rbx)
+lock xchgl %eax, (%rbx)
+
+xchgq %rax, %rbx
+xchgq %rbx, %rcx
+xchgq %rax, (%rbx)
+lock xchgq %rax, (%rbx)
+
+xlatb
+
+xorb $7, %al
+xorb $7, %dil
+xorb $7, (%rax)
+lock xorb $7, (%rax)
+xorb %sil, %dil
+xorb %sil, (%rax)
+lock xorb %sil, (%rax)
+xorb (%rax), %dil
+
+xorw $511, %ax
+xorw $511, %di
+xorw $511, (%rax)
+lock xorw $511, (%rax)
+xorw $7, %di
+xorw $7, (%rax)
+lock xorw $7, (%rax)
+xorw %si, %di
+xorw %si, (%rax)
+lock xorw %si, (%rax)
+xorw (%rax), %di
+
+xorl $665536, %eax
+xorl $665536, %edi
+xorl $665536, (%rax)
+lock xorl $665536, (%rax)
+xorl $7, %edi
+xorl $7, (%rax)
+lock xorl $7, (%rax)
+xorl %esi, %edi
+xorl %esi, (%rax)
+lock xorl %esi, (%rax)
+xorl (%rax), %edi
+
+xorq $665536, %rax
+xorq $665536, %rdi
+xorq $665536, (%rax)
+lock xorq $665536, (%rax)
+xorq $7, %rdi
+xorq $7, (%rax)
+lock xorq $7, (%rax)
+xorq %rsi, %rdi
+xorq %rsi, (%rax)
+lock xorq %rsi, (%rax)
+xorq (%rax), %rdi
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      1     1.00                        adcb   $0, %al
+# CHECK-NEXT:  1      1     1.00                        adcb   $0, %dil
+# CHECK-NEXT:  1      6     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcb    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcb   $7, %al
+# CHECK-NEXT:  1      1     1.00                        adcb   $7, %dil
+# CHECK-NEXT:  1      6     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcb    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcb   %sil, %dil
+# CHECK-NEXT:  1      1     1.75    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.75    *      *            lock           adcb    %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   adcb   (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        adcw   $0, %ax
+# CHECK-NEXT:  1      1     1.00                        adcw   $0, %di
+# CHECK-NEXT:  1      6     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcw    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcw   $511, %ax
+# CHECK-NEXT:  1      1     1.00                        adcw   $511, %di
+# CHECK-NEXT:  1      6     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcw    $511, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcw   $7, %di
+# CHECK-NEXT:  1      6     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcw    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcw   %si, %di
+# CHECK-NEXT:  1      6     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcw    %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   adcw   (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        adcl   $0, %eax
+# CHECK-NEXT:  1      1     1.00                        adcl   $0, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcl    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcl   $665536, %eax
+# CHECK-NEXT:  1      1     1.00                        adcl   $665536, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcl    $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcl   $7, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcl    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcl   %esi, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcl    %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   adcl   (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        adcq   $0, %rax
+# CHECK-NEXT:  1      1     1.00                        adcq   $0, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcq    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcq   $665536, %rax
+# CHECK-NEXT:  1      1     1.00                        adcq   $665536, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcq    $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcq   $7, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcq    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        adcq   %rsi, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           adcq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   adcq   (%rax), %rdi
+# CHECK-NEXT:  1      1     1.00                        addb   $7, %al
+# CHECK-NEXT:  1      1     0.25                        addb   $7, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addb    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addb   %sil, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addb    %sil, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   addb   (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        addw   $511, %ax
+# CHECK-NEXT:  1      1     0.25                        addw   $511, %di
+# CHECK-NEXT:  1      6     0.67    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addw    $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addw   $7, %di
+# CHECK-NEXT:  1      6     0.67    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addw    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addw   %si, %di
+# CHECK-NEXT:  1      6     0.67    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addw    %si, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   addw   (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        addl   $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        addl   $665536, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addl    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addl   $7, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addl    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addl   %esi, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addl    %esi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   addl   (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        addq   $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        addq   $665536, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addq    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addq   $7, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addq    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        addq   %rsi, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           addq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   addq   (%rax), %rdi
+# CHECK-NEXT:  1      1     1.00                        andb   $7, %al
+# CHECK-NEXT:  1      1     0.25                        andb   $7, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andb    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andb   %sil, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andb    %sil, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   andb   (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        andw   $511, %ax
+# CHECK-NEXT:  1      1     0.25                        andw   $511, %di
+# CHECK-NEXT:  1      6     0.67    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andw    $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andw   $7, %di
+# CHECK-NEXT:  1      6     0.67    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andw    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andw   %si, %di
+# CHECK-NEXT:  1      6     0.67    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andw    %si, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   andw   (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        andl   $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        andl   $665536, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andl    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andl   $7, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andl    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andl   %esi, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andl    %esi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   andl   (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        andq   $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        andq   $665536, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andq    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andq   $7, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andq    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        andq   %rsi, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           andq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   andq   (%rax), %rdi
+# CHECK-NEXT:  6      1     1.00                        bsfw   %si, %di
+# CHECK-NEXT:  6      1     1.00                        bsrw   %si, %di
+# CHECK-NEXT:  7      5     1.00    *                   bsfw   (%rax), %di
+# CHECK-NEXT:  7      5     1.00    *                   bsrw   (%rax), %di
+# CHECK-NEXT:  6      1     1.00                        bsfl   %esi, %edi
+# CHECK-NEXT:  6      1     1.00                        bsrl   %esi, %edi
+# CHECK-NEXT:  7      5     1.00    *                   bsfl   (%rax), %edi
+# CHECK-NEXT:  7      5     1.00    *                   bsrl   (%rax), %edi
+# CHECK-NEXT:  6      1     1.00                        bsfq   %rsi, %rdi
+# CHECK-NEXT:  6      1     1.00                        bsrq   %rsi, %rdi
+# CHECK-NEXT:  7      5     1.00    *                   bsfq   (%rax), %rdi
+# CHECK-NEXT:  7      5     1.00    *                   bsrq   (%rax), %rdi
+# CHECK-NEXT:  1      1     0.25                        bswapl %eax
+# CHECK-NEXT:  1      1     0.25                        bswapq %rax
+# CHECK-NEXT:  1      1     0.50                        btw    %si, %di
+# CHECK-NEXT:  2      2     1.00                        btcw   %si, %di
+# CHECK-NEXT:  2      2     1.00                        btrw   %si, %di
+# CHECK-NEXT:  2      2     1.00                        btsw   %si, %di
+# CHECK-NEXT:  7      5     0.50    *                   btw    %si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btcw   %si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btrw   %si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btsw    %si, (%rax)
+# CHECK-NEXT:  1      1     0.50                        btw    $7, %di
+# CHECK-NEXT:  2      2     1.00                        btcw   $7, %di
+# CHECK-NEXT:  2      2     1.00                        btrw   $7, %di
+# CHECK-NEXT:  2      2     1.00                        btsw   $7, %di
+# CHECK-NEXT:  2      5     0.50    *                   btw    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btcw   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btrw   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btsw    $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
+# CHECK-NEXT:  2      2     1.00                        btcl   %esi, %edi
+# CHECK-NEXT:  2      2     1.00                        btrl   %esi, %edi
+# CHECK-NEXT:  2      2     1.00                        btsl   %esi, %edi
+# CHECK-NEXT:  7      5     0.50    *                   btl    %esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btcl   %esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btrl   %esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btsl    %esi, (%rax)
+# CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
+# CHECK-NEXT:  2      2     1.00                        btcl   $7, %edi
+# CHECK-NEXT:  2      2     1.00                        btrl   $7, %edi
+# CHECK-NEXT:  2      2     1.00                        btsl   $7, %edi
+# CHECK-NEXT:  2      5     0.50    *                   btl    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btcl   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btrl   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btsl    $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        btcq   %rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        btrq   %rsi, %rdi
+# CHECK-NEXT:  2      2     1.00                        btsq   %rsi, %rdi
+# CHECK-NEXT:  7      5     0.50    *                   btq    %rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btcq   %rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btrq   %rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  9      7     0.67    *      *            lock           btsq    %rsi, (%rax)
+# CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
+# CHECK-NEXT:  2      2     1.00                        btcq   $7, %rdi
+# CHECK-NEXT:  2      2     1.00                        btrq   $7, %rdi
+# CHECK-NEXT:  2      2     1.00                        btsq   $7, %rdi
+# CHECK-NEXT:  2      5     0.50    *                   btq    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btcq   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btrq   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      7     0.67    *      *            lock           btsq    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cbtw
+# CHECK-NEXT:  1      1     0.25                        cwtl
+# CHECK-NEXT:  1      1     0.25                        cltq
+# CHECK-NEXT:  1      1     0.25                        cwtd
+# CHECK-NEXT:  1      1     0.25                        cltd
+# CHECK-NEXT:  1      1     0.25                        cqto
+# CHECK-NEXT:  1      1     0.25                  U     clc
+# CHECK-NEXT:  1      1     0.25                  U     cld
+# CHECK-NEXT:  1      1     0.25                  U     cmc
+# CHECK-NEXT:  1      1     0.25                        cmpb   $7, %al
+# CHECK-NEXT:  1      1     0.25                        cmpb   $7, %dil
+# CHECK-NEXT:  1      5     0.33    *                   cmpb   $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpb   %sil, %dil
+# CHECK-NEXT:  1      5     0.33    *                   cmpb   %sil, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   cmpb   (%rax), %dil
+# CHECK-NEXT:  1      1     0.25                        cmpw   $511, %ax
+# CHECK-NEXT:  1      1     0.25                        cmpw   $511, %di
+# CHECK-NEXT:  1      5     0.33    *                   cmpw   $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpw   $7, %di
+# CHECK-NEXT:  1      5     0.33    *                   cmpw   $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpw   %si, %di
+# CHECK-NEXT:  1      5     0.33    *                   cmpw   %si, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   cmpw   (%rax), %di
+# CHECK-NEXT:  1      1     0.25                        cmpl   $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        cmpl   $665536, %edi
+# CHECK-NEXT:  1      5     0.33    *                   cmpl   $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpl   $7, %edi
+# CHECK-NEXT:  1      5     0.33    *                   cmpl   $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpl   %esi, %edi
+# CHECK-NEXT:  1      5     0.33    *                   cmpl   %esi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   cmpl   (%rax), %edi
+# CHECK-NEXT:  1      1     0.25                        cmpq   $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        cmpq   $665536, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   cmpq   $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpq   $7, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   cmpq   $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        cmpq   %rsi, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   cmpq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   cmpq   (%rax), %rdi
+# CHECK-NEXT:  100    100   25.00                 U     cmpsb  %es:(%rdi), (%rsi)
+# CHECK-NEXT:  100    100   25.00                 U     cmpsw  %es:(%rdi), (%rsi)
+# CHECK-NEXT:  100    100   25.00                 U     cmpsl  %es:(%rdi), (%rsi)
+# CHECK-NEXT:  100    100   25.00                 U     cmpsq  %es:(%rdi), (%rsi)
+# CHECK-NEXT:  3      3     3.00                        cmpxchgb       %cl, %bl
+# CHECK-NEXT:  5      7     3.00    *      *            cmpxchgb       %cl, (%rbx)
+# CHECK-NEXT:  5      7     3.00    *      *            lock           cmpxchgb        %cl, (%rbx)
+# CHECK-NEXT:  5      3     3.00                        cmpxchgw       %cx, %bx
+# CHECK-NEXT:  6      3     3.00    *      *            cmpxchgw       %cx, (%rbx)
+# CHECK-NEXT:  6      3     3.00    *      *            lock           cmpxchgw        %cx, (%rbx)
+# CHECK-NEXT:  5      3     3.00                        cmpxchgl       %ecx, %ebx
+# CHECK-NEXT:  6      3     3.00    *      *            cmpxchgl       %ecx, (%rbx)
+# CHECK-NEXT:  6      3     3.00    *      *            lock           cmpxchgl        %ecx, (%rbx)
+# CHECK-NEXT:  5      3     3.00                        cmpxchgq       %rcx, %rbx
+# CHECK-NEXT:  6      3     3.00    *      *            cmpxchgq       %rcx, (%rbx)
+# CHECK-NEXT:  6      3     3.00    *      *            lock           cmpxchgq        %rcx, (%rbx)
+# CHECK-NEXT:  100    100   25.00                 U     cpuid
+# CHECK-NEXT:  1      1     0.25                        decb   %dil
+# CHECK-NEXT:  1      6     0.67    *      *            decb   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           decb    (%rax)
+# CHECK-NEXT:  1      1     0.25                        decw   %di
+# CHECK-NEXT:  1      6     0.67    *      *            decw   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           decw    (%rax)
+# CHECK-NEXT:  1      1     0.25                        decl   %edi
+# CHECK-NEXT:  1      6     0.67    *      *            decl   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           decl    (%rax)
+# CHECK-NEXT:  1      1     0.25                        decq   %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            decq   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           decq    (%rax)
+# CHECK-NEXT:  2      10    10.00                 U     divb   %dil
+# CHECK-NEXT:  2      14    10.00   *             U     divb   (%rax)
+# CHECK-NEXT:  2      11    11.00                 U     divw   %si
+# CHECK-NEXT:  2      15    11.00   *             U     divw   (%rax)
+# CHECK-NEXT:  2      13    13.00                 U     divl   %edx
+# CHECK-NEXT:  2      17    13.00   *             U     divl   (%rax)
+# CHECK-NEXT:  2      17    17.00                 U     divq   %rcx
+# CHECK-NEXT:  2      21    17.00   *             U     divq   (%rax)
+# CHECK-NEXT:  100    100   25.00                 U     enter  $7, $4095
+# CHECK-NEXT:  2      10    10.00                 U     idivb  %dil
+# CHECK-NEXT:  2      14    10.00   *             U     idivb  (%rax)
+# CHECK-NEXT:  2      11    11.00                 U     idivw  %si
+# CHECK-NEXT:  2      15    11.00   *             U     idivw  (%rax)
+# CHECK-NEXT:  2      13    13.00                 U     idivl  %edx
+# CHECK-NEXT:  2      17    13.00   *             U     idivl  (%rax)
+# CHECK-NEXT:  2      17    17.00                 U     idivq  %rcx
+# CHECK-NEXT:  2      21    17.00   *             U     idivq  (%rax)
+# CHECK-NEXT:  1      3     3.00                        imulb  %dil
+# CHECK-NEXT:  1      7     3.00    *                   imulb  (%rax)
+# CHECK-NEXT:  3      3     3.00                        imulw  %di
+# CHECK-NEXT:  4      7     3.00    *                   imulw  (%rax)
+# CHECK-NEXT:  1      3     1.00                        imulw  %si, %di
+# CHECK-NEXT:  1      7     1.00    *                   imulw  (%rax), %di
+# CHECK-NEXT:  2      4     4.00                        imulw  $511, %si, %di
+# CHECK-NEXT:  2      8     4.00    *                   imulw  $511, (%rax), %di
+# CHECK-NEXT:  2      4     4.00                        imulw  $7, %si, %di
+# CHECK-NEXT:  2      8     4.00    *                   imulw  $7, (%rax), %di
+# CHECK-NEXT:  2      3     3.00                        imull  %edi
+# CHECK-NEXT:  2      7     3.00    *                   imull  (%rax)
+# CHECK-NEXT:  1      3     1.00                        imull  %esi, %edi
+# CHECK-NEXT:  1      7     1.00    *                   imull  (%rax), %edi
+# CHECK-NEXT:  1      3     1.00                        imull  $665536, %esi, %edi
+# CHECK-NEXT:  1      7     1.00    *                   imull  $665536, (%rax), %edi
+# CHECK-NEXT:  1      3     1.00                        imull  $7, %esi, %edi
+# CHECK-NEXT:  1      7     1.00    *                   imull  $7, (%rax), %edi
+# CHECK-NEXT:  2      3     3.00                        imulq  %rdi
+# CHECK-NEXT:  2      7     3.00    *                   imulq  (%rax)
+# CHECK-NEXT:  1      3     1.00                        imulq  %rsi, %rdi
+# CHECK-NEXT:  1      7     1.00    *                   imulq  (%rax), %rdi
+# CHECK-NEXT:  1      3     1.00                        imulq  $665536, %rsi, %rdi
+# CHECK-NEXT:  1      7     1.00    *                   imulq  $665536, (%rax), %rdi
+# CHECK-NEXT:  1      3     1.00                        imulq  $7, %rsi, %rdi
+# CHECK-NEXT:  1      7     1.00    *                   imulq  $7, (%rax), %rdi
+# CHECK-NEXT:  100    100   25.00                 U     inb    $7, %al
+# CHECK-NEXT:  100    100   25.00                 U     inb    %dx, %al
+# CHECK-NEXT:  100    100   25.00                 U     inw    $7, %ax
+# CHECK-NEXT:  100    100   25.00                 U     inw    %dx, %ax
+# CHECK-NEXT:  100    100   25.00                 U     inl    $7, %eax
+# CHECK-NEXT:  100    100   25.00                 U     inl    %dx, %eax
+# CHECK-NEXT:  1      1     0.25                        incb   %dil
+# CHECK-NEXT:  1      6     0.67    *      *            incb   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           incb    (%rax)
+# CHECK-NEXT:  1      1     0.25                        incw   %di
+# CHECK-NEXT:  1      6     0.67    *      *            incw   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           incw    (%rax)
+# CHECK-NEXT:  1      1     0.25                        incl   %edi
+# CHECK-NEXT:  1      6     0.67    *      *            incl   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           incl    (%rax)
+# CHECK-NEXT:  1      1     0.25                        incq   %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            incq   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           incq    (%rax)
+# CHECK-NEXT:  100    100   25.00                 U     insb   %dx, %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     insw   %dx, %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     insl   %dx, %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00   *      *      U     int    $7
+# CHECK-NEXT:  100    100   25.00                 U     invlpg (%rax)
+# CHECK-NEXT:  100    100   25.00                 U     invlpga
+# CHECK-NEXT:  1      1     1.00                        lahf
+# CHECK-NEXT:  1      1     0.25    *                   leave
+# CHECK-NEXT:  100    100   25.00                 U     lodsb  (%rsi), %al
+# CHECK-NEXT:  100    100   25.00                 U     lodsw  (%rsi), %ax
+# CHECK-NEXT:  100    100   25.00                 U     lodsl  (%rsi), %eax
+# CHECK-NEXT:  100    100   25.00                 U     lodsq  (%rsi), %rax
+# CHECK-NEXT:  1      1     0.50                  U     loop   0
+# CHECK-NEXT:  1      1     0.50                  U     loope  0
+# CHECK-NEXT:  1      1     0.50                  U     loopne 0
+# CHECK-NEXT:  100    100   25.00                 U     movsb  (%rsi), %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     movsw  (%rsi), %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     movsl  (%rsi), %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     movsq  (%rsi), %es:(%rdi)
+# CHECK-NEXT:  1      1     1.00                        movsbw %al, %di
+# CHECK-NEXT:  1      1     1.00                        movzbw %al, %di
+# CHECK-NEXT:  1      5     1.00    *                   movsbw (%rax), %di
+# CHECK-NEXT:  1      5     1.00    *                   movzbw (%rax), %di
+# CHECK-NEXT:  1      1     0.25                        movsbl %al, %edi
+# CHECK-NEXT:  1      1     0.25                        movzbl %al, %edi
+# CHECK-NEXT:  1      5     0.33    *                   movsbl (%rax), %edi
+# CHECK-NEXT:  1      5     0.33    *                   movzbl (%rax), %edi
+# CHECK-NEXT:  1      1     0.25                        movsbq %al, %rdi
+# CHECK-NEXT:  1      1     0.25                        movzbq %al, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   movsbq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.33    *                   movzbq (%rax), %rdi
+# CHECK-NEXT:  1      1     0.25                        movswl %ax, %edi
+# CHECK-NEXT:  1      1     0.25                        movzwl %ax, %edi
+# CHECK-NEXT:  1      5     0.33    *                   movswl (%rax), %edi
+# CHECK-NEXT:  1      5     0.33    *                   movzwl (%rax), %edi
+# CHECK-NEXT:  1      1     0.25                        movswq %ax, %rdi
+# CHECK-NEXT:  1      1     0.25                        movzwq %ax, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   movswq (%rax), %rdi
+# CHECK-NEXT:  1      5     0.33    *                   movzwq (%rax), %rdi
+# CHECK-NEXT:  1      1     0.25                        movslq %eax, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   movslq (%rax), %rdi
+# CHECK-NEXT:  1      3     3.00                        mulb   %dil
+# CHECK-NEXT:  1      7     3.00    *                   mulb   (%rax)
+# CHECK-NEXT:  3      3     3.00                        mulw   %si
+# CHECK-NEXT:  4      7     3.00    *                   mulw   (%rax)
+# CHECK-NEXT:  2      3     3.00                        mull   %edx
+# CHECK-NEXT:  2      7     3.00    *                   mull   (%rax)
+# CHECK-NEXT:  2      3     3.00                        mulq   %rcx
+# CHECK-NEXT:  2      7     3.00    *                   mulq   (%rax)
+# CHECK-NEXT:  1      1     0.25                        negb   %dil
+# CHECK-NEXT:  1      6     0.67    *      *            negb   (%r8)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           negb    (%r8)
+# CHECK-NEXT:  1      1     0.25                        negw   %si
+# CHECK-NEXT:  1      6     0.67    *      *            negw   (%r9)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           negw    (%r9)
+# CHECK-NEXT:  1      1     0.25                        negl   %edx
+# CHECK-NEXT:  1      6     0.67    *      *            negl   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           negl    (%rax)
+# CHECK-NEXT:  1      1     0.25                        negq   %rcx
+# CHECK-NEXT:  1      6     0.67    *      *            negq   (%r10)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           negq    (%r10)
+# CHECK-NEXT:  1      0     0.25                        nop
+# CHECK-NEXT:  1      0     0.25                        nopw   %di
+# CHECK-NEXT:  1      0     0.25                        nopw   (%rcx)
+# CHECK-NEXT:  1      0     0.25                        nopl   %esi
+# CHECK-NEXT:  1      0     0.25                        nopl   (%r8)
+# CHECK-NEXT:  1      0     0.25                        nopq   %rdx
+# CHECK-NEXT:  1      0     0.25                        nopq   (%r9)
+# CHECK-NEXT:  1      1     0.25                        notb   %dil
+# CHECK-NEXT:  1      6     0.67    *      *            notb   (%r8)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           notb    (%r8)
+# CHECK-NEXT:  1      1     0.25                        notw   %si
+# CHECK-NEXT:  1      6     0.67    *      *            notw   (%r9)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           notw    (%r9)
+# CHECK-NEXT:  1      1     0.25                        notl   %edx
+# CHECK-NEXT:  1      6     0.67    *      *            notl   (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           notl    (%rax)
+# CHECK-NEXT:  1      1     0.25                        notq   %rcx
+# CHECK-NEXT:  1      6     0.67    *      *            notq   (%r10)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           notq    (%r10)
+# CHECK-NEXT:  1      1     1.00                        orb    $7, %al
+# CHECK-NEXT:  1      1     0.25                        orb    $7, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orb     $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orb    %sil, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orb     %sil, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   orb    (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        orw    $511, %ax
+# CHECK-NEXT:  1      1     0.25                        orw    $511, %di
+# CHECK-NEXT:  1      6     0.67    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orw     $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orw    $7, %di
+# CHECK-NEXT:  1      6     0.67    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orw     $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orw    %si, %di
+# CHECK-NEXT:  1      6     0.67    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orw     %si, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   orw    (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        orl    $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        orl    $665536, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orl     $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orl    $7, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orl     $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orl    %esi, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orl     %esi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   orl    (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        orq    $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        orq    $665536, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orq     $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orq    $7, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orq     $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        orq    %rsi, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           orq     %rsi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   orq    (%rax), %rdi
+# CHECK-NEXT:  100    100   25.00                 U     outb   %al, $7
+# CHECK-NEXT:  100    100   25.00                 U     outb   %al, %dx
+# CHECK-NEXT:  100    100   25.00                 U     outw   %ax, $7
+# CHECK-NEXT:  100    100   25.00                 U     outw   %ax, %dx
+# CHECK-NEXT:  100    100   25.00                 U     outl   %eax, $7
+# CHECK-NEXT:  100    100   25.00                 U     outl   %eax, %dx
+# CHECK-NEXT:  100    100   25.00                 U     outsb  (%rsi), %dx
+# CHECK-NEXT:  100    100   25.00                 U     outsw  (%rsi), %dx
+# CHECK-NEXT:  100    100   25.00                 U     outsl  (%rsi), %dx
+# CHECK-NEXT:  1      0     0.25    *      *      U     pause
+# CHECK-NEXT:  1      1     1.00                        rclb   %dil
+# CHECK-NEXT:  1      1     1.00                        rcrb   %dil
+# CHECK-NEXT:  2      5     1.00           *            rclb   (%rax)
+# CHECK-NEXT:  2      5     1.00           *            rcrb   (%rax)
+# CHECK-NEXT:  9      4     4.00                        rclb   $7, %dil
+# CHECK-NEXT:  7      3     3.00                        rcrb   $7, %dil
+# CHECK-NEXT:  11     8     4.00           *            rclb   $7, (%rax)
+# CHECK-NEXT:  10     7     4.00           *            rcrb   $7, (%rax)
+# CHECK-NEXT:  9      4     4.00                        rclb   %cl, %dil
+# CHECK-NEXT:  7      3     3.00                        rcrb   %cl, %dil
+# CHECK-NEXT:  11     8     4.00           *            rclb   %cl, (%rax)
+# CHECK-NEXT:  9      7     4.00           *            rcrb   %cl, (%rax)
+# CHECK-NEXT:  1      1     1.00                        rclw   %di
+# CHECK-NEXT:  1      1     1.00                        rcrw   %di
+# CHECK-NEXT:  2      5     1.00           *            rclw   (%rax)
+# CHECK-NEXT:  2      5     1.00           *            rcrw   (%rax)
+# CHECK-NEXT:  9      4     4.00                        rclw   $7, %di
+# CHECK-NEXT:  7      3     3.00                        rcrw   $7, %di
+# CHECK-NEXT:  11     8     4.00           *            rclw   $7, (%rax)
+# CHECK-NEXT:  10     7     4.00           *            rcrw   $7, (%rax)
+# CHECK-NEXT:  9      4     4.00                        rclw   %cl, %di
+# CHECK-NEXT:  7      3     3.00                        rcrw   %cl, %di
+# CHECK-NEXT:  11     8     4.00           *            rclw   %cl, (%rax)
+# CHECK-NEXT:  9      7     4.00           *            rcrw   %cl, (%rax)
+# CHECK-NEXT:  1      1     1.00                        rcll   %edi
+# CHECK-NEXT:  1      1     1.00                        rcrl   %edi
+# CHECK-NEXT:  2      5     1.00           *            rcll   (%rax)
+# CHECK-NEXT:  2      5     1.00           *            rcrl   (%rax)
+# CHECK-NEXT:  9      4     4.00                        rcll   $7, %edi
+# CHECK-NEXT:  7      3     3.00                        rcrl   $7, %edi
+# CHECK-NEXT:  11     8     4.00           *            rcll   $7, (%rax)
+# CHECK-NEXT:  10     7     4.00           *            rcrl   $7, (%rax)
+# CHECK-NEXT:  9      4     4.00                        rcll   %cl, %edi
+# CHECK-NEXT:  7      3     3.00                        rcrl   %cl, %edi
+# CHECK-NEXT:  11     8     4.00           *            rcll   %cl, (%rax)
+# CHECK-NEXT:  9      7     4.00           *            rcrl   %cl, (%rax)
+# CHECK-NEXT:  1      1     1.00                        rclq   %rdi
+# CHECK-NEXT:  1      1     1.00                        rcrq   %rdi
+# CHECK-NEXT:  2      5     1.00           *            rclq   (%rax)
+# CHECK-NEXT:  2      5     1.00           *            rcrq   (%rax)
+# CHECK-NEXT:  9      4     4.00                        rclq   $7, %rdi
+# CHECK-NEXT:  7      3     3.00                        rcrq   $7, %rdi
+# CHECK-NEXT:  11     8     4.00           *            rclq   $7, (%rax)
+# CHECK-NEXT:  10     7     4.00           *            rcrq   $7, (%rax)
+# CHECK-NEXT:  9      4     4.00                        rclq   %cl, %rdi
+# CHECK-NEXT:  7      3     3.00                        rcrq   %cl, %rdi
+# CHECK-NEXT:  11     8     4.00           *            rclq   %cl, (%rax)
+# CHECK-NEXT:  9      7     4.00           *            rcrq   %cl, (%rax)
+# CHECK-NEXT:  100    100   25.00                 U     rdmsr
+# CHECK-NEXT:  100    100   25.00                 U     rdpmc
+# CHECK-NEXT:  100    100   25.00                 U     rdtsc
+# CHECK-NEXT:  100    100   25.00                 U     rdtscp
+# CHECK-NEXT:  1      1     0.50                        rolb   %dil
+# CHECK-NEXT:  1      1     0.50                        rorb   %dil
+# CHECK-NEXT:  2      5     0.67    *      *            rolb   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorb   (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolb   $7, %dil
+# CHECK-NEXT:  1      1     0.50                        rorb   $7, %dil
+# CHECK-NEXT:  2      5     0.67    *      *            rolb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorb   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolb   %cl, %dil
+# CHECK-NEXT:  1      1     0.50                        rorb   %cl, %dil
+# CHECK-NEXT:  2      5     0.67    *      *            rolb   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorb   %cl, (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolw   %di
+# CHECK-NEXT:  1      1     0.50                        rorw   %di
+# CHECK-NEXT:  2      5     0.67    *      *            rolw   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorw   (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolw   $7, %di
+# CHECK-NEXT:  1      1     0.50                        rorw   $7, %di
+# CHECK-NEXT:  2      5     0.67    *      *            rolw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorw   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolw   %cl, %di
+# CHECK-NEXT:  1      1     0.50                        rorw   %cl, %di
+# CHECK-NEXT:  2      5     0.67    *      *            rolw   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorw   %cl, (%rax)
+# CHECK-NEXT:  1      1     0.50                        roll   %edi
+# CHECK-NEXT:  1      1     0.50                        rorl   %edi
+# CHECK-NEXT:  2      5     0.67    *      *            roll   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorl   (%rax)
+# CHECK-NEXT:  1      1     0.50                        roll   $7, %edi
+# CHECK-NEXT:  1      1     0.50                        rorl   $7, %edi
+# CHECK-NEXT:  2      5     0.67    *      *            roll   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorl   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        roll   %cl, %edi
+# CHECK-NEXT:  1      1     0.50                        rorl   %cl, %edi
+# CHECK-NEXT:  2      5     0.67    *      *            roll   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorl   %cl, (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolq   %rdi
+# CHECK-NEXT:  1      1     0.50                        rorq   %rdi
+# CHECK-NEXT:  2      5     0.67    *      *            rolq   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorq   (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolq   $7, %rdi
+# CHECK-NEXT:  1      1     0.50                        rorq   $7, %rdi
+# CHECK-NEXT:  2      5     0.67    *      *            rolq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorq   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        rolq   %cl, %rdi
+# CHECK-NEXT:  1      1     0.50                        rorq   %cl, %rdi
+# CHECK-NEXT:  2      5     0.67    *      *            rolq   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            rorq   %cl, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sahf
+# CHECK-NEXT:  1      1     0.50                        sarb   %dil
+# CHECK-NEXT:  1      1     0.50                        shlb   %dil
+# CHECK-NEXT:  1      1     0.50                        shrb   %dil
+# CHECK-NEXT:  2      5     0.67    *      *            sarb   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlb   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrb   (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarb   $7, %dil
+# CHECK-NEXT:  1      1     0.50                        shlb   $7, %dil
+# CHECK-NEXT:  1      1     0.50                        shrb   $7, %dil
+# CHECK-NEXT:  2      5     0.67    *      *            sarb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrb   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarb   %cl, %dil
+# CHECK-NEXT:  1      1     0.50                        shlb   %cl, %dil
+# CHECK-NEXT:  1      1     0.50                        shrb   %cl, %dil
+# CHECK-NEXT:  2      5     0.67    *      *            sarb   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlb   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrb   %cl, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarw   %di
+# CHECK-NEXT:  1      1     0.50                        shlw   %di
+# CHECK-NEXT:  1      1     0.50                        shrw   %di
+# CHECK-NEXT:  2      5     0.67    *      *            sarw   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlw   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrw   (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarw   $7, %di
+# CHECK-NEXT:  1      1     0.50                        shlw   $7, %di
+# CHECK-NEXT:  1      1     0.50                        shrw   $7, %di
+# CHECK-NEXT:  2      5     0.67    *      *            sarw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrw   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarw   %cl, %di
+# CHECK-NEXT:  1      1     0.50                        shlw   %cl, %di
+# CHECK-NEXT:  1      1     0.50                        shrw   %cl, %di
+# CHECK-NEXT:  2      5     0.67    *      *            sarw   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlw   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrw   %cl, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarl   %edi
+# CHECK-NEXT:  1      1     0.50                        shll   %edi
+# CHECK-NEXT:  1      1     0.50                        shrl   %edi
+# CHECK-NEXT:  2      5     0.67    *      *            sarl   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shll   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrl   (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarl   $7, %edi
+# CHECK-NEXT:  1      1     0.50                        shll   $7, %edi
+# CHECK-NEXT:  1      1     0.50                        shrl   $7, %edi
+# CHECK-NEXT:  2      5     0.67    *      *            sarl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shll   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrl   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarl   %cl, %edi
+# CHECK-NEXT:  1      1     0.50                        shll   %cl, %edi
+# CHECK-NEXT:  1      1     0.50                        shrl   %cl, %edi
+# CHECK-NEXT:  2      5     0.67    *      *            sarl   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shll   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrl   %cl, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarq   %rdi
+# CHECK-NEXT:  1      1     0.50                        shlq   %rdi
+# CHECK-NEXT:  1      1     0.50                        shrq   %rdi
+# CHECK-NEXT:  2      5     0.67    *      *            sarq   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlq   (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrq   (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarq   $7, %rdi
+# CHECK-NEXT:  1      1     0.50                        shlq   $7, %rdi
+# CHECK-NEXT:  1      1     0.50                        shrq   $7, %rdi
+# CHECK-NEXT:  2      5     0.67    *      *            sarq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrq   $7, (%rax)
+# CHECK-NEXT:  1      1     0.50                        sarq   %cl, %rdi
+# CHECK-NEXT:  1      1     0.50                        shlq   %cl, %rdi
+# CHECK-NEXT:  1      1     0.50                        shrq   %cl, %rdi
+# CHECK-NEXT:  2      5     0.67    *      *            sarq   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shlq   %cl, (%rax)
+# CHECK-NEXT:  2      5     0.67    *      *            shrq   %cl, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbb   $0, %al
+# CHECK-NEXT:  1      1     1.00                        sbbb   $0, %dil
+# CHECK-NEXT:  1      6     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbb    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbb   $7, %al
+# CHECK-NEXT:  1      1     1.00                        sbbb   $7, %dil
+# CHECK-NEXT:  1      6     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbb    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbb   %sil, %dil
+# CHECK-NEXT:  1      1     1.75    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.75    *      *            lock           sbbb    %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   sbbb   (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        sbbw   $0, %ax
+# CHECK-NEXT:  1      1     1.00                        sbbw   $0, %di
+# CHECK-NEXT:  1      6     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbw    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbw   $511, %ax
+# CHECK-NEXT:  1      1     1.00                        sbbw   $511, %di
+# CHECK-NEXT:  1      6     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbw    $511, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbw   $7, %di
+# CHECK-NEXT:  1      6     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbw    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbw   %si, %di
+# CHECK-NEXT:  1      6     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbw    %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   sbbw   (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        sbbl   $0, %eax
+# CHECK-NEXT:  1      1     1.00                        sbbl   $0, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbl    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbl   $665536, %eax
+# CHECK-NEXT:  1      1     1.00                        sbbl   $665536, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbl    $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbl   $7, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbl    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbl   %esi, %edi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbl    %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   sbbl   (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        sbbq   $0, %rax
+# CHECK-NEXT:  1      1     1.00                        sbbq   $0, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbq    $0, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbq   $665536, %rax
+# CHECK-NEXT:  1      1     1.00                        sbbq   $665536, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbq    $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbq   $7, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbq    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00                        sbbq   %rsi, %rdi
+# CHECK-NEXT:  1      6     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     1.00    *      *            lock           sbbq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *                   sbbq   (%rax), %rdi
+# CHECK-NEXT:  100    100   25.00                 U     scasb  %es:(%rdi), %al
+# CHECK-NEXT:  100    100   25.00                 U     scasw  %es:(%rdi), %ax
+# CHECK-NEXT:  100    100   25.00                 U     scasl  %es:(%rdi), %eax
+# CHECK-NEXT:  100    100   25.00                 U     scasq  %es:(%rdi), %rax
+# CHECK-NEXT:  1      1     1.00                        seto   %al
+# CHECK-NEXT:  2      2     1.00           *            seto   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setno  %al
+# CHECK-NEXT:  2      2     1.00           *            setno  (%rax)
+# CHECK-NEXT:  1      1     1.00                        setb   %al
+# CHECK-NEXT:  2      2     1.00           *            setb   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setae  %al
+# CHECK-NEXT:  2      2     1.00           *            setae  (%rax)
+# CHECK-NEXT:  1      1     1.00                        sete   %al
+# CHECK-NEXT:  2      2     1.00           *            sete   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setne  %al
+# CHECK-NEXT:  2      2     1.00           *            setne  (%rax)
+# CHECK-NEXT:  1      1     1.00                        seta   %al
+# CHECK-NEXT:  2      2     1.00           *            seta   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setbe  %al
+# CHECK-NEXT:  2      2     1.00           *            setbe  (%rax)
+# CHECK-NEXT:  1      1     1.00                        sets   %al
+# CHECK-NEXT:  2      2     1.00           *            sets   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setns  %al
+# CHECK-NEXT:  2      2     1.00           *            setns  (%rax)
+# CHECK-NEXT:  1      1     1.00                        setp   %al
+# CHECK-NEXT:  2      2     1.00           *            setp   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setnp  %al
+# CHECK-NEXT:  2      2     1.00           *            setnp  (%rax)
+# CHECK-NEXT:  1      1     1.00                        setl   %al
+# CHECK-NEXT:  2      2     1.00           *            setl   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setge  %al
+# CHECK-NEXT:  2      2     1.00           *            setge  (%rax)
+# CHECK-NEXT:  1      1     1.00                        setg   %al
+# CHECK-NEXT:  2      2     1.00           *            setg   (%rax)
+# CHECK-NEXT:  1      1     1.00                        setle  %al
+# CHECK-NEXT:  2      2     1.00           *            setle  (%rax)
+# CHECK-NEXT:  5      2     1.50                        shldw  %cl, %si, %di
+# CHECK-NEXT:  5      2     1.50                        shrdw  %cl, %si, %di
+# CHECK-NEXT:  6      6     2.00    *      *            shldw  %cl, %si, (%rax)
+# CHECK-NEXT:  6      6     2.00    *      *            shrdw  %cl, %si, (%rax)
+# CHECK-NEXT:  4      2     1.50                        shldw  $7, %si, %di
+# CHECK-NEXT:  4      2     1.50                        shrdw  $7, %si, %di
+# CHECK-NEXT:  6      6     2.00    *      *            shldw  $7, %si, (%rax)
+# CHECK-NEXT:  6      6     2.00    *      *            shrdw  $7, %si, (%rax)
+# CHECK-NEXT:  5      2     1.50                        shldl  %cl, %esi, %edi
+# CHECK-NEXT:  5      2     1.50                        shrdl  %cl, %esi, %edi
+# CHECK-NEXT:  6      6     2.00    *      *            shldl  %cl, %esi, (%rax)
+# CHECK-NEXT:  6      6     2.00    *      *            shrdl  %cl, %esi, (%rax)
+# CHECK-NEXT:  4      2     1.50                        shldl  $7, %esi, %edi
+# CHECK-NEXT:  4      2     1.50                        shrdl  $7, %esi, %edi
+# CHECK-NEXT:  6      6     2.00    *      *            shldl  $7, %esi, (%rax)
+# CHECK-NEXT:  6      6     2.00    *      *            shrdl  $7, %esi, (%rax)
+# CHECK-NEXT:  5      2     1.50                        shldq  %cl, %rsi, %rdi
+# CHECK-NEXT:  5      2     1.50                        shrdq  %cl, %rsi, %rdi
+# CHECK-NEXT:  6      6     2.00    *      *            shldq  %cl, %rsi, (%rax)
+# CHECK-NEXT:  6      6     2.00    *      *            shrdq  %cl, %rsi, (%rax)
+# CHECK-NEXT:  4      2     1.50                        shldq  $7, %rsi, %rdi
+# CHECK-NEXT:  4      2     1.50                        shrdq  $7, %rsi, %rdi
+# CHECK-NEXT:  6      6     2.00    *      *            shldq  $7, %rsi, (%rax)
+# CHECK-NEXT:  6      6     2.00    *      *            shrdq  $7, %rsi, (%rax)
+# CHECK-NEXT:  1      1     0.25                  U     stc
+# CHECK-NEXT:  1      1     0.25                  U     std
+# CHECK-NEXT:  100    100   25.00                 U     stosb  %al, %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     stosw  %ax, %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     stosl  %eax, %es:(%rdi)
+# CHECK-NEXT:  100    100   25.00                 U     stosq  %rax, %es:(%rdi)
+# CHECK-NEXT:  1      1     1.00                        subb   $7, %al
+# CHECK-NEXT:  1      1     0.25                        subb   $7, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subb    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subb   %sil, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subb    %sil, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   subb   (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        subw   $511, %ax
+# CHECK-NEXT:  1      1     0.25                        subw   $511, %di
+# CHECK-NEXT:  1      6     0.67    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subw    $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subw   $7, %di
+# CHECK-NEXT:  1      6     0.67    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subw    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subw   %si, %di
+# CHECK-NEXT:  1      6     0.67    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subw    %si, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   subw   (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        subl   $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        subl   $665536, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subl    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subl   $7, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subl    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subl   %esi, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subl    %esi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   subl   (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        subq   $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        subq   $665536, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subq    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subq   $7, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subq    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        subq   %rsi, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           subq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   subq   (%rax), %rdi
+# CHECK-NEXT:  1      1     0.25                        testb  $7, %al
+# CHECK-NEXT:  1      1     0.25                        testb  $7, %dil
+# CHECK-NEXT:  1      5     0.33    *                   testb  $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testb  %sil, %dil
+# CHECK-NEXT:  1      5     0.33    *                   testb  %sil, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testw  $511, %ax
+# CHECK-NEXT:  1      1     0.25                        testw  $511, %di
+# CHECK-NEXT:  1      5     0.33    *                   testw  $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testw  $7, %di
+# CHECK-NEXT:  1      5     0.33    *                   testw  $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testw  %si, %di
+# CHECK-NEXT:  1      5     0.33    *                   testw  %si, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testl  $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        testl  $665536, %edi
+# CHECK-NEXT:  1      5     0.33    *                   testl  $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testl  $7, %edi
+# CHECK-NEXT:  1      5     0.33    *                   testl  $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testl  %esi, %edi
+# CHECK-NEXT:  1      5     0.33    *                   testl  %esi, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testq  $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        testq  $665536, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   testq  $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testq  $7, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   testq  $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        testq  %rsi, %rdi
+# CHECK-NEXT:  1      5     0.33    *                   testq  %rsi, (%rax)
+# CHECK-NEXT:  100    100   25.00   *             U     ud2
+# CHECK-NEXT:  100    100   25.00                 U     wrmsr
+# CHECK-NEXT:  2      0     2.00                        xaddb  %bl, %cl
+# CHECK-NEXT:  1      5     0.67    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock           xaddb   %bl, (%rcx)
+# CHECK-NEXT:  2      0     2.00                        xaddw  %bx, %cx
+# CHECK-NEXT:  1      5     0.67    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock           xaddw   %ax, (%rbx)
+# CHECK-NEXT:  2      0     2.00                        xaddl  %ebx, %ecx
+# CHECK-NEXT:  1      5     0.67    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock           xaddl   %eax, (%rbx)
+# CHECK-NEXT:  2      0     2.00                        xaddq  %rbx, %rcx
+# CHECK-NEXT:  1      5     0.67    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  1      5     0.67    *      *            lock           xaddq   %rax, (%rbx)
+# CHECK-NEXT:  2      1     0.50                        xchgb  %bl, %cl
+# CHECK-NEXT:  5      7     0.50    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  5      7     0.50    *      *            lock           xchgb   %bl, (%rbx)
+# CHECK-NEXT:  2      1     0.50                        xchgw  %bx, %ax
+# CHECK-NEXT:  2      1     0.50                        xchgw  %bx, %cx
+# CHECK-NEXT:  5      7     0.50    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  5      7     0.50    *      *            lock           xchgw   %ax, (%rbx)
+# CHECK-NEXT:  2      0     0.33                        xchgl  %ebx, %eax
+# CHECK-NEXT:  2      0     0.33                        xchgl  %ebx, %ecx
+# CHECK-NEXT:  2      6     0.50    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           xchgl   %eax, (%rbx)
+# CHECK-NEXT:  2      0     0.33                        xchgq  %rbx, %rax
+# CHECK-NEXT:  2      0     0.33                        xchgq  %rbx, %rcx
+# CHECK-NEXT:  2      6     0.50    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           xchgq   %rax, (%rbx)
+# CHECK-NEXT:  1      5     0.33    *                   xlatb
+# CHECK-NEXT:  1      1     1.00                        xorb   $7, %al
+# CHECK-NEXT:  1      1     0.25                        xorb   $7, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorb    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorb   %sil, %dil
+# CHECK-NEXT:  1      6     0.67    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorb    %sil, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   xorb   (%rax), %dil
+# CHECK-NEXT:  1      1     1.00                        xorw   $511, %ax
+# CHECK-NEXT:  1      1     0.25                        xorw   $511, %di
+# CHECK-NEXT:  1      6     0.67    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorw    $511, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorw   $7, %di
+# CHECK-NEXT:  1      6     0.67    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorw    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorw   %si, %di
+# CHECK-NEXT:  1      6     0.67    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorw    %si, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   xorw   (%rax), %di
+# CHECK-NEXT:  1      1     1.00                        xorl   $665536, %eax
+# CHECK-NEXT:  1      1     0.25                        xorl   $665536, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorl    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorl   $7, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorl    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorl   %esi, %edi
+# CHECK-NEXT:  1      6     0.67    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorl    %esi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   xorl   (%rax), %edi
+# CHECK-NEXT:  1      1     1.00                        xorq   $665536, %rax
+# CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorq    $665536, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorq   $7, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorq    $7, (%rax)
+# CHECK-NEXT:  1      1     0.25                        xorq   %rsi, %rdi
+# CHECK-NEXT:  1      6     0.67    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     0.67    *      *            lock           xorq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     0.33    *                   xorq   (%rax), %rdi
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 259.00 259.00 259.00 1733.00 1865.50 1775.50 1529.50 1.50  -    -      -      -      -      -      -     259.00 259.00 259.00 151.67 151.67 151.67 161.00 161.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $0, %al
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $0, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcb    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcb    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $7, %al
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    %sil, %dil
+# CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $0, %ax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $0, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcw    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $511, %ax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw    $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcw    (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $0, %eax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $0, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcl    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $665536, %eax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $0, %rax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $0, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcq    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $665536, %rax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   adcq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            adcq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     adcq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb    $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb    %sil, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addb    %sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addw    $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addw    (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addl    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addq    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   addq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            addq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     addq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb    $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb    %sil, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andb    %sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andw    $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andw    (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andl    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andq    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   andq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            andq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     andq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsfw    %si, %di
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsrw    %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bsfw    (%rax), %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bsrw    (%rax), %di
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsfl    %esi, %edi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsrl    %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bsfl    (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bsrl    (%rax), %edi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsfq    %rsi, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsrq    %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bsfq    (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     bsrq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bswapl  %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bswapq  %rax
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btw     %si, %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcw    %si, %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrw    %si, %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btsw    %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     btw     %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btcw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btrw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btsw    %si, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btw     $7, %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcw    $7, %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrw    $7, %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btsw    $7, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     btw     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btcw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btrw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btsw    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btl     %esi, %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcl    %esi, %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrl    %esi, %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btsl    %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     btl     %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btcl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btrl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btsl    %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btl     $7, %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcl    $7, %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrl    $7, %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btsl    $7, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     btl     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btcl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btrl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btsl    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btq     %rsi, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcq    %rsi, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrq    %rsi, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btsq    %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     btq     %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btcq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btrq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btsq    %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btq     $7, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcq    $7, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrq    $7, %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btsq    $7, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     btq     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btcq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btrq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   btsq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btcq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btrq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            btsq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cbtw
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cwtl
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cltq
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cwtd
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cltd
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cqto
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     clc
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cld
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmc
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpb    $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpb    $7, %dil
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpb    %sil, %dil
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpw    $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpw    $511, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpw    $7, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpw    %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpw    (%rax), %di
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpl    $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpl    $665536, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpl    $7, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpl    %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpq    $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpq    $665536, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpq    $7, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpq    %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpsb   %es:(%rdi), (%rsi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpsw   %es:(%rdi), (%rsi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpsl   %es:(%rdi), (%rsi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpsq   %es:(%rdi), (%rsi)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgb        %cl, %bl
+# CHECK-NEXT: 0.33   0.33   0.33   3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     cmpxchgb        %cl, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock            cmpxchgb        %cl, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw        %cx, %bx
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgw        %cx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgw        %cx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl        %ecx, %ebx
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgl        %ecx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgl        %ecx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq        %rcx, %rbx
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cmpxchgq        %rcx, (%rbx)
+# CHECK-NEXT:  -      -      -     3.00   3.00   3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            cmpxchgq        %rcx, (%rbx)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cpuid
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decb    %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decb    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            decb    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decw    %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decw    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            decw    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decl    %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decl    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            decl    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decq    %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   decq    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            decq    (%rax)
+# CHECK-NEXT:  -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divb    %dil
+# CHECK-NEXT: 0.33   0.33   0.33   10.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divb    (%rax)
+# CHECK-NEXT:  -      -      -     11.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divw    %si
+# CHECK-NEXT: 0.33   0.33   0.33   11.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divw    (%rax)
+# CHECK-NEXT:  -      -      -     13.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divl    %edx
+# CHECK-NEXT: 0.33   0.33   0.33   13.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divl    (%rax)
+# CHECK-NEXT:  -      -      -     17.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divq    %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   17.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     divq    (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     enter   $7, $4095
+# CHECK-NEXT:  -      -      -     10.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     idivb   %dil
+# CHECK-NEXT: 0.33   0.33   0.33   10.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     idivb   (%rax)
+# CHECK-NEXT:  -      -      -     11.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     idivw   %si
+# CHECK-NEXT: 0.33   0.33   0.33   11.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     idivw   (%rax)
+# CHECK-NEXT:  -      -      -     13.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     idivl   %edx
+# CHECK-NEXT: 0.33   0.33   0.33   13.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     idivl   (%rax)
+# CHECK-NEXT:  -      -      -     17.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     idivq   %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   17.00   -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     idivq   (%rax)
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulb   %dil
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulb   (%rax)
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulw   %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulw   (%rax)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulw   %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulw   (%rax), %di
+# CHECK-NEXT:  -      -      -      -     4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulw   $511, %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulw   $511, (%rax), %di
+# CHECK-NEXT:  -      -      -      -     4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulw   $7, %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulw   $7, (%rax), %di
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imull   %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imull   (%rax)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imull   %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imull   (%rax), %edi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imull   $665536, %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imull   $665536, (%rax), %edi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imull   $7, %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imull   $7, (%rax), %edi
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulq   %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulq   (%rax)
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulq   %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulq   (%rax), %rdi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulq   $665536, %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulq   $665536, (%rax), %rdi
+# CHECK-NEXT:  -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     imulq   $7, %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     imulq   $7, (%rax), %rdi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inb     $7, %al
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inb     %dx, %al
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inw     $7, %ax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inw     %dx, %ax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inl     $7, %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inl     %dx, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incb    %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incb    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            incb    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incw    %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incw    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            incw    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incl    %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incl    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            incl    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incq    %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   incq    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            incq    (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insb    %dx, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insw    %dx, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insl    %dx, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     int     $7
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     invlpg  (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     invlpga
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lahf
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leave
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsb   (%rsi), %al
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsw   (%rsi), %ax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsl   (%rsi), %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsq   (%rsi), %rax
+# CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loop    0
+# CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loope   0
+# CHECK-NEXT:  -      -      -     0.50    -      -      -     0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     loopne  0
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsb   (%rsi), %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsw   (%rsi), %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsl   (%rsi), %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsq   (%rsi), %es:(%rdi)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsbw  %al, %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movzbw  %al, %di
+# CHECK-NEXT: 1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movsbw  (%rax), %di
+# CHECK-NEXT: 1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movzbw  (%rax), %di
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsbl  %al, %edi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movzbl  %al, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movsbl  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movzbl  (%rax), %edi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movsbq  %al, %rdi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movzbq  %al, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movsbq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movzbq  (%rax), %rdi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movswl  %ax, %edi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movzwl  %ax, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movswl  (%rax), %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movzwl  (%rax), %edi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movswq  %ax, %rdi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movzwq  %ax, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movswq  (%rax), %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movzwq  (%rax), %rdi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movslq  %eax, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     movslq  (%rax), %rdi
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulb    %dil
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulb    (%rax)
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulw    %si
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulw    (%rax)
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mull    %edx
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mull    (%rax)
+# CHECK-NEXT:  -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mulq    %rcx
+# CHECK-NEXT: 0.33   0.33   0.33    -     3.00    -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     mulq    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negb    %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negb    (%r8)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            negb    (%r8)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negw    %si
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negw    (%r9)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            negw    (%r9)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negl    %edx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negl    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            negl    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negq    %rcx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   negq    (%r10)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            negq    (%r10)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nop
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopw    %di
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopw    (%rcx)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopl    %esi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopl    (%r8)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopq    %rdx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopq    (%r9)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notb    %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notb    (%r8)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            notb    (%r8)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notw    %si
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notw    (%r9)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            notw    (%r9)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notl    %edx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notl    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            notl    (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notq    %rcx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   notq    (%r10)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            notq    (%r10)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb     $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb     $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orb     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orb     $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb     %sil, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orb     %sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orb     %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orb     (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orw     $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orw     $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orw     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orw     $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orw     %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orw     %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orw     (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orl     $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orl     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orl     $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orl     %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orl     %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orl     (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orq     $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orq     $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orq     $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   orq     %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            orq     %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     orq     (%rax), %rdi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outb    %al, $7
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outb    %al, %dx
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outw    %ax, $7
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outw    %ax, %dx
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outl    %eax, $7
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outl    %eax, %dx
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outsb   (%rsi), %dx
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outsw   (%rsi), %dx
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outsl   (%rsi), %dx
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     pause
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclb    %dil
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrb    %dil
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclb    (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrb    (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclb    $7, %dil
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrb    $7, %dil
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclb    $7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrb    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclb    %cl, %dil
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrb    %cl, %dil
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclb    %cl, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrb    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclw    %di
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrw    %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclw    (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrw    (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclw    $7, %di
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrw    $7, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclw    $7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrw    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclw    %cl, %di
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrw    %cl, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclw    %cl, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrw    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcll    %edi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrl    %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcll    (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrl    (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcll    $7, %edi
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrl    $7, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcll    $7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrl    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcll    %cl, %edi
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrl    %cl, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcll    %cl, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrl    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclq    %rdi
+# CHECK-NEXT:  -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrq    %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclq    (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     1.00   1.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrq    (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclq    $7, %rdi
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrq    $7, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclq    $7, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrq    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rclq    %cl, %rdi
+# CHECK-NEXT:  -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rcrq    %cl, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rclq    %cl, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     4.00   4.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     rcrq    %cl, (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdmsr
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdpmc
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdtsc
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rdtscp
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolb    %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorb    %dil
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolb    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorb    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolb    $7, %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorb    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolb    %cl, %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorb    %cl, %dil
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolb    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorb    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolw    %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorw    %di
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolw    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorw    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolw    $7, %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorw    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolw    %cl, %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorw    %cl, %di
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolw    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorw    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     roll    %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorl    %edi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   roll    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorl    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     roll    $7, %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   roll    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorl    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     roll    %cl, %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorl    %cl, %edi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   roll    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorl    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolq    %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorq    %rdi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolq    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorq    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolq    $7, %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorq    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rolq    %cl, %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     rorq    %cl, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rolq    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   rorq    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sahf
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarb    %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlb    %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrb    %dil
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarb    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlb    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrb    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarb    $7, %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlb    $7, %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrb    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarb    %cl, %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlb    %cl, %dil
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrb    %cl, %dil
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarb    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlb    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrb    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarw    %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlw    %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrw    %di
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarw    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlw    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrw    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarw    $7, %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlw    $7, %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrw    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarw    %cl, %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlw    %cl, %di
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrw    %cl, %di
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarw    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlw    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrw    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarl    %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shll    %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrl    %edi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarl    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shll    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrl    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarl    $7, %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shll    $7, %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shll    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrl    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarl    %cl, %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shll    %cl, %edi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrl    %cl, %edi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarl    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shll    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrl    %cl, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarq    %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlq    %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrq    %rdi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarq    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlq    (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrq    (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarq    $7, %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlq    $7, %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrq    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sarq    %cl, %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shlq    %cl, %rdi
+# CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrq    %cl, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sarq    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shlq    %cl, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67    -     0.50   0.50    -      -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   shrq    %cl, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $0, %al
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $0, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbb    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbb    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $7, %al
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    %sil, %dil
+# CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.75   1.75   1.75   1.75    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $0, %ax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $0, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbw    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $511, %ax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw    $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbw    (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $0, %eax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $0, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbl    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $665536, %eax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $0, %rax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $0, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq    $0, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbq    $0, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $665536, %rax
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   sbbq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            sbbq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     sbbq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasb   %es:(%rdi), %al
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasw   %es:(%rdi), %ax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasl   %es:(%rdi), %eax
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasq   %es:(%rdi), %rax
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     seto    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   seto    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setno   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setno   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setb    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setb    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setae   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setae   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sete    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   sete    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setne   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setne   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     seta    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   seta    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setbe   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setbe   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sets    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   sets    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setns   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setns   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setp    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setp    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setnp   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setnp   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setl    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setl    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setge   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setge   (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setg    %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setg    (%rax)
+# CHECK-NEXT:  -      -      -     1.00    -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     setle   %al
+# CHECK-NEXT: 0.33   0.33   0.33   1.00    -      -     1.00    -      -      -      -      -      -      -      -     0.33   0.33   0.33    -      -      -     0.50   0.50   setle   (%rax)
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shldw   %cl, %si, %di
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrdw   %cl, %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shldw   %cl, %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrdw   %cl, %si, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shldw   $7, %si, %di
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrdw   $7, %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shldw   $7, %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrdw   $7, %si, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shldl   %cl, %esi, %edi
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrdl   %cl, %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shldl   %cl, %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrdl   %cl, %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shldl   $7, %esi, %edi
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrdl   $7, %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shldl   $7, %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrdl   $7, %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shldq   %cl, %rsi, %rdi
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrdq   %cl, %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shldq   %cl, %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrdq   %cl, %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shldq   $7, %rsi, %rdi
+# CHECK-NEXT:  -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     shrdq   $7, %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shldq   $7, %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33    -     2.00   2.00    -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     shrdq   $7, %rsi, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     stc
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     std
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     stosb   %al, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     stosw   %ax, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     stosl   %eax, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     stosq   %rax, %es:(%rdi)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb    $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb    %sil, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subb    %sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subw    $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subw    (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subl    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subq    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   subq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            subq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     subq    (%rax), %rdi
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb   $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb   $7, %dil
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testb   $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb   %sil, %dil
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testb   %sil, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testw   $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testw   $511, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testw   $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testw   $7, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testw   $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testw   %si, %di
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testw   %si, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testl   $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testl   $665536, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testl   $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testl   $7, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testl   $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testl   %esi, %edi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testl   %esi, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testq   $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testq   $665536, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testq   $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testq   $7, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testq   $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testq   %rsi, %rdi
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     testq   %rsi, (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     ud2
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrmsr
+# CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddb   %bl, %cl
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddb   %bl, (%rcx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xaddb   %bl, (%rcx)
+# CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddw   %bx, %cx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddw   %ax, (%rbx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xaddw   %ax, (%rbx)
+# CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddl   %ebx, %ecx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddl   %eax, (%rbx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xaddl   %eax, (%rbx)
+# CHECK-NEXT:  -      -      -     2.00   2.00   2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddq   %rbx, %rcx
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xaddq   %rax, (%rbx)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xaddq   %rax, (%rbx)
+# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgb   %bl, %cl
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgb   %bl, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock            xchgb   %bl, (%rbx)
+# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgw   %bx, %ax
+# CHECK-NEXT:  -      -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgw   %bx, %cx
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgw   %ax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock            xchgw   %ax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgl   %ebx, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgl   %ebx, %ecx
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgl   %eax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock            xchgl   %eax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgq   %rbx, %rax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgq   %rbx, %rcx
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xchgq   %rax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33   0.50   0.50   0.50   0.50    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     lock            xchgq   %rax, (%rbx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xlatb
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb    $7, %al
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb    $7, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorb    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorb    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb    %sil, %dil
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorb    %sil, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorb    %sil, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorb    (%rax), %dil
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    $511, %ax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    $511, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorw    $511, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorw    $511, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    $7, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorw    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorw    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    %si, %di
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorw    %si, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorw    %si, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorw    (%rax), %di
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    $665536, %eax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    $665536, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorl    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorl    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    $7, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorl    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorl    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    %esi, %edi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorl    %esi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorl    %esi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorl    (%rax), %edi
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    $665536, %rax
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    $665536, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorq    $665536, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorq    $665536, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    $7, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorq    $7, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorq    $7, (%rax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    %rsi, %rdi
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   xorq    %rsi, (%rax)
+# CHECK-NEXT: 0.67   0.67   0.67   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.67   0.67   0.67   0.33   0.33   0.33   0.50   0.50   lock            xorq    %rsi, (%rax)
+# CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     xorq    (%rax), %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-x87.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-x87.s
new file mode 100644 (file)
index 0000000..f366a47
--- /dev/null
@@ -0,0 +1,536 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+f2xm1
+
+fabs
+
+fadd %st, %st(1)
+fadd %st(2)
+fadds (%ecx)
+faddl (%ecx)
+faddp %st(1)
+faddp %st(2)
+fiadds (%ecx)
+fiaddl (%ecx)
+
+fbld (%ecx)
+fbstp (%eax)
+
+fchs
+
+fnclex
+
+fcmovb %st(1), %st
+fcmovbe %st(1), %st
+fcmove %st(1), %st
+fcmovnb %st(1), %st
+fcmovnbe %st(1), %st
+fcmovne %st(1), %st
+fcmovnu %st(1), %st
+fcmovu %st(1), %st
+
+fcom %st(1)
+fcom %st(3)
+fcoms (%ecx)
+fcoml (%eax)
+fcomp %st(1)
+fcomp %st(3)
+fcomps (%ecx)
+fcompl (%eax)
+fcompp
+
+fcomi %st(3)
+fcompi %st(3)
+
+fcos
+
+fdecstp
+
+fdiv %st, %st(1)
+fdiv %st(2)
+fdivs (%ecx)
+fdivl (%eax)
+fdivp %st(1)
+fdivp %st(2)
+fidivs (%ecx)
+fidivl (%eax)
+
+fdivr %st, %st(1)
+fdivr %st(2)
+fdivrs (%ecx)
+fdivrl (%eax)
+fdivrp %st(1)
+fdivrp %st(2)
+fidivrs (%ecx)
+fidivrl (%eax)
+
+ffree %st(0)
+
+ficoms (%ecx)
+ficoml (%eax)
+ficomps (%ecx)
+ficompl (%eax)
+
+filds (%edx)
+fildl (%ecx)
+fildll (%eax)
+
+fincstp
+
+fninit
+
+fists (%edx)
+fistl (%ecx)
+fistps (%edx)
+fistpl (%ecx)
+fistpll (%eax)
+
+fisttps (%edx)
+fisttpl (%ecx)
+fisttpll (%eax)
+
+fld %st(0)
+flds (%edx)
+fldl (%ecx)
+fldt (%eax)
+
+fldcw (%eax)
+fldenv (%eax)
+
+fld1
+fldl2e
+fldl2t
+fldlg2
+fldln2
+fldpi
+fldz
+
+fmul %st, %st(1)
+fmul %st(2)
+fmuls (%ecx)
+fmull (%eax)
+fmulp %st(1)
+fmulp %st(2)
+fimuls (%ecx)
+fimull (%eax)
+
+fnop
+
+fpatan
+
+fprem
+fprem1
+
+fptan
+
+frndint
+
+frstor (%eax)
+
+fnsave (%eax)
+
+fscale
+
+fsin
+
+fsincos
+
+fsqrt
+
+fst %st(0)
+fsts (%edx)
+fstl (%ecx)
+fstp %st(0)
+fstpl (%edx)
+fstpl (%ecx)
+fstpt (%eax)
+
+fnstcw (%eax)
+fnstenv (%eax)
+fnstsw (%eax)
+
+frstor (%eax)
+fsave (%eax)
+
+fsub %st, %st(1)
+fsub %st(2)
+fsubs (%ecx)
+fsubl (%eax)
+fsubp %st(1)
+fsubp %st(2)
+fisubs (%ecx)
+fisubl (%eax)
+
+fsubr %st, %st(1)
+fsubr %st(2)
+fsubrs (%ecx)
+fsubrl (%eax)
+fsubrp %st(1)
+fsubrp %st(2)
+fisubrs (%ecx)
+fisubrl (%eax)
+
+ftst
+
+fucom %st(1)
+fucom %st(3)
+fucomp %st(1)
+fucomp %st(3)
+fucompp
+
+fucomi %st(3)
+fucompi %st(3)
+
+fwait
+
+fxam
+
+fxch %st(1)
+fxch %st(3)
+
+fxrstor (%eax)
+fxsave (%eax)
+
+fxtract
+
+fyl2x
+fyl2xp1
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  100    100   25.00                 U     f2xm1
+# CHECK-NEXT:  1      1     1.00                  U     fabs
+# CHECK-NEXT:  1      3     0.50                  U     fadd   %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fadd   %st(2), %st
+# CHECK-NEXT:  1      10    0.50    *             U     fadds  (%ecx)
+# CHECK-NEXT:  1      10    0.50    *             U     faddl  (%ecx)
+# CHECK-NEXT:  1      3     0.50                  U     faddp  %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     faddp  %st, %st(2)
+# CHECK-NEXT:  2      5     6.00    *             U     fiadds (%ecx)
+# CHECK-NEXT:  2      5     6.00    *             U     fiaddl (%ecx)
+# CHECK-NEXT:  100    100   25.00   *             U     fbld   (%ecx)
+# CHECK-NEXT:  100    100   25.00          *      U     fbstp  (%eax)
+# CHECK-NEXT:  1      1     1.00                  U     fchs
+# CHECK-NEXT:  100    100   25.00                 U     fnclex
+# CHECK-NEXT:  7      7     7.00                  U     fcmovb %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmovbe        %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmove %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmovnb        %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmovnbe       %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmovne        %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmovnu        %st(1), %st
+# CHECK-NEXT:  7      7     7.00                  U     fcmovu %st(1), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcom   %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fcom   %st(3)
+# CHECK-NEXT:  1      10    1.00    *             U     fcoms  (%ecx)
+# CHECK-NEXT:  1      10    1.00    *             U     fcoml  (%eax)
+# CHECK-NEXT:  1      3     1.00                  U     fcomp  %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fcomp  %st(3)
+# CHECK-NEXT:  1      10    1.00    *             U     fcomps (%ecx)
+# CHECK-NEXT:  1      10    1.00    *             U     fcompl (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     fcompp
+# CHECK-NEXT:  1      3     1.00                  U     fcomi  %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fcompi %st(3), %st
+# CHECK-NEXT:  100    100   25.00                 U     fcos
+# CHECK-NEXT:  100    100   25.00                 U     fdecstp
+# CHECK-NEXT:  1      11    3.00                  U     fdiv   %st, %st(1)
+# CHECK-NEXT:  1      11    3.00                  U     fdiv   %st(2), %st
+# CHECK-NEXT:  1      18    3.00    *             U     fdivs  (%ecx)
+# CHECK-NEXT:  1      18    3.00    *             U     fdivl  (%eax)
+# CHECK-NEXT:  1      11    3.00                  U     fdivp  %st, %st(1)
+# CHECK-NEXT:  1      11    3.00                  U     fdivp  %st, %st(2)
+# CHECK-NEXT:  2      5     15.50   *             U     fidivs (%ecx)
+# CHECK-NEXT:  2      5     15.50   *             U     fidivl (%eax)
+# CHECK-NEXT:  1      11    3.00                  U     fdivr  %st, %st(1)
+# CHECK-NEXT:  1      11    3.00                  U     fdivr  %st(2), %st
+# CHECK-NEXT:  1      18    3.00    *             U     fdivrs (%ecx)
+# CHECK-NEXT:  1      18    3.00    *             U     fdivrl (%eax)
+# CHECK-NEXT:  1      11    3.00                  U     fdivrp %st, %st(1)
+# CHECK-NEXT:  1      11    3.00                  U     fdivrp %st, %st(2)
+# CHECK-NEXT:  2      5     15.50   *             U     fidivrs        (%ecx)
+# CHECK-NEXT:  2      5     15.50   *             U     fidivrl        (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     ffree  %st(0)
+# CHECK-NEXT:  1      10    1.00    *             U     ficoms (%ecx)
+# CHECK-NEXT:  1      10    1.00    *             U     ficoml (%eax)
+# CHECK-NEXT:  1      10    1.00    *             U     ficomps        (%ecx)
+# CHECK-NEXT:  1      10    1.00    *             U     ficompl        (%eax)
+# CHECK-NEXT:  1      5     0.33    *             U     filds  (%edx)
+# CHECK-NEXT:  1      5     0.33    *             U     fildl  (%ecx)
+# CHECK-NEXT:  1      5     0.33    *             U     fildll (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     fincstp
+# CHECK-NEXT:  100    100   25.00                 U     fninit
+# CHECK-NEXT:  1      1     1.00           *      U     fists  (%edx)
+# CHECK-NEXT:  1      1     1.00           *      U     fistl  (%ecx)
+# CHECK-NEXT:  1      1     1.00           *      U     fistps (%edx)
+# CHECK-NEXT:  1      1     1.00           *      U     fistpl (%ecx)
+# CHECK-NEXT:  1      1     1.00           *      U     fistpll        (%eax)
+# CHECK-NEXT:  1      1     1.00           *      U     fisttps        (%edx)
+# CHECK-NEXT:  1      1     1.00           *      U     fisttpl        (%ecx)
+# CHECK-NEXT:  1      1     1.00           *      U     fisttpll       (%eax)
+# CHECK-NEXT:  1      1     1.00                  U     fld    %st(0)
+# CHECK-NEXT:  1      5     0.33    *             U     flds   (%edx)
+# CHECK-NEXT:  1      5     0.33    *             U     fldl   (%ecx)
+# CHECK-NEXT:  1      5     0.33    *             U     fldt   (%eax)
+# CHECK-NEXT:  1      5     0.33    *             U     fldcw  (%eax)
+# CHECK-NEXT:  100    100   25.00   *             U     fldenv (%eax)
+# CHECK-NEXT:  1      11    1.00                  U     fld1
+# CHECK-NEXT:  1      11    1.00                  U     fldl2e
+# CHECK-NEXT:  1      11    1.00                  U     fldl2t
+# CHECK-NEXT:  1      11    1.00                  U     fldlg2
+# CHECK-NEXT:  1      11    1.00                  U     fldln2
+# CHECK-NEXT:  1      11    1.00                  U     fldpi
+# CHECK-NEXT:  1      8     1.00                  U     fldz
+# CHECK-NEXT:  1      3     0.50                  U     fmul   %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fmul   %st(2), %st
+# CHECK-NEXT:  1      10    0.50    *             U     fmuls  (%ecx)
+# CHECK-NEXT:  1      10    0.50    *             U     fmull  (%eax)
+# CHECK-NEXT:  1      3     0.50                  U     fmulp  %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fmulp  %st, %st(2)
+# CHECK-NEXT:  2      5     6.00    *             U     fimuls (%ecx)
+# CHECK-NEXT:  2      5     6.00    *             U     fimull (%eax)
+# CHECK-NEXT:  1      0     0.25                  U     fnop
+# CHECK-NEXT:  100    100   25.00                 U     fpatan
+# CHECK-NEXT:  100    100   25.00                 U     fprem
+# CHECK-NEXT:  100    100   25.00                 U     fprem1
+# CHECK-NEXT:  100    100   25.00                 U     fptan
+# CHECK-NEXT:  100    100   25.00                 U     frndint
+# CHECK-NEXT:  100    100   25.00   *             U     frstor (%eax)
+# CHECK-NEXT:  100    100   25.00          *      U     fnsave (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     fscale
+# CHECK-NEXT:  100    100   25.00                 U     fsin
+# CHECK-NEXT:  100    100   25.00                 U     fsincos
+# CHECK-NEXT:  1      22    23.00                 U     fsqrt
+# CHECK-NEXT:  1      1     1.00                  U     fst    %st(0)
+# CHECK-NEXT:  1      1     1.00           *      U     fsts   (%edx)
+# CHECK-NEXT:  1      1     1.00           *      U     fstl   (%ecx)
+# CHECK-NEXT:  1      1     1.00                  U     fstp   %st(0)
+# CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%edx)
+# CHECK-NEXT:  1      1     1.00           *      U     fstpl  (%ecx)
+# CHECK-NEXT:  1      1     1.00           *      U     fstpt  (%eax)
+# CHECK-NEXT:  1      1     0.25           *      U     fnstcw (%eax)
+# CHECK-NEXT:  100    100   25.00          *      U     fnstenv        (%eax)
+# CHECK-NEXT:  100    100   25.00          *      U     fnstsw (%eax)
+# CHECK-NEXT:  100    100   25.00   *             U     frstor (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     wait
+# CHECK-NEXT:  100    100   25.00          *      U     fnsave (%eax)
+# CHECK-NEXT:  1      3     0.50                  U     fsub   %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fsub   %st(2), %st
+# CHECK-NEXT:  1      10    0.50    *             U     fsubs  (%ecx)
+# CHECK-NEXT:  1      10    0.50    *             U     fsubl  (%eax)
+# CHECK-NEXT:  1      3     0.50                  U     fsubp  %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fsubp  %st, %st(2)
+# CHECK-NEXT:  2      5     6.00    *             U     fisubs (%ecx)
+# CHECK-NEXT:  2      5     6.00    *             U     fisubl (%eax)
+# CHECK-NEXT:  1      3     0.50                  U     fsubr  %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fsubr  %st(2), %st
+# CHECK-NEXT:  1      10    0.50    *             U     fsubrs (%ecx)
+# CHECK-NEXT:  1      10    0.50    *             U     fsubrl (%eax)
+# CHECK-NEXT:  1      3     0.50                  U     fsubrp %st, %st(1)
+# CHECK-NEXT:  1      3     0.50                  U     fsubrp %st, %st(2)
+# CHECK-NEXT:  2      5     6.00    *             U     fisubrs        (%ecx)
+# CHECK-NEXT:  2      5     6.00    *             U     fisubrl        (%eax)
+# CHECK-NEXT:  1      3     1.00                  U     ftst
+# CHECK-NEXT:  1      3     1.00                  U     fucom  %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fucom  %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fucomp %st(1)
+# CHECK-NEXT:  1      3     1.00                  U     fucomp %st(3)
+# CHECK-NEXT:  1      3     1.00                  U     fucompp
+# CHECK-NEXT:  1      3     1.00                  U     fucomi %st(3), %st
+# CHECK-NEXT:  1      3     1.00                  U     fucompi        %st(3), %st
+# CHECK-NEXT:  100    100   25.00                 U     wait
+# CHECK-NEXT:  2      1     1.00                  U     fxam
+# CHECK-NEXT:  1      1     1.00                  U     fxch   %st(1)
+# CHECK-NEXT:  1      1     1.00                  U     fxch   %st(3)
+# CHECK-NEXT:  100    100   25.00   *      *      U     fxrstor        (%eax)
+# CHECK-NEXT:  100    100   25.00   *      *      U     fxsave (%eax)
+# CHECK-NEXT:  100    100   25.00                 U     fxtract
+# CHECK-NEXT:  100    100   25.00                 U     fyl2x
+# CHECK-NEXT:  100    100   25.00                 U     fyl2xp1
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT: 10.67  10.67  10.67  861.50 861.50 861.50 861.50  -     137.00 204.00 120.00 119.00 13.50  13.50   -     24.00  24.00  24.00  15.33  15.33  15.33  13.00  13.00
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     f2xm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fabs
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fadd    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fadd    %st(2), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fadds   (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     faddl   (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     faddp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     faddp   %st, %st(2)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fiadds  (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fiaddl  (%ecx)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fbld    (%ecx)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fbstp   (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fchs
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnclex
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovb  %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovbe %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmove  %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovnb %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovnbe        %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovne %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovnu %st(1), %st
+# CHECK-NEXT:  -      -      -     7.00   7.00   7.00   7.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcmovu  %st(1), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fcom    %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fcom    %st(3)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fcoms   (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fcoml   (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fcomp   %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fcomp   %st(3)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fcomps  (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fcompl  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcompp
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fcomi   %st(3), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fcompi  %st(3), %st
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fcos
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fdecstp
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdiv    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdiv    %st(2), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fdivs   (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fdivl   (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdivp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdivp   %st, %st(2)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     15.50  15.50  15.50  15.50   -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fidivs  (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     15.50  15.50  15.50  15.50   -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fidivl  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdivr   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdivr   %st(2), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fdivrs  (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fdivrl  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdivrp  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     3.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fdivrp  %st, %st(2)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     15.50  15.50  15.50  15.50   -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fidivrs (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     15.50  15.50  15.50  15.50   -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fidivrl (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     ffree   %st(0)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ficoms  (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ficoml  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ficomps (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     ficompl (%eax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     filds   (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fildl   (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fildll  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fincstp
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fninit
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fists   (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fistl   (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fistps  (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fistpl  (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fistpll (%eax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fisttps (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fisttpl (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fisttpll        (%eax)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fld     %st(0)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     flds    (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldl    (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldt    (%eax)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldcw   (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fldenv  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fld1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldl2e
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldl2t
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldlg2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldln2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldpi
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fldz
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     fmul    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     fmul    %st(2), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fmuls   (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -     0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fmull   (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     fmulp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -     fmulp   %st, %st(2)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fimuls  (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fimull  (%eax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnop
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fpatan
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fprem
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fprem1
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fptan
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     frndint
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     frstor  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnsave  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fscale
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fsin
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fsincos
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     23.00   -      -      -      -      -      -      -      -      -      -      -      -      -     fsqrt
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fst     %st(0)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fsts    (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fstl    (%ecx)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fstp    %st(0)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fstpl   (%edx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fstpl   (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -      -      -      -      -      -      -      -     0.67   0.67   0.67    -      -      -     1.00   1.00   fstpt   (%eax)
+# CHECK-NEXT:  -      -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnstcw  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnstenv (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnstsw  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     frstor  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wait
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fnsave  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsub    %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsub    %st(2), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fsubs   (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fsubl   (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsubp   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsubp   %st, %st(2)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fisubs  (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fisubl  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsubr   %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsubr   %st(2), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fsubrs  (%ecx)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50   0.50   0.50    -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fsubrl  (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsubrp  %st, %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -     fsubrp  %st, %st(2)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fisubrs (%ecx)
+# CHECK-NEXT: 0.33   0.33   0.33    -      -      -      -      -     6.00   6.00   6.00   6.00    -      -      -     0.33   0.33   0.33   0.33   0.33   0.33    -      -     fisubrl (%eax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     ftst
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucom   %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucom   %st(3)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucomp  %st(1)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucomp  %st(3)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucompp
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucomi  %st(3), %st
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     fucompi %st(3), %st
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wait
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     fxam
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxch    %st(1)
+# CHECK-NEXT:  -      -      -     1.00   1.00   1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxch    %st(3)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxrstor (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxsave  (%eax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fxtract
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fyl2x
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fyl2xp1
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/resources-xsave.s b/llvm/test/tools/llvm-mca/X86/Znver4/resources-xsave.s
new file mode 100644 (file)
index 0000000..9c2f777
--- /dev/null
@@ -0,0 +1,64 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s
+
+xgetbv
+
+xrstor  (%rax)
+
+xrstors (%rax)
+
+xsave   (%rax)
+
+xsetbv
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  100    100   25.00                 U     xgetbv
+# CHECK-NEXT:  100    100   25.00   *      *      U     xrstor (%rax)
+# CHECK-NEXT:  100    100   25.00   *      *      U     xrstors        (%rax)
+# CHECK-NEXT:  100    100   25.00   *      *      U     xsave  (%rax)
+# CHECK-NEXT:  100    100   25.00   *      *      U     xsetbv
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -     125.00 125.00 125.00 125.00  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xgetbv
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xrstor  (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xrstors (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xsave   (%rax)
+# CHECK-NEXT:  -      -      -     25.00  25.00  25.00  25.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xsetbv
diff --git a/llvm/test/tools/llvm-mca/X86/Znver4/zero-idioms.s b/llvm/test/tools/llvm-mca/X86/Znver4/zero-idioms.s
new file mode 100644 (file)
index 0000000..cc3c286
--- /dev/null
@@ -0,0 +1,796 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -timeline -register-file-stats -iterations=1 < %s | FileCheck %s
+
+subl  %eax, %eax
+subq  %rax, %rax
+xorl  %eax, %eax
+xorq  %rax, %rax
+
+pcmpgtb   %mm2, %mm2
+pcmpgtd   %mm2, %mm2
+pcmpgtw   %mm2, %mm2
+
+pcmpgtb   %xmm2, %xmm2
+pcmpgtd   %xmm2, %xmm2
+pcmpgtq   %xmm2, %xmm2
+pcmpgtw   %xmm2, %xmm2
+
+vpcmpgtb  %xmm3, %xmm3, %xmm3
+vpcmpgtd  %xmm3, %xmm3, %xmm3
+vpcmpgtq  %xmm3, %xmm3, %xmm3
+vpcmpgtw  %xmm3, %xmm3, %xmm3
+
+vpcmpgtb  %xmm3, %xmm3, %xmm5
+vpcmpgtd  %xmm3, %xmm3, %xmm5
+vpcmpgtq  %xmm3, %xmm3, %xmm5
+vpcmpgtw  %xmm3, %xmm3, %xmm5
+
+vpcmpgtb  %ymm3, %ymm3, %ymm3
+vpcmpgtd  %ymm3, %ymm3, %ymm3
+vpcmpgtq  %ymm3, %ymm3, %ymm3
+vpcmpgtw  %ymm3, %ymm3, %ymm3
+
+vpcmpgtb  %ymm3, %ymm3, %ymm5
+vpcmpgtd  %ymm3, %ymm3, %ymm5
+vpcmpgtq  %ymm3, %ymm3, %ymm5
+vpcmpgtw  %ymm3, %ymm3, %ymm5
+
+psubb   %mm2, %mm2
+psubd   %mm2, %mm2
+psubq   %mm2, %mm2
+psubw   %mm2, %mm2
+psubb   %xmm2, %xmm2
+psubd   %xmm2, %xmm2
+psubq   %xmm2, %xmm2
+psubw   %xmm2, %xmm2
+vpsubb  %xmm3, %xmm3, %xmm3
+vpsubd  %xmm3, %xmm3, %xmm3
+vpsubq  %xmm3, %xmm3, %xmm3
+vpsubw  %xmm3, %xmm3, %xmm3
+vpsubb  %ymm3, %ymm3, %ymm3
+vpsubd  %ymm3, %ymm3, %ymm3
+vpsubq  %ymm3, %ymm3, %ymm3
+vpsubw  %ymm3, %ymm3, %ymm3
+
+vpsubb  %xmm3, %xmm3, %xmm5
+vpsubd  %xmm3, %xmm3, %xmm5
+vpsubq  %xmm3, %xmm3, %xmm5
+vpsubw  %xmm3, %xmm3, %xmm5
+vpsubb  %ymm3, %ymm3, %ymm5
+vpsubd  %ymm3, %ymm3, %ymm5
+vpsubq  %ymm3, %ymm3, %ymm5
+vpsubw  %ymm3, %ymm3, %ymm5
+
+vpsubb  %xmm19, %xmm19, %xmm19
+vpsubd  %xmm19, %xmm19, %xmm19
+vpsubq  %xmm19, %xmm19, %xmm19
+vpsubw  %xmm19, %xmm19, %xmm19
+vpsubb  %ymm19, %ymm19, %ymm19
+vpsubd  %ymm19, %ymm19, %ymm19
+vpsubq  %ymm19, %ymm19, %ymm19
+vpsubw  %ymm19, %ymm19, %ymm19
+vpsubb  %zmm19, %zmm19, %zmm19
+vpsubd  %zmm19, %zmm19, %zmm19
+vpsubq  %zmm19, %zmm19, %zmm19
+vpsubw  %zmm19, %zmm19, %zmm19
+
+vpsubb  %xmm19, %xmm19, %xmm21
+vpsubd  %xmm19, %xmm19, %xmm21
+vpsubq  %xmm19, %xmm19, %xmm21
+vpsubw  %xmm19, %xmm19, %xmm21
+vpsubb  %ymm19, %ymm19, %ymm21
+vpsubd  %ymm19, %ymm19, %ymm21
+vpsubq  %ymm19, %ymm19, %ymm21
+vpsubw  %ymm19, %ymm19, %ymm21
+vpsubb  %zmm19, %zmm19, %zmm21
+vpsubd  %zmm19, %zmm19, %zmm21
+vpsubq  %zmm19, %zmm19, %zmm21
+vpsubw  %zmm19, %zmm19, %zmm21
+
+andnps  %xmm0, %xmm0
+andnpd  %xmm1, %xmm1
+vandnps %xmm2, %xmm2, %xmm2
+vandnpd %xmm1, %xmm1, %xmm1
+vandnps %ymm2, %ymm2, %ymm2
+vandnpd %ymm1, %ymm1, %ymm1
+vandnps %zmm2, %zmm2, %zmm2
+vandnpd %zmm1, %zmm1, %zmm1
+pandn   %mm2, %mm2
+pandn   %xmm2, %xmm2
+vpandn  %xmm3, %xmm3, %xmm3
+vpandn  %ymm3, %ymm3, %ymm3
+
+vpandnd  %xmm19, %xmm19, %xmm19
+vpandnq  %xmm19, %xmm19, %xmm19
+vpandnd  %ymm19, %ymm19, %ymm19
+vpandnq  %ymm19, %ymm19, %ymm19
+vpandnd  %zmm19, %zmm19, %zmm19
+vpandnq  %zmm19, %zmm19, %zmm19
+
+vandnps %xmm2, %xmm2, %xmm5
+vandnpd %xmm1, %xmm1, %xmm5
+vpandn  %xmm3, %xmm3, %xmm5
+vandnps %ymm2, %ymm2, %ymm5
+vandnpd %ymm1, %ymm1, %ymm5
+vpandn  %ymm3, %ymm3, %ymm5
+vandnps %zmm2, %zmm2, %zmm5
+vandnpd %zmm1, %zmm1, %zmm5
+
+vpandnd  %xmm19, %xmm19, %xmm21
+vpandnq  %xmm19, %xmm19, %xmm21
+vpandnd  %ymm19, %ymm19, %ymm21
+vpandnq  %ymm19, %ymm19, %ymm21
+vpandnd  %zmm19, %zmm19, %zmm21
+vpandnq  %zmm19, %zmm19, %zmm21
+
+xorps  %xmm0, %xmm0
+xorpd  %xmm1, %xmm1
+vxorps %xmm2, %xmm2, %xmm2
+vxorpd %xmm1, %xmm1, %xmm1
+vxorps %ymm2, %ymm2, %ymm2
+vxorpd %ymm1, %ymm1, %ymm1
+vxorps %zmm2, %zmm2, %zmm2
+vxorpd %zmm1, %zmm1, %zmm1
+pxor   %mm2, %mm2
+pxor   %xmm2, %xmm2
+vpxor  %xmm3, %xmm3, %xmm3
+vpxor  %ymm3, %ymm3, %ymm3
+
+vpxord  %xmm19, %xmm19, %xmm19
+vpxorq  %xmm19, %xmm19, %xmm19
+vpxord  %ymm19, %ymm19, %ymm19
+vpxorq  %ymm19, %ymm19, %ymm19
+vpxord  %zmm19, %zmm19, %zmm19
+vpxorq  %zmm19, %zmm19, %zmm19
+
+vxorps %xmm4, %xmm4, %xmm5
+vxorpd %xmm1, %xmm1, %xmm3
+vxorps %ymm4, %ymm4, %ymm5
+vxorpd %ymm1, %ymm1, %ymm3
+vxorps %zmm4, %zmm4, %zmm5
+vxorpd %zmm1, %zmm1, %zmm3
+vpxor  %xmm3, %xmm3, %xmm5
+vpxor  %ymm3, %ymm3, %ymm5
+
+vpxord  %xmm19, %xmm19, %xmm21
+vpxorq  %xmm19, %xmm19, %xmm21
+vpxord  %ymm19, %ymm19, %ymm21
+vpxorq  %ymm19, %ymm19, %ymm21
+vpxord  %zmm19, %zmm19, %zmm21
+vpxorq  %zmm19, %zmm19, %zmm21
+
+# CHECK:      Iterations:        1
+# CHECK-NEXT: Instructions:      139
+# CHECK-NEXT: Total Cycles:      42
+# CHECK-NEXT: Total uOps:        139
+
+# CHECK:      Dispatch Width:    6
+# CHECK-NEXT: uOps Per Cycle:    3.31
+# CHECK-NEXT: IPC:               3.31
+# CHECK-NEXT: Block RThroughput: 25.8
+
+# CHECK:      Instruction Info:
+# CHECK-NEXT: [1]: #uOps
+# CHECK-NEXT: [2]: Latency
+# CHECK-NEXT: [3]: RThroughput
+# CHECK-NEXT: [4]: MayLoad
+# CHECK-NEXT: [5]: MayStore
+# CHECK-NEXT: [6]: HasSideEffects (U)
+
+# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
+# CHECK-NEXT:  1      0     0.17                        subl   %eax, %eax
+# CHECK-NEXT:  1      0     0.17                        subq   %rax, %rax
+# CHECK-NEXT:  1      0     0.17                        xorl   %eax, %eax
+# CHECK-NEXT:  1      0     0.17                        xorq   %rax, %rax
+# CHECK-NEXT:  1      1     0.25                        pcmpgtb        %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtd        %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtw        %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtb        %xmm2, %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtd        %xmm2, %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtq        %xmm2, %xmm2
+# CHECK-NEXT:  1      1     0.25                        pcmpgtw        %xmm2, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtb       %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtd       %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtq       %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtw       %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtb       %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtd       %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtq       %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtw       %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtb       %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtd       %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtq       %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtw       %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtb       %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtd       %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtq       %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpcmpgtw       %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      1     0.25                        psubb  %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        psubd  %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        psubq  %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        psubw  %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        psubb  %xmm2, %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubd  %xmm2, %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubq  %xmm2, %xmm2
+# CHECK-NEXT:  1      1     0.25                        psubw  %xmm2, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vpsubb %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpsubd %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpsubq %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpsubw %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpsubb %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpsubd %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpsubq %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpsubw %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      0     0.17                        vpsubb %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpsubd %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpsubq %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpsubw %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpsubb %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpsubd %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpsubq %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpsubw %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      1     0.25                        vpsubb %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubd %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubq %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubw %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubb %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubd %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubq %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpsubw %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpsubb %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpsubw %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      1     0.25                        vpsubb %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpsubd %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpsubq %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpsubw %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpsubb %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.25                        vpsubd %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.25                        vpsubq %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.25                        vpsubw %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.50                        vpsubb %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.50                        vpsubd %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.50                        vpsubq %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.50                        vpsubw %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.25                        andnps %xmm0, %xmm0
+# CHECK-NEXT:  1      1     0.25                        andnpd %xmm1, %xmm1
+# CHECK-NEXT:  1      0     0.17                        vandnps        %xmm2, %xmm2, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vandnpd        %xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  1      0     0.17                        vandnps        %ymm2, %ymm2, %ymm2
+# CHECK-NEXT:  1      0     0.17                        vandnpd        %ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  1      1     0.50                        vandnps        %zmm2, %zmm2, %zmm2
+# CHECK-NEXT:  1      1     0.50                        vandnpd        %zmm1, %zmm1, %zmm1
+# CHECK-NEXT:  1      1     0.25                        pandn  %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        pandn  %xmm2, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vpandn %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpandn %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      1     0.25                        vpandnd        %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpandnq        %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpandnd        %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpandnq        %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpandnd        %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpandnq        %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      0     0.17                        vandnps        %xmm2, %xmm2, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vandnpd        %xmm1, %xmm1, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpandn %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vandnps        %ymm2, %ymm2, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vandnpd        %ymm1, %ymm1, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vpandn %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      1     0.50                        vandnps        %zmm2, %zmm2, %zmm5
+# CHECK-NEXT:  1      1     0.50                        vandnpd        %zmm1, %zmm1, %zmm5
+# CHECK-NEXT:  1      1     0.25                        vpandnd        %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpandnq        %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpandnd        %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.25                        vpandnq        %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.50                        vpandnd        %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.50                        vpandnq        %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.25                        xorps  %xmm0, %xmm0
+# CHECK-NEXT:  1      1     0.25                        xorpd  %xmm1, %xmm1
+# CHECK-NEXT:  1      0     0.17                        vxorps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vxorpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  1      0     0.17                        vxorps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT:  1      0     0.17                        vxorpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  1      1     0.50                        vxorps %zmm2, %zmm2, %zmm2
+# CHECK-NEXT:  1      1     0.50                        vxorpd %zmm1, %zmm1, %zmm1
+# CHECK-NEXT:  1      1     0.25                        pxor   %mm2, %mm2
+# CHECK-NEXT:  1      1     0.25                        pxor   %xmm2, %xmm2
+# CHECK-NEXT:  1      0     0.17                        vpxor  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vpxor  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  1      1     0.25                        vpxord %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpxorq %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  1      1     0.25                        vpxord %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.25                        vpxorq %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  1      1     0.50                        vpxord %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      1     0.50                        vpxorq %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  1      0     0.17                        vxorps %xmm4, %xmm4, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vxorpd %xmm1, %xmm1, %xmm3
+# CHECK-NEXT:  1      0     0.17                        vxorps %ymm4, %ymm4, %ymm5
+# CHECK-NEXT:  1      0     0.17                        vxorpd %ymm1, %ymm1, %ymm3
+# CHECK-NEXT:  1      1     0.50                        vxorps %zmm4, %zmm4, %zmm5
+# CHECK-NEXT:  1      1     0.50                        vxorpd %zmm1, %zmm1, %zmm3
+# CHECK-NEXT:  1      0     0.17                        vpxor  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  1      0     0.17                        vpxor  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  1      1     0.25                        vpxord %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpxorq %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  1      1     0.25                        vpxord %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.25                        vpxorq %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  1      1     0.50                        vpxord %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  1      1     0.50                        vpxorq %zmm19, %zmm19, %zmm21
+
+# CHECK:      Register File statistics:
+# CHECK-NEXT: Total number of mappings created:    65
+# CHECK-NEXT: Max number of mappings used:         45
+
+# CHECK:      *  Register File #1 -- Zn4FpPRF:
+# CHECK-NEXT:    Number of physical registers:     192
+# CHECK-NEXT:    Total number of mappings created: 65
+# CHECK-NEXT:    Max number of mappings used:      45
+
+# CHECK:      *  Register File #2 -- Zn4IntegerPRF:
+# CHECK-NEXT:    Number of physical registers:     224
+# CHECK-NEXT:    Total number of mappings created: 0
+# CHECK-NEXT:    Max number of mappings used:      0
+
+# CHECK:      Resources:
+# CHECK-NEXT: [0]   - Zn4AGU0
+# CHECK-NEXT: [1]   - Zn4AGU1
+# CHECK-NEXT: [2]   - Zn4AGU2
+# CHECK-NEXT: [3]   - Zn4ALU0
+# CHECK-NEXT: [4]   - Zn4ALU1
+# CHECK-NEXT: [5]   - Zn4ALU2
+# CHECK-NEXT: [6]   - Zn4ALU3
+# CHECK-NEXT: [7]   - Zn4BRU1
+# CHECK-NEXT: [8]   - Zn4FP0
+# CHECK-NEXT: [9]   - Zn4FP1
+# CHECK-NEXT: [10]  - Zn4FP2
+# CHECK-NEXT: [11]  - Zn4FP3
+# CHECK-NEXT: [12.0] - Zn4FP45
+# CHECK-NEXT: [12.1] - Zn4FP45
+# CHECK-NEXT: [13]  - Zn4FPSt
+# CHECK-NEXT: [14.0] - Zn4LSU
+# CHECK-NEXT: [14.1] - Zn4LSU
+# CHECK-NEXT: [14.2] - Zn4LSU
+# CHECK-NEXT: [15.0] - Zn4Load
+# CHECK-NEXT: [15.1] - Zn4Load
+# CHECK-NEXT: [15.2] - Zn4Load
+# CHECK-NEXT: [16.0] - Zn4Store
+# CHECK-NEXT: [16.1] - Zn4Store
+
+# CHECK:      Resource pressure per iteration:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     25.00  25.00  27.00  26.00   -      -      -      -      -      -      -      -      -      -      -
+
+# CHECK:      Resource pressure by instruction:
+# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12.0] [12.1] [13]   [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    %eax, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    %rax, %rax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    %eax, %eax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    %rax, %rax
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     pcmpgtb %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtd %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtw %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtb %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtd %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     pcmpgtq %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pcmpgtw %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtb        %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtd        %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtq        %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpcmpgtw        %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubb   %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     psubd   %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     psubq   %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psubw   %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     psubb   %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     psubd   %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     psubq   %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     psubw   %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubb  %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -     vpsubd  %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpsubq  %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpsubw  %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     andnps  %xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     andnpd  %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps %xmm2, %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnpd %xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps %ymm2, %ymm2, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnpd %ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps %zmm2, %zmm2, %zmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -     vandnpd %zmm1, %zmm1, %zmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pandn   %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pandn   %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandn  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandn  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandnd %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpandnq %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpandnd %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpandnq %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandnd %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -     vpandnq %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps %xmm2, %xmm2, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnpd %xmm1, %xmm1, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandn  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnps %ymm2, %ymm2, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vandnpd %ymm1, %ymm1, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandn  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -     vandnps %zmm2, %zmm2, %zmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vandnpd %zmm1, %zmm1, %zmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpandnd %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpandnq %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpandnd %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpandnq %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpandnd %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpandnq %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     xorps   %xmm0, %xmm0
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     xorpd   %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps  %xmm2, %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorpd  %xmm1, %xmm1, %xmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps  %ymm2, %ymm2, %ymm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorpd  %ymm1, %ymm1, %ymm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -     vxorps  %zmm2, %zmm2, %zmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vxorpd  %zmm1, %zmm1, %zmm1
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     pxor    %mm2, %mm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     pxor    %xmm2, %xmm2
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxor   %xmm3, %xmm3, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxor   %ymm3, %ymm3, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxord  %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpxorq  %xmm19, %xmm19, %xmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpxord  %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpxorq  %ymm19, %ymm19, %ymm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxord  %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -     vpxorq  %zmm19, %zmm19, %zmm19
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps  %xmm4, %xmm4, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorpd  %xmm1, %xmm1, %xmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps  %ymm4, %ymm4, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorpd  %ymm1, %ymm1, %ymm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vxorps  %zmm4, %zmm4, %zmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vxorpd  %zmm1, %zmm1, %zmm3
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxor   %xmm3, %xmm3, %xmm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxor   %ymm3, %ymm3, %ymm5
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     vpxord  %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpxorq  %xmm19, %xmm19, %xmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -     vpxord  %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -     vpxorq  %ymm19, %ymm19, %ymm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -     vpxord  %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -     2.00    -      -      -      -      -      -      -      -      -      -      -      -      -     vpxorq  %zmm19, %zmm19, %zmm21
+
+# CHECK:      Timeline view:
+# CHECK-NEXT:                     0123456789          0123456789
+# CHECK-NEXT: Index     0123456789          0123456789          01
+
+# CHECK:      [0,0]     DR   .    .    .    .    .    .    .    ..   subl      %eax, %eax
+# CHECK-NEXT: [0,1]     DR   .    .    .    .    .    .    .    ..   subq      %rax, %rax
+# CHECK-NEXT: [0,2]     DR   .    .    .    .    .    .    .    ..   xorl      %eax, %eax
+# CHECK-NEXT: [0,3]     DR   .    .    .    .    .    .    .    ..   xorq      %rax, %rax
+# CHECK-NEXT: [0,4]     DeER .    .    .    .    .    .    .    ..   pcmpgtb   %mm2, %mm2
+# CHECK-NEXT: [0,5]     D=eER.    .    .    .    .    .    .    ..   pcmpgtd   %mm2, %mm2
+# CHECK-NEXT: [0,6]     .D=eER    .    .    .    .    .    .    ..   pcmpgtw   %mm2, %mm2
+# CHECK-NEXT: [0,7]     .DeE-R    .    .    .    .    .    .    ..   pcmpgtb   %xmm2, %xmm2
+# CHECK-NEXT: [0,8]     .DeE-R    .    .    .    .    .    .    ..   pcmpgtd   %xmm2, %xmm2
+# CHECK-NEXT: [0,9]     .DeE-R    .    .    .    .    .    .    ..   pcmpgtq   %xmm2, %xmm2
+# CHECK-NEXT: [0,10]    .D=eER    .    .    .    .    .    .    ..   pcmpgtw   %xmm2, %xmm2
+# CHECK-NEXT: [0,11]    .D---R    .    .    .    .    .    .    ..   vpcmpgtb  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,12]    . D--R    .    .    .    .    .    .    ..   vpcmpgtd  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,13]    . D--R    .    .    .    .    .    .    ..   vpcmpgtq  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,14]    . D--R    .    .    .    .    .    .    ..   vpcmpgtw  %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,15]    . D---R   .    .    .    .    .    .    ..   vpcmpgtb  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,16]    . D---R   .    .    .    .    .    .    ..   vpcmpgtd  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,17]    . D---R   .    .    .    .    .    .    ..   vpcmpgtq  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,18]    .  D--R   .    .    .    .    .    .    ..   vpcmpgtw  %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,19]    .  D--R   .    .    .    .    .    .    ..   vpcmpgtb  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,20]    .  D--R   .    .    .    .    .    .    ..   vpcmpgtd  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,21]    .  D--R   .    .    .    .    .    .    ..   vpcmpgtq  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,22]    .  D--R   .    .    .    .    .    .    ..   vpcmpgtw  %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,23]    .  D--R   .    .    .    .    .    .    ..   vpcmpgtb  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,24]    .   D--R  .    .    .    .    .    .    ..   vpcmpgtd  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,25]    .   D--R  .    .    .    .    .    .    ..   vpcmpgtq  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,26]    .   D--R  .    .    .    .    .    .    ..   vpcmpgtw  %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,27]    .   DeER  .    .    .    .    .    .    ..   psubb     %mm2, %mm2
+# CHECK-NEXT: [0,28]    .   D=eER .    .    .    .    .    .    ..   psubd     %mm2, %mm2
+# CHECK-NEXT: [0,29]    .   D==eER.    .    .    .    .    .    ..   psubq     %mm2, %mm2
+# CHECK-NEXT: [0,30]    .    D==eER    .    .    .    .    .    ..   psubw     %mm2, %mm2
+# CHECK-NEXT: [0,31]    .    DeE--R    .    .    .    .    .    ..   psubb     %xmm2, %xmm2
+# CHECK-NEXT: [0,32]    .    DeE--R    .    .    .    .    .    ..   psubd     %xmm2, %xmm2
+# CHECK-NEXT: [0,33]    .    DeE--R    .    .    .    .    .    ..   psubq     %xmm2, %xmm2
+# CHECK-NEXT: [0,34]    .    D=eE-R    .    .    .    .    .    ..   psubw     %xmm2, %xmm2
+# CHECK-NEXT: [0,35]    .    D----R    .    .    .    .    .    ..   vpsubb    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,36]    .    .D---R    .    .    .    .    .    ..   vpsubd    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,37]    .    .D---R    .    .    .    .    .    ..   vpsubq    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,38]    .    .D---R    .    .    .    .    .    ..   vpsubw    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,39]    .    .D----R   .    .    .    .    .    ..   vpsubb    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,40]    .    .D----R   .    .    .    .    .    ..   vpsubd    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,41]    .    .D----R   .    .    .    .    .    ..   vpsubq    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,42]    .    . D---R   .    .    .    .    .    ..   vpsubw    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,43]    .    . D---R   .    .    .    .    .    ..   vpsubb    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,44]    .    . D---R   .    .    .    .    .    ..   vpsubd    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,45]    .    . D---R   .    .    .    .    .    ..   vpsubq    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,46]    .    . D---R   .    .    .    .    .    ..   vpsubw    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,47]    .    . D---R   .    .    .    .    .    ..   vpsubb    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,48]    .    .  D---R  .    .    .    .    .    ..   vpsubd    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,49]    .    .  D---R  .    .    .    .    .    ..   vpsubq    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,50]    .    .  D---R  .    .    .    .    .    ..   vpsubw    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,51]    .    .  DeE-R  .    .    .    .    .    ..   vpsubb    %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,52]    .    .  D=eER  .    .    .    .    .    ..   vpsubd    %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,53]    .    .  D==eER .    .    .    .    .    ..   vpsubq    %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,54]    .    .   D==eER.    .    .    .    .    ..   vpsubw    %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,55]    .    .   D===eER    .    .    .    .    ..   vpsubb    %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,56]    .    .   D====eER   .    .    .    .    ..   vpsubd    %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,57]    .    .   D=====eER  .    .    .    .    ..   vpsubq    %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,58]    .    .   D======eER .    .    .    .    ..   vpsubw    %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,59]    .    .   D=======eER.    .    .    .    ..   vpsubb    %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,60]    .    .    D=======eER    .    .    .    ..   vpsubd    %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,61]    .    .    D========eER   .    .    .    ..   vpsubq    %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,62]    .    .    D=========eER  .    .    .    ..   vpsubw    %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,63]    .    .    D==========eER .    .    .    ..   vpsubb    %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,64]    .    .    D===========eER.    .    .    ..   vpsubd    %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,65]    .    .    D===========eER.    .    .    ..   vpsubq    %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,66]    .    .    .D==========eER.    .    .    ..   vpsubw    %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,67]    .    .    .D==========eER.    .    .    ..   vpsubb    %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,68]    .    .    .D===========eER    .    .    ..   vpsubd    %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,69]    .    .    .D===========eER    .    .    ..   vpsubq    %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,70]    .    .    .D===========eER    .    .    ..   vpsubw    %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,71]    .    .    .D===========eER    .    .    ..   vpsubb    %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,72]    .    .    . D===========eER   .    .    ..   vpsubd    %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,73]    .    .    . D===========eER   .    .    ..   vpsubq    %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,74]    .    .    . D===========eER   .    .    ..   vpsubw    %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,75]    .    .    . DeE-----------R   .    .    ..   andnps    %xmm0, %xmm0
+# CHECK-NEXT: [0,76]    .    .    . DeE-----------R   .    .    ..   andnpd    %xmm1, %xmm1
+# CHECK-NEXT: [0,77]    .    .    . D-------------R   .    .    ..   vandnps   %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,78]    .    .    .  D------------R   .    .    ..   vandnpd   %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,79]    .    .    .  D------------R   .    .    ..   vandnps   %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,80]    .    .    .  D------------R   .    .    ..   vandnpd   %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,81]    .    .    .  DeE-----------R  .    .    ..   vandnps   %zmm2, %zmm2, %zmm2
+# CHECK-NEXT: [0,82]    .    .    .  DeE-----------R  .    .    ..   vandnpd   %zmm1, %zmm1, %zmm1
+# CHECK-NEXT: [0,83]    .    .    .  DeE-----------R  .    .    ..   pandn     %mm2, %mm2
+# CHECK-NEXT: [0,84]    .    .    .   DeE----------R  .    .    ..   pandn     %xmm2, %xmm2
+# CHECK-NEXT: [0,85]    .    .    .   D------------R  .    .    ..   vpandn    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,86]    .    .    .   D------------R  .    .    ..   vpandn    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,87]    .    .    .   D==========eER  .    .    ..   vpandnd   %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,88]    .    .    .   D===========eER .    .    ..   vpandnq   %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,89]    .    .    .   D============eER.    .    ..   vpandnd   %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,90]    .    .    .    D============eER    .    ..   vpandnq   %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,91]    .    .    .    D=============eER   .    ..   vpandnd   %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,92]    .    .    .    D==============eER  .    ..   vpandnq   %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,93]    .    .    .    D----------------R  .    ..   vandnps   %xmm2, %xmm2, %xmm5
+# CHECK-NEXT: [0,94]    .    .    .    D----------------R  .    ..   vandnpd   %xmm1, %xmm1, %xmm5
+# CHECK-NEXT: [0,95]    .    .    .    D----------------R  .    ..   vpandn    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,96]    .    .    .    .D---------------R  .    ..   vandnps   %ymm2, %ymm2, %ymm5
+# CHECK-NEXT: [0,97]    .    .    .    .D---------------R  .    ..   vandnpd   %ymm1, %ymm1, %ymm5
+# CHECK-NEXT: [0,98]    .    .    .    .D---------------R  .    ..   vpandn    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,99]    .    .    .    .DeE-------------R  .    ..   vandnps   %zmm2, %zmm2, %zmm5
+# CHECK-NEXT: [0,100]   .    .    .    .DeE-------------R  .    ..   vandnpd   %zmm1, %zmm1, %zmm5
+# CHECK-NEXT: [0,101]   .    .    .    .D==============eER .    ..   vpandnd   %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,102]   .    .    .    . D=============eER .    ..   vpandnq   %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,103]   .    .    .    . D=============eER .    ..   vpandnd   %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,104]   .    .    .    . D==============eER.    ..   vpandnq   %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,105]   .    .    .    . D==============eER.    ..   vpandnd   %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,106]   .    .    .    . D==============eER.    ..   vpandnq   %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,107]   .    .    .    . D=eE-------------R.    ..   xorps     %xmm0, %xmm0
+# CHECK-NEXT: [0,108]   .    .    .    .  DeE-------------R.    ..   xorpd     %xmm1, %xmm1
+# CHECK-NEXT: [0,109]   .    .    .    .  D---------------R.    ..   vxorps    %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: [0,110]   .    .    .    .  D---------------R.    ..   vxorpd    %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: [0,111]   .    .    .    .  D---------------R.    ..   vxorps    %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: [0,112]   .    .    .    .  D---------------R.    ..   vxorpd    %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: [0,113]   .    .    .    .  D=eE-------------R    ..   vxorps    %zmm2, %zmm2, %zmm2
+# CHECK-NEXT: [0,114]   .    .    .    .   DeE-------------R    ..   vxorpd    %zmm1, %zmm1, %zmm1
+# CHECK-NEXT: [0,115]   .    .    .    .   D======eE-------R    ..   pxor      %mm2, %mm2
+# CHECK-NEXT: [0,116]   .    .    .    .   D======eE-------R    ..   pxor      %xmm2, %xmm2
+# CHECK-NEXT: [0,117]   .    .    .    .   D---------------R    ..   vpxor     %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: [0,118]   .    .    .    .   D---------------R    ..   vpxor     %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: [0,119]   .    .    .    .   D============eE-R    ..   vpxord    %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,120]   .    .    .    .    D============eER    ..   vpxorq    %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: [0,121]   .    .    .    .    D=============eER   ..   vpxord    %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,122]   .    .    .    .    D==============eER  ..   vpxorq    %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: [0,123]   .    .    .    .    D===============eER ..   vpxord    %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,124]   .    .    .    .    D================eER..   vpxorq    %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: [0,125]   .    .    .    .    D------------------R..   vxorps    %xmm4, %xmm4, %xmm5
+# CHECK-NEXT: [0,126]   .    .    .    .    .D-----------------R..   vxorpd    %xmm1, %xmm1, %xmm3
+# CHECK-NEXT: [0,127]   .    .    .    .    .D-----------------R..   vxorps    %ymm4, %ymm4, %ymm5
+# CHECK-NEXT: [0,128]   .    .    .    .    .D-----------------R..   vxorpd    %ymm1, %ymm1, %ymm3
+# CHECK-NEXT: [0,129]   .    .    .    .    .D====eE-----------R..   vxorps    %zmm4, %zmm4, %zmm5
+# CHECK-NEXT: [0,130]   .    .    .    .    .D=====eE----------R..   vxorpd    %zmm1, %zmm1, %zmm3
+# CHECK-NEXT: [0,131]   .    .    .    .    .D-----------------R..   vpxor     %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: [0,132]   .    .    .    .    . D----------------R..   vpxor     %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: [0,133]   .    .    .    .    . D===============eER.   vpxord    %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,134]   .    .    .    .    . D===============eER.   vpxorq    %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: [0,135]   .    .    .    .    . D===============eER.   vpxord    %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,136]   .    .    .    .    . D================eER   vpxorq    %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: [0,137]   .    .    .    .    . D================eER   vpxord    %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: [0,138]   .    .    .    .    .  D===============eER   vpxorq    %zmm19, %zmm19, %zmm21
+
+# CHECK:      Average Wait times (based on the timeline view):
+# CHECK-NEXT: [0]: Executions
+# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
+# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
+# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
+
+# CHECK:            [0]    [1]    [2]    [3]
+# CHECK-NEXT: 0.     1     0.0    0.0    0.0       subl        %eax, %eax
+# CHECK-NEXT: 1.     1     0.0    0.0    0.0       subq        %rax, %rax
+# CHECK-NEXT: 2.     1     0.0    0.0    0.0       xorl        %eax, %eax
+# CHECK-NEXT: 3.     1     0.0    0.0    0.0       xorq        %rax, %rax
+# CHECK-NEXT: 4.     1     1.0    1.0    0.0       pcmpgtb     %mm2, %mm2
+# CHECK-NEXT: 5.     1     2.0    0.0    0.0       pcmpgtd     %mm2, %mm2
+# CHECK-NEXT: 6.     1     2.0    0.0    0.0       pcmpgtw     %mm2, %mm2
+# CHECK-NEXT: 7.     1     1.0    1.0    1.0       pcmpgtb     %xmm2, %xmm2
+# CHECK-NEXT: 8.     1     1.0    1.0    1.0       pcmpgtd     %xmm2, %xmm2
+# CHECK-NEXT: 9.     1     1.0    1.0    1.0       pcmpgtq     %xmm2, %xmm2
+# CHECK-NEXT: 10.    1     2.0    2.0    0.0       pcmpgtw     %xmm2, %xmm2
+# CHECK-NEXT: 11.    1     0.0    0.0    3.0       vpcmpgtb    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 12.    1     0.0    0.0    2.0       vpcmpgtd    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 13.    1     0.0    0.0    2.0       vpcmpgtq    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 14.    1     0.0    0.0    2.0       vpcmpgtw    %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 15.    1     0.0    0.0    3.0       vpcmpgtb    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 16.    1     0.0    0.0    3.0       vpcmpgtd    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 17.    1     0.0    0.0    3.0       vpcmpgtq    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 18.    1     0.0    0.0    2.0       vpcmpgtw    %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 19.    1     0.0    0.0    2.0       vpcmpgtb    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 20.    1     0.0    0.0    2.0       vpcmpgtd    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 21.    1     0.0    0.0    2.0       vpcmpgtq    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 22.    1     0.0    0.0    2.0       vpcmpgtw    %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 23.    1     0.0    0.0    2.0       vpcmpgtb    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 24.    1     0.0    0.0    2.0       vpcmpgtd    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 25.    1     0.0    0.0    2.0       vpcmpgtq    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 26.    1     0.0    0.0    2.0       vpcmpgtw    %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 27.    1     1.0    1.0    0.0       psubb       %mm2, %mm2
+# CHECK-NEXT: 28.    1     2.0    0.0    0.0       psubd       %mm2, %mm2
+# CHECK-NEXT: 29.    1     3.0    0.0    0.0       psubq       %mm2, %mm2
+# CHECK-NEXT: 30.    1     3.0    0.0    0.0       psubw       %mm2, %mm2
+# CHECK-NEXT: 31.    1     1.0    1.0    2.0       psubb       %xmm2, %xmm2
+# CHECK-NEXT: 32.    1     1.0    1.0    2.0       psubd       %xmm2, %xmm2
+# CHECK-NEXT: 33.    1     1.0    1.0    2.0       psubq       %xmm2, %xmm2
+# CHECK-NEXT: 34.    1     2.0    2.0    1.0       psubw       %xmm2, %xmm2
+# CHECK-NEXT: 35.    1     0.0    0.0    4.0       vpsubb      %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 36.    1     0.0    0.0    3.0       vpsubd      %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 37.    1     0.0    0.0    3.0       vpsubq      %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 38.    1     0.0    0.0    3.0       vpsubw      %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 39.    1     0.0    0.0    4.0       vpsubb      %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 40.    1     0.0    0.0    4.0       vpsubd      %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 41.    1     0.0    0.0    4.0       vpsubq      %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 42.    1     0.0    0.0    3.0       vpsubw      %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 43.    1     0.0    0.0    3.0       vpsubb      %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 44.    1     0.0    0.0    3.0       vpsubd      %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 45.    1     0.0    0.0    3.0       vpsubq      %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 46.    1     0.0    0.0    3.0       vpsubw      %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 47.    1     0.0    0.0    3.0       vpsubb      %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 48.    1     0.0    0.0    3.0       vpsubd      %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 49.    1     0.0    0.0    3.0       vpsubq      %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 50.    1     0.0    0.0    3.0       vpsubw      %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 51.    1     1.0    1.0    1.0       vpsubb      %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 52.    1     2.0    0.0    0.0       vpsubd      %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 53.    1     3.0    0.0    0.0       vpsubq      %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 54.    1     3.0    0.0    0.0       vpsubw      %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 55.    1     4.0    0.0    0.0       vpsubb      %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 56.    1     5.0    0.0    0.0       vpsubd      %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 57.    1     6.0    0.0    0.0       vpsubq      %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 58.    1     7.0    0.0    0.0       vpsubw      %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 59.    1     8.0    0.0    0.0       vpsubb      %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 60.    1     8.0    0.0    0.0       vpsubd      %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 61.    1     9.0    0.0    0.0       vpsubq      %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 62.    1     10.0   0.0    0.0       vpsubw      %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 63.    1     11.0   0.0    0.0       vpsubb      %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 64.    1     12.0   1.0    0.0       vpsubd      %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 65.    1     12.0   1.0    0.0       vpsubq      %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 66.    1     11.0   1.0    0.0       vpsubw      %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 67.    1     11.0   1.0    0.0       vpsubb      %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 68.    1     12.0   2.0    0.0       vpsubd      %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 69.    1     12.0   2.0    0.0       vpsubq      %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 70.    1     12.0   2.0    0.0       vpsubw      %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 71.    1     12.0   2.0    0.0       vpsubb      %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 72.    1     12.0   3.0    0.0       vpsubd      %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 73.    1     12.0   3.0    0.0       vpsubq      %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 74.    1     12.0   3.0    0.0       vpsubw      %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 75.    1     1.0    1.0    11.0      andnps      %xmm0, %xmm0
+# CHECK-NEXT: 76.    1     1.0    1.0    11.0      andnpd      %xmm1, %xmm1
+# CHECK-NEXT: 77.    1     0.0    0.0    13.0      vandnps     %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 78.    1     0.0    0.0    12.0      vandnpd     %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 79.    1     0.0    0.0    12.0      vandnps     %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 80.    1     0.0    0.0    12.0      vandnpd     %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 81.    1     1.0    1.0    11.0      vandnps     %zmm2, %zmm2, %zmm2
+# CHECK-NEXT: 82.    1     1.0    1.0    11.0      vandnpd     %zmm1, %zmm1, %zmm1
+# CHECK-NEXT: 83.    1     1.0    1.0    11.0      pandn       %mm2, %mm2
+# CHECK-NEXT: 84.    1     1.0    1.0    10.0      pandn       %xmm2, %xmm2
+# CHECK-NEXT: 85.    1     0.0    0.0    12.0      vpandn      %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 86.    1     0.0    0.0    12.0      vpandn      %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 87.    1     11.0   4.0    0.0       vpandnd     %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 88.    1     12.0   0.0    0.0       vpandnq     %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 89.    1     13.0   0.0    0.0       vpandnd     %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 90.    1     13.0   0.0    0.0       vpandnq     %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 91.    1     14.0   0.0    0.0       vpandnd     %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 92.    1     15.0   0.0    0.0       vpandnq     %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 93.    1     0.0    0.0    16.0      vandnps     %xmm2, %xmm2, %xmm5
+# CHECK-NEXT: 94.    1     0.0    0.0    16.0      vandnpd     %xmm1, %xmm1, %xmm5
+# CHECK-NEXT: 95.    1     0.0    0.0    16.0      vpandn      %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 96.    1     0.0    0.0    15.0      vandnps     %ymm2, %ymm2, %ymm5
+# CHECK-NEXT: 97.    1     0.0    0.0    15.0      vandnpd     %ymm1, %ymm1, %ymm5
+# CHECK-NEXT: 98.    1     0.0    0.0    15.0      vpandn      %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 99.    1     1.0    1.0    13.0      vandnps     %zmm2, %zmm2, %zmm5
+# CHECK-NEXT: 100.   1     1.0    1.0    13.0      vandnpd     %zmm1, %zmm1, %zmm5
+# CHECK-NEXT: 101.   1     15.0   0.0    0.0       vpandnd     %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 102.   1     14.0   0.0    0.0       vpandnq     %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 103.   1     14.0   0.0    0.0       vpandnd     %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 104.   1     15.0   1.0    0.0       vpandnq     %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 105.   1     15.0   1.0    0.0       vpandnd     %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 106.   1     15.0   1.0    0.0       vpandnq     %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 107.   1     2.0    2.0    13.0      xorps       %xmm0, %xmm0
+# CHECK-NEXT: 108.   1     1.0    1.0    13.0      xorpd       %xmm1, %xmm1
+# CHECK-NEXT: 109.   1     0.0    0.0    15.0      vxorps      %xmm2, %xmm2, %xmm2
+# CHECK-NEXT: 110.   1     0.0    0.0    15.0      vxorpd      %xmm1, %xmm1, %xmm1
+# CHECK-NEXT: 111.   1     0.0    0.0    15.0      vxorps      %ymm2, %ymm2, %ymm2
+# CHECK-NEXT: 112.   1     0.0    0.0    15.0      vxorpd      %ymm1, %ymm1, %ymm1
+# CHECK-NEXT: 113.   1     2.0    2.0    13.0      vxorps      %zmm2, %zmm2, %zmm2
+# CHECK-NEXT: 114.   1     1.0    1.0    13.0      vxorpd      %zmm1, %zmm1, %zmm1
+# CHECK-NEXT: 115.   1     7.0    7.0    7.0       pxor        %mm2, %mm2
+# CHECK-NEXT: 116.   1     7.0    7.0    7.0       pxor        %xmm2, %xmm2
+# CHECK-NEXT: 117.   1     0.0    0.0    15.0      vpxor       %xmm3, %xmm3, %xmm3
+# CHECK-NEXT: 118.   1     0.0    0.0    15.0      vpxor       %ymm3, %ymm3, %ymm3
+# CHECK-NEXT: 119.   1     13.0   1.0    1.0       vpxord      %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 120.   1     13.0   0.0    0.0       vpxorq      %xmm19, %xmm19, %xmm19
+# CHECK-NEXT: 121.   1     14.0   0.0    0.0       vpxord      %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 122.   1     15.0   0.0    0.0       vpxorq      %ymm19, %ymm19, %ymm19
+# CHECK-NEXT: 123.   1     16.0   0.0    0.0       vpxord      %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 124.   1     17.0   0.0    0.0       vpxorq      %zmm19, %zmm19, %zmm19
+# CHECK-NEXT: 125.   1     0.0    0.0    18.0      vxorps      %xmm4, %xmm4, %xmm5
+# CHECK-NEXT: 126.   1     0.0    0.0    17.0      vxorpd      %xmm1, %xmm1, %xmm3
+# CHECK-NEXT: 127.   1     0.0    0.0    17.0      vxorps      %ymm4, %ymm4, %ymm5
+# CHECK-NEXT: 128.   1     0.0    0.0    17.0      vxorpd      %ymm1, %ymm1, %ymm3
+# CHECK-NEXT: 129.   1     5.0    5.0    11.0      vxorps      %zmm4, %zmm4, %zmm5
+# CHECK-NEXT: 130.   1     6.0    6.0    10.0      vxorpd      %zmm1, %zmm1, %zmm3
+# CHECK-NEXT: 131.   1     0.0    0.0    17.0      vpxor       %xmm3, %xmm3, %xmm5
+# CHECK-NEXT: 132.   1     0.0    0.0    16.0      vpxor       %ymm3, %ymm3, %ymm5
+# CHECK-NEXT: 133.   1     16.0   0.0    0.0       vpxord      %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 134.   1     16.0   0.0    0.0       vpxorq      %xmm19, %xmm19, %xmm21
+# CHECK-NEXT: 135.   1     16.0   0.0    0.0       vpxord      %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 136.   1     17.0   1.0    0.0       vpxorq      %ymm19, %ymm19, %ymm21
+# CHECK-NEXT: 137.   1     17.0   1.0    0.0       vpxord      %zmm19, %zmm19, %zmm21
+# CHECK-NEXT: 138.   1     16.0   1.0    0.0       vpxorq      %zmm19, %zmm19, %zmm21
+# CHECK-NEXT:        1     4.5    0.6    4.6       <total>
index 568df46..38e0365 100644 (file)
@@ -5,6 +5,7 @@
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
+# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver4 -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,ZNVER4 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,SANDYBRIDGE %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,IVYBRIDGE %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -resource-pressure=false -instruction-info=false < %s | FileCheck --check-prefixes=ALL,HASWELL %s
@@ -99,3 +100,8 @@ add %edi, %eax
 # ZNVER3-NEXT:      uOps Per Cycle:    0.97
 # ZNVER3-NEXT:      IPC:               0.97
 # ZNVER3-NEXT:      Block RThroughput: 0.3
+
+# ZNVER4:           Dispatch Width:    6
+# ZNVER4-NEXT:      uOps Per Cycle:    0.97
+# ZNVER4-NEXT:      IPC:               0.97
+# ZNVER4-NEXT:      Block RThroughput: 0.3
index 9efa6a4..7b9fb75 100644 (file)
@@ -10,6 +10,7 @@
 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER1
 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER2
 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER3
+# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -iterations=1 -resource-pressure=false -instruction-info=false -timeline < %s | FileCheck %s -check-prefixes=ALL,ZNVER4
 
 vdivps  %xmm0, %xmm1, %xmm1
 vaddps  (%rax), %xmm1, %xmm1
@@ -47,6 +48,9 @@ vaddps  (%rax), %xmm1, %xmm1
 # ZNVER3-NEXT:    Total Cycles:      17
 # ZNVER3-NEXT:    Total uOps:        2
 
+# ZNVER4-NEXT:    Total Cycles:      17
+# ZNVER4-NEXT:    Total uOps:        2
+
 # BARCELONA:      Dispatch Width:    4
 # BARCELONA-NEXT: uOps Per Cycle:    0.15
 # BARCELONA-NEXT: IPC:               0.10
@@ -97,6 +101,11 @@ vaddps  (%rax), %xmm1, %xmm1
 # ZNVER3-NEXT:    IPC:               0.12
 # ZNVER3-NEXT:    Block RThroughput: 3.0
 
+# ZNVER4:         Dispatch Width:    6
+# ZNVER4-NEXT:    uOps Per Cycle:    0.12
+# ZNVER4-NEXT:    IPC:               0.12
+# ZNVER4-NEXT:    Block RThroughput: 3.0
+
 # ALL:            Timeline view:
 
 # BARCELONA-NEXT:                     0123456789
@@ -129,6 +138,9 @@ vaddps  (%rax), %xmm1, %xmm1
 # ZNVER3-NEXT:                        0123456
 # ZNVER3-NEXT:    Index     0123456789
 
+# ZNVER4-NEXT:                        0123456
+# ZNVER4-NEXT:    Index     0123456789
+
 # BARCELONA:      [0,0]     DeeeeeeeeeeeeeeER  .   vdivps      %xmm0, %xmm1, %xmm1
 # BARCELONA-NEXT: [0,1]     D========eeeeeeeeeER   vaddps      (%rax), %xmm1, %xmm1
 
@@ -159,6 +171,9 @@ vaddps  (%rax), %xmm1, %xmm1
 # ZNVER3:         [0,0]     DeeeeeeeeeeeER ..   vdivps %xmm0, %xmm1, %xmm1
 # ZNVER3-NEXT:    [0,1]     D====eeeeeeeeeeER   vaddps (%rax), %xmm1, %xmm1
 
+# ZNVER4:         [0,0]     DeeeeeeeeeeeER ..   vdivps %xmm0, %xmm1, %xmm1
+# ZNVER4-NEXT:    [0,1]     D====eeeeeeeeeeER   vaddps (%rax), %xmm1, %xmm1
+
 # ALL:            Average Wait times (based on the timeline view):
 # ALL-NEXT:       [0]: Executions
 # ALL-NEXT:       [1]: Average time spent waiting in a scheduler's queue
@@ -197,3 +212,6 @@ vaddps  (%rax), %xmm1, %xmm1
 
 # ZNVER3-NEXT:    1.     1     5.0    0.0    0.0       vaddps  (%rax), %xmm1, %xmm1
 # ZNVER3-NEXT:           1     3.0    0.5    0.0       <total>
+
+# ZNVER4-NEXT:    1.     1     5.0    0.0    0.0       vaddps  (%rax), %xmm1, %xmm1
+# ZNVER4-NEXT:           1     3.0    0.5    0.0       <total>
index 79c2de8..fd90a6e 100644 (file)
@@ -6,6 +6,7 @@
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
+# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver4 -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL,ZNVER4 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-stats=false -all-views=false -register-file-stats < %s | FileCheck --check-prefixes=ALL %s
@@ -54,6 +55,11 @@ xor %eax, %ebx
 # ZNVER3-NEXT:       Total number of mappings created: 0
 # ZNVER3-NEXT:       Max number of mappings used:      0
 
+# ZNVER4:         *  Register File #1 -- Zn4FpPRF:
+# ZNVER4-NEXT:       Number of physical registers:     192
+# ZNVER4-NEXT:       Total number of mappings created: 0
+# ZNVER4-NEXT:       Max number of mappings used:      0
+
 # BDVER2:         *  Register File #2 -- PdIntegerPRF:
 # BDVER2-NEXT:       Number of physical registers:     96
 # BDVER2-NEXT:       Total number of mappings created: 2
@@ -78,3 +84,8 @@ xor %eax, %ebx
 # ZNVER3-NEXT:       Number of physical registers:     192
 # ZNVER3-NEXT:       Total number of mappings created: 2
 # ZNVER3-NEXT:       Max number of mappings used:      2
+
+# ZNVER4:         *  Register File #2 -- Zn4IntegerPRF:
+# ZNVER4-NEXT:       Number of physical registers:     224
+# ZNVER4-NEXT:       Total number of mappings created: 2
+# ZNVER4-NEXT:       Max number of mappings used:      2
index 0dcfdaa..2d5c048 100644 (file)
@@ -5,6 +5,7 @@
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver1 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER1 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver2 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER2 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER3 %s
+# RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=znver4 -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,ZNVER4 %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,SNB %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=ivybridge -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,IVB %s
 # RUN: llvm-mca %s -mtriple=x86_64-unknown-unknown -mcpu=haswell -iterations=1 -all-stats=false -all-views=false -scheduler-stats < %s | FileCheck --check-prefixes=ALL,HSW %s
@@ -112,6 +113,12 @@ xor %eax, %ebx
 # ZNVER3-NEXT:     [3] Maximum number of used buffer entries.
 # ZNVER3-NEXT:     [4] Total number of buffer entries.
 
+# ZNVER4:          Scheduler's queue usage:
+# ZNVER4-NEXT:     [1] Resource name.
+# ZNVER4-NEXT:     [2] Average number of used buffer entries.
+# ZNVER4-NEXT:     [3] Maximum number of used buffer entries.
+# ZNVER4-NEXT:     [4] Total number of buffer entries.
+
 # BARCELONA:        [1]            [2]        [3]        [4]
 # BARCELONA-NEXT:  SBPortAny        0          1          54
 
@@ -165,3 +172,9 @@ xor %eax, %ebx
 # ZNVER3-NEXT:     Zn3Int           0          1          96
 # ZNVER3-NEXT:     Zn3Load          0          0          72
 # ZNVER3-NEXT:     Zn3Store         0          0          64
+
+# ZNVER4:           [1]            [2]        [3]        [4]
+# ZNVER4-NEXT:     Zn4FP            0          0          64
+# ZNVER4-NEXT:     Zn4Int           0          1          96
+# ZNVER4-NEXT:     Zn4Load          0          0          72
+# ZNVER4-NEXT:     Zn4Store         0          0          64