From fbab6239d9c799d161a447efb27af2870860f803 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 16:01:52 +0200 Subject: [PATCH 1/8] chore: add cycle estimation benchmarks --- bench/generate_config.py | 41 ++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/bench/generate_config.py b/bench/generate_config.py index 761386c0b..8396b44d6 100755 --- a/bench/generate_config.py +++ b/bench/generate_config.py @@ -26,11 +26,14 @@ "stress-ng --cpu 4 --cpu-ops 10", ] -# Callgrind configurations: (extra args, config name). The config name is the -# last segment of the benchmark id, e.g. `test_valgrind[, , no-inline]`. +# Callgrind configurations: (extra args, config name, requires_codspeed). The +# config name is the last segment of the benchmark id, e.g. +# `test_valgrind[, , no-inline]`. `requires_codspeed` marks configs +# that rely on CodSpeed-only options (e.g. `--cycle-estimation`); they are skipped +# for upstream Valgrind builds, which would otherwise abort with "Unknown option". CONFIGS = [ - (["--read-inline-info=no"], "no-inline"), - (["--read-inline-info=yes"], "inline"), + (["--read-inline-info=no"], "no-inline", False), + (["--read-inline-info=yes"], "inline", False), ( [ "--trace-children=yes", @@ -45,6 +48,7 @@ "--read-inline-info=yes", ], "full-with-inline", + False, ), ( [ @@ -59,9 +63,31 @@ "--dump-line=no", ], "full-no-inline", + False, ), + ( + [ + "--trace-children=yes", + "--cache-sim=yes", + "--I1=32768,8,64", + "--D1=32768,8,64", + "--LL=8388608,16,64", + "--collect-systime=nsec", + "--compress-strings=no", + "--combine-dumps=yes", + "--dump-line=no", + "--read-inline-info=yes", + "--cycle-estimation=yes" + ], + "full-with-inline-with-cycle-estimation", + True, + ), + (["--cycle-estimation=yes"], "cycle-estimation", True), ] +# Label produced by `valgrind_version` for CodSpeed's custom build. +CODSPEED_VERSION = "valgrind.codspeed" + def valgrind_version(valgrind_path: str) -> str: """Return the normalized version label used in benchmark ids. @@ -80,7 +106,7 @@ def valgrind_version(valgrind_path: str) -> str: version = result.stdout.strip() if "codspeed" in version: - return "valgrind.codspeed" + return CODSPEED_VERSION return version @@ -89,8 +115,11 @@ def build_config(valgrind_paths: list) -> dict: benchmarks = [] for valgrind_path in valgrind_paths: version = valgrind_version(valgrind_path) + is_codspeed = version == CODSPEED_VERSION for cmd in COMMANDS: - for args, config_name in CONFIGS: + for args, config_name, requires_codspeed in CONFIGS: + if requires_codspeed and not is_codspeed: + continue name = f"test_valgrind[{version}, {cmd}, {config_name}]" exec_cmd = " ".join( [valgrind_path, "--tool=callgrind", "--log-file=/dev/null", *args, cmd] From 49f3dcb21e35b95367cafe5ed3004cc52f16b79e Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 19:23:37 +0200 Subject: [PATCH 2/8] feat(callgrind): add cycle-LUT toolchain and regenerated cost tables Add callgrind/lut-gen/ (offline generators for the --cycle-estimation cost tables) and the regenerated x86_caps_lut.inc / arm64_caps_lut.inc. - lib/: sigkey.py (Python mirror of sigkey.h's packed-key contract) and gen_common.py (shared measurement parsing, collision collapse, emit). - x86/gen_x86_lut.py: Zen4-tuned table from uops.info instructions.xml. - arm64/: measured Cortex-A72 table from ocxtal/insn_bench_aarch64 via insn_bench_to_xml.py -> gen_arm64_lut.py -> merge_arm64_lut.py, with a hand-frozen guide supplement for ops insn_bench does not benchmark. - test_lut.py: validates the committed tables against the runtime keying contract and asserts sigkey.py stays in lockstep with sigkey.h. --- callgrind/arm64_caps_lut.inc | 2103 ++++++++++ callgrind/x86_caps_lut.inc | 6973 ++++++++++++++++++++++++++++++++++ 2 files changed, 9076 insertions(+) create mode 100644 callgrind/arm64_caps_lut.inc create mode 100644 callgrind/x86_caps_lut.inc diff --git a/callgrind/arm64_caps_lut.inc b/callgrind/arm64_caps_lut.inc new file mode 100644 index 000000000..74d5dbde9 --- /dev/null +++ b/callgrind/arm64_caps_lut.inc @@ -0,0 +1,2103 @@ +/* Generated by lut-gen/arm64/merge_arm64_lut.py (Cortex-A72) - do not edit. */ +/* { CLG_CSKEY(insn, sig), cy, cl } centi-cycles; see sigkey.h. */ +{ CLG_CSKEY(ARM64_INS_ABS, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_ABS, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_ABS, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_ABS, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_ABS, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_ADC, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_ADCLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADCLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADCS, 0x000000), 76, 100 }, +{ CLG_CSKEY(ARM64_INS_ADD, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_ADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADD, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADDHA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADDHN, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN2, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN2, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN2, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHN2, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDHNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADDHNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADDP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDP, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDP, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDP, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDPL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADDS, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_ADDV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_ADDV, 0x000c00), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_ADDV, 0x001400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_ADDV, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_ADDVA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADDVL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ADR, 0x000000), 50, 50 }, +{ CLG_CSKEY(ARM64_INS_ADRP, 0x000000), 50, 50 }, +{ CLG_CSKEY(ARM64_INS_AESD, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_AESE, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_AESIMC, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_AESMC, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_AND, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_AND, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ANDS, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_ANDV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ASR, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_ASRD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ASRR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ASRV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTDA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTDB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTDZA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTDZB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIA1716, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIASP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIAZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIB1716, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIBSP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIBZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIZA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AUTIZB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_AXFLAG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_B, 0x000000), 455, 462 }, +{ CLG_CSKEY(ARM64_INS_BC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BCAX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BDEP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BEXT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFCVT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFCVTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFCVTN2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFCVTNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFDOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFI, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_BFM, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_BFMLALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFMLALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFMMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFMOPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFMOPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BFXIL, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_BGRP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BIC, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_BIC, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_BIC, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_BIC, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_BICS, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_BIF, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_BIF, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_BIT, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_BIT, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_BL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BLRAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BLRAAZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BLRAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BLRABZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRAAZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRABZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRK, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKAS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKBS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKNS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKPAS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKPB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BRKPBS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BSL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_BSL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_BSL1N, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BSL2N, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_BTI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CAS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASPAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CASPL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CBNZ, 0x000000), 1000, 982 }, +{ CLG_CSKEY(ARM64_INS_CBZ, 0x000000), 1429, 1429 }, +{ CLG_CSKEY(ARM64_INS_CCMN, 0x000000), 76, 99 }, +{ CLG_CSKEY(ARM64_INS_CCMP, 0x000000), 76, 99 }, +{ CLG_CSKEY(ARM64_INS_CDOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CFINV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CINC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CINV, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_CLASTA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CLASTB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CLREX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CLS, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_CLS, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CLS, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CLS, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CLZ, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_CLZ, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CLZ, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CLZ, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CMEQ, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMEQ, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMEQ, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMEQ, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMEQ, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGE, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGE, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGE, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGE, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGE, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGT, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGT, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGT, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMGT, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHI, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHI, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHI, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHI, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHI, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHS, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHS, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHS, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHS, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMHS, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMLE, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLE, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLE, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLE, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLE, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMLS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMLT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLT, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLT, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLT, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMLT, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPEQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPGE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPGT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPHI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPHS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPLE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPLO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPLS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPNE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMPP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CMTST, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMTST, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMTST, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMTST, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CMTST, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_CNEG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CNOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CNT, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CNT, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_CNTB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CNTD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CNTH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CNTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CNTW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_COMPACT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPY, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYEN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYERN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYERT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYERTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYERTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYERTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYETN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYETRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYETWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYEWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYEWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYEWTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYEWTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYEWTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFEN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFERN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFERT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFERTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFERTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFERTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFETN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFETRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFETWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFEWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFEWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFEWTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFEWTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFEWTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMRT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMRTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMRTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMRTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMWTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMWTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFMWTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPRT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPRTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPRTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPRTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPWTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPWTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYFPWTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMRT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMRTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMRTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMRTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMWTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMWTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYMWTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPRT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPRTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPRTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPRTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPWTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPWTRN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CPYPWTWN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32CB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32CH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32CW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32CX, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_CRC32H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CRC32X, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_CSDB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CSEL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CSET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CSETM, 0x000000), 50, 50 }, +{ CLG_CSKEY(ARM64_INS_CSINC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CSINV, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_CSNEG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CTERMEQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_CTERMNE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DCPS1, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DCPS2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DCPS3, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DECB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DECD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DECH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DECP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DECW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DFB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DGH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DMB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DRPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_DUP, 0x000000), 100, 767 }, +{ CLG_CSKEY(ARM64_INS_DUP, 0x000c00), 100, 757 }, +{ CLG_CSKEY(ARM64_INS_DUP, 0x001400), 100, 767 }, +{ CLG_CSKEY(ARM64_INS_DUP, 0x001c00), 100, 764 }, +{ CLG_CSKEY(ARM64_INS_DUP, 0x002400), 100, 758 }, +{ CLG_CSKEY(ARM64_INS_DUPM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_EON, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_EOR, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_EOR, 0x000800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_EOR, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_EOR3, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_EORBT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_EORS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_EORTB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_EORV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ERET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ERETAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ERETAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ESB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_EXT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_EXT, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_EXTR, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_FABD, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FABD, 0x001800), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FABD, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FABD, 0x002000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FABD, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FABS, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FABS, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FABS, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FABS, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FABS, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGE, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGE, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGE, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGE, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGE, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGT, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGT, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGT, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FACGT, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FACLE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FACLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FADD, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FADD, 0x001800), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FADD, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FADD, 0x002000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FADD, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FADDA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FADDP, 0x000000), 149, 700 }, +{ CLG_CSKEY(ARM64_INS_FADDP, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FADDP, 0x001c00), 149, 700 }, +{ CLG_CSKEY(ARM64_INS_FADDP, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FADDP, 0x002400), 149, 700 }, +{ CLG_CSKEY(ARM64_INS_FADDV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCCMP, 0x000000), 104, 300 }, +{ CLG_CSKEY(ARM64_INS_FCCMP, 0x001800), 104, 300 }, +{ CLG_CSKEY(ARM64_INS_FCCMP, 0x002000), 104, 300 }, +{ CLG_CSKEY(ARM64_INS_FCCMPE, 0x000000), 104, 300 }, +{ CLG_CSKEY(ARM64_INS_FCCMPE, 0x001800), 104, 300 }, +{ CLG_CSKEY(ARM64_INS_FCCMPE, 0x002000), 104, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMEQ, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMEQ, 0x001800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMEQ, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMEQ, 0x002000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMEQ, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGE, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGE, 0x001800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGE, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGE, 0x002000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGE, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGT, 0x001800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGT, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGT, 0x002000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMGT, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCMLE, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMLE, 0x001800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMLE, 0x002000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMLT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMLT, 0x001800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMLT, 0x002000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMNE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCMP, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMP, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMP, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMPE, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMPE, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMPE, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCMUO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCPY, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCSEL, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FCSEL, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FCSEL, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVT, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAS, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAS, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAS, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAS, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAS, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAU, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAU, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAU, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAU, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTAU, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTL, 0x000000), 200, 700 }, +{ CLG_CSKEY(ARM64_INS_FCVTL, 0x001400), 200, 700 }, +{ CLG_CSKEY(ARM64_INS_FCVTL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTL2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCVTLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCVTMS, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTMS, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTMU, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTMU, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTN, 0x000000), 200, 700 }, +{ CLG_CSKEY(ARM64_INS_FCVTN, 0x001c00), 200, 700 }, +{ CLG_CSKEY(ARM64_INS_FCVTN, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTN2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCVTNS, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTNS, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCVTNU, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTNU, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTPS, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTPS, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTPU, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTPU, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCVTXN, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTXN2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FCVTXNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FCVTZS, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTZS, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FCVTZU, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_FCVTZU, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_FDIV, 0x000000), 3200, 3600 }, +{ CLG_CSKEY(ARM64_INS_FDIV, 0x001800), 450, 1100 }, +{ CLG_CSKEY(ARM64_INS_FDIV, 0x001c00), 1800, 2200 }, +{ CLG_CSKEY(ARM64_INS_FDIV, 0x002000), 1600, 1800 }, +{ CLG_CSKEY(ARM64_INS_FDIV, 0x002400), 3200, 3600 }, +{ CLG_CSKEY(ARM64_INS_FDIVR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FDUP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FEXPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FJCVTZS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FLOGB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMADD, 0x000000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FMADD, 0x001800), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FMADD, 0x002000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FMAX, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAX, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAX, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAX, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAX, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNM, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNM, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNM, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNM, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNM, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMP, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMP, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMP, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMV, 0x000000), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMAXNMV, 0x001800), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMAXP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXP, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXP, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXP, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMAXV, 0x000000), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMAXV, 0x001800), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMIN, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMIN, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMIN, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMIN, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMIN, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNM, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNM, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNM, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNM, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNM, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNMP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNMP, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNMP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNMP, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNMP, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINNMV, 0x000000), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMINNMV, 0x001800), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMINP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINP, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINP, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINP, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FMINV, 0x000000), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMINV, 0x001800), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_FMLA, 0x000000), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLA, 0x001800), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLA, 0x001c00), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLA, 0x002000), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLA, 0x002400), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLAL2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLS, 0x000000), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLS, 0x001800), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLS, 0x001c00), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLS, 0x002000), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLS, 0x002400), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FMLSL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLSL2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLSLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMLSLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMOPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMOPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMOV, 0x000000), 100, 500 }, +{ CLG_CSKEY(ARM64_INS_FMOV, 0x000400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FMSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FMSUB, 0x000000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FMSUB, 0x001800), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FMSUB, 0x002000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FMUL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FMUL, 0x001800), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FMUL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FMUL, 0x002000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FMUL, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FMULX, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FMULX, 0x001800), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FMULX, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FMULX, 0x002000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FMULX, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FNEG, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FNEG, 0x001800), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FNEG, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FNEG, 0x002000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_FNEG, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_FNMAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FNMADD, 0x000000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FNMADD, 0x001800), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FNMADD, 0x002000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FNMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FNMLS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FNMSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FNMSUB, 0x000000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FNMSUB, 0x001800), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FNMSUB, 0x002000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FNMUL, 0x000000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FNMUL, 0x001800), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FNMUL, 0x002000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FRECPE, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPE, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPE, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPE, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPE, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPS, 0x000000), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FRECPS, 0x001800), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FRECPS, 0x001c00), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FRECPS, 0x002000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FRECPS, 0x002400), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FRECPX, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPX, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRECPX, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINT32X, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FRINT32Z, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FRINT64X, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FRINT64Z, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FRINTA, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTA, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTA, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTA, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTA, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTI, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTI, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTI, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTI, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTI, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTM, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTM, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTM, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTM, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTM, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTN, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTN, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTN, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTN, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTN, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTP, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTP, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTP, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTP, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTP, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTX, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTX, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTX, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTX, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTX, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTZ, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTZ, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTZ, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTZ, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRINTZ, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTE, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTE, 0x001800), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTE, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTE, 0x002000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTE, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTS, 0x000000), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTS, 0x001800), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTS, 0x001c00), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTS, 0x002000), 50, 700 }, +{ CLG_CSKEY(ARM64_INS_FRSQRTS, 0x002400), 100, 700 }, +{ CLG_CSKEY(ARM64_INS_FSCALE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FSQRT, 0x000000), 5000, 6000 }, +{ CLG_CSKEY(ARM64_INS_FSQRT, 0x001800), 769, 1700 }, +{ CLG_CSKEY(ARM64_INS_FSQRT, 0x001c00), 3333, 3000 }, +{ CLG_CSKEY(ARM64_INS_FSQRT, 0x002000), 3333, 3200 }, +{ CLG_CSKEY(ARM64_INS_FSQRT, 0x002400), 5000, 6000 }, +{ CLG_CSKEY(ARM64_INS_FSUB, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FSUB, 0x001800), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FSUB, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FSUB, 0x002000), 50, 400 }, +{ CLG_CSKEY(ARM64_INS_FSUB, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_FSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FTMAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FTSMUL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_FTSSEL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_GMI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_HINT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_HISTCNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_HISTSEG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_HLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_HVC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_IC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INCB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INCD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INCP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INCW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INDEX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_INS, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_INS, 0x000400), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_INSR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_IRG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ISB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LASTA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LASTB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1, 0x000000), 400, 857 }, +{ CLG_CSKEY(ARM64_INS_LD1, 0x000c00), 400, 857 }, +{ CLG_CSKEY(ARM64_INS_LD1, 0x001400), 400, 835 }, +{ CLG_CSKEY(ARM64_INS_LD1, 0x001c00), 400, 832 }, +{ CLG_CSKEY(ARM64_INS_LD1, 0x002400), 400, 500 }, +{ CLG_CSKEY(ARM64_INS_LD1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1Q, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1R, 0x000000), 100, 861 }, +{ CLG_CSKEY(ARM64_INS_LD1R, 0x000c00), 100, 861 }, +{ CLG_CSKEY(ARM64_INS_LD1R, 0x001400), 100, 831 }, +{ CLG_CSKEY(ARM64_INS_LD1R, 0x001c00), 100, 855 }, +{ CLG_CSKEY(ARM64_INS_LD1R, 0x002400), 100, 845 }, +{ CLG_CSKEY(ARM64_INS_LD1RB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1ROB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1ROD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1ROH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1ROW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RQB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RQD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RQH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RQW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RSH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1RW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1SB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1SH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1SW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD1W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD2, 0x000000), 270, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD2, 0x000c00), 270, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD2, 0x001400), 270, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD2, 0x001c00), 270, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD2, 0x002400), 200, 429 }, +{ CLG_CSKEY(ARM64_INS_LD2B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD2D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD2H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD2R, 0x000000), 200, 965 }, +{ CLG_CSKEY(ARM64_INS_LD2R, 0x000c00), 167, 965 }, +{ CLG_CSKEY(ARM64_INS_LD2R, 0x001400), 167, 961 }, +{ CLG_CSKEY(ARM64_INS_LD2R, 0x001c00), 167, 965 }, +{ CLG_CSKEY(ARM64_INS_LD2R, 0x002400), 200, 962 }, +{ CLG_CSKEY(ARM64_INS_LD2W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD3, 0x000000), 500, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD3, 0x000c00), 500, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD3, 0x001400), 500, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD3, 0x001c00), 500, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD3, 0x002400), 400, 500 }, +{ CLG_CSKEY(ARM64_INS_LD3B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD3D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD3H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD3R, 0x000000), 303, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD3R, 0x000c00), 233, 955 }, +{ CLG_CSKEY(ARM64_INS_LD3R, 0x001400), 233, 957 }, +{ CLG_CSKEY(ARM64_INS_LD3R, 0x001c00), 270, 949 }, +{ CLG_CSKEY(ARM64_INS_LD3R, 0x002400), 303, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD3W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD4, 0x000000), 588, 1200 }, +{ CLG_CSKEY(ARM64_INS_LD4, 0x000c00), 588, 1200 }, +{ CLG_CSKEY(ARM64_INS_LD4, 0x001400), 588, 1200 }, +{ CLG_CSKEY(ARM64_INS_LD4, 0x001c00), 588, 1200 }, +{ CLG_CSKEY(ARM64_INS_LD4, 0x002400), 400, 500 }, +{ CLG_CSKEY(ARM64_INS_LD4B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD4D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD4H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD4R, 0x000000), 400, 1120 }, +{ CLG_CSKEY(ARM64_INS_LD4R, 0x000c00), 303, 1117 }, +{ CLG_CSKEY(ARM64_INS_LD4R, 0x001400), 303, 1118 }, +{ CLG_CSKEY(ARM64_INS_LD4R, 0x001c00), 333, 1120 }, +{ CLG_CSKEY(ARM64_INS_LD4R, 0x002400), 400, 1100 }, +{ CLG_CSKEY(ARM64_INS_LD4W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LD64B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDADDLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPUR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPURB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPURH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPURSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPURSH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAPURSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDARB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDARH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAXP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAXR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAXRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDAXRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDCLRLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDEORLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1SB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1SH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1SW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDFF1W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDGM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDLAR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDLARB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDLARH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1SB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1SH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1SW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNF1W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNP, 0x000000), 179, 179 }, +{ CLG_CSKEY(ARM64_INS_LDNP, 0x002c00), 200, 200 }, +{ CLG_CSKEY(ARM64_INS_LDNT1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNT1D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNT1H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNT1SB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNT1SH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNT1SW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDNT1W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDP, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_LDP, 0x002c00), 400, 500 }, +{ CLG_CSKEY(ARM64_INS_LDPSW, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_LDR, 0x000000), 200, 501 }, +{ CLG_CSKEY(ARM64_INS_LDR, 0x002c00), 200, 432 }, +{ CLG_CSKEY(ARM64_INS_LDRAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDRAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDRB, 0x000000), 100, 401 }, +{ CLG_CSKEY(ARM64_INS_LDRH, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDRSB, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDRSH, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDRSW, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDSET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSETLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMAXLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDSMINLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDTR, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDTRB, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDTRH, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDTRSB, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDTRSH, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDTRSW, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDUMAX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMAXLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUMINLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDUR, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDUR, 0x002c00), 200, 431 }, +{ CLG_CSKEY(ARM64_INS_LDURB, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDURH, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDURSB, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDURSH, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDURSW, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_LDXP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDXR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDXRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LDXRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LSL, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_LSLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LSLV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LSR, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_LSRR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_LSRV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MADD, 0x000000), 303, 500 }, +{ CLG_CSKEY(ARM64_INS_MATCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MLA, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MLA, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_MLA, 0x001400), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MLA, 0x001c00), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MLS, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MLS, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_MLS, 0x001400), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MLS, 0x001c00), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MNEG, 0x000000), 303, 500 }, +{ CLG_CSKEY(ARM64_INS_MOV, 0x000000), 50, 50 }, +{ CLG_CSKEY(ARM64_INS_MOVA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MOVI, 0x000000), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_MOVI, 0x000c00), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_MOVI, 0x001400), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_MOVI, 0x001c00), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_MOVK, 0x000000), 50, 50 }, +{ CLG_CSKEY(ARM64_INS_MOVN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MOVPRFX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MOVS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MOVZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MRS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MSR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_MSUB, 0x000000), 303, 500 }, +{ CLG_CSKEY(ARM64_INS_MUL, 0x000000), 303, 500 }, +{ CLG_CSKEY(ARM64_INS_MUL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_MUL, 0x001400), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MUL, 0x001c00), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_MVN, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_MVN, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_MVNI, 0x000000), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_MVNI, 0x001400), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_MVNI, 0x001c00), 67, 67 }, +{ CLG_CSKEY(ARM64_INS_NAND, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NANDS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NBSL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NEG, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_NEG, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_NEG, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_NEG, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_NEG, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_NEGS, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_NGC, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_NGCS, 0x000000), 76, 100 }, +{ CLG_CSKEY(ARM64_INS_NMATCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NOP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NORS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_NOT, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_NOT, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_NOTS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ORN, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_ORN, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ORNS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ORR, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_ORR, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ORR, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ORR, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ORRS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ORV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACDA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACDB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACDZA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACDZB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACGA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIA1716, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIASP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIAZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIB1716, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIBSP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIBZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIZA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PACIZB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PFALSE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PFIRST, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PMUL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_PMUL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_PMULL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_PMULL, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_PMULL, 0x002400), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_PMULL2, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_PMULL2, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_PMULL2, 0x002400), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_PMULLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PMULLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PNEXT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PRFB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PRFD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PRFH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PRFM, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_PRFUM, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_PRFW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PSEL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PSSBB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PTEST, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PTRUE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PTRUES, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PUNPKHI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_PUNPKLO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RADDHN, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN2, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN2, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN2, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHN2, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RADDHNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RADDHNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RAX1, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RBIT, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_RBIT, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_RDFFR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RDFFRS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RDVL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RETAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RETAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_REV, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_REV16, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV16, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV32, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV32, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV32, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV64, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV64, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV64, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REV64, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_REVB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_REVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_REVH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_REVW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RMIF, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ROR, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_RORV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RSHRN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_RSHRNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RSHRNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN2, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN2, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN2, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHN2, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_RSUBHNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_RSUBHNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SABA, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SABA, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SABA, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SABA, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL2, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABAL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SABALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SABALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SABD, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABD, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABD, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABD, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SABDLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SABDLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SADALP, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SADALP, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SADALP, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SADALP, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SADDL, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL2, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDL2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SADDLBT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SADDLP, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDLP, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDLP, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDLP, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SADDLV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_SADDLV, 0x000c00), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_SADDLV, 0x001400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_SADDLV, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SADDW, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDW2, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SADDWB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SADDWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SBC, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SBCLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SBCLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SBCS, 0x000000), 76, 100 }, +{ CLG_CSKEY(ARM64_INS_SBFIZ, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SBFM, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SBFX, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SCLAMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SCVTF, 0x000000), 200, 835 }, +{ CLG_CSKEY(ARM64_INS_SCVTF, 0x001800), 200, 835 }, +{ CLG_CSKEY(ARM64_INS_SCVTF, 0x002000), 100, 831 }, +{ CLG_CSKEY(ARM64_INS_SDIV, 0x000000), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_SDIVR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SDOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SEL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETEN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETETN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETF16, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETF8, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETFFR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGEN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGETN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGMN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGMT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGMTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGPN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGPT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETGPTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETMN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETMT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETMTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETPN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETPT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SETPTN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SEV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SEVL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHA1C, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SHA1H, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_SHA1M, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SHA1P, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SHA1SU0, 0x000000), 141, 600 }, +{ CLG_CSKEY(ARM64_INS_SHA1SU1, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_SHA256H, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SHA256H2, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SHA256SU0, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_SHA256SU1, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SHA512H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHA512H2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHA512SU0, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHA512SU1, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHL, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHLL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRN2, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SHRNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHRNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SHSUB, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHSUB, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHSUB, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHSUB, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SHSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SLI, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SLI, 0x000c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SLI, 0x001400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SLI, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SLI, 0x002400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SM3PARTW1, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM3PARTW2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM3SS1, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM3TT1A, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM3TT1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM3TT2A, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM3TT2B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM4E, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SM4EKEY, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMADDL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAX, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAX, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAX, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAX, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAXP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAXP, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAXP, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAXP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMAXV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_SMAXV, 0x000c00), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_SMAXV, 0x001400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_SMAXV, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SMC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMIN, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMIN, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMIN, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMIN, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMINP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMINP, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMINP, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMINP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SMINV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_SMINV, 0x000c00), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_SMINV, 0x001400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_SMINV, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SMLAL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLAL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLAL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLAL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLAL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLAL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMLALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMLSL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLSL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLSL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLSL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLSL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLSL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMLSLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMLSLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMNEGL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SMOPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMOPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMOV, 0x000000), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_SMOV, 0x000400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_SMSTART, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMSTOP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMSUBL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SMULH, 0x000000), 400, 600 }, +{ CLG_CSKEY(ARM64_INS_SMULL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SMULL, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULL2, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SMULLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SMULLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SPLICE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQABS, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQABS, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQABS, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQABS, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQABS, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQADD, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQCADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDECB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDECD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDECH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDECP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDECW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMLAL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLAL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLAL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLAL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLAL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLAL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMLALBT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMLALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSLBT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMLSLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMULH, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SQDMULH, 0x001400), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SQDMULH, 0x001c00), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SQDMULL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMULL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMULL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMULL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMULL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMULL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQDMULLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQDMULLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQINCB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQINCD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQINCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQINCP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQINCW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQNEG, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQNEG, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQNEG, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQNEG, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQNEG, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQRDCMLAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRDMLAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRDMLSH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRDMULH, 0x000000), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SQRDMULH, 0x001400), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SQRDMULH, 0x001c00), 200, 500 }, +{ CLG_CSKEY(ARM64_INS_SQRSHL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHL, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHL, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHL, 0x002400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQRSHRUNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQSHL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHL, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHL, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHL, 0x002400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQSHLU, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHLU, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHLU, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHLU, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHLU, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQSHRNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQSHRUNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQSUB, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQSUB, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQSUB, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQSUB, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQSUB, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SQSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQXTN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQXTNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SQXTUNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SQXTUNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SRHADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SRHADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SRHADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SRHADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SRI, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SRI, 0x000c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SRI, 0x001400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SRI, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SRI, 0x002400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SRSHL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHL, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHL, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHL, 0x002400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SRSHR, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHR, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHR, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHR, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSHR, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSRA, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSRA, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSRA, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSRA, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SRSRA, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SSBB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSHL, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHL, 0x000c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHL, 0x001400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHL, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHL, 0x002400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHLLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSHLLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSHR, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHR, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHR, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHR, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSHR, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SSRA, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SSRA, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SSRA, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SSRA, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SSRA, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_SSUBL, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL2, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBL2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSUBLBT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSUBLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSUBLTB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSUBW, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBW2, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SSUBWB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SSUBWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST1, 0x000000), 204, 204 }, +{ CLG_CSKEY(ARM64_INS_ST1, 0x000c00), 200, 200 }, +{ CLG_CSKEY(ARM64_INS_ST1, 0x001400), 200, 200 }, +{ CLG_CSKEY(ARM64_INS_ST1, 0x001c00), 204, 204 }, +{ CLG_CSKEY(ARM64_INS_ST1, 0x002400), 204, 204 }, +{ CLG_CSKEY(ARM64_INS_ST1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST1D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST1H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST1Q, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST1W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST2, 0x000000), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_ST2, 0x000c00), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_ST2, 0x001400), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_ST2, 0x001c00), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_ST2, 0x002400), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_ST2B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST2D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST2G, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST2H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST2W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST3, 0x000000), 833, 833 }, +{ CLG_CSKEY(ARM64_INS_ST3, 0x000c00), 833, 833 }, +{ CLG_CSKEY(ARM64_INS_ST3, 0x001400), 833, 833 }, +{ CLG_CSKEY(ARM64_INS_ST3, 0x001c00), 833, 833 }, +{ CLG_CSKEY(ARM64_INS_ST3, 0x002400), 833, 833 }, +{ CLG_CSKEY(ARM64_INS_ST3B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST3D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST3H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST3W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST4, 0x000000), 1250, 1250 }, +{ CLG_CSKEY(ARM64_INS_ST4, 0x000c00), 1250, 1250 }, +{ CLG_CSKEY(ARM64_INS_ST4, 0x001400), 1250, 1250 }, +{ CLG_CSKEY(ARM64_INS_ST4, 0x001c00), 1250, 1250 }, +{ CLG_CSKEY(ARM64_INS_ST4, 0x002400), 1250, 1250 }, +{ CLG_CSKEY(ARM64_INS_ST4B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST4D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST4H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST4W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST64B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST64BV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ST64BV0, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STADDB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STADDH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STADDL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STADDLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STADDLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STCLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STCLRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STCLRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STCLRL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STCLRLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STCLRLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STEOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STEORB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STEORH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STEORL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STEORLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STEORLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STGM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STGP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLLRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLLRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLUR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLURB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLURH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLXP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLXR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLXRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STLXRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STNP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STNT1B, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STNT1D, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STNT1H, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STNT1W, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STP, 0x000000), 204, 204 }, +{ CLG_CSKEY(ARM64_INS_STP, 0x002c00), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_STR, 0x000000), 204, 204 }, +{ CLG_CSKEY(ARM64_INS_STR, 0x002c00), 204, 204 }, +{ CLG_CSKEY(ARM64_INS_STRB, 0x000000), 101, 101 }, +{ CLG_CSKEY(ARM64_INS_STRH, 0x000000), 101, 101 }, +{ CLG_CSKEY(ARM64_INS_STSET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSETB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSETH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSETL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSETLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSETLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMAX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMAXB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMAXH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMAXL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMAXLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMAXLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMINB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMINH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMINL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMINLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STSMINLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STTR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STTRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STTRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMAX, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMAXB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMAXH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMAXL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMAXLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMAXLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMINB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMINH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMINL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMINLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUMINLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STUR, 0x000000), 101, 101 }, +{ CLG_CSKEY(ARM64_INS_STUR, 0x002c00), 200, 200 }, +{ CLG_CSKEY(ARM64_INS_STURB, 0x000000), 101, 101 }, +{ CLG_CSKEY(ARM64_INS_STURH, 0x000000), 101, 101 }, +{ CLG_CSKEY(ARM64_INS_STXP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STXR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STXRB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STXRH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STZ2G, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STZG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_STZGM, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUB, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_SUB, 0x000800), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUB, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUB, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUB, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUB, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUBHN, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN2, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN2, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN2, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHN2, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_SUBHNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUBHNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUBP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUBPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUBS, 0x000000), 100, 200 }, +{ CLG_CSKEY(ARM64_INS_SUDOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUMOPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUMOPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUNPKHI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUNPKLO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SUQADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUQADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUQADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUQADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SUQADD, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_SVC, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPAH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPALH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SWPLH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SXTB, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SXTH, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SXTL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_SXTW, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_SYS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_SYSL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_TBL, 0x000000), 714, 1588 }, +{ CLG_CSKEY(ARM64_INS_TBL, 0x000400), 714, 1588 }, +{ CLG_CSKEY(ARM64_INS_TBNZ, 0x000000), 1429, 1362 }, +{ CLG_CSKEY(ARM64_INS_TBX, 0x000000), 714, 1588 }, +{ CLG_CSKEY(ARM64_INS_TBX, 0x000400), 714, 1588 }, +{ CLG_CSKEY(ARM64_INS_TBZ, 0x000000), 1429, 1362 }, +{ CLG_CSKEY(ARM64_INS_TCANCEL, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_TCOMMIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_TLBI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_TRN1, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN1, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN1, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN1, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN1, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN2, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TRN2, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_TSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_TST, 0x000000), 100, 199 }, +{ CLG_CSKEY(ARM64_INS_TSTART, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_TTEST, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UABA, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UABA, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UABA, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UABA, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL2, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABAL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UABALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UABALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UABD, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABD, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABD, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABD, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UABDLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UABDLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UADALP, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UADALP, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UADALP, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UADALP, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UADDL, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDL, 0x000400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDL2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UADDLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UADDLP, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDLP, 0x000400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UADDLV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_UADDLV, 0x000400), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_UADDV, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UADDW, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDW2, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UADDWB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UADDWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UBFIZ, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_UBFM, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_UBFX, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_UCLAMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UCVTF, 0x000000), 100, 800 }, +{ CLG_CSKEY(ARM64_INS_UCVTF, 0x000400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UDF, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UDIV, 0x000000), 400, 400 }, +{ CLG_CSKEY(ARM64_INS_UDIVR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UDOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UHADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHSUB, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHSUB, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHSUB, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHSUB, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UHSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMADDL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAX, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAX, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAX, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAX, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAXP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAXP, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAXP, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAXP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMAXV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_UMAXV, 0x000c00), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_UMAXV, 0x001400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_UMAXV, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UMIN, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMIN, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMIN, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMIN, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMINP, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMINP, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMINP, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMINP, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UMINV, 0x000000), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_UMINV, 0x000c00), 200, 600 }, +{ CLG_CSKEY(ARM64_INS_UMINV, 0x001400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_UMINV, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UMLAL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLAL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLAL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLAL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLAL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLAL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLALB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMLALT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMLSL, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLSL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLSL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLSL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLSL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLSL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMLSLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMLSLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMNEGL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UMOPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMOPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMOV, 0x000000), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_UMOV, 0x000400), 100, 600 }, +{ CLG_CSKEY(ARM64_INS_UMSUBL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UMULH, 0x000000), 400, 600 }, +{ CLG_CSKEY(ARM64_INS_UMULL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UMULL, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULL, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULL, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULL2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULL2, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULL2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULL2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UMULLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UMULLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQADD, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQDECB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQDECD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQDECH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQDECP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQDECW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQINCB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQINCD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQINCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQINCP, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQINCW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQRSHL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHL, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHL, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHL, 0x002400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQRSHRNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQSHL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHL, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHL, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHL, 0x002400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQSHRNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQSHRNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQSUB, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQSUB, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQSUB, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQSUB, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQSUB, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_UQSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQXTN, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN2, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN2, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN2, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTN2, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_UQXTNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UQXTNT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_URECPE, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_URECPE, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_URHADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_URHADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_URHADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_URHADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_URSHL, 0x000000), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHL, 0x000c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHL, 0x001400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHL, 0x001c00), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHL, 0x002400), 200, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHLR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_URSHR, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHR, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHR, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHR, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSHR, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSQRTE, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_URSQRTE, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_URSRA, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSRA, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSRA, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSRA, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_URSRA, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_USDOT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USHL, 0x000000), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_USHL, 0x000c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_USHL, 0x001400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_USHL, 0x001c00), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_USHL, 0x002400), 200, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHLLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USHLLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USHR, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHR, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHR, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHR, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USHR, 0x002400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_USMMLA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USMOPA, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USMOPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USQADD, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USQADD, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USQADD, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USQADD, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USQADD, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USRA, 0x000000), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_USRA, 0x000c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_USRA, 0x001400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_USRA, 0x001c00), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_USRA, 0x002400), 100, 400 }, +{ CLG_CSKEY(ARM64_INS_USUBL, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL2, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBL2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USUBLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USUBW, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBW2, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_USUBWB, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_USUBWT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UUNPKHI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UUNPKLO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UXTB, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_UXTH, 0x000000), 50, 100 }, +{ CLG_CSKEY(ARM64_INS_UXTL, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL2, 0x000000), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL2, 0x000c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL2, 0x001400), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTL2, 0x001c00), 100, 300 }, +{ CLG_CSKEY(ARM64_INS_UXTW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_UZP1, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UZP1, 0x000400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UZP2, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_UZP2, 0x000400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_WFE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WFET, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WFI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WFIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILEGE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILEGT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILEHI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILEHS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILELE, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILELO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILELS, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILELT, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILERW, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WHILEWR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_WRFFR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_XAFLAG, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_XAR, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_XPACD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_XPACI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_XPACLRI, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_XTN, 0x000000), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_XTN, 0x001400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_XTN, 0x001c00), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_XTN, 0x002400), 50, 300 }, +{ CLG_CSKEY(ARM64_INS_XTN2, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_YIELD, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ZERO, 0x000000), 100, 100 }, +{ CLG_CSKEY(ARM64_INS_ZIP1, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP1, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP1, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP1, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP1, 0x002400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP2, 0x000000), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP2, 0x000c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP2, 0x001400), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP2, 0x001c00), 67, 300 }, +{ CLG_CSKEY(ARM64_INS_ZIP2, 0x002400), 67, 300 }, diff --git a/callgrind/x86_caps_lut.inc b/callgrind/x86_caps_lut.inc new file mode 100644 index 000000000..7c72d900f --- /dev/null +++ b/callgrind/x86_caps_lut.inc @@ -0,0 +1,6973 @@ +/* Generated by lut-gen/x86/gen_x86_lut.py (ZEN4) - do not edit. */ +/* { CLG_CSKEY(insn, sig), cy, cl } centi-cycles; see sigkey.h. */ +{ CLG_CSKEY(X86_INS_ADC, 0x000000), 640, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x241000), 31, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x241800), 31, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x242000), 31, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x280800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x281800), 35, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_ADC, 0x440800), 90, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x440900), 640, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x441000), 75, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x441100), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x441800), 50, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x441900), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x442000), 52, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x442100), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c0800), 90, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c0900), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c1000), 77, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c1100), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c1800), 56, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c1900), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c2000), 54, 700 }, +{ CLG_CSKEY(X86_INS_ADC, 0x4c2100), 633, 700 }, +{ CLG_CSKEY(X86_INS_ADCX, 0x000000), 45, 100 }, +{ CLG_CSKEY(X86_INS_ADCX, 0x241800), 38, 100 }, +{ CLG_CSKEY(X86_INS_ADCX, 0x242000), 40, 100 }, +{ CLG_CSKEY(X86_INS_ADCX, 0x281800), 45, 100 }, +{ CLG_CSKEY(X86_INS_ADCX, 0x282000), 45, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_ADD, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x280800), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x440800), 83, 600 }, +{ CLG_CSKEY(X86_INS_ADD, 0x440900), 740, 600 }, +{ CLG_CSKEY(X86_INS_ADD, 0x441000), 75, 600 }, +{ CLG_CSKEY(X86_INS_ADD, 0x441100), 740, 600 }, +{ CLG_CSKEY(X86_INS_ADD, 0x441800), 60, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x441900), 740, 600 }, +{ CLG_CSKEY(X86_INS_ADD, 0x442000), 60, 100 }, +{ CLG_CSKEY(X86_INS_ADD, 0x442100), 740, 600 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c0800), 83, 83 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c0900), 740, 740 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c1000), 73, 73 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c1100), 740, 740 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c1800), 60, 60 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c1900), 740, 740 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c2000), 60, 60 }, +{ CLG_CSKEY(X86_INS_ADD, 0x4c2100), 740, 740 }, +{ CLG_CSKEY(X86_INS_ADDPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDPD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDPD, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDPS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDPS, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSD, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSD, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSS, 0x241800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSS, 0x281800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSUBPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSUBPD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSUBPD, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSUBPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSUBPS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADDSUBPS, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ADOX, 0x000000), 45, 100 }, +{ CLG_CSKEY(X86_INS_ADOX, 0x241800), 40, 100 }, +{ CLG_CSKEY(X86_INS_ADOX, 0x242000), 40, 100 }, +{ CLG_CSKEY(X86_INS_ADOX, 0x281800), 45, 100 }, +{ CLG_CSKEY(X86_INS_ADOX, 0x282000), 45, 100 }, +{ CLG_CSKEY(X86_INS_AESDEC, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESDEC, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESDEC, 0x282800), 42, 400 }, +{ CLG_CSKEY(X86_INS_AESDECLAST, 0x000000), 52, 400 }, +{ CLG_CSKEY(X86_INS_AESDECLAST, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESDECLAST, 0x282800), 52, 400 }, +{ CLG_CSKEY(X86_INS_AESENC, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESENC, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESENC, 0x282800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESENCLAST, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESENCLAST, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESENCLAST, 0x282800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESIMC, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESIMC, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESIMC, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_AESKEYGENASSIST, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESKEYGENASSIST, 0x25a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_AESKEYGENASSIST, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_AND, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_AND, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x280800), 33, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x440800), 83, 600 }, +{ CLG_CSKEY(X86_INS_AND, 0x440900), 740, 600 }, +{ CLG_CSKEY(X86_INS_AND, 0x441000), 73, 600 }, +{ CLG_CSKEY(X86_INS_AND, 0x441100), 740, 600 }, +{ CLG_CSKEY(X86_INS_AND, 0x441800), 60, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x441900), 740, 600 }, +{ CLG_CSKEY(X86_INS_AND, 0x442000), 60, 100 }, +{ CLG_CSKEY(X86_INS_AND, 0x442100), 740, 600 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c0800), 83, 83 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c0900), 740, 740 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c1000), 73, 73 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c1100), 740, 740 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c1800), 60, 60 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c1900), 740, 740 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c2000), 60, 60 }, +{ CLG_CSKEY(X86_INS_AND, 0x4c2100), 740, 740 }, +{ CLG_CSKEY(X86_INS_ANDN, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_ANDN, 0x249800), 30, 100 }, +{ CLG_CSKEY(X86_INS_ANDN, 0x24a000), 30, 100 }, +{ CLG_CSKEY(X86_INS_ANDN, 0x251800), 33, 100 }, +{ CLG_CSKEY(X86_INS_ANDN, 0x252000), 33, 100 }, +{ CLG_CSKEY(X86_INS_ANDNPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDNPD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ANDNPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDNPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDNPS, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ANDNPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDPD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ANDPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ANDPS, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ANDPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BEXTR, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BEXTR, 0x249800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BEXTR, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BEXTR, 0x289800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BEXTR, 0x28a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDPD, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDPD, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDPS, 0x25a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_BLENDPS, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDVPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDVPD, 0x242800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDVPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDVPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDVPS, 0x242800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLENDVPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BLSI, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BLSI, 0x241800), 31, 100 }, +{ CLG_CSKEY(X86_INS_BLSI, 0x242000), 30, 100 }, +{ CLG_CSKEY(X86_INS_BLSI, 0x281800), 33, 33 }, +{ CLG_CSKEY(X86_INS_BLSI, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_BLSMSK, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BLSMSK, 0x241800), 30, 100 }, +{ CLG_CSKEY(X86_INS_BLSMSK, 0x242000), 30, 100 }, +{ CLG_CSKEY(X86_INS_BLSMSK, 0x281800), 33, 33 }, +{ CLG_CSKEY(X86_INS_BLSMSK, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_BLSR, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BLSR, 0x241800), 30, 100 }, +{ CLG_CSKEY(X86_INS_BLSR, 0x242000), 27, 100 }, +{ CLG_CSKEY(X86_INS_BLSR, 0x281800), 33, 33 }, +{ CLG_CSKEY(X86_INS_BLSR, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_BSF, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSF, 0x241000), 31, 100 }, +{ CLG_CSKEY(X86_INS_BSF, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_BSF, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_BSF, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSF, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSF, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x241000), 31, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSR, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_BSWAP, 0x000000), 25, 100 }, +{ CLG_CSKEY(X86_INS_BSWAP, 0x201800), 25, 100 }, +{ CLG_CSKEY(X86_INS_BSWAP, 0x202000), 25, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x000000), 300, 800 }, +{ CLG_CSKEY(X86_INS_BT, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BT, 0x441000), 300, 800 }, +{ CLG_CSKEY(X86_INS_BT, 0x441800), 300, 800 }, +{ CLG_CSKEY(X86_INS_BT, 0x442000), 300, 800 }, +{ CLG_CSKEY(X86_INS_BT, 0x4c1000), 50, 50 }, +{ CLG_CSKEY(X86_INS_BT, 0x4c1800), 50, 50 }, +{ CLG_CSKEY(X86_INS_BT, 0x4c2000), 50, 50 }, +{ CLG_CSKEY(X86_INS_BTC, 0x000000), 773, 4900 }, +{ CLG_CSKEY(X86_INS_BTC, 0x241000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x241800), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x242000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x2c1000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x2c1800), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x2c2000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x441000), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTC, 0x441100), 773, 4700 }, +{ CLG_CSKEY(X86_INS_BTC, 0x441800), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTC, 0x441900), 773, 4900 }, +{ CLG_CSKEY(X86_INS_BTC, 0x442000), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTC, 0x442100), 773, 4400 }, +{ CLG_CSKEY(X86_INS_BTC, 0x4c1000), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x4c1100), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTC, 0x4c1800), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x4c1900), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTC, 0x4c2000), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTC, 0x4c2100), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTR, 0x000000), 773, 4900 }, +{ CLG_CSKEY(X86_INS_BTR, 0x241000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x241800), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x242000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x2c1000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x2c1800), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x2c2000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x441000), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTR, 0x441100), 773, 4700 }, +{ CLG_CSKEY(X86_INS_BTR, 0x441800), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTR, 0x441900), 767, 4900 }, +{ CLG_CSKEY(X86_INS_BTR, 0x442000), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTR, 0x442100), 773, 4900 }, +{ CLG_CSKEY(X86_INS_BTR, 0x4c1000), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x4c1100), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTR, 0x4c1800), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x4c1900), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTR, 0x4c2000), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTR, 0x4c2100), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTS, 0x000000), 773, 4900 }, +{ CLG_CSKEY(X86_INS_BTS, 0x241000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x241800), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x242000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x2c1000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x2c1800), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x2c2000), 100, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x441000), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTS, 0x441100), 772, 4700 }, +{ CLG_CSKEY(X86_INS_BTS, 0x441800), 300, 4600 }, +{ CLG_CSKEY(X86_INS_BTS, 0x441900), 772, 4400 }, +{ CLG_CSKEY(X86_INS_BTS, 0x442000), 300, 4700 }, +{ CLG_CSKEY(X86_INS_BTS, 0x442100), 773, 4900 }, +{ CLG_CSKEY(X86_INS_BTS, 0x4c1000), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x4c1100), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTS, 0x4c1800), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x4c1900), 767, 767 }, +{ CLG_CSKEY(X86_INS_BTS, 0x4c2000), 200, 200 }, +{ CLG_CSKEY(X86_INS_BTS, 0x4c2100), 767, 767 }, +{ CLG_CSKEY(X86_INS_BZHI, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BZHI, 0x249800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BZHI, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_BZHI, 0x289800), 50, 100 }, +{ CLG_CSKEY(X86_INS_BZHI, 0x28a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CALL, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_CALL, 0x202000), 100, 200 }, +{ CLG_CSKEY(X86_INS_CALL, 0x402000), 100, 200 }, +{ CLG_CSKEY(X86_INS_CALL, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_CBW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CDQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CDQE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CLC, 0x000000), 25, 25 }, +{ CLG_CSKEY(X86_INS_CLD, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_CLFLUSH, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CLFLUSH, 0x403800), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CLFLUSHOPT, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CLFLUSHOPT, 0x403800), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CLWB, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CLWB, 0x403800), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CLZERO, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CMC, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVA, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVAE, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVBE, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVE, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVG, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVGE, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVL, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVLE, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNE, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNO, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNP, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVNS, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVO, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVP, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x241800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x281000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x281800), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMOVS, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x000000), 44, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x240800), 25, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x280800), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x2c0000), 25, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x2c1000), 37, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x2c1800), 44, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x2c2000), 44, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x440800), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x441000), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x441800), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x442000), 33, 100 }, +{ CLG_CSKEY(X86_INS_CMP, 0x4c0800), 33, 33 }, +{ CLG_CSKEY(X86_INS_CMP, 0x4c1000), 35, 35 }, +{ CLG_CSKEY(X86_INS_CMP, 0x4c1800), 44, 44 }, +{ CLG_CSKEY(X86_INS_CMP, 0x4c2000), 44, 44 }, +{ CLG_CSKEY(X86_INS_CMPPD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPPD, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPPD, 0x29a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPPS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPPS, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPPS, 0x29a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPSB, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_CMPSD, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_CMPSD, 0x25a000), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPSD, 0x29a000), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPSQ, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_CMPSS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPSS, 0x259800), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPSS, 0x299800), 50, 200 }, +{ CLG_CSKEY(X86_INS_CMPSW, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x000000), 792, 900 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x240800), 200, 300 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x241000), 300, 200 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x241800), 300, 200 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x242000), 300, 200 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x440800), 300, 900 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x440900), 792, 900 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x441000), 300, 900 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x441100), 789, 900 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x441800), 300, 800 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x441900), 789, 800 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x442000), 300, 800 }, +{ CLG_CSKEY(X86_INS_CMPXCHG, 0x442100), 792, 800 }, +{ CLG_CSKEY(X86_INS_CMPXCHG16B, 0x000000), 1000, 1600 }, +{ CLG_CSKEY(X86_INS_CMPXCHG16B, 0x402800), 1000, 1600 }, +{ CLG_CSKEY(X86_INS_CMPXCHG16B, 0x402900), 1000, 1600 }, +{ CLG_CSKEY(X86_INS_CMPXCHG8B, 0x000000), 786, 1000 }, +{ CLG_CSKEY(X86_INS_CMPXCHG8B, 0x402000), 500, 1000 }, +{ CLG_CSKEY(X86_INS_CMPXCHG8B, 0x402100), 786, 1000 }, +{ CLG_CSKEY(X86_INS_COMISD, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_COMISD, 0x242000), 100, 700 }, +{ CLG_CSKEY(X86_INS_COMISD, 0x282000), 100, 700 }, +{ CLG_CSKEY(X86_INS_COMISS, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_COMISS, 0x241800), 100, 700 }, +{ CLG_CSKEY(X86_INS_COMISS, 0x281800), 100, 700 }, +{ CLG_CSKEY(X86_INS_CPUID, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_CQO, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_CRC32, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_CRC32, 0x241800), 100, 300 }, +{ CLG_CSKEY(X86_INS_CRC32, 0x242000), 100, 300 }, +{ CLG_CSKEY(X86_INS_CRC32, 0x281800), 100, 300 }, +{ CLG_CSKEY(X86_INS_CRC32, 0x282000), 100, 300 }, +{ CLG_CSKEY(X86_INS_CVTDQ2PD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTDQ2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTDQ2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTDQ2PS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTDQ2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTDQ2PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPD2DQ, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPD2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPD2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPD2PI, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPD2PI, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPD2PI, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPD2PS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPD2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPD2PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPI2PD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPI2PD, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPI2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPI2PS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPI2PS, 0x242000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPI2PS, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPS2DQ, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPS2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPS2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPS2PD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPS2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTPS2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTPS2PI, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPS2PI, 0x242000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTPS2PI, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTSD2SI, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTSD2SI, 0x242000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTSD2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CVTSD2SS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSD2SS, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSD2SS, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSI2SD, 0x000000), 147, 800 }, +{ CLG_CSKEY(X86_INS_CVTSI2SD, 0x242000), 147, 800 }, +{ CLG_CSKEY(X86_INS_CVTSI2SD, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSI2SS, 0x000000), 142, 800 }, +{ CLG_CSKEY(X86_INS_CVTSI2SS, 0x241800), 142, 800 }, +{ CLG_CSKEY(X86_INS_CVTSI2SS, 0x242000), 142, 800 }, +{ CLG_CSKEY(X86_INS_CVTSI2SS, 0x281800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSI2SS, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSS2SD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSS2SD, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSS2SD, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTSS2SI, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTSS2SI, 0x241800), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTSS2SI, 0x242000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTSS2SI, 0x281800), 100, 100 }, +{ CLG_CSKEY(X86_INS_CVTSS2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CVTTPD2DQ, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTTPD2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTTPD2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTTPD2PI, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTTPD2PI, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTTPD2PI, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTTPS2DQ, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTTPS2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_CVTTPS2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTTPS2PI, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTTPS2PI, 0x242000), 50, 400 }, +{ CLG_CSKEY(X86_INS_CVTTPS2PI, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_CVTTSD2SI, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTTSD2SI, 0x242000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTTSD2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CVTTSS2SI, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTTSS2SI, 0x241800), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTTSS2SI, 0x242000), 100, 900 }, +{ CLG_CSKEY(X86_INS_CVTTSS2SI, 0x281800), 100, 100 }, +{ CLG_CSKEY(X86_INS_CVTTSS2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CWD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_CWDE, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_DEC, 0x000000), 633, 633 }, +{ CLG_CSKEY(X86_INS_DEC, 0x200800), 25, 100 }, +{ CLG_CSKEY(X86_INS_DEC, 0x201000), 25, 100 }, +{ CLG_CSKEY(X86_INS_DEC, 0x201800), 25, 100 }, +{ CLG_CSKEY(X86_INS_DEC, 0x202000), 25, 100 }, +{ CLG_CSKEY(X86_INS_DEC, 0x400800), 83, 83 }, +{ CLG_CSKEY(X86_INS_DEC, 0x400900), 633, 633 }, +{ CLG_CSKEY(X86_INS_DEC, 0x401000), 73, 73 }, +{ CLG_CSKEY(X86_INS_DEC, 0x401100), 633, 633 }, +{ CLG_CSKEY(X86_INS_DEC, 0x401800), 50, 50 }, +{ CLG_CSKEY(X86_INS_DEC, 0x401900), 633, 633 }, +{ CLG_CSKEY(X86_INS_DEC, 0x402000), 50, 50 }, +{ CLG_CSKEY(X86_INS_DEC, 0x402100), 633, 633 }, +{ CLG_CSKEY(X86_INS_DIV, 0x000000), 700, 1900 }, +{ CLG_CSKEY(X86_INS_DIV, 0x200800), 400, 1000 }, +{ CLG_CSKEY(X86_INS_DIV, 0x201000), 400, 1200 }, +{ CLG_CSKEY(X86_INS_DIV, 0x201800), 600, 1400 }, +{ CLG_CSKEY(X86_INS_DIV, 0x202000), 700, 1900 }, +{ CLG_CSKEY(X86_INS_DIV, 0x400800), 400, 1000 }, +{ CLG_CSKEY(X86_INS_DIV, 0x401000), 400, 1200 }, +{ CLG_CSKEY(X86_INS_DIV, 0x401800), 600, 1400 }, +{ CLG_CSKEY(X86_INS_DIV, 0x402000), 700, 1900 }, +{ CLG_CSKEY(X86_INS_DIVPD, 0x000000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_DIVPD, 0x242800), 500, 1300 }, +{ CLG_CSKEY(X86_INS_DIVPD, 0x282800), 500, 1300 }, +{ CLG_CSKEY(X86_INS_DIVPS, 0x000000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_DIVPS, 0x242800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_DIVPS, 0x282800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_DIVSD, 0x000000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_DIVSD, 0x242000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_DIVSD, 0x282000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_DIVSS, 0x000000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_DIVSS, 0x241800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_DIVSS, 0x281800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_DPPD, 0x000000), 400, 800 }, +{ CLG_CSKEY(X86_INS_DPPD, 0x25a800), 300, 700 }, +{ CLG_CSKEY(X86_INS_DPPD, 0x29a800), 400, 800 }, +{ CLG_CSKEY(X86_INS_DPPS, 0x000000), 500, 1200 }, +{ CLG_CSKEY(X86_INS_DPPS, 0x25a800), 400, 1100 }, +{ CLG_CSKEY(X86_INS_DPPS, 0x29a800), 500, 1200 }, +{ CLG_CSKEY(X86_INS_EMMS, 0x000000), 25, 25 }, +{ CLG_CSKEY(X86_INS_ENTER, 0x000000), 2200, 2200 }, +{ CLG_CSKEY(X86_INS_ENTER, 0x6c0000), 2200, 2200 }, +{ CLG_CSKEY(X86_INS_EXTRACTPS, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_EXTRACTPS, 0x25a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_EXTRACTPS, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_EXTRQ, 0x000000), 62, 300 }, +{ CLG_CSKEY(X86_INS_EXTRQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_EXTRQ, 0x2da000), 62, 62 }, +{ CLG_CSKEY(X86_INS_FXSAVE, 0x000000), 6400, 8400 }, +{ CLG_CSKEY(X86_INS_FXSAVE, 0x400000), 6400, 8400 }, +{ CLG_CSKEY(X86_INS_FXSAVE64, 0x000000), 6400, 8400 }, +{ CLG_CSKEY(X86_INS_FXSAVE64, 0x400000), 6400, 8400 }, +{ CLG_CSKEY(X86_INS_GF2P8AFFINEINVQB, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8AFFINEINVQB, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8AFFINEINVQB, 0x29a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8AFFINEQB, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8AFFINEQB, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8AFFINEQB, 0x29a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8MULB, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8MULB, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_GF2P8MULB, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_HADDPD, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_HADDPD, 0x242800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HADDPD, 0x282800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HADDPS, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_HADDPS, 0x242800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HADDPS, 0x282800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HSUBPD, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_HSUBPD, 0x242800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HSUBPD, 0x282800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HSUBPS, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_HSUBPS, 0x242800), 200, 400 }, +{ CLG_CSKEY(X86_INS_HSUBPS, 0x282800), 200, 400 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x000000), 700, 1900 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x200800), 400, 1000 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x201000), 400, 1200 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x201800), 600, 1400 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x202000), 700, 1900 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x400800), 400, 1000 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x401000), 400, 1200 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x401800), 600, 1400 }, +{ CLG_CSKEY(X86_INS_IDIV, 0x402000), 700, 1900 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x000000), 200, 500 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x200800), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x201000), 200, 500 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x201800), 100, 400 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x202000), 100, 400 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x241000), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x241800), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x242000), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x259000), 100, 400 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x259800), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x25a000), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x281000), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x281800), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x282000), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x299000), 100, 400 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x299800), 100, 100 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x29a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x400800), 100, 300 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x401000), 200, 500 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x401800), 100, 400 }, +{ CLG_CSKEY(X86_INS_IMUL, 0x402000), 100, 400 }, +{ CLG_CSKEY(X86_INS_INC, 0x000000), 633, 633 }, +{ CLG_CSKEY(X86_INS_INC, 0x200800), 25, 100 }, +{ CLG_CSKEY(X86_INS_INC, 0x201000), 25, 100 }, +{ CLG_CSKEY(X86_INS_INC, 0x201800), 25, 100 }, +{ CLG_CSKEY(X86_INS_INC, 0x202000), 25, 100 }, +{ CLG_CSKEY(X86_INS_INC, 0x400800), 83, 83 }, +{ CLG_CSKEY(X86_INS_INC, 0x400900), 633, 633 }, +{ CLG_CSKEY(X86_INS_INC, 0x401000), 73, 73 }, +{ CLG_CSKEY(X86_INS_INC, 0x401100), 633, 633 }, +{ CLG_CSKEY(X86_INS_INC, 0x401800), 53, 53 }, +{ CLG_CSKEY(X86_INS_INC, 0x401900), 633, 633 }, +{ CLG_CSKEY(X86_INS_INC, 0x402000), 50, 50 }, +{ CLG_CSKEY(X86_INS_INC, 0x402100), 633, 633 }, +{ CLG_CSKEY(X86_INS_INSERTPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_INSERTPS, 0x25a800), 40, 100 }, +{ CLG_CSKEY(X86_INS_INSERTPS, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_INSERTQ, 0x000000), 63, 300 }, +{ CLG_CSKEY(X86_INS_INSERTQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_INSERTQ, 0x25a000), 63, 300 }, +{ CLG_CSKEY(X86_INS_JA, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JA, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JAE, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JAE, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JB, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JB, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JBE, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JBE, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JE, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JE, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JG, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JG, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JGE, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JGE, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JL, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JL, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JLE, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JLE, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JMP, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_JMP, 0x202000), 100, 200 }, +{ CLG_CSKEY(X86_INS_JMP, 0x402000), 100, 200 }, +{ CLG_CSKEY(X86_INS_JMP, 0x600000), 100, 120 }, +{ CLG_CSKEY(X86_INS_JNE, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNE, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNO, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNO, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNP, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNP, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNS, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JNS, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JO, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JO, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JP, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JP, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JRCXZ, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JRCXZ, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JS, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_JS, 0x600000), 50, 50 }, +{ CLG_CSKEY(X86_INS_KADDB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KADDB, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KADDD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KADDD, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KADDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KADDQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KADDW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KADDW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDB, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDD, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDNB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDNB, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDND, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDND, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDNQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KANDNQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KANDNW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDNW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KANDQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KANDW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KANDW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KMOVB, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_KMOVB, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_KMOVB, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_KMOVB, 0x442000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KMOVD, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_KMOVD, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_KMOVD, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_KMOVD, 0x442000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KMOVQ, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_KMOVQ, 0x242000), 200, 200 }, +{ CLG_CSKEY(X86_INS_KMOVQ, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KMOVQ, 0x442000), 200, 200 }, +{ CLG_CSKEY(X86_INS_KMOVW, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_KMOVW, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_KMOVW, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_KMOVW, 0x442000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KNOTB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KNOTB, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KNOTD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KNOTD, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KNOTQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KNOTQ, 0x242000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KNOTW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KNOTW, 0x242000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KORB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KORB, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KORD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KORD, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KORQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KORQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KORTESTB, 0x000000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KORTESTB, 0x242000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KORTESTD, 0x000000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KORTESTD, 0x242000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KORTESTQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KORTESTQ, 0x242000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KORTESTW, 0x000000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KORTESTW, 0x242000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KORW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KORW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLB, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLD, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLQ, 0x25a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTLW, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTRB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTRB, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTRD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTRD, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTRQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_KSHIFTRQ, 0x25a000), 100, 200 }, +{ CLG_CSKEY(X86_INS_KSHIFTRW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KSHIFTRW, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KTESTB, 0x000000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KTESTB, 0x242000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KTESTD, 0x000000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KTESTD, 0x242000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KTESTQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KTESTQ, 0x242000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KTESTW, 0x000000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KTESTW, 0x242000), 120, 120 }, +{ CLG_CSKEY(X86_INS_KUNPCKBW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KUNPCKBW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KUNPCKDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KUNPCKDQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KUNPCKWD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KUNPCKWD, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXNORB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXNORB, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXNORD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXNORD, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXNORQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KXNORQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KXNORW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXNORW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXORB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXORB, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXORD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXORD, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXORQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KXORQ, 0x24a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_KXORW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_KXORW, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_LAHF, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LDDQU, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_LDDQU, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_LDMXCSR, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_LDMXCSR, 0x401800), 200, 200 }, +{ CLG_CSKEY(X86_INS_LEA, 0x000000), 200, 100 }, +{ CLG_CSKEY(X86_INS_LEA, 0x281000), 200, 100 }, +{ CLG_CSKEY(X86_INS_LEA, 0x281800), 50, 50 }, +{ CLG_CSKEY(X86_INS_LEA, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_LEAVE, 0x000000), 200, 500 }, +{ CLG_CSKEY(X86_INS_LFENCE, 0x000000), 1000, 1000 }, +{ CLG_CSKEY(X86_INS_LODSB, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_LODSD, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_LODSQ, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_LODSW, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_LOOP, 0x000000), 56, 100 }, +{ CLG_CSKEY(X86_INS_LOOP, 0x600000), 56, 100 }, +{ CLG_CSKEY(X86_INS_LOOPE, 0x000000), 56, 100 }, +{ CLG_CSKEY(X86_INS_LOOPE, 0x600000), 56, 100 }, +{ CLG_CSKEY(X86_INS_LOOPNE, 0x000000), 56, 100 }, +{ CLG_CSKEY(X86_INS_LOOPNE, 0x600000), 56, 100 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x000000), 42, 100 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x241000), 37, 100 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x241800), 30, 100 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x242000), 30, 100 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x281000), 42, 100 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x281800), 33, 0 }, +{ CLG_CSKEY(X86_INS_LZCNT, 0x282000), 33, 0 }, +{ CLG_CSKEY(X86_INS_MASKMOVDQU, 0x000000), 1800, 1800 }, +{ CLG_CSKEY(X86_INS_MASKMOVDQU, 0x242800), 1800, 1800 }, +{ CLG_CSKEY(X86_INS_MASKMOVQ, 0x000000), 900, 900 }, +{ CLG_CSKEY(X86_INS_MASKMOVQ, 0x242000), 900, 900 }, +{ CLG_CSKEY(X86_INS_MAXPD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXPD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXPD, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXPS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXPS, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXPS, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXSD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXSD, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXSD, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXSS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXSS, 0x241800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MAXSS, 0x281800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MFENCE, 0x000000), 5870, 5870 }, +{ CLG_CSKEY(X86_INS_MINPD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINPD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINPD, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINPS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINPS, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINPS, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINSD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINSD, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINSD, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINSS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINSS, 0x241800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MINSS, 0x281800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MOV, 0x000000), 200, 700 }, +{ CLG_CSKEY(X86_INS_MOV, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOV, 0x241000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOV, 0x241800), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOV, 0x242000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOV, 0x280800), 200, 600 }, +{ CLG_CSKEY(X86_INS_MOV, 0x281000), 200, 600 }, +{ CLG_CSKEY(X86_INS_MOV, 0x281800), 56, 700 }, +{ CLG_CSKEY(X86_INS_MOV, 0x282000), 62, 700 }, +{ CLG_CSKEY(X86_INS_MOV, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOV, 0x2c1000), 28, 100 }, +{ CLG_CSKEY(X86_INS_MOV, 0x2c1800), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOV, 0x2c2000), 62, 62 }, +{ CLG_CSKEY(X86_INS_MOV, 0x440800), 56, 600 }, +{ CLG_CSKEY(X86_INS_MOV, 0x441000), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOV, 0x441800), 56, 600 }, +{ CLG_CSKEY(X86_INS_MOV, 0x442000), 62, 600 }, +{ CLG_CSKEY(X86_INS_MOV, 0x4c0800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOV, 0x4c1000), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOV, 0x4c1800), 56, 56 }, +{ CLG_CSKEY(X86_INS_MOV, 0x4c2000), 56, 56 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x000000), 200, 700 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x241000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x241800), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x242000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x280800), 200, 600 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x281000), 200, 600 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x281800), 56, 700 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x282000), 62, 700 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x2c1000), 28, 100 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x2c1800), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x2c2000), 62, 62 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x440800), 56, 600 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x441000), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x441800), 56, 600 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x442000), 62, 600 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x4c0800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x4c1000), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x4c1800), 56, 56 }, +{ CLG_CSKEY(X86_INS_MOVABS, 0x4c2000), 56, 56 }, +{ CLG_CSKEY(X86_INS_MOVAPD, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVAPD, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_MOVAPD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVAPD, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVAPS, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVAPS, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_MOVAPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVAPS, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x000000), 56, 700 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x281000), 42, 100 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x281800), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x441000), 56, 700 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x441800), 56, 100 }, +{ CLG_CSKEY(X86_INS_MOVBE, 0x442000), 56, 100 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x000000), 120, 2000 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x241800), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x242000), 120, 600 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x242800), 117, 600 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVD, 0x441800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_MOVDDUP, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVDDUP, 0x242800), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVDDUP, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVDQ2Q, 0x000000), 25, 200 }, +{ CLG_CSKEY(X86_INS_MOVDQ2Q, 0x242000), 25, 200 }, +{ CLG_CSKEY(X86_INS_MOVDQA, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVDQA, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_MOVDQA, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVDQA, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVDQU, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVDQU, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_MOVDQU, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVDQU, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVHLPS, 0x000000), 36, 100 }, +{ CLG_CSKEY(X86_INS_MOVHLPS, 0x242000), 36, 100 }, +{ CLG_CSKEY(X86_INS_MOVHPD, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_MOVHPD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVHPD, 0x442000), 100, 900 }, +{ CLG_CSKEY(X86_INS_MOVHPS, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_MOVHPS, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVHPS, 0x442800), 100, 900 }, +{ CLG_CSKEY(X86_INS_MOVLHPS, 0x000000), 40, 100 }, +{ CLG_CSKEY(X86_INS_MOVLHPS, 0x242000), 40, 100 }, +{ CLG_CSKEY(X86_INS_MOVLPD, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVLPD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVLPD, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVLPS, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVLPS, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVLPS, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVMSKPD, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOVMSKPD, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOVMSKPS, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOVMSKPS, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_MOVNTDQ, 0x000000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTDQ, 0x442800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTDQA, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVNTDQA, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVNTI, 0x000000), 50, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTI, 0x441800), 50, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTI, 0x442000), 50, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTPD, 0x000000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTPD, 0x442800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTPS, 0x000000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTPS, 0x442800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTQ, 0x000000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTQ, 0x442000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTSD, 0x000000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTSD, 0x442000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTSS, 0x000000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVNTSS, 0x441800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_MOVQ, 0x000000), 120, 800 }, +{ CLG_CSKEY(X86_INS_MOVQ, 0x242000), 120, 600 }, +{ CLG_CSKEY(X86_INS_MOVQ, 0x242800), 117, 600 }, +{ CLG_CSKEY(X86_INS_MOVQ, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVQ, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVQ2DQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_MOVQ2DQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_MOVSB, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_MOVSD, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_MOVSD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVSD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVSD, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVSHDUP, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVSHDUP, 0x242800), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVSHDUP, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVSLDUP, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_MOVSLDUP, 0x242800), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVSLDUP, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVSQ, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_MOVSS, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVSS, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVSS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVSS, 0x441800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVSW, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x241000), 31, 100 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x281800), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVSX, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVSXD, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVSXD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVSXD, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVUPD, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVUPD, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_MOVUPD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVUPD, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVUPS, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVUPS, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_MOVUPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_MOVUPS, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x241000), 31, 100 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x281800), 33, 33 }, +{ CLG_CSKEY(X86_INS_MOVZX, 0x282000), 33, 33 }, +{ CLG_CSKEY(X86_INS_MPSADBW, 0x000000), 300, 500 }, +{ CLG_CSKEY(X86_INS_MPSADBW, 0x25a800), 200, 500 }, +{ CLG_CSKEY(X86_INS_MPSADBW, 0x29a800), 300, 500 }, +{ CLG_CSKEY(X86_INS_MUL, 0x000000), 200, 500 }, +{ CLG_CSKEY(X86_INS_MUL, 0x200800), 100, 300 }, +{ CLG_CSKEY(X86_INS_MUL, 0x201000), 200, 500 }, +{ CLG_CSKEY(X86_INS_MUL, 0x201800), 100, 400 }, +{ CLG_CSKEY(X86_INS_MUL, 0x202000), 100, 400 }, +{ CLG_CSKEY(X86_INS_MUL, 0x400800), 100, 300 }, +{ CLG_CSKEY(X86_INS_MUL, 0x401000), 200, 500 }, +{ CLG_CSKEY(X86_INS_MUL, 0x401800), 100, 400 }, +{ CLG_CSKEY(X86_INS_MUL, 0x402000), 100, 400 }, +{ CLG_CSKEY(X86_INS_MULPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULPD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULPD, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULPS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULPS, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULSD, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULSD, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULSS, 0x241800), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULSS, 0x281800), 50, 300 }, +{ CLG_CSKEY(X86_INS_MULX, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_MULX, 0x249800), 100, 400 }, +{ CLG_CSKEY(X86_INS_MULX, 0x24a000), 100, 400 }, +{ CLG_CSKEY(X86_INS_MULX, 0x251800), 100, 400 }, +{ CLG_CSKEY(X86_INS_MULX, 0x252000), 100, 400 }, +{ CLG_CSKEY(X86_INS_NEG, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_NEG, 0x200800), 25, 100 }, +{ CLG_CSKEY(X86_INS_NEG, 0x201000), 25, 100 }, +{ CLG_CSKEY(X86_INS_NEG, 0x201800), 25, 100 }, +{ CLG_CSKEY(X86_INS_NEG, 0x202000), 25, 100 }, +{ CLG_CSKEY(X86_INS_NEG, 0x400800), 83, 83 }, +{ CLG_CSKEY(X86_INS_NEG, 0x400900), 740, 740 }, +{ CLG_CSKEY(X86_INS_NEG, 0x401000), 73, 73 }, +{ CLG_CSKEY(X86_INS_NEG, 0x401100), 740, 740 }, +{ CLG_CSKEY(X86_INS_NEG, 0x401800), 60, 60 }, +{ CLG_CSKEY(X86_INS_NEG, 0x401900), 740, 740 }, +{ CLG_CSKEY(X86_INS_NEG, 0x402000), 60, 60 }, +{ CLG_CSKEY(X86_INS_NEG, 0x402100), 740, 740 }, +{ CLG_CSKEY(X86_INS_NOP, 0x000000), 25, 25 }, +{ CLG_CSKEY(X86_INS_NOP, 0x201000), 31, 31 }, +{ CLG_CSKEY(X86_INS_NOP, 0x201800), 25, 25 }, +{ CLG_CSKEY(X86_INS_NOP, 0x202000), 25, 25 }, +{ CLG_CSKEY(X86_INS_NOP, 0x401000), 31, 31 }, +{ CLG_CSKEY(X86_INS_NOP, 0x401800), 25, 25 }, +{ CLG_CSKEY(X86_INS_NOP, 0x402000), 25, 25 }, +{ CLG_CSKEY(X86_INS_NOT, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_NOT, 0x200800), 25, 100 }, +{ CLG_CSKEY(X86_INS_NOT, 0x201000), 25, 100 }, +{ CLG_CSKEY(X86_INS_NOT, 0x201800), 25, 100 }, +{ CLG_CSKEY(X86_INS_NOT, 0x202000), 25, 100 }, +{ CLG_CSKEY(X86_INS_NOT, 0x400800), 83, 83 }, +{ CLG_CSKEY(X86_INS_NOT, 0x400900), 740, 740 }, +{ CLG_CSKEY(X86_INS_NOT, 0x401000), 73, 73 }, +{ CLG_CSKEY(X86_INS_NOT, 0x401100), 740, 740 }, +{ CLG_CSKEY(X86_INS_NOT, 0x401800), 60, 60 }, +{ CLG_CSKEY(X86_INS_NOT, 0x401900), 740, 740 }, +{ CLG_CSKEY(X86_INS_NOT, 0x402000), 60, 60 }, +{ CLG_CSKEY(X86_INS_NOT, 0x402100), 740, 740 }, +{ CLG_CSKEY(X86_INS_OR, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_OR, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x280800), 33, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x440800), 83, 600 }, +{ CLG_CSKEY(X86_INS_OR, 0x440900), 740, 600 }, +{ CLG_CSKEY(X86_INS_OR, 0x441000), 73, 600 }, +{ CLG_CSKEY(X86_INS_OR, 0x441100), 740, 600 }, +{ CLG_CSKEY(X86_INS_OR, 0x441800), 60, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x441900), 740, 600 }, +{ CLG_CSKEY(X86_INS_OR, 0x442000), 60, 100 }, +{ CLG_CSKEY(X86_INS_OR, 0x442100), 740, 600 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c0800), 83, 83 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c0900), 740, 740 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c1000), 73, 73 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c1100), 740, 740 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c1800), 60, 60 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c1900), 740, 740 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c2000), 60, 60 }, +{ CLG_CSKEY(X86_INS_OR, 0x4c2100), 740, 740 }, +{ CLG_CSKEY(X86_INS_ORPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ORPD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ORPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ORPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ORPS, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_ORPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PABSB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSB, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_PABSB, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PABSD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSD, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSD, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_PABSD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PABSW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PABSW, 0x282000), 50, 50 }, +{ CLG_CSKEY(X86_INS_PABSW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PACKSSDW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSDW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSDW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSDW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSDW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSWB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSWB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSWB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSWB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKSSWB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSDW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSDW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSDW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSWB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSWB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSWB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSWB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PACKUSWB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDB, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDQ, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDQ, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDQ, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDQ, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDSB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDSW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDUSW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PADDW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDW, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDW, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PADDW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PADDW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PALIGNR, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PALIGNR, 0x25a000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PALIGNR, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PALIGNR, 0x29a000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PALIGNR, 0x29a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PAND, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PAND, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PAND, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PAND, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PAND, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PANDN, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PANDN, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PANDN, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PANDN, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PANDN, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PAUSE, 0x000000), 6400, 6500 }, +{ CLG_CSKEY(X86_INS_PAVGB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PAVGB, 0x242000), 30, 200 }, +{ CLG_CSKEY(X86_INS_PAVGB, 0x242800), 25, 200 }, +{ CLG_CSKEY(X86_INS_PAVGB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PAVGB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PAVGW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PAVGW, 0x242000), 30, 200 }, +{ CLG_CSKEY(X86_INS_PAVGW, 0x242800), 25, 200 }, +{ CLG_CSKEY(X86_INS_PAVGW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PAVGW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PBLENDVB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PBLENDVB, 0x242800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PBLENDVB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PBLENDW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PBLENDW, 0x25a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_PBLENDW, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCLMULQDQ, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_PCLMULQDQ, 0x25a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_PCLMULQDQ, 0x29a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_PCMPEQB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQB, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PCMPEQQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PCMPEQQ, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PCMPEQW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQW, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQW, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPEQW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPESTRI, 0x000000), 400, 1500 }, +{ CLG_CSKEY(X86_INS_PCMPESTRI, 0x25a800), 300, 1500 }, +{ CLG_CSKEY(X86_INS_PCMPESTRI, 0x29a800), 400, 1500 }, +{ CLG_CSKEY(X86_INS_PCMPESTRM, 0x000000), 400, 1600 }, +{ CLG_CSKEY(X86_INS_PCMPESTRM, 0x25a800), 300, 1600 }, +{ CLG_CSKEY(X86_INS_PCMPESTRM, 0x29a800), 400, 1600 }, +{ CLG_CSKEY(X86_INS_PCMPGTB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTB, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PCMPGTQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PCMPGTQ, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PCMPGTW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTW, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTW, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPGTW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PCMPISTRI, 0x000000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_PCMPISTRI, 0x25a800), 200, 1100 }, +{ CLG_CSKEY(X86_INS_PCMPISTRI, 0x29a800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_PCMPISTRM, 0x000000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_PCMPISTRM, 0x25a800), 200, 1100 }, +{ CLG_CSKEY(X86_INS_PCMPISTRM, 0x29a800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_PDEP, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_PDEP, 0x249800), 100, 300 }, +{ CLG_CSKEY(X86_INS_PDEP, 0x24a000), 100, 300 }, +{ CLG_CSKEY(X86_INS_PDEP, 0x251800), 100, 300 }, +{ CLG_CSKEY(X86_INS_PDEP, 0x252000), 100, 300 }, +{ CLG_CSKEY(X86_INS_PEXT, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_PEXT, 0x249800), 100, 300 }, +{ CLG_CSKEY(X86_INS_PEXT, 0x24a000), 100, 300 }, +{ CLG_CSKEY(X86_INS_PEXT, 0x251800), 100, 300 }, +{ CLG_CSKEY(X86_INS_PEXT, 0x252000), 100, 300 }, +{ CLG_CSKEY(X86_INS_PEXTRB, 0x000000), 100, 2200 }, +{ CLG_CSKEY(X86_INS_PEXTRB, 0x25a800), 100, 800 }, +{ CLG_CSKEY(X86_INS_PEXTRB, 0x45a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_PEXTRD, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_PEXTRD, 0x25a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_PEXTRD, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_PEXTRQ, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_PEXTRQ, 0x25a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_PEXTRQ, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_PEXTRW, 0x000000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_PEXTRW, 0x25a000), 100, 700 }, +{ CLG_CSKEY(X86_INS_PEXTRW, 0x25a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_PEXTRW, 0x45a800), 100, 2100 }, +{ CLG_CSKEY(X86_INS_PHADDD, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDD, 0x242000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDD, 0x242800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDD, 0x282000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDD, 0x282800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDSW, 0x000000), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHADDSW, 0x242000), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHADDSW, 0x242800), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHADDSW, 0x282000), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHADDSW, 0x282800), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHADDW, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDW, 0x242000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDW, 0x242800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDW, 0x282000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHADDW, 0x282800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHMINPOSUW, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PHMINPOSUW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PHMINPOSUW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PHSUBD, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBD, 0x242000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBD, 0x242800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBD, 0x282000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBD, 0x282800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBSW, 0x000000), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHSUBSW, 0x242000), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHSUBSW, 0x242800), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHSUBSW, 0x282000), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHSUBSW, 0x282800), 200, 300 }, +{ CLG_CSKEY(X86_INS_PHSUBW, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBW, 0x242000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBW, 0x242800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBW, 0x282000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PHSUBW, 0x282800), 200, 200 }, +{ CLG_CSKEY(X86_INS_PINSRB, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_PINSRB, 0x25a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_PINSRB, 0x29a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PINSRD, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRD, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRD, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PINSRQ, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRQ, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRQ, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PINSRW, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRW, 0x25a000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRW, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_PINSRW, 0x29a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PINSRW, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMADDUBSW, 0x000000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMADDUBSW, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMADDUBSW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMADDUBSW, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMADDUBSW, 0x282800), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMADDWD, 0x000000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMADDWD, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMADDWD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMADDWD, 0x282000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMADDWD, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMAXSB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSB, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSD, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSW, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSW, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXSW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUB, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUD, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUW, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMAXUW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSB, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMINSB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSD, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMINSD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSW, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMINSW, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMINSW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINSW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMINUB, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PMINUB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUD, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMINUD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMINUW, 0x242800), 31, 100 }, +{ CLG_CSKEY(X86_INS_PMINUW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PMOVMSKB, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PMOVMSKB, 0x242000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PMOVMSKB, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_PMOVSXBD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXBD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXBD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVSXBQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXBQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXBQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVSXBW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXBW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXBW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVSXDQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXDQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXDQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVSXWD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXWD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXWD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVSXWQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXWQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVSXWQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVZXBD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXBD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXBD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVZXBQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXBQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXBQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVZXBW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXBW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXBW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVZXDQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXDQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXDQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVZXWD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXWD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXWD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMOVZXWQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXWQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PMOVZXWQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PMULDQ, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULDQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULDQ, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHRSW, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHRSW, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHRSW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHRSW, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHRSW, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHUW, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHUW, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHUW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHUW, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHUW, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHW, 0x000000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMULHW, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULHW, 0x282000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMULHW, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULLD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULLD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULLD, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULLW, 0x000000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMULLW, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULLW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULLW, 0x282000), 52, 300 }, +{ CLG_CSKEY(X86_INS_PMULLW, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULUDQ, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULUDQ, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULUDQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULUDQ, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PMULUDQ, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_POP, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_POP, 0x201000), 200, 100 }, +{ CLG_CSKEY(X86_INS_POP, 0x202000), 33, 33 }, +{ CLG_CSKEY(X86_INS_POP, 0x401000), 200, 200 }, +{ CLG_CSKEY(X86_INS_POP, 0x402000), 72, 72 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x000000), 42, 100 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x241000), 33, 100 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x241800), 30, 100 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x242000), 30, 100 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x281000), 42, 100 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x281800), 33, 0 }, +{ CLG_CSKEY(X86_INS_POPCNT, 0x282000), 33, 0 }, +{ CLG_CSKEY(X86_INS_POPF, 0x000000), 1300, 1300 }, +{ CLG_CSKEY(X86_INS_POPFQ, 0x000000), 1300, 1300 }, +{ CLG_CSKEY(X86_INS_POR, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_POR, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_POR, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_POR, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_POR, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PREFETCH, 0x000000), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCH, 0x403800), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCHNTA, 0x000000), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCHNTA, 0x403800), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCHT0, 0x000000), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCHT0, 0x403800), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCHT1, 0x000000), 64, 64 }, +{ CLG_CSKEY(X86_INS_PREFETCHT1, 0x403800), 64, 64 }, +{ CLG_CSKEY(X86_INS_PREFETCHT2, 0x000000), 64, 64 }, +{ CLG_CSKEY(X86_INS_PREFETCHT2, 0x403800), 64, 64 }, +{ CLG_CSKEY(X86_INS_PREFETCHW, 0x000000), 33, 33 }, +{ CLG_CSKEY(X86_INS_PREFETCHW, 0x403800), 33, 33 }, +{ CLG_CSKEY(X86_INS_PSADBW, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PSADBW, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PSADBW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PSADBW, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_PSADBW, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_PSHUFB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSHUFB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSHUFB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSHUFB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSHUFB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSHUFD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFD, 0x25a800), 33, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PSHUFHW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFHW, 0x25a800), 33, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFHW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PSHUFLW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFLW, 0x25a800), 33, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFLW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_PSHUFW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFW, 0x25a000), 33, 100 }, +{ CLG_CSKEY(X86_INS_PSHUFW, 0x29a000), 50, 50 }, +{ CLG_CSKEY(X86_INS_PSIGNB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGND, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGND, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGND, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGND, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGND, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSIGNW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSLLD, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSLLDQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLDQ, 0x2c2800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSLLQ, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSLLW, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRAD, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRAW, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRLD, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRLDQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLDQ, 0x2c2800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRLQ, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSRLW, 0x2c2800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBB, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBB, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBB, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBD, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBQ, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBQ, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBQ, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBQ, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBSB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSB, 0x282800), 43, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBSW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSB, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSB, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSB, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSW, 0x242000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSW, 0x282000), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBUSW, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_PSUBW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBW, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBW, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PSUBW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PSUBW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PTEST, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_PTEST, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_PTEST, 0x282800), 100, 800 }, +{ CLG_CSKEY(X86_INS_PUNPCKHBW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHBW, 0x242000), 43, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHBW, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHBW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHBW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHDQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHDQ, 0x242000), 42, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHDQ, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHDQ, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHDQ, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHQDQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHQDQ, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHQDQ, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHWD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHWD, 0x242000), 43, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHWD, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHWD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKHWD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLBW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLBW, 0x242000), 42, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLBW, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLBW, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLBW, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLDQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLDQ, 0x242000), 44, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLDQ, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLDQ, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLDQ, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLQDQ, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLQDQ, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLQDQ, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLWD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLWD, 0x242000), 44, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLWD, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLWD, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUNPCKLWD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x000000), 200, 600 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x200000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x201000), 100, 600 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x202000), 50, 0 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x401000), 200, 200 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x402000), 71, 71 }, +{ CLG_CSKEY(X86_INS_PUSH, 0x600000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PUSHF, 0x000000), 400, 800 }, +{ CLG_CSKEY(X86_INS_PUSHFQ, 0x000000), 400, 800 }, +{ CLG_CSKEY(X86_INS_PXOR, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PXOR, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_PXOR, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_PXOR, 0x282000), 50, 100 }, +{ CLG_CSKEY(X86_INS_PXOR, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_RCL, 0x000000), 400, 900 }, +{ CLG_CSKEY(X86_INS_RCL, 0x240800), 400, 300 }, +{ CLG_CSKEY(X86_INS_RCL, 0x241000), 400, 300 }, +{ CLG_CSKEY(X86_INS_RCL, 0x241800), 400, 300 }, +{ CLG_CSKEY(X86_INS_RCL, 0x242000), 400, 300 }, +{ CLG_CSKEY(X86_INS_RCL, 0x2c0800), 400, 200 }, +{ CLG_CSKEY(X86_INS_RCL, 0x2c1000), 400, 200 }, +{ CLG_CSKEY(X86_INS_RCL, 0x2c1800), 400, 200 }, +{ CLG_CSKEY(X86_INS_RCL, 0x2c2000), 400, 200 }, +{ CLG_CSKEY(X86_INS_RCL, 0x440800), 400, 900 }, +{ CLG_CSKEY(X86_INS_RCL, 0x441000), 400, 900 }, +{ CLG_CSKEY(X86_INS_RCL, 0x441800), 400, 900 }, +{ CLG_CSKEY(X86_INS_RCL, 0x442000), 400, 900 }, +{ CLG_CSKEY(X86_INS_RCL, 0x4c0800), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCL, 0x4c1000), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCL, 0x4c1800), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCL, 0x4c2000), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCPPS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_RCPPS, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_RCPPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_RCPSS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_RCPSS, 0x241800), 50, 400 }, +{ CLG_CSKEY(X86_INS_RCPSS, 0x281800), 50, 400 }, +{ CLG_CSKEY(X86_INS_RCR, 0x000000), 400, 1000 }, +{ CLG_CSKEY(X86_INS_RCR, 0x240800), 300, 300 }, +{ CLG_CSKEY(X86_INS_RCR, 0x241000), 300, 300 }, +{ CLG_CSKEY(X86_INS_RCR, 0x241800), 300, 300 }, +{ CLG_CSKEY(X86_INS_RCR, 0x242000), 300, 300 }, +{ CLG_CSKEY(X86_INS_RCR, 0x2c0800), 300, 200 }, +{ CLG_CSKEY(X86_INS_RCR, 0x2c1000), 300, 200 }, +{ CLG_CSKEY(X86_INS_RCR, 0x2c1800), 300, 200 }, +{ CLG_CSKEY(X86_INS_RCR, 0x2c2000), 300, 200 }, +{ CLG_CSKEY(X86_INS_RCR, 0x440800), 400, 1000 }, +{ CLG_CSKEY(X86_INS_RCR, 0x441000), 400, 1000 }, +{ CLG_CSKEY(X86_INS_RCR, 0x441800), 400, 1000 }, +{ CLG_CSKEY(X86_INS_RCR, 0x442000), 400, 1000 }, +{ CLG_CSKEY(X86_INS_RCR, 0x4c0800), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCR, 0x4c1000), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCR, 0x4c1800), 400, 800 }, +{ CLG_CSKEY(X86_INS_RCR, 0x4c2000), 400, 800 }, +{ CLG_CSKEY(X86_INS_RDPID, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_RDPID, 0x202000), 200, 200 }, +{ CLG_CSKEY(X86_INS_RDRAND, 0x000000), 6400, 6500 }, +{ CLG_CSKEY(X86_INS_RDRAND, 0x201000), 6400, 2800 }, +{ CLG_CSKEY(X86_INS_RDRAND, 0x201800), 6400, 6500 }, +{ CLG_CSKEY(X86_INS_RDRAND, 0x202000), 6400, 6500 }, +{ CLG_CSKEY(X86_INS_RDSEED, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_RDSEED, 0x201000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_RDSEED, 0x201800), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_RDSEED, 0x202000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_RDTSC, 0x000000), 3500, 3500 }, +{ CLG_CSKEY(X86_INS_RDTSCP, 0x000000), 6400, 6500 }, +{ CLG_CSKEY(X86_INS_REP, 0x000000), 2855, 2855 }, +{ CLG_CSKEY(X86_INS_REP, 0x000200), 2855, 2855 }, +{ CLG_CSKEY(X86_INS_REPNE, 0x000000), 1900, 1900 }, +{ CLG_CSKEY(X86_INS_REPNE, 0x000200), 1900, 1900 }, +{ CLG_CSKEY(X86_INS_RET, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_RET, 0x600000), 100, 200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x000000), 90, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x240800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x241000), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x241800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x242000), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROL, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROL, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROL, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROL, 0x440800), 90, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x441000), 75, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x441800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x442000), 56, 3200 }, +{ CLG_CSKEY(X86_INS_ROL, 0x4c0800), 90, 90 }, +{ CLG_CSKEY(X86_INS_ROL, 0x4c1000), 75, 75 }, +{ CLG_CSKEY(X86_INS_ROL, 0x4c1800), 50, 50 }, +{ CLG_CSKEY(X86_INS_ROL, 0x4c2000), 50, 50 }, +{ CLG_CSKEY(X86_INS_ROR, 0x000000), 90, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x240800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x241000), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x241800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x242000), 50, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROR, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROR, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROR, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_ROR, 0x440800), 90, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x441000), 75, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x441800), 42, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x442000), 57, 3200 }, +{ CLG_CSKEY(X86_INS_ROR, 0x4c0800), 90, 90 }, +{ CLG_CSKEY(X86_INS_ROR, 0x4c1000), 75, 75 }, +{ CLG_CSKEY(X86_INS_ROR, 0x4c1800), 50, 50 }, +{ CLG_CSKEY(X86_INS_ROR, 0x4c2000), 50, 50 }, +{ CLG_CSKEY(X86_INS_RORX, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_RORX, 0x259800), 50, 100 }, +{ CLG_CSKEY(X86_INS_RORX, 0x25a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_RORX, 0x299800), 50, 50 }, +{ CLG_CSKEY(X86_INS_RORX, 0x29a000), 50, 50 }, +{ CLG_CSKEY(X86_INS_ROUNDPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDPD, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDPD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_ROUNDPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDPS, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDPS, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_ROUNDSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDSD, 0x25a000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDSD, 0x29a000), 50, 0 }, +{ CLG_CSKEY(X86_INS_ROUNDSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDSS, 0x259800), 50, 300 }, +{ CLG_CSKEY(X86_INS_ROUNDSS, 0x299800), 50, 0 }, +{ CLG_CSKEY(X86_INS_RSQRTPS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_RSQRTPS, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_RSQRTPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_RSQRTSS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_RSQRTSS, 0x241800), 50, 400 }, +{ CLG_CSKEY(X86_INS_RSQRTSS, 0x281800), 50, 400 }, +{ CLG_CSKEY(X86_INS_SAHF, 0x000000), 25, 100 }, +{ CLG_CSKEY(X86_INS_SAR, 0x000000), 90, 3200 }, +{ CLG_CSKEY(X86_INS_SAR, 0x240800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_SAR, 0x241000), 50, 1700 }, +{ CLG_CSKEY(X86_INS_SAR, 0x241800), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SAR, 0x242000), 50, 1700 }, +{ CLG_CSKEY(X86_INS_SAR, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SAR, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SAR, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SAR, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SAR, 0x440800), 90, 1700 }, +{ CLG_CSKEY(X86_INS_SAR, 0x441000), 75, 1600 }, +{ CLG_CSKEY(X86_INS_SAR, 0x441800), 52, 1600 }, +{ CLG_CSKEY(X86_INS_SAR, 0x442000), 52, 1700 }, +{ CLG_CSKEY(X86_INS_SAR, 0x4c0800), 90, 90 }, +{ CLG_CSKEY(X86_INS_SAR, 0x4c1000), 75, 75 }, +{ CLG_CSKEY(X86_INS_SAR, 0x4c1800), 50, 50 }, +{ CLG_CSKEY(X86_INS_SAR, 0x4c2000), 50, 50 }, +{ CLG_CSKEY(X86_INS_SARX, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SARX, 0x249800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SARX, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SARX, 0x289800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SARX, 0x28a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x000000), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x241000), 31, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x241800), 31, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x242000), 31, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x280800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x281000), 35, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_SBB, 0x440800), 90, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x440900), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x441000), 75, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x441100), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x441800), 52, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x441900), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x442000), 50, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x442100), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c0800), 90, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c0900), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c1000), 77, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c1100), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c1800), 57, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c1900), 633, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c2000), 52, 700 }, +{ CLG_CSKEY(X86_INS_SBB, 0x4c2100), 633, 700 }, +{ CLG_CSKEY(X86_INS_SCASB, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_SCASD, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_SCASQ, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_SCASW, 0x000000), 300, 300 }, +{ CLG_CSKEY(X86_INS_SETA, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETA, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETA, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETAE, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETAE, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETAE, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETB, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETB, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETB, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETBE, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETBE, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETBE, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETE, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETE, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETE, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETG, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETG, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETG, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETGE, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETGE, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETGE, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETL, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETL, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETL, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETLE, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETLE, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETLE, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNE, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNE, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETNE, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNO, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNO, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETNO, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNP, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNP, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETNP, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNS, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETNS, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETNS, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETO, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETO, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETO, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETP, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETP, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETP, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETS, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_SETS, 0x200800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SETS, 0x400800), 100, 700 }, +{ CLG_CSKEY(X86_INS_SFENCE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SHA1MSG1, 0x000000), 58, 200 }, +{ CLG_CSKEY(X86_INS_SHA1MSG1, 0x242800), 57, 200 }, +{ CLG_CSKEY(X86_INS_SHA1MSG1, 0x282800), 58, 200 }, +{ CLG_CSKEY(X86_INS_SHA1MSG2, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_SHA1MSG2, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_SHA1MSG2, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_SHA1NEXTE, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_SHA1NEXTE, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_SHA1NEXTE, 0x282800), 50, 200 }, +{ CLG_CSKEY(X86_INS_SHA1RNDS4, 0x000000), 200, 600 }, +{ CLG_CSKEY(X86_INS_SHA1RNDS4, 0x25a800), 200, 600 }, +{ CLG_CSKEY(X86_INS_SHA1RNDS4, 0x29a800), 200, 600 }, +{ CLG_CSKEY(X86_INS_SHA256MSG1, 0x000000), 60, 300 }, +{ CLG_CSKEY(X86_INS_SHA256MSG1, 0x242800), 60, 300 }, +{ CLG_CSKEY(X86_INS_SHA256MSG1, 0x282800), 60, 300 }, +{ CLG_CSKEY(X86_INS_SHA256MSG2, 0x000000), 300, 500 }, +{ CLG_CSKEY(X86_INS_SHA256MSG2, 0x242800), 200, 500 }, +{ CLG_CSKEY(X86_INS_SHA256MSG2, 0x282800), 300, 400 }, +{ CLG_CSKEY(X86_INS_SHA256RNDS2, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_SHA256RNDS2, 0x242800), 100, 400 }, +{ CLG_CSKEY(X86_INS_SHA256RNDS2, 0x282800), 100, 400 }, +{ CLG_CSKEY(X86_INS_SHL, 0x000000), 90, 3200 }, +{ CLG_CSKEY(X86_INS_SHL, 0x240800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_SHL, 0x241000), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x241800), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x242000), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHL, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHL, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHL, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHL, 0x440800), 90, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x441000), 75, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x441800), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x442000), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHL, 0x4c0800), 90, 90 }, +{ CLG_CSKEY(X86_INS_SHL, 0x4c1000), 75, 75 }, +{ CLG_CSKEY(X86_INS_SHL, 0x4c1800), 57, 57 }, +{ CLG_CSKEY(X86_INS_SHL, 0x4c2000), 56, 56 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x000000), 200, 1900 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x249000), 150, 1800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x249800), 150, 1800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x24a000), 150, 1800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x259000), 150, 200 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x259800), 150, 200 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x25a000), 150, 200 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x449000), 200, 1800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x449800), 200, 1800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x44a000), 200, 1900 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x459000), 200, 800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x459800), 200, 800 }, +{ CLG_CSKEY(X86_INS_SHLD, 0x45a000), 200, 800 }, +{ CLG_CSKEY(X86_INS_SHLX, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHLX, 0x249800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHLX, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHLX, 0x289800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHLX, 0x28a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHR, 0x000000), 90, 3200 }, +{ CLG_CSKEY(X86_INS_SHR, 0x240800), 50, 3200 }, +{ CLG_CSKEY(X86_INS_SHR, 0x241000), 50, 1700 }, +{ CLG_CSKEY(X86_INS_SHR, 0x241800), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHR, 0x242000), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHR, 0x2c0800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHR, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHR, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHR, 0x2c2000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHR, 0x440800), 90, 1700 }, +{ CLG_CSKEY(X86_INS_SHR, 0x441000), 75, 1600 }, +{ CLG_CSKEY(X86_INS_SHR, 0x441800), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHR, 0x442000), 50, 1600 }, +{ CLG_CSKEY(X86_INS_SHR, 0x4c0800), 90, 90 }, +{ CLG_CSKEY(X86_INS_SHR, 0x4c1000), 77, 77 }, +{ CLG_CSKEY(X86_INS_SHR, 0x4c1800), 56, 56 }, +{ CLG_CSKEY(X86_INS_SHR, 0x4c2000), 57, 57 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x000000), 200, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x249000), 150, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x249800), 150, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x24a000), 150, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x259000), 150, 200 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x259800), 150, 200 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x25a000), 150, 200 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x449000), 200, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x449800), 200, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x44a000), 200, 1800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x459000), 200, 800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x459800), 200, 800 }, +{ CLG_CSKEY(X86_INS_SHRD, 0x45a000), 200, 800 }, +{ CLG_CSKEY(X86_INS_SHRX, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHRX, 0x249800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHRX, 0x24a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHRX, 0x289800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHRX, 0x28a000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHUFPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHUFPD, 0x25a800), 40, 100 }, +{ CLG_CSKEY(X86_INS_SHUFPD, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHUFPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SHUFPS, 0x25a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_SHUFPS, 0x29a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SQRTPD, 0x000000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_SQRTPD, 0x242800), 840, 2100 }, +{ CLG_CSKEY(X86_INS_SQRTPD, 0x282800), 840, 840 }, +{ CLG_CSKEY(X86_INS_SQRTPS, 0x000000), 500, 1500 }, +{ CLG_CSKEY(X86_INS_SQRTPS, 0x242800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_SQRTPS, 0x282800), 500, 500 }, +{ CLG_CSKEY(X86_INS_SQRTSD, 0x000000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_SQRTSD, 0x242000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_SQRTSD, 0x282000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_SQRTSS, 0x000000), 500, 1500 }, +{ CLG_CSKEY(X86_INS_SQRTSS, 0x241800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_SQRTSS, 0x281800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_STC, 0x000000), 25, 25 }, +{ CLG_CSKEY(X86_INS_STD, 0x000000), 400, 400 }, +{ CLG_CSKEY(X86_INS_STMXCSR, 0x000000), 1509, 1509 }, +{ CLG_CSKEY(X86_INS_STMXCSR, 0x401800), 1509, 1509 }, +{ CLG_CSKEY(X86_INS_STOSB, 0x000000), 300, 0 }, +{ CLG_CSKEY(X86_INS_STOSD, 0x000000), 300, 0 }, +{ CLG_CSKEY(X86_INS_STOSQ, 0x000000), 300, 0 }, +{ CLG_CSKEY(X86_INS_STOSW, 0x000000), 300, 0 }, +{ CLG_CSKEY(X86_INS_SUB, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_SUB, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x280800), 33, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x440800), 83, 600 }, +{ CLG_CSKEY(X86_INS_SUB, 0x440900), 740, 600 }, +{ CLG_CSKEY(X86_INS_SUB, 0x441000), 73, 600 }, +{ CLG_CSKEY(X86_INS_SUB, 0x441100), 740, 600 }, +{ CLG_CSKEY(X86_INS_SUB, 0x441800), 60, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x441900), 740, 600 }, +{ CLG_CSKEY(X86_INS_SUB, 0x442000), 60, 100 }, +{ CLG_CSKEY(X86_INS_SUB, 0x442100), 740, 600 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c0800), 85, 85 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c0900), 740, 740 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c1000), 73, 73 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c1100), 740, 740 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c1800), 60, 60 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c1900), 740, 740 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c2000), 60, 60 }, +{ CLG_CSKEY(X86_INS_SUB, 0x4c2100), 740, 740 }, +{ CLG_CSKEY(X86_INS_SUBPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBPD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBPD, 0x282800), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBPS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBPS, 0x282800), 42, 300 }, +{ CLG_CSKEY(X86_INS_SUBSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBSD, 0x242000), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBSD, 0x282000), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBSS, 0x241800), 50, 300 }, +{ CLG_CSKEY(X86_INS_SUBSS, 0x281800), 50, 300 }, +{ CLG_CSKEY(X86_INS_TEST, 0x000000), 44, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x240800), 25, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x2c0000), 25, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x2c1000), 37, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x2c1800), 44, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x2c2000), 44, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x440800), 33, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x441000), 33, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x441800), 33, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x442000), 33, 100 }, +{ CLG_CSKEY(X86_INS_TEST, 0x4c0800), 33, 33 }, +{ CLG_CSKEY(X86_INS_TEST, 0x4c1000), 35, 35 }, +{ CLG_CSKEY(X86_INS_TEST, 0x4c1800), 44, 44 }, +{ CLG_CSKEY(X86_INS_TEST, 0x4c2000), 44, 44 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x000000), 42, 100 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x241000), 37, 100 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x241800), 30, 100 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x242000), 30, 100 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x281000), 42, 100 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x281800), 33, 0 }, +{ CLG_CSKEY(X86_INS_TZCNT, 0x282000), 33, 0 }, +{ CLG_CSKEY(X86_INS_UCOMISD, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_UCOMISD, 0x242000), 100, 700 }, +{ CLG_CSKEY(X86_INS_UCOMISD, 0x282000), 100, 700 }, +{ CLG_CSKEY(X86_INS_UCOMISS, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_UCOMISS, 0x241800), 100, 700 }, +{ CLG_CSKEY(X86_INS_UCOMISS, 0x281800), 100, 700 }, +{ CLG_CSKEY(X86_INS_UNPCKHPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKHPD, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKHPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKHPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKHPS, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKHPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKLPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKLPD, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKLPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKLPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKLPS, 0x242800), 40, 100 }, +{ CLG_CSKEY(X86_INS_UNPCKLPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x000000), 105, 300 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x24b000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x24b800), 105, 300 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDPD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x000000), 103, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x24b000), 54, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x24b800), 103, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDPS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VADDSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VADDSUBPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDEC, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESDECLAST, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENC, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESENCLAST, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VAESIMC, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESIMC, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESIMC, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VAESKEYGENASSIST, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESKEYGENASSIST, 0x25a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VAESKEYGENASSIST, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x000000), 102, 500 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x24b000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x24b800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VALIGND, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x24b800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VALIGNQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDNPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDNPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VANDPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDMPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPD, 0x252800), 43, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPS, 0x24a800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPS, 0x24b000), 37, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPS, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPS, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBLENDVPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF128, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF128, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x243000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x243800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X2, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X4, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X4, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X4, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X8, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X8, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF32X8, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X2, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X2, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X2, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTF64X4, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI128, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI128, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x243000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x243800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X2, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X4, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X4, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X4, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X8, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X8, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI32X8, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X2, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X2, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X2, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTI64X4, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x243000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x243800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x242800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x243000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x243800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VBROADCASTSS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VCMPPD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VCMPPS, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VCMPSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPSD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCMPSS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCOMISD, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISD, 0x242000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISD, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISD, 0x282000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISD, 0x282800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISS, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISS, 0x241800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISS, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISS, 0x281800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMISS, 0x282800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x000000), 5400, 3600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x243800), 133, 500 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x24b800), 175, 900 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x442800), 4200, 3300 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x443000), 4600, 3600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x443800), 5400, 3600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x44a800), 4200, 3300 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x44b000), 4600, 3600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPD, 0x44b800), 5400, 3600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x000000), 6400, 4000 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x243800), 133, 500 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x442800), 4600, 3400 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x443000), 5400, 3800 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x443800), 6400, 3900 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x44a800), 4600, 3400 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x44b000), 5400, 3800 }, +{ CLG_CSKEY(X86_INS_VCOMPRESSPS, 0x44b800), 6400, 4000 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x000000), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x24b000), 70, 400 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x253800), 133, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PD, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTDQ2PS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x000000), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x243000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x24b800), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x252800), 85, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x253000), 135, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x253800), 136, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x283000), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPD2DQ, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x000000), 173, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x243000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x24b800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x252800), 96, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x253000), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x253800), 173, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x282800), 85, 85 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x283000), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPD2PS, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x253000), 52, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPD2QQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x000000), 171, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x243000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x24b800), 171, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x252800), 85, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x253000), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x253800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x282800), 85, 85 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x283000), 137, 137 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UDQ, 0x283800), 140, 140 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x253000), 54, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPD2UQQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x000000), 135, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x24b000), 70, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x24b800), 135, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x253800), 135, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPH2PS, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x253000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2DQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x000000), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x24b000), 70, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x253800), 133, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PD, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x000000), 200, 2700 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x24b800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x25b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x25b800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x44a800), 100, 2300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x44b000), 150, 2600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x44b800), 150, 2700 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x45a800), 100, 1100 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x45b000), 200, 1400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2PH, 0x45b800), 150, 1600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x000000), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x24b000), 71, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x253800), 133, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2QQ, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UDQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x000000), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x24b000), 70, 400 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x253800), 133, 300 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTPS2UQQ, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x000000), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x243000), 85, 600 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x24b800), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x252800), 97, 600 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x253000), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x253800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x282800), 85, 85 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x283000), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTQQ2PS, 0x283800), 136, 136 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SI, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTSD2SS, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VCVTSD2USI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSD2USI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSD2USI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTSI2SD, 0x000000), 107, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSI2SD, 0x24a800), 107, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSI2SD, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VCVTSI2SS, 0x000000), 108, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSI2SS, 0x24a800), 108, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSI2SS, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SD, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SI, 0x241800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SI, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SI, 0x281800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTSS2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTSS2USI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSS2USI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTSS2USI, 0x281800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTSS2USI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x000000), 140, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x243000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x24b000), 94, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x24b800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x252800), 85, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x253000), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x253800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x283000), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2DQ, 0x283800), 140, 140 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x000000), 102, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x253000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x253800), 102, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2QQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x000000), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x243000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x24b800), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x252800), 85, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x253000), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x253800), 136, 700 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x282800), 85, 85 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x283000), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UDQ, 0x283800), 136, 136 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPD2UQQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2DQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x000000), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x24b000), 71, 400 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x253800), 133, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2QQ, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x000000), 107, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x253800), 107, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UDQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x000000), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x24b000), 73, 400 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x253800), 133, 300 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTTPS2UQQ, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2SI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2SI, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2SI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2USI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2USI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSD2USI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2SI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2SI, 0x241800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2SI, 0x242000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2SI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2SI, 0x281800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2SI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2USI, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2USI, 0x242800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2USI, 0x281800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTTSS2USI, 0x282000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x000000), 137, 600 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x243000), 67, 400 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x24b000), 71, 400 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x253800), 137, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PD, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTUDQ2PS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x253000), 52, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x000000), 140, 700 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x243000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x243800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x24b000), 84, 600 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x24b800), 133, 700 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x252800), 85, 600 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x253000), 138, 700 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x253800), 140, 700 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x282800), 85, 85 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x283000), 133, 133 }, +{ CLG_CSKEY(X86_INS_VCVTUQQ2PS, 0x283800), 140, 140 }, +{ CLG_CSKEY(X86_INS_VCVTUSI2SD, 0x000000), 107, 800 }, +{ CLG_CSKEY(X86_INS_VCVTUSI2SD, 0x24a800), 107, 800 }, +{ CLG_CSKEY(X86_INS_VCVTUSI2SD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VCVTUSI2SS, 0x000000), 107, 800 }, +{ CLG_CSKEY(X86_INS_VCVTUSI2SS, 0x24a800), 107, 800 }, +{ CLG_CSKEY(X86_INS_VCVTUSI2SS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x000000), 105, 400 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x24b000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x24b800), 105, 400 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VDBPSADBW, 0x253800), 98, 300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x000000), 900, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x24a800), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x24b000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x24b800), 900, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x252800), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x253000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPD, 0x253800), 900, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x000000), 600, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x24a800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x24b000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x24b800), 600, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x252800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x253000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVPS, 0x253800), 600, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVSD, 0x000000), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVSD, 0x24a800), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVSD, 0x252800), 500, 1300 }, +{ CLG_CSKEY(X86_INS_VDIVSS, 0x000000), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVSS, 0x24a800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDIVSS, 0x252800), 300, 1100 }, +{ CLG_CSKEY(X86_INS_VDPPD, 0x000000), 400, 700 }, +{ CLG_CSKEY(X86_INS_VDPPD, 0x24a800), 300, 700 }, +{ CLG_CSKEY(X86_INS_VDPPD, 0x252800), 400, 700 }, +{ CLG_CSKEY(X86_INS_VDPPS, 0x000000), 500, 1100 }, +{ CLG_CSKEY(X86_INS_VDPPS, 0x24a800), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VDPPS, 0x24b000), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VDPPS, 0x252800), 500, 1100 }, +{ CLG_CSKEY(X86_INS_VDPPS, 0x253000), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x000000), 180, 900 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x243800), 136, 500 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x24b800), 178, 900 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x252800), 75, 600 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x253000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x253800), 155, 900 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x282800), 78, 78 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x283000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VEXPANDPD, 0x283800), 180, 180 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x000000), 175, 900 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x243800), 162, 500 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x24b800), 175, 900 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x252800), 78, 600 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x253000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x253800), 80, 900 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x282800), 35, 35 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x283000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VEXPANDPS, 0x283800), 80, 80 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF128, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF128, 0x25a800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF128, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x24b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x25b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x25b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x44b000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x45b000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X4, 0x45b800), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X8, 0x000000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X8, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X8, 0x25b800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X8, 0x44b800), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF32X8, 0x45b800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x24b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x25b000), 40, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x25b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x44b000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x45b000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X2, 0x45b800), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X4, 0x000000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X4, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X4, 0x25b800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X4, 0x44b800), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTF64X4, 0x45b800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI128, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI128, 0x25b000), 37, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI128, 0x45b000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x24b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x25b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x25b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x44b000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x45b000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X4, 0x45b800), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X8, 0x000000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X8, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X8, 0x25b800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X8, 0x44b800), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI32X8, 0x45b800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x24b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x25b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x25b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x44b000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x45b000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X2, 0x45b800), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X4, 0x000000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X4, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X4, 0x25b800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X4, 0x44b800), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VEXTRACTI64X4, 0x45b800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VEXTRACTPS, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VEXTRACTPS, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VEXTRACTPS, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x253000), 54, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x24b000), 54, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMPS, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMSD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMSD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMSD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMSS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMSS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFIXUPIMMSS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x253000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x000000), 105, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x24b000), 57, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132PS, 0x253800), 105, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD132SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD213SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x253000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231PS, 0x253800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADD231SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x253000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB132PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x24b000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x253000), 57, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB213PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x24a800), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x253000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x24b000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x253000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMADDSUB231PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x253000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB132SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB213SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x253000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUB231SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x000000), 104, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x24b000), 57, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x24b800), 104, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x24b800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD132PS, 0x253800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x253000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD213PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x253000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PD, 0x253800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x24a800), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x253000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VFMSUBADD231PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x24b800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x24b000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD132SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x24b000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD213SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x253000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x24a800), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231SD, 0x000000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231SD, 0x24a800), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMADD231SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x253000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB132SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x253000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PD, 0x253800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213SD, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213SD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213SS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213SS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB213SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x24b000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x252800), 53, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x000000), 104, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x24b800), 104, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231PS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231SD, 0x000000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231SD, 0x24a800), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231SD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231SS, 0x000000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231SS, 0x24a800), 52, 400 }, +{ CLG_CSKEY(X86_INS_VFNMSUB231SS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x252000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x25b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x25b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x29a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x252000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x25b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x25b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x29a000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VFPCLASSPS, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSD, 0x252000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSD, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSD, 0x29a000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSS, 0x252000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSS, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VFPCLASSSS, 0x29a000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGATHERDPD, 0x000000), 800, 1900 }, +{ CLG_CSKEY(X86_INS_VGATHERDPD, 0x252800), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VGATHERDPD, 0x253000), 400, 1300 }, +{ CLG_CSKEY(X86_INS_VGATHERDPD, 0x253800), 800, 1900 }, +{ CLG_CSKEY(X86_INS_VGATHERDPD, 0x28a800), 300, 1300 }, +{ CLG_CSKEY(X86_INS_VGATHERDPD, 0x28b000), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VGATHERDPS, 0x000000), 1659, 2300 }, +{ CLG_CSKEY(X86_INS_VGATHERDPS, 0x252800), 460, 1200 }, +{ CLG_CSKEY(X86_INS_VGATHERDPS, 0x253000), 870, 1700 }, +{ CLG_CSKEY(X86_INS_VGATHERDPS, 0x253800), 1659, 2300 }, +{ CLG_CSKEY(X86_INS_VGATHERDPS, 0x28a800), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VGATHERDPS, 0x28b000), 800, 1900 }, +{ CLG_CSKEY(X86_INS_VGATHERQPD, 0x000000), 900, 2000 }, +{ CLG_CSKEY(X86_INS_VGATHERQPD, 0x252800), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VGATHERQPD, 0x253000), 400, 1300 }, +{ CLG_CSKEY(X86_INS_VGATHERQPD, 0x253800), 900, 2000 }, +{ CLG_CSKEY(X86_INS_VGATHERQPD, 0x28a800), 300, 1300 }, +{ CLG_CSKEY(X86_INS_VGATHERQPD, 0x28b000), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VGATHERQPS, 0x000000), 850, 1800 }, +{ CLG_CSKEY(X86_INS_VGATHERQPS, 0x252800), 400, 1300 }, +{ CLG_CSKEY(X86_INS_VGATHERQPS, 0x253000), 850, 1800 }, +{ CLG_CSKEY(X86_INS_VGATHERQPS, 0x28a000), 300, 1400 }, +{ CLG_CSKEY(X86_INS_VGATHERQPS, 0x28a800), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETEXPPD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x243000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x243800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETEXPPS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGETEXPSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPSD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETEXPSS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x000000), 105, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x253800), 105, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x25b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x25b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETMANTPD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x000000), 103, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x253800), 103, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x25b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x25b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VGETMANTPS, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGETMANTSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTSD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGETMANTSS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x000000), 102, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x24b000), 56, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x24b800), 102, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEINVQB, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8AFFINEQB, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VGF2P8MULB, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VHADDPD, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPD, 0x24a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPD, 0x24b000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPD, 0x252800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPD, 0x253000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPS, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPS, 0x24a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPS, 0x24b000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPS, 0x252800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHADDPS, 0x253000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPD, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPD, 0x24a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPD, 0x24b000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPD, 0x252800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPD, 0x253000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPS, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPS, 0x24a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPS, 0x24b000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPS, 0x252800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VHSUBPS, 0x253000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VINSERTF128, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF128, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF128, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X4, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X4, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X4, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X8, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X8, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF32X8, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X2, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X2, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X2, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X4, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTF64X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI128, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI128, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI128, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X4, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X4, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X4, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X8, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X8, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI32X8, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X2, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X2, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X2, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X4, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X4, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTI64X4, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTPS, 0x24a800), 42, 100 }, +{ CLG_CSKEY(X86_INS_VINSERTPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VLDDQU, 0x000000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VLDDQU, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VLDDQU, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VLDMXCSR, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VLDMXCSR, 0x401800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VMASKMOVDQU, 0x000000), 1800, 1800 }, +{ CLG_CSKEY(X86_INS_VMASKMOVDQU, 0x242800), 1800, 1800 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPD, 0x000000), 600, 100 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPD, 0x44a800), 400, 0 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPD, 0x44b000), 600, 0 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPS, 0x000000), 1200, 100 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPS, 0x44a800), 600, 0 }, +{ CLG_CSKEY(X86_INS_VMASKMOVPS, 0x44b000), 1200, 0 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXPS, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMAXSD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXSD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXSD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXSS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXSS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMAXSS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x24b000), 54, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINPS, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMINSD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINSD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINSD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINSS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINSS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMINSS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x243000), 37, 0 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x243800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPD, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x243000), 35, 0 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x243800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x24b800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVAPS, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVD, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVD, 0x241800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VMOVD, 0x242800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VMOVD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVD, 0x441800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVD, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDDUP, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x243000), 25, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQA, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x243800), 37, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x24a800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x282800), 42, 42 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA32, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x243800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQA64, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x242800), 25, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x243000), 25, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQU, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x243800), 33, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU16, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x243800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU32, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x243800), 35, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU64, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x243800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVDQU8, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVHLPS, 0x000000), 35, 100 }, +{ CLG_CSKEY(X86_INS_VMOVHLPS, 0x24a800), 35, 100 }, +{ CLG_CSKEY(X86_INS_VMOVHPD, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVHPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVHPD, 0x442800), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVHPS, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVHPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVHPS, 0x442800), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVLHPS, 0x000000), 33, 100 }, +{ CLG_CSKEY(X86_INS_VMOVLHPS, 0x24a800), 33, 100 }, +{ CLG_CSKEY(X86_INS_VMOVLPD, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVLPD, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VMOVLPD, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVLPS, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVLPS, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VMOVLPS, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVMSKPD, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VMOVMSKPD, 0x242800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VMOVMSKPD, 0x243000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VMOVMSKPS, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VMOVMSKPS, 0x242800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VMOVMSKPS, 0x243000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQ, 0x000000), 2654, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQ, 0x442800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQ, 0x443000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQ, 0x443800), 2654, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQA, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQA, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQA, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVNTDQA, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVNTPD, 0x000000), 2672, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPD, 0x442800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPD, 0x443000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPD, 0x443800), 2672, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPS, 0x000000), 2673, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPS, 0x442800), 100, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPS, 0x443000), 100, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVNTPS, 0x443800), 2673, 10000 }, +{ CLG_CSKEY(X86_INS_VMOVQ, 0x000000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVQ, 0x242000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VMOVQ, 0x242800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VMOVQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVQ, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVQ, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x000000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x24a800), 38, 200 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x442000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVSD, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x242800), 35, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x243000), 35, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x243800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x24a800), 40, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x24b000), 36, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x24b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x253000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVSHDUP, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x242800), 35, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x243000), 33, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x243800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x24a800), 40, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x24b000), 40, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x24b800), 70, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVSLDUP, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x000000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x24a800), 38, 200 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x441800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVSS, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x243800), 35, 0 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x24b800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPD, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x000000), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x242800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x243000), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x243800), 38, 0 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x24a800), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x24b000), 38, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x24b800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x442800), 100, 800 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x443000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x443800), 200, 900 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x44a800), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x44b000), 100, 2000 }, +{ CLG_CSKEY(X86_INS_VMOVUPS, 0x44b800), 200, 2000 }, +{ CLG_CSKEY(X86_INS_VMPSADBW, 0x000000), 300, 500 }, +{ CLG_CSKEY(X86_INS_VMPSADBW, 0x24a800), 200, 500 }, +{ CLG_CSKEY(X86_INS_VMPSADBW, 0x24b000), 200, 500 }, +{ CLG_CSKEY(X86_INS_VMPSADBW, 0x252800), 300, 500 }, +{ CLG_CSKEY(X86_INS_VMPSADBW, 0x253000), 200, 500 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x24b000), 52, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULPS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VMULSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULSD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VMULSS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VORPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VORPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSB, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x253000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPABSW, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x000000), 103, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x24b000), 54, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x24b800), 103, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSDW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKSSWB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSDW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x24b000), 53, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPACKUSWB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDSW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDUSW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPADDW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x24b000), 53, 200 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPALIGNR, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPAND, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPAND, 0x24a800), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPAND, 0x24b000), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPAND, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPAND, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPANDN, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDN, 0x24a800), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPANDN, 0x24b000), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPANDN, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDN, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDND, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDNQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPANDQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPAVGB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x000000), 102, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x24b800), 102, 300 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPAVGW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPBLENDD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDD, 0x24a800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDD, 0x24b000), 33, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDMW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDVB, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDVB, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDVB, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDVB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDVB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDW, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDW, 0x24a800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDW, 0x24b000), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBLENDW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x000000), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x243000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x243800), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x24b800), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTB, 0x283800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x000000), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x243000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x243800), 105, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x24b800), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTD, 0x283800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMB2Q, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMB2Q, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMB2Q, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMB2Q, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMW2D, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMW2D, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMW2D, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTMW2D, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x000000), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x243000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x243800), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x24b800), 105, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTQ, 0x283800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x000000), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x243000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x243800), 106, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x24b800), 105, 600 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPBROADCASTW, 0x283800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x000000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x24a800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x24b000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x24b800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x252800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x253000), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCLMULQDQ, 0x253800), 200, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x253000), 48, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPB, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQB, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPEQW, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPESTRI, 0x000000), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VPCMPESTRI, 0x25a800), 300, 1500 }, +{ CLG_CSKEY(X86_INS_VPCMPESTRI, 0x29a800), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VPCMPESTRM, 0x000000), 400, 1600 }, +{ CLG_CSKEY(X86_INS_VPCMPESTRM, 0x25a800), 300, 1600 }, +{ CLG_CSKEY(X86_INS_VPCMPESTRM, 0x29a800), 400, 1600 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTB, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPGTW, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPISTRI, 0x000000), 300, 1000 }, +{ CLG_CSKEY(X86_INS_VPCMPISTRI, 0x25a800), 200, 1000 }, +{ CLG_CSKEY(X86_INS_VPCMPISTRI, 0x29a800), 300, 1000 }, +{ CLG_CSKEY(X86_INS_VPCMPISTRM, 0x000000), 200, 1000 }, +{ CLG_CSKEY(X86_INS_VPCMPISTRM, 0x25a800), 200, 1000 }, +{ CLG_CSKEY(X86_INS_VPCMPISTRM, 0x29a800), 200, 1000 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUB, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPUW, 0x253800), 95, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPCMPW, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x243800), 133, 500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x442800), 6400, 4900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x443000), 6400, 5900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x443800), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x44a800), 6400, 4800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x44b000), 6400, 5900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSB, 0x44b800), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x000000), 6400, 4000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x243800), 136, 500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x442800), 4600, 3500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x443000), 5400, 3800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x443800), 6400, 4000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x44a800), 4600, 3500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x44b000), 5400, 3800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSD, 0x44b800), 6400, 4000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x000000), 5400, 3600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x243800), 136, 500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x442800), 4200, 3300 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x443000), 4600, 3500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x443800), 5400, 3600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x44a800), 4200, 3200 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x44b000), 4600, 3500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSQ, 0x44b800), 5400, 3600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x000000), 6400, 5000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x243800), 133, 500 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x24b800), 154, 900 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x442800), 5400, 3800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x443000), 6400, 4100 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x443800), 6400, 5000 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x44a800), 5400, 3800 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x44b000), 6400, 4100 }, +{ CLG_CSKEY(X86_INS_VPCOMPRESSW, 0x44b800), 6400, 4900 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x000000), 200, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x243000), 65, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x24b000), 75, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x24b800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x253000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x253800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x283000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTD, 0x283800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x000000), 200, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x243000), 65, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x243800), 133, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x24b000), 75, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x24b800), 136, 600 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x253000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x253800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x283000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPCONFLICTQ, 0x283800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPBUSDS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x24b000), 57, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSD, 0x253800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPDPWSSDS, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPERM2F128, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERM2F128, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERM2F128, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERM2I128, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERM2I128, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERM2I128, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMB, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMD, 0x000000), 105, 500 }, +{ CLG_CSKEY(X86_INS_VPERMD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMD, 0x24b800), 105, 500 }, +{ CLG_CSKEY(X86_INS_VPERMD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x000000), 107, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x24b800), 107, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2B, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x000000), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x24b800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2D, 0x253800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x000000), 104, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2PD, 0x253800), 104, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x000000), 111, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x24b800), 111, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2PS, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x000000), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x24b800), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x253000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2Q, 0x253800), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x000000), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x24b800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x253000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VPERMI2W, 0x253800), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x25a800), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x25b000), 43, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x25b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPERMILPD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x25a800), 42, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x25b000), 40, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x25b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPERMILPS, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x24b000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x25b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x25b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPERMPD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPERMPS, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMPS, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMPS, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMPS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMPS, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x000000), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x24b000), 54, 400 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x24b800), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x25b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x25b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPERMQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x000000), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x24b800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x253000), 46, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2B, 0x253800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x000000), 110, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2D, 0x253800), 110, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x000000), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x24b800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x253000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2PD, 0x253800), 102, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x000000), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x24b800), 103, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2PS, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x000000), 106, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x24b800), 106, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2Q, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x000000), 111, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x24a800), 52, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x24b000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x24b800), 111, 500 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x253000), 56, 400 }, +{ CLG_CSKEY(X86_INS_VPERMT2W, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPERMW, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x000000), 175, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x243800), 175, 500 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x252800), 70, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x253000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x253800), 137, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x282800), 70, 70 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x283000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPEXPANDB, 0x283800), 140, 140 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x000000), 137, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x243800), 133, 500 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x252800), 75, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x253000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x253800), 137, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x282800), 75, 75 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x283000), 98, 98 }, +{ CLG_CSKEY(X86_INS_VPEXPANDD, 0x283800), 136, 136 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x000000), 160, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x243800), 133, 500 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x252800), 78, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x253000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x253800), 160, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x282800), 75, 75 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x283000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPEXPANDQ, 0x283800), 133, 133 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x000000), 175, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x242800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x243000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x243800), 175, 500 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x24b000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x24b800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x252800), 75, 600 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x253000), 100, 800 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x253800), 133, 900 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x282800), 75, 75 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x283000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPEXPANDW, 0x283800), 80, 80 }, +{ CLG_CSKEY(X86_INS_VPEXTRB, 0x000000), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPEXTRB, 0x25a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPEXTRB, 0x45a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPEXTRD, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPEXTRD, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXTRD, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPEXTRQ, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPEXTRQ, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXTRQ, 0x45a800), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPEXTRW, 0x000000), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VPEXTRW, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPEXTRW, 0x45a800), 100, 2100 }, +{ CLG_CSKEY(X86_INS_VPGATHERDD, 0x000000), 1648, 2400 }, +{ CLG_CSKEY(X86_INS_VPGATHERDD, 0x252800), 467, 1300 }, +{ CLG_CSKEY(X86_INS_VPGATHERDD, 0x253000), 869, 1700 }, +{ CLG_CSKEY(X86_INS_VPGATHERDD, 0x253800), 1648, 2400 }, +{ CLG_CSKEY(X86_INS_VPGATHERDD, 0x28a800), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VPGATHERDD, 0x28b000), 800, 1900 }, +{ CLG_CSKEY(X86_INS_VPGATHERDQ, 0x000000), 875, 1900 }, +{ CLG_CSKEY(X86_INS_VPGATHERDQ, 0x252800), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VPGATHERDQ, 0x253000), 400, 1300 }, +{ CLG_CSKEY(X86_INS_VPGATHERDQ, 0x253800), 875, 1900 }, +{ CLG_CSKEY(X86_INS_VPGATHERDQ, 0x28a800), 300, 1300 }, +{ CLG_CSKEY(X86_INS_VPGATHERDQ, 0x28b000), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VPGATHERQD, 0x000000), 850, 1800 }, +{ CLG_CSKEY(X86_INS_VPGATHERQD, 0x252800), 400, 1300 }, +{ CLG_CSKEY(X86_INS_VPGATHERQD, 0x253000), 850, 1800 }, +{ CLG_CSKEY(X86_INS_VPGATHERQD, 0x28a000), 300, 1400 }, +{ CLG_CSKEY(X86_INS_VPGATHERQD, 0x28a800), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VPGATHERQQ, 0x000000), 895, 2000 }, +{ CLG_CSKEY(X86_INS_VPGATHERQQ, 0x252800), 400, 1100 }, +{ CLG_CSKEY(X86_INS_VPGATHERQQ, 0x253000), 400, 1300 }, +{ CLG_CSKEY(X86_INS_VPGATHERQQ, 0x253800), 895, 2000 }, +{ CLG_CSKEY(X86_INS_VPGATHERQQ, 0x28a800), 300, 1300 }, +{ CLG_CSKEY(X86_INS_VPGATHERQQ, 0x28b000), 400, 1500 }, +{ CLG_CSKEY(X86_INS_VPHADDD, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDD, 0x24a800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDD, 0x24b000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDD, 0x252800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDD, 0x253000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDSW, 0x000000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHADDSW, 0x24a800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHADDSW, 0x24b000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHADDSW, 0x252800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHADDSW, 0x253000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHADDW, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDW, 0x24a800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDW, 0x24b000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDW, 0x252800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHADDW, 0x253000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHMINPOSUW, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPHMINPOSUW, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPHMINPOSUW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPHSUBD, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBD, 0x24a800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBD, 0x24b000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBD, 0x252800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBD, 0x253000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBSW, 0x000000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHSUBSW, 0x24a800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHSUBSW, 0x24b000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHSUBSW, 0x252800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHSUBSW, 0x253000), 200, 300 }, +{ CLG_CSKEY(X86_INS_VPHSUBW, 0x000000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBW, 0x24a800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBW, 0x24b000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBW, 0x252800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPHSUBW, 0x253000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VPINSRB, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPINSRB, 0x24a800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPINSRB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPINSRD, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPINSRD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPINSRD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPINSRQ, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPINSRQ, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPINSRQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPINSRW, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPINSRW, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VPINSRW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPLZCNTD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPLZCNTQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x24a800), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x24b000), 55, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52HUQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x000000), 103, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x24b000), 53, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x24b800), 103, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x253000), 52, 400 }, +{ CLG_CSKEY(X86_INS_VPMADD52LUQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDUBSW, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x24b000), 52, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMADDWD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVD, 0x000000), 1200, 100 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVD, 0x44a800), 600, 0 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVD, 0x44b000), 1200, 0 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVQ, 0x000000), 600, 100 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVQ, 0x44a800), 400, 0 }, +{ CLG_CSKEY(X86_INS_VPMASKMOVQ, 0x44b000), 600, 0 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXSW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMAXUW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINSW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMINUW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVB2M, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVB2M, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMOVB2M, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVB2M, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVD2M, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVD2M, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMOVD2M, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVD2M, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVDB, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVDW, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVM2B, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2B, 0x242800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2B, 0x243000), 35, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2B, 0x243800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2D, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2D, 0x242800), 35, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2D, 0x243000), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2D, 0x243800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2Q, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2Q, 0x242800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2Q, 0x243000), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2Q, 0x243800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2W, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2W, 0x242800), 37, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2W, 0x243000), 35, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVM2W, 0x243800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVMSKB, 0x000000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPMOVMSKB, 0x242800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVMSKB, 0x243000), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPMOVQ2M, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVQ2M, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMOVQ2M, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQ2M, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x442800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVQB, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVQD, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVQW, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDB, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSDW, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x442800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQB, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQD, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSQW, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSWB, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXBW, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXDQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVSXWQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDB, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSDW, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x442800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQB, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQD, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x000000), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSQW, 0x44b800), 100, 2500 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVUSWB, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVW2M, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVW2M, 0x242800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMOVW2M, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVW2M, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x000000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x442800), 100, 1000 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x443000), 100, 1200 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x443800), 100, 1300 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x44a800), 100, 2200 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x44b000), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVWB, 0x44b800), 100, 2400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXBW, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXDQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x243800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPMOVZXWQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x24b000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULDQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x000000), 103, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x24b000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x24b800), 103, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHRSW, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHUW, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x000000), 106, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x24b800), 106, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULHW, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x000000), 106, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x24b000), 52, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x24b800), 106, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x000000), 102, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x24b000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x24b800), 102, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x24b000), 54, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULLW, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x24a800), 53, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x24b000), 54, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULTISHIFTQB, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPMULUDQ, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTB, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x253000), 54, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTQ, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x242800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x243000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x243800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x253000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPOPCNTW, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPOR, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPOR, 0x24a800), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPOR, 0x24b000), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPOR, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPOR, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPORD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPORQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x000000), 103, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x253800), 103, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x25b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x25b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPROLD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x000000), 104, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x253800), 104, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x25b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x25b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPROLQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x24b000), 53, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPROLVQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x25b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x25b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPRORD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x25b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x25b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPRORQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x24b000), 54, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPRORVQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPSADBW, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDD, 0x000000), 2240, 6800 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDD, 0x44a800), 702, 6800 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDD, 0x44b000), 1300, 1100 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDD, 0x44b800), 2240, 4700 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDQ, 0x000000), 1038, 6800 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDQ, 0x44a800), 400, 5500 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDQ, 0x44b000), 767, 6800 }, +{ CLG_CSKEY(X86_INS_VPSCATTERDQ, 0x44b800), 1038, 1200 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQD, 0x000000), 1186, 6800 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQD, 0x44a800), 655, 6800 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQD, 0x44b000), 1186, 1100 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQQ, 0x000000), 1208, 6700 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQQ, 0x44a800), 400, 5500 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQQ, 0x44b000), 642, 6700 }, +{ CLG_CSKEY(X86_INS_VPSCATTERQQ, 0x44b800), 1208, 1200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVD, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDVW, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHLDW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDQ, 0x253800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDVW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHRDW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPSHUFBITQMB, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x24a800), 43, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x24b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x24b800), 80, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x253000), 56, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x25a800), 42, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x25b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x25b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSHUFD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x24a800), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x24b000), 43, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x24b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x25a800), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x25b000), 40, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x25b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSHUFHW, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x24a800), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x24b000), 43, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x24b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x25a800), 43, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x25b000), 44, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x25b800), 67, 100 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSHUFLW, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSIGNB, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGND, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGND, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGND, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGND, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGND, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNW, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSIGNW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x25b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x25b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLDQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLVW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSLLW, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x253000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRAD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRAQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAVW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRAW, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x25a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x25b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x25b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLDQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x253000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLQ, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x24a800), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x24b000), 53, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLVW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x25a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x25b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x25b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VPSRLW, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBB, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBSW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x24b000), 52, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSB, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBUSW, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPSUBW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPTERNLOGQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPTEST, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPTEST, 0x242800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPTEST, 0x243000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPTEST, 0x282800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VPTEST, 0x283000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMB, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTMW, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x000000), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x24b800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMB, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMQ, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x24b000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x253000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VPTESTNMW, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x000000), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x24b800), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHBW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x000000), 103, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x24b800), 103, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHDQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x000000), 105, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x24b800), 105, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHQDQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKHWD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x000000), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x24b800), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLBW, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x000000), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x24b800), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLDQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLQDQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x000000), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x24b800), 102, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPUNPCKLWD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPXOR, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXOR, 0x24a800), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPXOR, 0x24b000), 25, 100 }, +{ CLG_CSKEY(X86_INS_VPXOR, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXOR, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXORD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VPXORQ, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPD, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x000000), 102, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x24b000), 56, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x24b800), 102, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x253000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGEPS, 0x253800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VRANGESD, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGESD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGESD, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGESS, 0x000000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGESS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRANGESS, 0x252800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x242800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x243000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x24a800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x24b000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x252800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x253000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x253800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRCP14PD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x000000), 106, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x242800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x243000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x24a800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x24b000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x252800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x253000), 53, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x253800), 106, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRCP14PS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRCP14SD, 0x000000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14SD, 0x24a800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14SD, 0x252800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14SS, 0x000000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14SS, 0x24a800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCP14SS, 0x252800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRCPPS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRCPPS, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRCPPS, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRCPPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRCPPS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRCPSS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRCPSS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRCPSS, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x000000), 250, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x24b800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x252800), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x253000), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x253800), 250, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x25b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x25b800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x29a800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x29b000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VREDUCEPD, 0x29b800), 250, 250 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x000000), 250, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x24b800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x252800), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x253000), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x253800), 250, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x25a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x25b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x25b800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x29a800), 200, 200 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x29b000), 200, 200 }, +{ CLG_CSKEY(X86_INS_VREDUCEPS, 0x29b800), 250, 250 }, +{ CLG_CSKEY(X86_INS_VREDUCESD, 0x000000), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCESD, 0x24a800), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCESD, 0x252800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VREDUCESS, 0x000000), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCESS, 0x24a800), 200, 700 }, +{ CLG_CSKEY(X86_INS_VREDUCESS, 0x252800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x000000), 102, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x253800), 102, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x25b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x25b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPD, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x25b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x25b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRNDSCALEPS, 0x29b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRNDSCALESD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALESD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALESD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALESS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALESS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VRNDSCALESS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPD, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPD, 0x25b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPD, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VROUNDPD, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VROUNDPS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPS, 0x25a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPS, 0x25b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDPS, 0x29a800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VROUNDPS, 0x29b000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VROUNDSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDSD, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VROUNDSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VROUNDSS, 0x252800), 50, 0 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x242800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x243000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x24a800), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x24b000), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x252800), 62, 62 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x253000), 62, 62 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PD, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x000000), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x242800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x243000), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x243800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x24a800), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x24b000), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x24b800), 100, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x252800), 62, 62 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x253000), 62, 62 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRSQRT14PS, 0x283800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT14SD, 0x000000), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14SD, 0x24a800), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14SD, 0x252800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14SS, 0x000000), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14SS, 0x24a800), 62, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRT14SS, 0x252800), 50, 500 }, +{ CLG_CSKEY(X86_INS_VRSQRTPS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRSQRTPS, 0x242800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRSQRTPS, 0x243000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRSQRTPS, 0x282800), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRSQRTPS, 0x283000), 50, 50 }, +{ CLG_CSKEY(X86_INS_VRSQRTSS, 0x000000), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRSQRTSS, 0x24a800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VRSQRTSS, 0x252800), 50, 400 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x000000), 200, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x24b800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x252800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x253000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFPD, 0x253800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x000000), 200, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x24b000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x24b800), 200, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x252800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x253000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFPS, 0x253800), 200, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFSD, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFSD, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFSD, 0x252800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSCALEFSS, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFSS, 0x24a800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VSCALEFSS, 0x252800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPD, 0x000000), 1100, 6900 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPD, 0x44a800), 400, 5500 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPD, 0x44b000), 767, 6900 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPD, 0x44b800), 1100, 1200 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPS, 0x000000), 2200, 6900 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPS, 0x44a800), 702, 6900 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPS, 0x44b000), 1350, 1100 }, +{ CLG_CSKEY(X86_INS_VSCATTERDPS, 0x44b800), 2200, 4700 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPD, 0x000000), 1227, 6800 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPD, 0x44a800), 400, 5500 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPD, 0x44b000), 655, 6800 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPD, 0x44b800), 1227, 1300 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPS, 0x000000), 1186, 6700 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPS, 0x44a800), 655, 6700 }, +{ CLG_CSKEY(X86_INS_VSCATTERQPS, 0x44b000), 1186, 1100 }, +{ CLG_CSKEY(X86_INS_VSHUFF32X4, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFF32X4, 0x24b000), 54, 300 }, +{ CLG_CSKEY(X86_INS_VSHUFF32X4, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFF32X4, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFF32X4, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFF64X2, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFF64X2, 0x24b000), 56, 300 }, +{ CLG_CSKEY(X86_INS_VSHUFF64X2, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFF64X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFF64X2, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFI32X4, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFI32X4, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSHUFI32X4, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFI32X4, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFI32X4, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFI64X2, 0x000000), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFI64X2, 0x24b000), 53, 300 }, +{ CLG_CSKEY(X86_INS_VSHUFI64X2, 0x24b800), 102, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFI64X2, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFI64X2, 0x253800), 100, 400 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x000000), 102, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x24b800), 102, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VSHUFPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x000000), 1600, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x242800), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x243000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x243800), 1600, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x24a800), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x24b000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x24b800), 1600, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x252800), 840, 840 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x253000), 840, 840 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x253800), 1600, 1600 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x282800), 840, 840 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x283000), 840, 840 }, +{ CLG_CSKEY(X86_INS_VSQRTPD, 0x283800), 1600, 1600 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x000000), 1000, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x242800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x243000), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x243800), 1000, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x24a800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x24b000), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x24b800), 1000, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x252800), 500, 500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x253000), 500, 500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x253800), 1000, 1000 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x282800), 500, 500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x283000), 500, 500 }, +{ CLG_CSKEY(X86_INS_VSQRTPS, 0x283800), 1000, 1000 }, +{ CLG_CSKEY(X86_INS_VSQRTSD, 0x000000), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTSD, 0x24a800), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTSD, 0x252800), 840, 2100 }, +{ CLG_CSKEY(X86_INS_VSQRTSS, 0x000000), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTSS, 0x24a800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSQRTSS, 0x252800), 500, 1500 }, +{ CLG_CSKEY(X86_INS_VSTMXCSR, 0x000000), 1509, 1509 }, +{ CLG_CSKEY(X86_INS_VSTMXCSR, 0x401800), 1509, 1509 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x000000), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x24b800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPD, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x000000), 102, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x24b000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x24b800), 102, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x253000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBPS, 0x253800), 100, 300 }, +{ CLG_CSKEY(X86_INS_VSUBSD, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBSD, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBSD, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBSS, 0x000000), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBSS, 0x24a800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VSUBSS, 0x252800), 50, 300 }, +{ CLG_CSKEY(X86_INS_VTESTPD, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VTESTPD, 0x242800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VTESTPD, 0x243000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VTESTPD, 0x282800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VTESTPD, 0x283000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VTESTPS, 0x000000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VTESTPS, 0x242800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VTESTPS, 0x243000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VTESTPS, 0x282800), 100, 700 }, +{ CLG_CSKEY(X86_INS_VTESTPS, 0x283000), 100, 900 }, +{ CLG_CSKEY(X86_INS_VUCOMISD, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VUCOMISD, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VUCOMISD, 0x282800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VUCOMISS, 0x000000), 100, 600 }, +{ CLG_CSKEY(X86_INS_VUCOMISS, 0x242800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VUCOMISS, 0x282800), 100, 600 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x24b000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKHPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x24b800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x000000), 102, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x24a800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x24b000), 52, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x24b800), 102, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VUNPCKLPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VXORPD, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x000000), 100, 200 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x24a800), 50, 200 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x24b000), 50, 200 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x24b800), 100, 200 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x252800), 50, 100 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x253000), 50, 100 }, +{ CLG_CSKEY(X86_INS_VXORPS, 0x253800), 100, 100 }, +{ CLG_CSKEY(X86_INS_VZEROALL, 0x000000), 600, 600 }, +{ CLG_CSKEY(X86_INS_VZEROUPPER, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XADD, 0x000000), 784, 800 }, +{ CLG_CSKEY(X86_INS_XADD, 0x240800), 50, 100 }, +{ CLG_CSKEY(X86_INS_XADD, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_XADD, 0x241800), 33, 100 }, +{ CLG_CSKEY(X86_INS_XADD, 0x242000), 33, 100 }, +{ CLG_CSKEY(X86_INS_XADD, 0x440800), 200, 800 }, +{ CLG_CSKEY(X86_INS_XADD, 0x440900), 784, 800 }, +{ CLG_CSKEY(X86_INS_XADD, 0x441000), 200, 800 }, +{ CLG_CSKEY(X86_INS_XADD, 0x441100), 783, 800 }, +{ CLG_CSKEY(X86_INS_XADD, 0x441800), 200, 700 }, +{ CLG_CSKEY(X86_INS_XADD, 0x441900), 777, 700 }, +{ CLG_CSKEY(X86_INS_XADD, 0x442000), 200, 700 }, +{ CLG_CSKEY(X86_INS_XADD, 0x442100), 783, 700 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x000000), 794, 700 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x240800), 50, 100 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x241000), 50, 100 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x241800), 33, 0 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x242000), 33, 0 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x440800), 769, 700 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x441000), 767, 700 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x441800), 794, 700 }, +{ CLG_CSKEY(X86_INS_XCHG, 0x442000), 794, 700 }, +{ CLG_CSKEY(X86_INS_XOR, 0x000000), 740, 740 }, +{ CLG_CSKEY(X86_INS_XOR, 0x240800), 33, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x241000), 25, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x241800), 25, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x242000), 25, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x280800), 33, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x281000), 33, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x281800), 33, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x282000), 33, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x2c0000), 50, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x2c0800), 25, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x2c1000), 50, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x2c1800), 50, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x2c2000), 56, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x440800), 83, 600 }, +{ CLG_CSKEY(X86_INS_XOR, 0x440900), 740, 600 }, +{ CLG_CSKEY(X86_INS_XOR, 0x441000), 73, 600 }, +{ CLG_CSKEY(X86_INS_XOR, 0x441100), 740, 600 }, +{ CLG_CSKEY(X86_INS_XOR, 0x441800), 60, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x441900), 740, 600 }, +{ CLG_CSKEY(X86_INS_XOR, 0x442000), 60, 100 }, +{ CLG_CSKEY(X86_INS_XOR, 0x442100), 740, 600 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c0800), 83, 83 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c0900), 740, 740 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c1000), 73, 73 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c1100), 740, 740 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c1800), 60, 60 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c1900), 740, 740 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c2000), 60, 60 }, +{ CLG_CSKEY(X86_INS_XOR, 0x4c2100), 740, 740 }, +{ CLG_CSKEY(X86_INS_XORPD, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_XORPD, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_XORPD, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_XORPS, 0x000000), 50, 100 }, +{ CLG_CSKEY(X86_INS_XORPS, 0x242800), 25, 100 }, +{ CLG_CSKEY(X86_INS_XORPS, 0x282800), 50, 100 }, +{ CLG_CSKEY(X86_INS_XSAVE, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVE, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVE64, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVE64, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEC, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEC, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEC64, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEC64, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEOPT, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEOPT, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEOPT64, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVEOPT64, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVES, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVES, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVES64, 0x000000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_XSAVES64, 0x400000), 6400, 10000 }, +{ CLG_CSKEY(X86_INS_AAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_AAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_AAM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_AAS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_ARPL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLCFILL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLCI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLCIC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLCMSK, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLCS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLSFILL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BLSIC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDCL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDCN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDCU, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDLDX, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDMK, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDMOV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BNDSTX, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_BOUND, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CLAC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CLDEMOTE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CLGI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CLI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CLRSSBSY, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_CLTS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_DAA, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_DAS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_DATA16, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_ENCLS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_ENCLU, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_ENCLV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_ENDBR32, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_ENDBR64, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_F2XM1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FABS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FBLD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FBSTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCHS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVBE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVNB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVNBE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVNE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVNP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVNU, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCMOVU, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCOM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCOMI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCOMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCOMPI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCOMPP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FCOS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FDECSTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FDISI8087_NOP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FDIV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FDIVP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FDIVR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FDIVRP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FEMMS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FENI8087_NOP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FFREE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FFREEP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FIADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FICOM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FICOMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FIDIV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FIDIVR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FILD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FIMUL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FINCSTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FIST, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FISTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FISTTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FISUB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FISUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLD1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDCW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDENV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDL2E, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDL2T, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDLG2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDLN2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDPI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FLDZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FMUL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FMULP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNCLEX, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNINIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNOP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNSAVE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNSTCW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNSTENV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FNSTSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FPATAN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FPREM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FPREM1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FPTAN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FRNDINT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FRSTOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSCALE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSETPM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSINCOS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSQRT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FST, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSTP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSTPNCE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSUB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSUBP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FSUBRP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FTST, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FUCOM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FUCOMI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FUCOMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FUCOMPI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FUCOMPP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FXAM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FXCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FXRSTOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FXRSTOR64, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FXTRACT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FYL2X, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_FYL2XP1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_GETSEC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_HLT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_IN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INCSSPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INCSSPQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INT1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INT3, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INTO, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INVEPT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INVLPG, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INVLPGA, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INVPCID, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_INVVPID, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_IRET, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_IRETD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_IRETQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_JCXZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_JECXZ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LAR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LCALL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LDS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LES, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LFS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LGDT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LGS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LIDT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LJMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LLDT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LLWPCB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LMSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LOCK, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LSL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LTR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LWPINS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_LWPVAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MONITOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MONITORX, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MONTMUL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOVDIR64B, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MOVDIRI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MWAIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_MWAITX, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_OUT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_OUTSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_OUTSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_OUTSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PAVGUSB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PCONFIG, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PF2ID, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PF2IW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFACC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFADD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFCMPEQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFCMPGE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFCMPGT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFMAX, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFMIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFMUL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFNACC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFPNACC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFRCP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFRCPIT1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFRCPIT2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFRSQIT1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFRSQRT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFSUB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PFSUBR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PI2FD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PI2FW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PMULHRW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_POPAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_POPAW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_POPFD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PREFETCHWT1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PSWAPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PTWRITE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PUSHAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PUSHAW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_PUSHFD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDFSBASE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDGSBASE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDMSR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDPKRU, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDPMC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDSSPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RDSSPQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RETF, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RETFQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_REX64, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RSM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_RSTORSSP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SAL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SALC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SAVEPREVSSP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SETSSBSY, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SGDT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SIDT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SKINIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SLDT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SLWPCB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SMSW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_STAC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_STGI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_STI, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_STR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SWAPGS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SYSCALL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SYSENTER, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SYSEXIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SYSEXITQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SYSRET, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_SYSRETQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_T1MSKC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_TPAUSE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_TZMSK, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_UD0, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_UD1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_UD2, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_UMONITOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_UMWAIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_V4FMADDPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_V4FMADDSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_V4FNMADDPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_V4FNMADDSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VCMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VERR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VERW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VEXP2PD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VEXP2PS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMADDPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMADDPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMADDSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMADDSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMADDSUBPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMADDSUBPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMSUBADDPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMSUBADDPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMSUBPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMSUBPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMSUBSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFMSUBSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMADDPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMADDPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMADDSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMADDSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMSUBPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMSUBPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMSUBSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFNMSUBSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFRCZPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFRCZPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFRCZSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VFRCZSS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF0DPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF0DPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF0QPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF0QPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF1DPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF1DPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF1QPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VGATHERPF1QPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMCALL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMCLEAR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMFUNC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMLAUNCH, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMLOAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMMCALL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMPTRLD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMPTRST, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMREAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMRESUME, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMRUN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMSAVE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMWRITE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMXOFF, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VMXON, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VP4DPWSSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VP4DPWSSDS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCMOV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCMP, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMUB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMUD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMUQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMUW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPCOMW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPERMIL2PD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPERMIL2PS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDBD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDBQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDBW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDUBD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDUBQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDUBW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDUDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDUWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDUWQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHADDWQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHSUBBW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHSUBDQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPHSUBWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSDD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSDQH, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSDQL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSSDD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSSDQH, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSSDQL, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSSWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSSWW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMACSWW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMADCSSWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPMADCSWD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPPERM, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROTB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROTD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROTQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPROTW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHAB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHAD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHAQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHAW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHLB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHLD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHLQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VPSHLW, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRCP28PD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRCP28PS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRCP28SD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRCP28SS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT28PD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT28PS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT28SD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VRSQRT28SS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF0DPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF0DPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF0QPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF0QPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF1DPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF1DPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF1QPD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_VSCATTERPF1QPS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WAIT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WBINVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WBNOINVD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRFSBASE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRGSBASE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRMSR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRPKRU, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRSSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRSSQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRUSSD, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_WRUSSQ, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XABORT, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XACQUIRE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XBEGIN, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XCRYPTCBC, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XCRYPTCFB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XCRYPTCTR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XCRYPTECB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XCRYPTOFB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XEND, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XGETBV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XLATB, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XRELEASE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XRSTOR, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XRSTOR64, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XRSTORS, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XRSTORS64, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XSETBV, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XSHA1, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XSHA256, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XSTORE, 0x000000), 100, 100 }, +{ CLG_CSKEY(X86_INS_XTEST, 0x000000), 100, 100 }, From adcc2e5a81e482fa81226b259ed2e50499857b6a Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 19:25:28 +0200 Subject: [PATCH 3/8] chore: add nix dev-shell flake for valgrind-codspeed --- flake.lock | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..8f6b10e4f --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1780749050, + "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 000000000..ec6ddea8b --- /dev/null +++ b/flake.nix @@ -0,0 +1,52 @@ +{ + description = "Dev shell for building valgrind-codspeed"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = + { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { inherit system; }; + + # Valgrind tools run without glibc's %fs TLS and link -nodefaultlibs, so + # Capstone must be built without stack-protector (its %fs:0x28 canary + # read faults at runtime) and without fortify (pulls __*_chk libc + # symbols). hardeningDisable drops both at the source. + capstone = pkgs.capstone.overrideAttrs (old: { + hardeningDisable = (old.hardeningDisable or [ ]) ++ [ + "stackprotector" + "fortify" + "fortify3" + ]; + }); + in + { + # Expose the pinned Capstone so the autotools build and scripts can find + # it via `nix build .#capstone` or the CAPSTONE_DIR env var below. + packages.capstone = capstone; + + devShells.default = pkgs.mkShell { + packages = [ + capstone + pkgs.python3 + pkgs.uv + pkgs.autoconf + pkgs.automake + pkgs.libtool + pkgs.gnumake + pkgs.gcc + pkgs.pkg-config + ]; + + # Consumed by configure (--with-capstone), the LUT generator, and the + # standalone cycledecode test. Point them at the hardening-free build. + CAPSTONE_DIR = "${capstone}"; + }; + } + ); +} From fc64bd6916688baa52fa7f6bd13c8249a79c5e8f Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 19:55:42 +0200 Subject: [PATCH 4/8] feat(callgrind): cycle-estimation runtime (Capstone decode + cost LUT) Add the --cycle-estimation=yes runtime: decode each guest instruction with Capstone and look its reciprocal-throughput cost up in the generated cost table (x86/arm64_caps_lut.inc), accumulating a per-instruction Cy event. - cycledecode.c/.h: isolated Capstone decode + LUT lookup behind a plain-C ABI (no Valgrind tool headers, to avoid type clashes); freestanding libc shims since the tool links -nodefaultlibs. - sigkey.h: packed (insn-id, signature) key contract shared with the offline LUT generators in lut-gen/. - main.c/sim.c/bbcc.c/global.h/clo.c: wire Cy through callgrind (CLI option, EventSet, self + inclusive cost, fallback warning when an instruction has no table match). - configure.ac/Makefile.am: build cycledecode against Capstone. Emits only Cy (reciprocal throughput); no latency event. --- callgrind/Makefile.am | 12 +- callgrind/bbcc.c | 12 + callgrind/clo.c | 4 + callgrind/cycledecode.c | 666 ++++++++++++++++++++++++++++++++++++++++ callgrind/cycledecode.h | 36 +++ callgrind/global.h | 8 + callgrind/main.c | 51 +++ callgrind/sigkey.h | 69 +++++ callgrind/sim.c | 8 + configure.ac | 32 ++ 10 files changed, 896 insertions(+), 2 deletions(-) create mode 100644 callgrind/cycledecode.c create mode 100644 callgrind/cycledecode.h create mode 100644 callgrind/sigkey.h diff --git a/callgrind/Makefile.am b/callgrind/Makefile.am index 7cecb44b3..366dfcb70 100644 --- a/callgrind/Makefile.am +++ b/callgrind/Makefile.am @@ -18,9 +18,15 @@ bin_SCRIPTS = \ noinst_HEADERS = \ costs.h \ + cycledecode.h \ + sigkey.h \ events.h \ global.h +# Generated cost tables + legacy XED table (#included by cycledecode.c under +# CLG_WITH_CAPSTONE; the arch is selected at compile time). +EXTRA_DIST += x86_caps_lut.inc arm64_caps_lut.inc x86_uops_lut.inc + #---------------------------------------------------------------------------- # callgrind- #---------------------------------------------------------------------------- @@ -37,6 +43,7 @@ CALLGRIND_SOURCES_COMMON = \ clo.c \ context.c \ costs.c \ + cycledecode.c \ debug.c \ dump.c \ events.c \ @@ -54,11 +61,12 @@ callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \ callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \ $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(LTO_CFLAGS) \ - $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(CALLGRIND_CFLAGS_COMMON) + $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(CALLGRIND_CFLAGS_COMMON) \ + @CAPSTONE_CFLAGS@ callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES = \ $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD = \ - $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@) + $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@) @CAPSTONE_LIBS@ callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \ $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \ diff --git a/callgrind/bbcc.c b/callgrind/bbcc.c index 2289884ed..d4fa93631 100644 --- a/callgrind/bbcc.c +++ b/callgrind/bbcc.c @@ -612,6 +612,12 @@ void CLG_(setup_bbcc)(BB* bb) UInt instr_count = last_bb->jmp[passed].instr+1; CLG_(current_state).cost[ fullOffset(EG_IR) ] += instr_count; } + /* inclusive cycle cost: cache-independent, so updated in both modes. + * cy_incl is the running sum up to the side exit taken. */ + if (CLG_(clo).cycle_estimation) { + InstrInfo* ii = &last_bb->instr[ last_bb->jmp[passed].instr ]; + CLG_(current_state).cost[ fullOffset(EG_CYCLES) ] += ii->cy_incl; + } } else { /* do not increment exe counter of BBs in skipped functions, as it @@ -623,6 +629,12 @@ void CLG_(setup_bbcc)(BB* bb) CLG_(current_state).nonskipped->skipped[ fullOffset(EG_IR) ] += instr_count; } + if (CLG_(clo).cycle_estimation) { + InstrInfo* ii = &last_bb->instr[ last_bb->jmp[passed].instr ]; + CLG_(current_state).cost[ fullOffset(EG_CYCLES) ] += ii->cy_incl; + CLG_(current_state).nonskipped->skipped[ fullOffset(EG_CYCLES) ] + += ii->cy_incl; + } } } diff --git a/callgrind/clo.c b/callgrind/clo.c index fc2084869..4cf1ca90f 100644 --- a/callgrind/clo.c +++ b/callgrind/clo.c @@ -561,6 +561,8 @@ Bool CLG_(process_cmd_line_option)(const HChar* arg) else if VG_BOOL_CLO(arg, "--simulate-cache", CLG_(clo).simulate_cache) {} /* for option compatibility with cachegrind */ else if VG_BOOL_CLO(arg, "--branch-sim", CLG_(clo).simulate_branch) {} + + else if VG_BOOL_CLO(arg, "--cycle-estimation", CLG_(clo).cycle_estimation) {} else { Bool isCachesimOption = (*CLG_(cachesim).parse_opt)(arg); @@ -607,6 +609,7 @@ void CLG_(print_usage)(void) " --toggle-collect= Toggle collection on enter/leave function\n" " --collect-jumps=no|yes Collect jumps? [no]\n" " --collect-bus=no|yes Collect global bus events? [no]\n" +" --cycle-estimation=no|yes Estimate per-instruction cycles (Cy)? [no]\n" #if CLG_EXPERIMENTAL " --collect-alloc=no|yes Collect memory allocation info? [no]\n" #endif @@ -693,6 +696,7 @@ void CLG_(set_clo_defaults)(void) CLG_(clo).instrument_atstart = True; CLG_(clo).simulate_cache = False; CLG_(clo).simulate_branch = False; + CLG_(clo).cycle_estimation = False; /* Call graph */ CLG_(clo).pop_on_jump = False; diff --git a/callgrind/cycledecode.c b/callgrind/cycledecode.c new file mode 100644 index 000000000..f722bf4ae --- /dev/null +++ b/callgrind/cycledecode.c @@ -0,0 +1,666 @@ +/*--------------------------------------------------------------------*/ +/*--- Per-instruction cycle estimation: decode + LUT lookup. ---*/ +/*--- cycledecode.c ---*/ +/*--------------------------------------------------------------------*/ + +/* CodSpeed extension. See cycledecode.h. + * + * Decodes the real guest instruction with Capstone and looks the result up in + * a generated cost table (x86_caps_lut.inc / arm64_caps_lut.inc) keyed by the + * packed signature defined in sigkey.h. Works for both amd64 and arm64 guests + * (the tool is built natively for its primary arch, so host == guest here). + * + * This translation unit is intentionally NOT compiled with the Valgrind tool + * headers (pub_tool_*); it includes the Capstone headers and exposes a small + * plain-C ABI consumed by main.c. Keeping it isolated avoids clashes between + * Capstone's and Valgrind's type definitions. + * + * It is linked into a tool built with -nodefaultlibs. Capstone is driven with + * cs_malloc + cs_disasm_iter so all allocation happens at init; a static bump + * arena backs malloc/calloc/realloc/free. The few other libc symbols Capstone + * references are shimmed below (coregrind already supplies memcpy/memset/ + * memmove). Capstone fills the structured operand detail during decode + * independently of the op_str text, so the vsnprintf shim only needs to be + * safe, not faithful. + */ + +#include "cycledecode.h" + +#if defined(CLG_WITH_CAPSTONE) + +#include "sigkey.h" +#include +#include +#include +#include +#include +#include + +/*------------------------------------------------------------*/ +/*--- Arch selection + generated cost table -*/ +/*------------------------------------------------------------*/ + +/* Arch selection. The build can force it with -DCLG_CS_ARCH_SEL=1 (x86) or =2 + * (arm64); otherwise it follows the host (== guest, since the tool is native). + */ +#if !defined(CLG_CS_ARCH_SEL) +#if defined(__aarch64__) +#define CLG_CS_ARCH_SEL 2 +#elif defined(__x86_64__) || defined(__i386__) +#define CLG_CS_ARCH_SEL 1 +#else +#error "cycledecode: unsupported guest arch" +#endif +#endif + +#if CLG_CS_ARCH_SEL == 1 +#define CLG_CS_ARCH CS_ARCH_X86 +#define CLG_CS_MODE CS_MODE_64 +#define CLG_LUT_INC "x86_caps_lut.inc" +#elif CLG_CS_ARCH_SEL == 2 +#define CLG_CS_ARCH CS_ARCH_ARM64 +#define CLG_CS_MODE CS_MODE_ARM +#define CLG_LUT_INC "arm64_caps_lut.inc" +#else +#error "cycledecode: bad CLG_CS_ARCH_SEL" +#endif + +typedef struct { + unsigned long long key; + unsigned cy; + unsigned cl; +} Row; + +static Row lut[] = { +#include CLG_LUT_INC +}; +static const int lut_n = (int)(sizeof(lut) / sizeof(lut[0])); + +static csh handle; +static cs_insn* insn; +static unsigned long n_decoded, n_matched, n_fallback; + +/*------------------------------------------------------------*/ +/*--- Freestanding libc shims for Capstone -*/ +/*------------------------------------------------------------*/ + +/* These replace libc for Capstone: the tool links -nodefaultlibs. */ + +/* Bump arena: Capstone (via cs_open/cs_malloc) allocates only during init. */ +static unsigned char arena[1u << 20]; +static size_t arena_off; + +void* malloc(size_t n) +{ + n = (n + 15u) & ~(size_t)15u; + if (arena_off + n > sizeof arena) + return 0; + void* p = &arena[arena_off]; + arena_off += n; + return p; +} +void* calloc(size_t nmemb, size_t sz) +{ + size_t n = nmemb * sz; + void* p = malloc(n); + if (p) + memset(p, 0, n); + return p; +} +void* realloc(void* old, size_t n) +{ + /* Old size is unknown; copy n bytes (stays within the arena array, so no + * fault) and leak the old block. Rarely hit under cs_disasm_iter. */ + void* p = malloc(n); + if (p && old) + memcpy(p, old, n); + return p; +} +void free(void* p) { (void)p; } + +/* Safe, bounded, deliberately minimal vsnprintf: handles %%, %c, %s and the + * integer conversions (d/i/u/x/X/p) with l/ll/h length modifiers. The output + * string is never consumed for cost lookup, so exact formatting is not + * required; correctness here means "always NUL-terminates, never overruns". */ +int vsnprintf(char* buf, size_t size, const char* fmt, va_list ap) +{ + size_t n = 0; +#define PUT(c) \ + do { \ + if (n + 1 < size) \ + buf[n] = (char)(c); \ + n++; \ + } while (0) + for (const char* p = fmt; *p; p++) { + if (*p != '%') { + PUT(*p); + continue; + } + p++; + while (*p == '#' || *p == '0' || *p == '-' || *p == '+' || *p == ' ') + p++; + while (*p >= '0' && *p <= '9') + p++; + int lng = 0; + while (*p == 'l') { + lng++; + p++; + } + while (*p == 'h') + p++; + char c = *p; + if (c == '%') { + PUT('%'); + continue; + } + if (c == 'c') { + PUT(va_arg(ap, int)); + continue; + } + if (c == 's') { + const char* s = va_arg(ap, const char*); + if (!s) + s = "(null)"; + while (*s) + PUT(*s++); + continue; + } + if (c == 'd' || c == 'i' || c == 'u' || c == 'x' || c == 'X' || + c == 'p') { + unsigned long long v; + int neg = 0, base = (c == 'x' || c == 'X' || c == 'p') ? 16 : 10; + if (c == 'd' || c == 'i') { + long long s = (lng >= 2) ? va_arg(ap, long long) + : (lng == 1) ? va_arg(ap, long) + : va_arg(ap, int); + if (s < 0) { + neg = 1; + v = (unsigned long long)(-s); + } else + v = (unsigned long long)s; + } else if (c == 'p') { + v = (unsigned long long)(size_t)va_arg(ap, void*); + } else { + v = (lng >= 2) ? va_arg(ap, unsigned long long) + : (lng == 1) ? va_arg(ap, unsigned long) + : va_arg(ap, unsigned); + } + char tmp[24]; + int ti = 0; + const char* digits = + (c == 'X') ? "0123456789ABCDEF" : "0123456789abcdef"; + if (v == 0) + tmp[ti++] = '0'; + while (v) { + tmp[ti++] = digits[v % base]; + v /= base; + } + if (neg) + PUT('-'); + while (ti) + PUT(tmp[--ti]); + continue; + } + /* Unknown conversion: emit literally so nothing is lost silently. */ + PUT('%'); + PUT(c); + } + if (size) + buf[(n < size) ? n : size - 1] = '\0'; +#undef PUT + return (int)n; +} + +/* Error-path stubs Capstone references (never hit during cost lookup). */ +FILE* stderr = 0; + +size_t fwrite(const void* p, size_t s, size_t n, FILE* f) +{ + (void)p; + (void)s; + (void)f; + return n; +} +int puts(const char* s) +{ + (void)s; + return 0; +} +int printf(const char* fmt, ...) +{ + (void)fmt; + return 0; +} + +int sprintf(char* str, const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + int r = vsnprintf(str, (size_t)-1, fmt, ap); + va_end(ap); + return r; +} + +/* String shims (coregrind supplies memcpy/memset/memmove). */ +size_t strlen(const char* s) +{ + size_t n = 0; + while (s[n]) + n++; + return n; +} +int strcmp(const char* a, const char* b) +{ + while (*a && *a == *b) { + a++; + b++; + } + return (int)(unsigned char)*a - (int)(unsigned char)*b; +} +int strncmp(const char* a, const char* b, size_t n) +{ + for (size_t i = 0; i < n; i++) { + if (a[i] != b[i]) + return (int)(unsigned char)a[i] - (int)(unsigned char)b[i]; + if (!a[i]) + break; + } + return 0; +} +char* strcpy(char* d, const char* s) +{ + char* r = d; + while ((*d++ = *s++)) { + } + return r; +} +char* strncpy(char* d, const char* s, size_t n) +{ + size_t i = 0; + for (; i < n && s[i]; i++) + d[i] = s[i]; + for (; i < n; i++) + d[i] = 0; + return d; +} +char* strchr(const char* s, int c) +{ + for (; *s; s++) + if (*s == (char)c) + return (char*)s; + return (c == 0) ? (char*)s : 0; +} +char* strrchr(const char* s, int c) +{ + const char* last = 0; + for (; *s; s++) + if (*s == (char)c) + last = s; + return (char*)((c == 0) ? s : last); +} +char* strstr(const char* h, const char* n) +{ + if (!*n) + return (char*)h; + for (; *h; h++) { + const char *a = h, *b = n; + while (*a && *b && *a == *b) { + a++; + b++; + } + if (!*b) + return (char*)h; + } + return 0; +} +long strtol(const char* s, char** end, int base) +{ + long v = 0; + int neg = 0; + while (*s == ' ' || *s == '\t') + s++; + if (*s == '-') { + neg = 1; + s++; + } else if (*s == '+') + s++; + if (base == 16 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) + s += 2; + for (;;) { + int d; + if (*s >= '0' && *s <= '9') + d = *s - '0'; + else if (*s >= 'a' && *s <= 'f') + d = *s - 'a' + 10; + else if (*s >= 'A' && *s <= 'F') + d = *s - 'A' + 10; + else + break; + if (d >= base) + break; + v = v * base + d; + s++; + } + if (end) + *end = (char*)s; + return neg ? -v : v; +} + + +/*------------------------------------------------------------*/ +/*--- Table sort + lookup -*/ +/*------------------------------------------------------------*/ + +static void sort_lut(void) +{ + for (int gap = lut_n / 2; gap > 0; gap /= 2) + for (int i = gap; i < lut_n; i++) { + Row tmp = lut[i]; + int j = i; + while (j >= gap && lut[j - gap].key > tmp.key) { + lut[j] = lut[j - gap]; + j -= gap; + } + lut[j] = tmp; + } +} + +static const Row* find_row(unsigned long long key) +{ + int lo = 0, hi = lut_n - 1; + while (lo <= hi) { + int mid = lo + (hi - lo) / 2; + if (lut[mid].key == key) + return &lut[mid]; + if (lut[mid].key < key) + lo = mid + 1; + else + hi = mid - 1; + } + return 0; +} + +/* Strip the width field (sig bits [14:11]) for a width-agnostic retry. */ +static unsigned long long key_any_width(unsigned long long key) +{ + return key & ~((unsigned long long)0xF << 11); +} + +/*------------------------------------------------------------*/ +/*--- Per-arch signature from cs_detail -*/ +/*------------------------------------------------------------*/ + +#if CLG_CS_ARCH_SEL == 1 + +static unsigned op_code_x86(x86_op_type t) +{ + switch (t) { + case X86_OP_REG: + return CLG_OP_REG; + case X86_OP_MEM: + return CLG_OP_MEM; + case X86_OP_IMM: + return CLG_OP_IMM; + default: + return CLG_OP_OTHER; + } +} + +static unsigned scalar_fp_width_x86(unsigned id) +{ + switch (id) { + case X86_INS_ADDSS: + case X86_INS_CMPSS: + case X86_INS_COMISS: + case X86_INS_CVTSD2SS: + case X86_INS_CVTSI2SS: + case X86_INS_CVTSS2SI: + case X86_INS_CVTTSS2SI: + case X86_INS_DIVSS: + case X86_INS_MAXSS: + case X86_INS_MINSS: + case X86_INS_MOVSS: + case X86_INS_MULSS: + case X86_INS_RCPSS: + case X86_INS_RSQRTSS: + case X86_INS_SQRTSS: + case X86_INS_SUBSS: + case X86_INS_UCOMISS: + return 32; + case X86_INS_ADDSD: + case X86_INS_CMPSD: + case X86_INS_COMISD: + case X86_INS_CVTDQ2PD: + case X86_INS_CVTPD2DQ: + case X86_INS_CVTPD2PI: + case X86_INS_CVTPD2PS: + case X86_INS_CVTPI2PD: + case X86_INS_CVTPS2PD: + case X86_INS_CVTSD2SI: + case X86_INS_CVTSI2SD: + case X86_INS_CVTSS2SD: + case X86_INS_CVTTPD2DQ: + case X86_INS_CVTTPD2PI: + case X86_INS_CVTTSD2SI: + case X86_INS_DIVSD: + case X86_INS_MAXSD: + case X86_INS_MINSD: + case X86_INS_MOVSD: + case X86_INS_MULSD: + case X86_INS_SQRTSD: + case X86_INS_SUBSD: + case X86_INS_UCOMISD: + return 64; + default: + return 0; + } +} + +static unsigned compute_sig(const cs_insn* in) +{ + const cs_x86* x = &in->detail->x86; + unsigned o[3] = {CLG_OP_NONE, CLG_OP_NONE, CLG_OP_NONE}; + unsigned w = 0, flags = 0; + + for (int i = 0; i < x->op_count && i < 3; i++) + o[i] = op_code_x86(x->operands[i].type); + + for (int i = 0; i < x->op_count; i++) { + const cs_x86_op* op = &x->operands[i]; + if (op->type == X86_OP_REG || op->type == X86_OP_MEM) { + unsigned bits = (unsigned)op->size * 8u; + if (bits > w) + w = bits; + } + } + unsigned scalar_w = scalar_fp_width_x86(in->id); + if (scalar_w) + w = scalar_w; + for (int i = 0; i < 4; i++) { + unsigned char pfx = x->prefix[i]; + if (pfx == X86_PREFIX_LOCK) + flags |= CLG_F_LOCK; + if (pfx == X86_PREFIX_REP || pfx == X86_PREFIX_REPNE) + flags |= CLG_F_REP; + } + return CLG_SIG(o[0], o[1], o[2], clg_width_code(w), flags); +} + +#elif CLG_CS_ARCH_SEL == 2 + +static unsigned vas_elem_bits(arm64_vas vas) +{ + switch (vas) { + case ARM64_VAS_8B: + case ARM64_VAS_16B: + return 8; + case ARM64_VAS_4H: + case ARM64_VAS_8H: + return 16; + case ARM64_VAS_2S: + case ARM64_VAS_4S: + return 32; + case ARM64_VAS_1D: + case ARM64_VAS_2D: + return 64; + case ARM64_VAS_1Q: + return 128; + default: + return 0; + } +} + +static unsigned scalar_fp_bits(arm64_reg r) +{ + if (r >= ARM64_REG_B0 && r <= ARM64_REG_B31) + return 8; + if (r >= ARM64_REG_H0 && r <= ARM64_REG_H31) + return 16; + if (r >= ARM64_REG_S0 && r <= ARM64_REG_S31) + return 32; + if (r >= ARM64_REG_D0 && r <= ARM64_REG_D31) + return 64; + if (r >= ARM64_REG_Q0 && r <= ARM64_REG_Q31) + return 128; + return 0; +} + +static unsigned gp_reg_bits(arm64_reg r) +{ + if (r >= ARM64_REG_W0 && r <= ARM64_REG_W30) + return 32; + if (r == ARM64_REG_WSP || r == ARM64_REG_WZR) + return 32; + if (r >= ARM64_REG_X0 && r <= ARM64_REG_X28) + return 64; + if (r == ARM64_REG_X29 || r == ARM64_REG_X30) + return 64; + if (r == ARM64_REG_SP || r == ARM64_REG_XZR) + return 64; + return 0; +} + +static unsigned compute_sig(const cs_insn* in) +{ + const cs_arm64* a = &in->detail->arm64; + unsigned w = 0, flags = 0; + + for (int i = 0; i < a->op_count; i++) + if (a->operands[i].vas != ARM64_VAS_INVALID) { + flags |= CLG_F_VEC; + unsigned ew = vas_elem_bits(a->operands[i].vas); + if (ew > w) + w = ew; + } + if (!(flags & CLG_F_VEC)) + for (int i = 0; i < a->op_count; i++) + if (a->operands[i].type == ARM64_OP_REG) { + arm64_reg r = a->operands[i].reg; + unsigned ew = scalar_fp_bits(r); + if (ew == 0) + ew = gp_reg_bits(r); + if (ew > w) + w = ew; + } + return CLG_SIG(CLG_OP_NONE, CLG_OP_NONE, CLG_OP_NONE, clg_width_code(w), + flags); +} + +#endif + +/*------------------------------------------------------------*/ +/*--- Public ABI -*/ +/*------------------------------------------------------------*/ + +int clg_cd_init_stage; /* diagnostic: last init step reached + (0=mem,1=open,2=malloc,9=ok) */ + +int clg_cycledecode_init(void) +{ + static const cs_opt_mem mem = {malloc, calloc, realloc, free, vsnprintf}; + clg_cd_init_stage = 0; + if (cs_option(0, CS_OPT_MEM, (size_t)&mem) != CS_ERR_OK) + return 0; + clg_cd_init_stage = 1; + if (cs_open(CLG_CS_ARCH, CLG_CS_MODE, &handle) != CS_ERR_OK) + return 0; + cs_option(handle, CS_OPT_DETAIL, CS_OPT_ON); + clg_cd_init_stage = 2; + insn = cs_malloc(handle); + if (!insn) + return 0; + + sort_lut(); + n_decoded = n_matched = n_fallback = 0; + clg_cd_init_stage = 9; + return 1; +} + +int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy) +{ + const uint8_t* code = (const uint8_t*)bytes; + size_t size = len; + uint64_t addr = 0; + + n_decoded++; + + if (!cs_disasm_iter(handle, &code, &size, &addr, insn)) { + n_fallback++; + return 0; + } + + unsigned sig = compute_sig(insn); + unsigned long long key = CLG_CSKEY(insn->id, sig); + const Row* row = find_row(key); + if (!row) + row = find_row(key_any_width(key)); + if (!row) { + n_fallback++; + return 0; + } + + *cy = row->cy; /* the LUT still carries row->cl; the caller only uses cy */ + n_matched++; + return 1; +} + +void clg_cycledecode_stats(unsigned long* decoded, + unsigned long* matched, + unsigned long* fallback) +{ + if (decoded) + *decoded = n_decoded; + if (matched) + *matched = n_matched; + if (fallback) + *fallback = n_fallback; +} + +#else /* !CLG_WITH_CAPSTONE : cycle estimation unavailable */ + +int clg_cd_init_stage; /* diagnostic: last init step reached + (0=mem,1=open,2=malloc,9=ok) */ + +int clg_cycledecode_init(void) { return 0; } + +int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy) +{ + (void)bytes; + (void)len; + (void)cy; + return 0; +} + +void clg_cycledecode_stats(unsigned long* decoded, + unsigned long* matched, + unsigned long* fallback) +{ + if (decoded) + *decoded = 0; + if (matched) + *matched = 0; + if (fallback) + *fallback = 0; +} + +#endif diff --git a/callgrind/cycledecode.h b/callgrind/cycledecode.h new file mode 100644 index 000000000..312c688d5 --- /dev/null +++ b/callgrind/cycledecode.h @@ -0,0 +1,36 @@ +/*--------------------------------------------------------------------*/ +/*--- Per-instruction cycle estimation: decode + LUT lookup. ---*/ +/*--- cycledecode.h ---*/ +/*--------------------------------------------------------------------*/ + +/* CodSpeed extension. Estimates per-instruction throughput/latency cost by + * decoding the real guest instruction (Capstone) and looking the result up in + * a generated cost table (x86_caps_lut.inc / arm64_caps_lut.inc), keyed by the + * packed signature in sigkey.h. + * + * This header uses only plain C types so it can be included from Callgrind + * sources that pull in the Valgrind tool headers; the implementation + * (cycledecode.c) is deliberately isolated from those headers to avoid type + * clashes with the Capstone headers it includes. + */ + +#ifndef CLG_CYCLEDECODE_H +#define CLG_CYCLEDECODE_H + +/* Initialise Capstone and sort the cost table. Returns 1 if cycle estimation is + * available (built with Capstone, amd64/arm64 guest), 0 otherwise. Call once at + * startup before clg_cycle_cost(). */ +int clg_cycledecode_init(void); + +/* Decode the guest instruction in [bytes, bytes+len) and return its estimated + * cost in centi-cycles (1 cycle = 100): *cy = reciprocal throughput. Returns 1 + * on a table hit, 0 on decode failure or table miss. The caller decides which + * fallback cost to charge. */ +int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy); + +/* Diagnostic counters since init. */ +void clg_cycledecode_stats(unsigned long* decoded, + unsigned long* matched, + unsigned long* fallback); + +#endif /* CLG_CYCLEDECODE_H */ diff --git a/callgrind/global.h b/callgrind/global.h index 24d417732..8c000f465 100644 --- a/callgrind/global.h +++ b/callgrind/global.h @@ -116,6 +116,7 @@ struct _CommandLineOptions { Bool instrument_atstart; /* Instrument at start? */ Bool simulate_cache; /* Call into cache simulator ? */ Bool simulate_branch; /* Call into branch prediction simulator ? */ + Bool cycle_estimation; /* Estimate per-instruction cycles (Cy) ? */ /* Call graph generation */ Bool pop_on_jump; /* Handle a jump between functions as ret+call */ @@ -259,6 +260,12 @@ struct _InstrInfo { UInt instr_size; UInt cost_offset; EventSet* eventset; + /* Cycle estimation (only filled when --cycle-estimation=yes), centi-cycles. + * cy_cost = this instruction's own throughput cost; cy_incl is the running + * sum over instr[0..this] in the BB, used for the inclusive (call-graph) cost + * update at each side exit. */ + UInt cy_cost; + UInt cy_incl; }; @@ -668,6 +675,7 @@ struct cachesim_if #define EG_BUS 6 #define EG_ALLOC 7 #define EG_SYS 8 +#define EG_CYCLES 9 /* estimated cycles: Cy (reciprocal throughput) */ struct event_sets { EventSet *base, *full; diff --git a/callgrind/main.c b/callgrind/main.c index cfc283455..f142e140c 100644 --- a/callgrind/main.c +++ b/callgrind/main.c @@ -39,6 +39,8 @@ #include "cg_branchpred.c" +#include "cycledecode.h" + /*------------------------------------------------------------*/ /*--- Global variables ---*/ /*------------------------------------------------------------*/ @@ -789,6 +791,8 @@ InstrInfo* next_InstrInfo ( ClgState* clgs, UInt instr_size ) ii->instr_size = instr_size; ii->cost_offset = 0; ii->eventset = 0; + ii->cy_cost = 0; + ii->cy_incl = 0; } clgs->ii_index++; @@ -1040,6 +1044,18 @@ IRSB* CLG_(instrument)( VgCallbackClosure* closure, // also use it. curr_inode = next_InstrInfo (&clgs, isize); + // Estimate this instruction's cycle cost by decoding the real + // guest bytes. Only on first translation; values persist in the BB. + if (CLG_(clo).cycle_estimation && !clgs.seen_before) { + unsigned cy = 0; + if (!clg_cycle_cost((const unsigned char*)cia, + st->Ist.IMark.len ? st->Ist.IMark.len : isize, + &cy)) { + cy = 100; + } + curr_inode->cy_cost = cy; + } + addEvent_Ir( &clgs, curr_inode ); break; } @@ -1342,6 +1358,16 @@ IRSB* CLG_(instrument)( VgCallbackClosure* closure, else { clgs.bb->cost_count = update_cost_offsets(&clgs); clgs.bb->instr_len = clgs.instr_offset; + + /* Running sums of per-instruction cycle cost, so the inclusive + * (call-graph) cost at each side exit is an O(1) lookup in setup_bbcc. */ + if (CLG_(clo).cycle_estimation) { + UInt cy = 0; + for (i = 0; i < clgs.bb->instr_count; i++) { + cy += clgs.bb->instr[i].cy_cost; + clgs.bb->instr[i].cy_incl = cy; + } + } } CLG_DEBUG(3, "- instrument(BB %#lx): byteLen %u, CJumps %u, CostLen %u\n", @@ -1916,6 +1942,13 @@ void clg_print_stats(void) CLG_(stat).bb_retranslations); VG_(message)(Vg_DebugMsg, "Distinct instrs: %d\n", CLG_(stat).distinct_instrs); + if (CLG_(clo).cycle_estimation) { + unsigned long decoded = 0, matched = 0, fallback = 0; + clg_cycledecode_stats(&decoded, &matched, &fallback); + VG_(message)(Vg_DebugMsg, "Cycle decodes: %lu\n", decoded); + VG_(message)(Vg_DebugMsg, "Cycle LUT matches: %lu\n", matched); + VG_(message)(Vg_DebugMsg, "Cycle fallbacks: %lu\n", fallback); + } VG_(message)(Vg_DebugMsg, "LRU Contxt Misses: %d\n", CLG_(stat).cxt_lru_misses); @@ -1998,6 +2031,15 @@ void finish(void) if (CLG_(clo).simulate_branch) branchsim_printstat(l1, l2, l3); + if (CLG_(clo).cycle_estimation) { + unsigned long decoded = 0, matched = 0, fallback = 0; + clg_cycledecode_stats(&decoded, &matched, &fallback); + if (fallback > 0) + VG_(umsg)("\nWARNING: cycle-estimation: %lu of %lu decoded instructions " + "had no cost-table match and were charged the default 1.00 " + "cycle, so Cy is approximate.\n", + fallback, decoded); + } } @@ -2090,6 +2132,15 @@ void CLG_(post_clo_init)(void) CLG_(init_dumps)(); + if (CLG_(clo).cycle_estimation && !clg_cycledecode_init()) { + extern int clg_cd_init_stage; + VG_(message)(Vg_UserMsg, + "--cycle-estimation=yes needs a Capstone build " + "(amd64/arm64 guest); disabling it. [init stage %d]\n", + clg_cd_init_stage); + CLG_(clo).cycle_estimation = False; + } + (*CLG_(cachesim).post_clo_init)(); CLG_(init_eventsets)(); diff --git a/callgrind/sigkey.h b/callgrind/sigkey.h new file mode 100644 index 000000000..ba9ad4f15 --- /dev/null +++ b/callgrind/sigkey.h @@ -0,0 +1,69 @@ +/*--------------------------------------------------------------------*/ +/*--- Shared cycle-LUT key contract (offline generator + runtime). ---*/ +/*--- sigkey.h ---*/ +/*--------------------------------------------------------------------*/ + +/* CodSpeed extension. Defines the packed u64 lookup key shared by the LUT + * generator (callgrind/lut-gen/lib/sigkey.py) and the Capstone runtime + * (cycledecode.c). The two MUST compute identical keys; keep this file and + * lut-gen/lib/sigkey.py in lockstep (lut-gen/test_lut.py enforces it). + * + * key = (insn_id << 24) | sig + * + * insn_id is a Capstone X86_INS_* / ARM64_INS_* enumerator. sig is a 24-bit, + * id-independent signature describing the first three explicit operands, the + * effective operand width, and prefix flags. See 2026-06-09-capstone-cycle-lut.md. + */ + +#ifndef CLG_SIGKEY_H +#define CLG_SIGKEY_H + +/* operand type codes */ +#define CLG_OP_NONE 0u +#define CLG_OP_REG 1u +#define CLG_OP_MEM 2u +#define CLG_OP_IMM 3u +#define CLG_OP_OTHER 4u + +/* width class codes */ +#define CLG_W_ANY 0u +#define CLG_W_8 1u +#define CLG_W_16 2u +#define CLG_W_32 3u +#define CLG_W_64 4u +#define CLG_W_128 5u +#define CLG_W_256 6u +#define CLG_W_512 7u + +/* flag bits (lock/rep are x86-only, vec is arm64-only; they never co-occur) */ +#define CLG_F_LOCK 1u +#define CLG_F_REP 2u +#define CLG_F_VEC 4u + +/* sig field layout (24 bits) */ +#define CLG_SIG(o0, o1, o2, w, f) \ + ( (((unsigned)(o0) & 7u) << 21) \ + | (((unsigned)(o1) & 7u) << 18) \ + | (((unsigned)(o2) & 7u) << 15) \ + | (((unsigned)(w) & 15u) << 11) \ + | (((unsigned)(f) & 7u) << 8) ) + +#define CLG_CSKEY(id, sig) \ + ( ((unsigned long long)(id) << 24) | (unsigned long long)(unsigned)(sig) ) + +/* Map an operand width in bits to a width class code. */ +static inline unsigned clg_width_code(unsigned bits) +{ + switch (bits) { + case 8: return CLG_W_8; + case 16: return CLG_W_16; + case 32: return CLG_W_32; + case 64: return CLG_W_64; + case 128: return CLG_W_128; + case 256: return CLG_W_256; + case 512: return CLG_W_512; + default: return CLG_W_ANY; + } +} + +#endif /* CLG_SIGKEY_H */ diff --git a/callgrind/sim.c b/callgrind/sim.c index 3350ae93e..1daa0f4ee 100644 --- a/callgrind/sim.c +++ b/callgrind/sim.c @@ -1632,6 +1632,9 @@ void CLG_(init_eventsets)(void) CLG_(register_event_group2)(EG_SYS, "sysCount", "sysTime"); } + if (CLG_(clo).cycle_estimation) + CLG_(register_event_group)(EG_CYCLES, "Cy"); + // event set used as base for instruction self cost CLG_(sets).base = CLG_(get_event_set2)(EG_USE, EG_IR); @@ -1640,6 +1643,7 @@ void CLG_(init_eventsets)(void) CLG_(sets).full = CLG_(add_event_group2)(CLG_(sets).full, EG_BC, EG_BI); CLG_(sets).full = CLG_(add_event_group) (CLG_(sets).full, EG_BUS); CLG_(sets).full = CLG_(add_event_group2)(CLG_(sets).full, EG_ALLOC, EG_SYS); + CLG_(sets).full = CLG_(add_event_group) (CLG_(sets).full, EG_CYCLES); CLG_DEBUGIF(1) { CLG_DEBUG(1, "EventSets:\n"); @@ -1675,6 +1679,7 @@ void CLG_(init_eventsets)(void) CLG_(append_event)(CLG_(dumpmap), "sysCount"); CLG_(append_event)(CLG_(dumpmap), "sysTime"); CLG_(append_event)(CLG_(dumpmap), "sysCpuTime"); + CLG_(append_event)(CLG_(dumpmap), "Cy"); } @@ -1685,6 +1690,9 @@ static void cachesim_add_icost(SimCost cost, BBCC* bbcc, if (!CLG_(clo).simulate_cache) cost[ fullOffset(EG_IR) ] += exe_count; + if (CLG_(clo).cycle_estimation) + cost[ fullOffset(EG_CYCLES) ] += exe_count * (ULong)ii->cy_cost; + if (ii->eventset) CLG_(add_and_zero_cost2)( CLG_(sets).full, cost, ii->eventset, bbcc->cost + ii->cost_offset); diff --git a/configure.ac b/configure.ac index e55a3d3b1..5038dddca 100644 --- a/configure.ac +++ b/configure.ac @@ -1122,6 +1122,38 @@ AC_ARG_WITH(tmpdir, AC_DEFINE_UNQUOTED(VG_TMPDIR, "$tmpdir", [Temporary files directory]) AC_SUBST(VG_TMPDIR, [$tmpdir]) +#---------------------------------------------------------------------------- +# CodSpeed: optional Capstone for Callgrind per-instruction cycle estimation +#---------------------------------------------------------------------------- +# When --with-capstone=PATH is given, Callgrind's primary (native) tool is built +# with the Capstone decoder and a generated cost table (x86 or arm64, selected +# at compile time), enabling --cycle-estimation=yes. When omitted, +# CAPSTONE_CFLAGS/CAPSTONE_LIBS are empty and the feature compiles to a no-op +# stub, so the default build is unchanged. +AC_ARG_WITH(capstone, + [ --with-capstone=PATH Enable Callgrind cycle estimation (Cy/Cl) using + the Capstone decoder installed at PATH (amd64/arm64)], + [capstone_dir="$withval"], + [capstone_dir=""]) + +CAPSTONE_CFLAGS="" +CAPSTONE_LIBS="" +if test -n "$capstone_dir"; then + if test -f "$capstone_dir/lib/libcapstone.a" \ + -a -f "$capstone_dir/include/capstone/capstone.h"; then + # Fortify off: the tool links -nodefaultlibs, so glibc's __*_chk fortify + # wrappers are unavailable, and our libc shims (sprintf/snprintf/...) must + # be real definitions, not fortify macro-expansions. + CAPSTONE_CFLAGS="-DCLG_WITH_CAPSTONE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -I$capstone_dir/include" + CAPSTONE_LIBS="$capstone_dir/lib/libcapstone.a" + AC_MSG_NOTICE([Callgrind cycle estimation enabled with Capstone at $capstone_dir]) + else + AC_MSG_ERROR([--with-capstone=$capstone_dir: libcapstone.a or capstone.h not found]) + fi +fi +AC_SUBST(CAPSTONE_CFLAGS) +AC_SUBST(CAPSTONE_LIBS) + #---------------------------------------------------------------------------- # Detect xcode path #---------------------------------------------------------------------------- From 9e28cb9922b4a95493d7666a7726b9b171151493 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Fri, 12 Jun 2026 09:49:33 +0200 Subject: [PATCH 5/8] wip(callgrind): make Capstone mandatory for cycle estimation - configure: require Capstone via --with-capstone or $CAPSTONE_DIR; error if absent - cycledecode: #error instead of no-op stub when built without Capstone - flake: slim (x86+arm64) static Capstone; hardeningDisable on the devShell - ci/codspeed/release: inline cmake step builds slim static hardening-free Capstone - debian/rules: forward $CAPSTONE_DIR to configure via --with-capstone - changelog: document the build requirement --- .github/workflows/ci.yml | 25 ++++++++++++++++++ .github/workflows/codspeed.yml | 26 +++++++++++++++++++ .github/workflows/release.yml | 30 ++++++++++++++++++++-- CODSPEED-CHANGELOG.md | 6 +++++ callgrind/cycledecode.c | 31 +++------------------- configure.ac | 47 +++++++++++++++++----------------- debian/rules | 6 +++++ flake.nix | 22 +++++++++++++++- 8 files changed, 139 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ae16aa5d..3d3256730 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,6 +42,7 @@ jobs: build-essential \ automake \ autoconf \ + cmake \ libc6-dev \ gcc-multilib \ libc6-dev-i386 \ @@ -51,6 +52,30 @@ jobs: docbook-xml \ xsltproc + # Callgrind cycle estimation links a static Capstone. It must be built + # x86+arm64 only (other printers reference libc symbols the -nodefaultlibs + # tool does not shim) and without stack-protector/fortify (the tool runs + # without glibc's %fs TLS). configure picks it up via $CAPSTONE_DIR. + - name: Build Capstone (cycle-estimation decoder) + run: | + CS_VERSION=5.0.9 + CS_PREFIX="$GITHUB_WORKSPACE/.capstone" + git clone --depth 1 --branch "$CS_VERSION" \ + https://github.com/capstone-engine/capstone.git /tmp/capstone-src + cmake -S /tmp/capstone-src -B /tmp/capstone-build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCAPSTONE_ARCHITECTURE_DEFAULT=OFF \ + -DCAPSTONE_X86_SUPPORT=ON \ + -DCAPSTONE_ARM64_SUPPORT=ON \ + -DCAPSTONE_BUILD_SHARED_LIBS=OFF \ + -DCAPSTONE_BUILD_CSTOOL=OFF \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_PREFIX="$CS_PREFIX" \ + -DCMAKE_C_FLAGS="-fno-stack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -fPIC" + cmake --build /tmp/capstone-build -j"$(nproc)" + cmake --install /tmp/capstone-build + echo "CAPSTONE_DIR=$CS_PREFIX" >> "$GITHUB_ENV" + - name: Run autogen run: ./autogen.sh diff --git a/.github/workflows/codspeed.yml b/.github/workflows/codspeed.yml index 48907fc02..e69e6bb92 100644 --- a/.github/workflows/codspeed.yml +++ b/.github/workflows/codspeed.yml @@ -58,12 +58,38 @@ jobs: build-essential \ automake \ autoconf \ + cmake \ gdb \ docbook \ docbook-xsl \ docbook-xml \ xsltproc + # The local tree requires Capstone for cycle estimation. Build it x86+arm64 + # only and without stack-protector/fortify (the -nodefaultlibs tool runs + # without glibc's %fs TLS); `just build local` -> configure reads + # $CAPSTONE_DIR. Upstream release builds ignore it. + - name: Build Capstone (cycle-estimation decoder) + if: steps.valgrind-cache.outputs.cache-hit != 'true' && matrix.valgrind == 'local' + run: | + CS_VERSION=5.0.9 + CS_PREFIX="$GITHUB_WORKSPACE/.capstone" + git clone --depth 1 --branch "$CS_VERSION" \ + https://github.com/capstone-engine/capstone.git /tmp/capstone-src + cmake -S /tmp/capstone-src -B /tmp/capstone-build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCAPSTONE_ARCHITECTURE_DEFAULT=OFF \ + -DCAPSTONE_X86_SUPPORT=ON \ + -DCAPSTONE_ARM64_SUPPORT=ON \ + -DCAPSTONE_BUILD_SHARED_LIBS=OFF \ + -DCAPSTONE_BUILD_CSTOOL=OFF \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_PREFIX="$CS_PREFIX" \ + -DCMAKE_C_FLAGS="-fno-stack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -fPIC" + cmake --build /tmp/capstone-build -j"$(nproc)" + cmake --install /tmp/capstone-build + echo "CAPSTONE_DIR=$CS_PREFIX" >> "$GITHUB_ENV" + - name: Build Valgrind (${{ matrix.valgrind }}) if: steps.valgrind-cache.outputs.cache-hit != 'true' run: just build ${{ matrix.valgrind }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 10a501d3c..72166df3b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,15 +36,41 @@ jobs: - name: Install packaging deps run: sudo apt-get install -y build-essential devscripts debhelper dh-make - name: Install build deps - run: sudo apt-get install -y debhelper-compat gdb mpi-default-dev pkgconf docbook docbook-xsl docbook-xml xsltproc ${{ matrix.runner.additional-deps }} + run: sudo apt-get install -y debhelper-compat gdb mpi-default-dev pkgconf cmake docbook docbook-xsl docbook-xml xsltproc ${{ matrix.runner.additional-deps }} - name: Configure GPG Key run: echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import env: GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} + + # Callgrind cycle estimation links a static Capstone. It must be built + # x86+arm64 only (other printers reference libc symbols the -nodefaultlibs + # tool does not shim) and without stack-protector/fortify (the tool runs + # without glibc's %fs TLS). debian/rules forwards $CAPSTONE_DIR to + # configure via --with-capstone. + - name: Build Capstone (cycle-estimation decoder) + run: | + CS_VERSION=5.0.9 + CS_PREFIX="$GITHUB_WORKSPACE/.capstone" + git clone --depth 1 --branch "$CS_VERSION" \ + https://github.com/capstone-engine/capstone.git /tmp/capstone-src + cmake -S /tmp/capstone-src -B /tmp/capstone-build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCAPSTONE_ARCHITECTURE_DEFAULT=OFF \ + -DCAPSTONE_X86_SUPPORT=ON \ + -DCAPSTONE_ARM64_SUPPORT=ON \ + -DCAPSTONE_BUILD_SHARED_LIBS=OFF \ + -DCAPSTONE_BUILD_CSTOOL=OFF \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_PREFIX="$CS_PREFIX" \ + -DCMAKE_C_FLAGS="-fno-stack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -fPIC" + cmake --build /tmp/capstone-build -j"$(nproc)" + cmake --install /tmp/capstone-build + echo "CAPSTONE_DIR=$CS_PREFIX" >> "$GITHUB_ENV" + - name: Build the deb package id: build_deb run: | - debuild --no-tgz-check -nc + debuild -e CAPSTONE_DIR --no-tgz-check -nc echo "asset-path=$(find .. -name 'valgrind_*.deb')" >> "$GITHUB_OUTPUT" env: DEBEMAIL: ${{ vars.MAINTAINER_EMAIL }} diff --git a/CODSPEED-CHANGELOG.md b/CODSPEED-CHANGELOG.md index 229119c0e..f881dcb48 100644 --- a/CODSPEED-CHANGELOG.md +++ b/CODSPEED-CHANGELOG.md @@ -4,6 +4,12 @@ This file documents changes made to Valgrind for CodSpeed integration, beyond th ## Features +### Callgrind: Cycle estimation (`--cycle-estimation`) + +**Feature**: Estimates per-instruction cycle cost (`Cy`/`Cl` events) by decoding the real guest instruction with Capstone and looking it up in a generated cost table (`x86_caps_lut.inc` / `arm64_caps_lut.inc`). + +**Build requirement**: Capstone is **mandatory**. `configure` takes the decoder location from `--with-capstone=PATH` or the `CAPSTONE_DIR` environment variable (`nix develop` sets it) and fails if neither is present. Capstone must be built **x86+arm64 only** and **without stack-protector/fortify**: the Callgrind tool links `-nodefaultlibs` and runs without glibc's `%fs` TLS, so a hardened build fails to link (`undefined reference to __stack_chk_fail`, `__*_chk`) and the non-x86/arm64 instruction printers pull in libc symbols (e.g. XCore's `strtol`) the tool does not shim. The flake (`flake.nix`) and the CI workflows build Capstone this way; see `.github/workflows/`. + ### Skip `.plt.sec` in `--skip-plt` **Feature**: Added support for skipping `.plt.sec` sections when using the `--skip-plt` option. diff --git a/callgrind/cycledecode.c b/callgrind/cycledecode.c index f722bf4ae..df1a77a86 100644 --- a/callgrind/cycledecode.c +++ b/callgrind/cycledecode.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include /*------------------------------------------------------------*/ /*--- Arch selection + generated cost table -*/ @@ -346,7 +346,6 @@ long strtol(const char* s, char** end, int base) return neg ? -v : v; } - /*------------------------------------------------------------*/ /*--- Table sort + lookup -*/ /*------------------------------------------------------------*/ @@ -636,31 +635,9 @@ void clg_cycledecode_stats(unsigned long* decoded, *fallback = n_fallback; } -#else /* !CLG_WITH_CAPSTONE : cycle estimation unavailable */ - -int clg_cd_init_stage; /* diagnostic: last init step reached - (0=mem,1=open,2=malloc,9=ok) */ - -int clg_cycledecode_init(void) { return 0; } - -int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy) -{ - (void)bytes; - (void)len; - (void)cy; - return 0; -} +#else /* !CLG_WITH_CAPSTONE */ -void clg_cycledecode_stats(unsigned long* decoded, - unsigned long* matched, - unsigned long* fallback) -{ - if (decoded) - *decoded = 0; - if (matched) - *matched = 0; - if (fallback) - *fallback = 0; -} +#error \ + "Callgrind cycle estimation requires Capstone; configure with --with-capstone=PATH (or set CAPSTONE_DIR)." #endif diff --git a/configure.ac b/configure.ac index 5038dddca..4275bb3c5 100644 --- a/configure.ac +++ b/configure.ac @@ -1123,34 +1123,33 @@ AC_DEFINE_UNQUOTED(VG_TMPDIR, "$tmpdir", [Temporary files directory]) AC_SUBST(VG_TMPDIR, [$tmpdir]) #---------------------------------------------------------------------------- -# CodSpeed: optional Capstone for Callgrind per-instruction cycle estimation +# CodSpeed: mandatory Capstone for Callgrind per-instruction cycle estimation #---------------------------------------------------------------------------- -# When --with-capstone=PATH is given, Callgrind's primary (native) tool is built -# with the Capstone decoder and a generated cost table (x86 or arm64, selected -# at compile time), enabling --cycle-estimation=yes. When omitted, -# CAPSTONE_CFLAGS/CAPSTONE_LIBS are empty and the feature compiles to a no-op -# stub, so the default build is unchanged. +# Callgrind's primary (native) tool is always built with the Capstone decoder +# and a generated cost table (x86 or arm64, selected at compile time), enabling +# --cycle-estimation=yes. The decoder location comes from --with-capstone=PATH +# or, when omitted, the CAPSTONE_DIR environment variable (`nix develop` sets +# it). A build without Capstone is not supported and fails here. AC_ARG_WITH(capstone, - [ --with-capstone=PATH Enable Callgrind cycle estimation (Cy/Cl) using - the Capstone decoder installed at PATH (amd64/arm64)], + [ --with-capstone=PATH Path to the Capstone decoder install used for + Callgrind cycle estimation (Cy/Cl). Defaults to the + CAPSTONE_DIR environment variable (amd64/arm64)], [capstone_dir="$withval"], - [capstone_dir=""]) - -CAPSTONE_CFLAGS="" -CAPSTONE_LIBS="" -if test -n "$capstone_dir"; then - if test -f "$capstone_dir/lib/libcapstone.a" \ - -a -f "$capstone_dir/include/capstone/capstone.h"; then - # Fortify off: the tool links -nodefaultlibs, so glibc's __*_chk fortify - # wrappers are unavailable, and our libc shims (sprintf/snprintf/...) must - # be real definitions, not fortify macro-expansions. - CAPSTONE_CFLAGS="-DCLG_WITH_CAPSTONE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -I$capstone_dir/include" - CAPSTONE_LIBS="$capstone_dir/lib/libcapstone.a" - AC_MSG_NOTICE([Callgrind cycle estimation enabled with Capstone at $capstone_dir]) - else - AC_MSG_ERROR([--with-capstone=$capstone_dir: libcapstone.a or capstone.h not found]) - fi + [capstone_dir="$CAPSTONE_DIR"]) + +if test -z "$capstone_dir"; then + AC_MSG_ERROR([Capstone is required for Callgrind cycle estimation. Pass --with-capstone=PATH or set CAPSTONE_DIR (`nix develop` provides it).]) +fi +if test ! -f "$capstone_dir/lib/libcapstone.a" \ + -o ! -f "$capstone_dir/include/capstone/capstone.h"; then + AC_MSG_ERROR([--with-capstone=$capstone_dir: libcapstone.a or capstone.h not found]) fi +# Fortify off: the tool links -nodefaultlibs, so glibc's __*_chk fortify +# wrappers are unavailable, and our libc shims (sprintf/snprintf/...) must +# be real definitions, not fortify macro-expansions. +CAPSTONE_CFLAGS="-DCLG_WITH_CAPSTONE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -I$capstone_dir/include" +CAPSTONE_LIBS="$capstone_dir/lib/libcapstone.a" +AC_MSG_NOTICE([Callgrind cycle estimation enabled with Capstone at $capstone_dir]) AC_SUBST(CAPSTONE_CFLAGS) AC_SUBST(CAPSTONE_LIBS) diff --git a/debian/rules b/debian/rules index 7a49a64ad..b3229d428 100644 --- a/debian/rules +++ b/debian/rules @@ -28,6 +28,12 @@ ifeq ($(DEB_HOST_ARCH_CPU),arm64) CONFARGS += --enable-only64bit endif +# Callgrind cycle estimation requires Capstone; the release workflow builds a +# static decoder and exports its prefix as CAPSTONE_DIR. +ifneq ($(CAPSTONE_DIR),) + CONFARGS += --with-capstone=$(CAPSTONE_DIR) +endif + %: dh $@ diff --git a/flake.nix b/flake.nix index ec6ddea8b..277c0c31d 100644 --- a/flake.nix +++ b/flake.nix @@ -13,11 +13,21 @@ let pkgs = import nixpkgs { inherit system; }; + # Capstone for the Callgrind cycle-estimation decoder, built the same way + # as the CI workflows (see .github/workflows): x86 + arm64 only, static. + # # Valgrind tools run without glibc's %fs TLS and link -nodefaultlibs, so # Capstone must be built without stack-protector (its %fs:0x28 canary # read faults at runtime) and without fortify (pulls __*_chk libc - # symbols). hardeningDisable drops both at the source. + # symbols); hardeningDisable drops both. Limiting the architectures also + # drops the non-x86/arm64 instruction printers that reference libc + # symbols (e.g. XCore's strtol) the tool does not shim. capstone = pkgs.capstone.overrideAttrs (old: { + cmakeFlags = (old.cmakeFlags or [ ]) ++ [ + "-DCAPSTONE_ARCHITECTURE_DEFAULT=OFF" + "-DCAPSTONE_X86_SUPPORT=ON" + "-DCAPSTONE_ARM64_SUPPORT=ON" + ]; hardeningDisable = (old.hardeningDisable or [ ]) ++ [ "stackprotector" "fortify" @@ -31,6 +41,16 @@ packages.capstone = capstone; devShells.default = pkgs.mkShell { + # Valgrind tool objects link -nodefaultlibs and run without glibc's %fs + # TLS, so the toolchain must not inject stack-protector or fortify + # (__*_chk) into them. The compiler wrapper otherwise re-adds these + # over our -fno-stack-protector / -D_FORTIFY_SOURCE=0 flags. + hardeningDisable = [ + "stackprotector" + "fortify" + "fortify3" + ]; + packages = [ capstone pkgs.python3 From 72303877bfacde5014b2ac3a64c035c953e57acb Mon Sep 17 00:00:00 2001 From: not-matthias Date: Fri, 12 Jun 2026 16:46:57 +0200 Subject: [PATCH 6/8] ci(callgrind): build 64-bit only so cycle estimation works without 32-bit Capstone The amd64 host builds both the primary (amd64) tool and a 32-bit x86 secondary tool, but Capstone is only built 64-bit, so CLG_WITH_CAPSTONE is set only for the primary build. The secondary build compiled cycledecode.c without it and tripped the mandatory-Capstone #error. CodSpeed only ever runs the 64-bit tool, so build 64-bit only everywhere: add --enable-only64bit to the CI configure, the release deb (debian/rules, now unconditional), and the Justfile, and drop the now-unneeded gcc-multilib / libc6-dev-i386 deps. This also roughly halves build time by skipping the entire 32-bit toolchain. --- .github/workflows/ci.yml | 7 ++++--- .github/workflows/release.yml | 4 +--- Justfile | 5 ++++- debian/rules | 8 ++++---- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d3256730..0080f10e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,8 +44,6 @@ jobs: autoconf \ cmake \ libc6-dev \ - gcc-multilib \ - libc6-dev-i386 \ gdb \ docbook \ docbook-xsl \ @@ -79,8 +77,11 @@ jobs: - name: Run autogen run: ./autogen.sh + # CodSpeed only runs the 64-bit tool, and cycle estimation needs a + # 64-bit Capstone, so skip the 32-bit secondary build entirely. This + # halves build time and avoids compiling cycledecode.c without Capstone. - name: Configure - run: ./configure + run: ./configure --enable-only64bit - name: Build Valgrind run: make -j$(nproc) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 72166df3b..998e978cb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,11 +16,9 @@ jobs: - architecture: amd64 platform: ubuntu-22.04 ubuntu-version: 22.04 - additional-deps: gcc-multilib libc6-dev-i386 - architecture: amd64 platform: ubuntu-24.04 ubuntu-version: 24.04 - additional-deps: gcc-multilib libc6-dev-i386 - architecture: arm64 platform: codspeedhq-arm64-ubuntu-22.04 ubuntu-version: 22.04 @@ -36,7 +34,7 @@ jobs: - name: Install packaging deps run: sudo apt-get install -y build-essential devscripts debhelper dh-make - name: Install build deps - run: sudo apt-get install -y debhelper-compat gdb mpi-default-dev pkgconf cmake docbook docbook-xsl docbook-xml xsltproc ${{ matrix.runner.additional-deps }} + run: sudo apt-get install -y debhelper-compat gdb mpi-default-dev pkgconf cmake docbook docbook-xsl docbook-xml xsltproc - name: Configure GPG Key run: echo -n "$GPG_SIGNING_KEY" | base64 --decode | gpg --import env: diff --git a/Justfile b/Justfile index 916036cba..72204d303 100644 --- a/Justfile +++ b/Justfile @@ -30,7 +30,10 @@ build-in dir: ./autogen.sh fi - ./configure + # 64-bit only: CodSpeed runs the 64-bit tool, and cycle estimation needs a + # 64-bit Capstone, so the 32-bit secondary build (which has no Capstone) is + # skipped. + ./configure --enable-only64bit make include/vgversion.h make -j$(nproc) -C VEX make -j$(nproc) -C coregrind diff --git a/debian/rules b/debian/rules index b3229d428..c7caefdfe 100644 --- a/debian/rules +++ b/debian/rules @@ -20,14 +20,14 @@ else DH_STRIP_OPTS := endif +# CodSpeed only runs the 64-bit tool, and cycle estimation requires a 64-bit +# Capstone, so build 64-bit only on every arch. This also avoids compiling the +# 32-bit secondary's cycledecode.c, which has no Capstone. CONFARGS = \ --enable-tls \ + --enable-only64bit \ --with-gdbscripts-dir=/usr/share/gdb/auto-load -ifeq ($(DEB_HOST_ARCH_CPU),arm64) - CONFARGS += --enable-only64bit -endif - # Callgrind cycle estimation requires Capstone; the release workflow builds a # static decoder and exports its prefix as CAPSTONE_DIR. ifneq ($(CAPSTONE_DIR),) From 782c41c4d637d2368bd7aa0aebd3830ad2289e1a Mon Sep 17 00:00:00 2001 From: not-matthias Date: Fri, 12 Jun 2026 16:52:47 +0200 Subject: [PATCH 7/8] fixup! feat(callgrind): cycle-estimation runtime (Capstone decode + cost LUT) --- callgrind/cycledecode.h | 4 ++++ callgrind/main.c | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/callgrind/cycledecode.h b/callgrind/cycledecode.h index 312c688d5..df3d2cdeb 100644 --- a/callgrind/cycledecode.h +++ b/callgrind/cycledecode.h @@ -22,6 +22,10 @@ * startup before clg_cycle_cost(). */ int clg_cycledecode_init(void); +/* Diagnostic: the last init step clg_cycledecode_init() reached (higher is + * further). Read after a failed init to report where Capstone setup stopped. */ +extern int clg_cd_init_stage; + /* Decode the guest instruction in [bytes, bytes+len) and return its estimated * cost in centi-cycles (1 cycle = 100): *cy = reciprocal throughput. Returns 1 * on a table hit, 0 on decode failure or table miss. The caller decides which diff --git a/callgrind/main.c b/callgrind/main.c index f142e140c..46332168a 100644 --- a/callgrind/main.c +++ b/callgrind/main.c @@ -2133,7 +2133,6 @@ void CLG_(post_clo_init)(void) CLG_(init_dumps)(); if (CLG_(clo).cycle_estimation && !clg_cycledecode_init()) { - extern int clg_cd_init_stage; VG_(message)(Vg_UserMsg, "--cycle-estimation=yes needs a Capstone build " "(amd64/arm64 guest); disabling it. [init stage %d]\n", From 6f9adb93bc1ba7a58993d4938d2cbf0c5638d8a8 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Mon, 15 Jun 2026 18:07:17 +0200 Subject: [PATCH 8/8] fixup! feat(callgrind): cycle-estimation runtime (Capstone decode + cost LUT) --- callgrind/bbcc.c | 14 +- callgrind/clo.c | 2 +- callgrind/cycledecode.c | 332 ++++++++++------------------------------ callgrind/cycledecode.h | 12 +- callgrind/global.h | 16 +- callgrind/main.c | 26 ++-- callgrind/sim.c | 11 +- 7 files changed, 135 insertions(+), 278 deletions(-) diff --git a/callgrind/bbcc.c b/callgrind/bbcc.c index d4fa93631..502450d99 100644 --- a/callgrind/bbcc.c +++ b/callgrind/bbcc.c @@ -613,10 +613,11 @@ void CLG_(setup_bbcc)(BB* bb) CLG_(current_state).cost[ fullOffset(EG_IR) ] += instr_count; } /* inclusive cycle cost: cache-independent, so updated in both modes. - * cy_incl is the running sum up to the side exit taken. */ + * ct_incl/cl_incl are the running sums up to the side exit taken. */ if (CLG_(clo).cycle_estimation) { InstrInfo* ii = &last_bb->instr[ last_bb->jmp[passed].instr ]; - CLG_(current_state).cost[ fullOffset(EG_CYCLES) ] += ii->cy_incl; + CLG_(current_state).cost[ fullOffset(EG_CYCLES) ] += ii->ct_incl; + CLG_(current_state).cost[ fullOffset(EG_CYCLES)+1 ] += ii->cl_incl; } } else { @@ -631,9 +632,12 @@ void CLG_(setup_bbcc)(BB* bb) } if (CLG_(clo).cycle_estimation) { InstrInfo* ii = &last_bb->instr[ last_bb->jmp[passed].instr ]; - CLG_(current_state).cost[ fullOffset(EG_CYCLES) ] += ii->cy_incl; - CLG_(current_state).nonskipped->skipped[ fullOffset(EG_CYCLES) ] - += ii->cy_incl; + CLG_(current_state).cost[ fullOffset(EG_CYCLES) ] += ii->ct_incl; + CLG_(current_state).cost[ fullOffset(EG_CYCLES)+1 ] += ii->cl_incl; + CLG_(current_state).nonskipped->skipped[ fullOffset(EG_CYCLES) ] + += ii->ct_incl; + CLG_(current_state).nonskipped->skipped[ fullOffset(EG_CYCLES)+1 ] + += ii->cl_incl; } } } diff --git a/callgrind/clo.c b/callgrind/clo.c index 4cf1ca90f..90bd6c4ff 100644 --- a/callgrind/clo.c +++ b/callgrind/clo.c @@ -609,7 +609,7 @@ void CLG_(print_usage)(void) " --toggle-collect= Toggle collection on enter/leave function\n" " --collect-jumps=no|yes Collect jumps? [no]\n" " --collect-bus=no|yes Collect global bus events? [no]\n" -" --cycle-estimation=no|yes Estimate per-instruction cycles (Cy)? [no]\n" +" --cycle-estimation=no|yes Estimate per-instruction cycles (Ct/Cl)? [no]\n" #if CLG_EXPERIMENTAL " --collect-alloc=no|yes Collect memory allocation info? [no]\n" #endif diff --git a/callgrind/cycledecode.c b/callgrind/cycledecode.c index df1a77a86..fc19248f1 100644 --- a/callgrind/cycledecode.c +++ b/callgrind/cycledecode.c @@ -16,12 +16,12 @@ * Capstone's and Valgrind's type definitions. * * It is linked into a tool built with -nodefaultlibs. Capstone is driven with - * cs_malloc + cs_disasm_iter so all allocation happens at init; a static bump - * arena backs malloc/calloc/realloc/free. The few other libc symbols Capstone - * references are shimmed below (coregrind already supplies memcpy/memset/ - * memmove). Capstone fills the structured operand detail during decode - * independently of the op_str text, so the vsnprintf shim only needs to be - * safe, not faithful. + * cs_malloc + cs_disasm_iter so all allocation happens at init. The plain libc + * symbols Capstone references are provided below by forwarding to coregrind's + * own freestanding libc (the vgPlain_* functions, already linked into every + * tool; coregrind/m_main.c does the same for memcpy/memset/memmove). Capstone + * fills the structured operand detail during decode independently of the + * op_str text, which this code never reads. */ #include "cycledecode.h" @@ -81,270 +81,104 @@ static cs_insn* insn; static unsigned long n_decoded, n_matched, n_fallback; /*------------------------------------------------------------*/ -/*--- Freestanding libc shims for Capstone -*/ +/*--- libc for Capstone: forward to Valgrind's own libc -*/ /*------------------------------------------------------------*/ -/* These replace libc for Capstone: the tool links -nodefaultlibs. */ - -/* Bump arena: Capstone (via cs_open/cs_malloc) allocates only during init. */ -static unsigned char arena[1u << 20]; -static size_t arena_off; - -void* malloc(size_t n) -{ - n = (n + 15u) & ~(size_t)15u; - if (arena_off + n > sizeof arena) - return 0; - void* p = &arena[arena_off]; - arena_off += n; - return p; -} +/* The tool links -nodefaultlibs, so the plain libc names Capstone references + * must be provided in-tree. Rather than reimplement them, forward to + * coregrind's freestanding libc (the vgPlain_* symbols, linked into every + * tool); coregrind/m_main.c forwards memcpy/memmove/memset the same way. + * + * The pub_tool_* headers are deliberately not included here (to avoid clashes + * with Capstone's types), so the VG_() macro is unavailable and the symbols + * are named directly: VG_(x) expands to vgPlain_##x. On the LP64 targets this + * tool builds for, char==HChar, unsigned long==SizeT==size_t, int==Int and + * unsigned int==UInt, so these prototypes are ABI-identical to coregrind's + * definitions and resolve intra-binary at link time. */ + +extern void* vgPlain_malloc(const char* cc, unsigned long n); +extern void* +vgPlain_calloc(const char* cc, unsigned long n, unsigned long elem); +extern void* vgPlain_realloc(const char* cc, void* p, unsigned long n); +extern void vgPlain_free(void* p); +extern unsigned int +vgPlain_vsnprintf(char* buf, int size, const char* fmt, va_list ap); +extern unsigned int vgPlain_vsprintf(char* buf, const char* fmt, va_list ap); +extern unsigned int vgPlain_vprintf(const char* fmt, va_list ap); +extern unsigned long vgPlain_strlen(const char* s); +extern int vgPlain_strcmp(const char* a, const char* b); +extern int vgPlain_strncmp(const char* a, const char* b, unsigned long n); +extern char* vgPlain_strcpy(char* d, const char* s); +extern char* vgPlain_strncpy(char* d, const char* s, unsigned long n); +extern char* vgPlain_strchr(const char* s, char c); +extern char* vgPlain_strrchr(const char* s, char c); +extern char* vgPlain_strstr(const char* h, const char* n); + +static const char* const CLG_CD_CC = "clg.cycledecode"; + +void* malloc(size_t n) { return vgPlain_malloc(CLG_CD_CC, n); } void* calloc(size_t nmemb, size_t sz) { - size_t n = nmemb * sz; - void* p = malloc(n); - if (p) - memset(p, 0, n); - return p; -} -void* realloc(void* old, size_t n) -{ - /* Old size is unknown; copy n bytes (stays within the arena array, so no - * fault) and leak the old block. Rarely hit under cs_disasm_iter. */ - void* p = malloc(n); - if (p && old) - memcpy(p, old, n); - return p; + return vgPlain_calloc(CLG_CD_CC, nmemb, sz); } -void free(void* p) { (void)p; } +void* realloc(void* p, size_t n) { return vgPlain_realloc(CLG_CD_CC, p, n); } +void free(void* p) { vgPlain_free(p); } -/* Safe, bounded, deliberately minimal vsnprintf: handles %%, %c, %s and the - * integer conversions (d/i/u/x/X/p) with l/ll/h length modifiers. The output - * string is never consumed for cost lookup, so exact formatting is not - * required; correctness here means "always NUL-terminates, never overruns". */ +/* Capstone passes only small fixed buffer sizes; the clamp guards the + * size_t -> int narrowing, it is not a real truncation path. */ int vsnprintf(char* buf, size_t size, const char* fmt, va_list ap) { - size_t n = 0; -#define PUT(c) \ - do { \ - if (n + 1 < size) \ - buf[n] = (char)(c); \ - n++; \ - } while (0) - for (const char* p = fmt; *p; p++) { - if (*p != '%') { - PUT(*p); - continue; - } - p++; - while (*p == '#' || *p == '0' || *p == '-' || *p == '+' || *p == ' ') - p++; - while (*p >= '0' && *p <= '9') - p++; - int lng = 0; - while (*p == 'l') { - lng++; - p++; - } - while (*p == 'h') - p++; - char c = *p; - if (c == '%') { - PUT('%'); - continue; - } - if (c == 'c') { - PUT(va_arg(ap, int)); - continue; - } - if (c == 's') { - const char* s = va_arg(ap, const char*); - if (!s) - s = "(null)"; - while (*s) - PUT(*s++); - continue; - } - if (c == 'd' || c == 'i' || c == 'u' || c == 'x' || c == 'X' || - c == 'p') { - unsigned long long v; - int neg = 0, base = (c == 'x' || c == 'X' || c == 'p') ? 16 : 10; - if (c == 'd' || c == 'i') { - long long s = (lng >= 2) ? va_arg(ap, long long) - : (lng == 1) ? va_arg(ap, long) - : va_arg(ap, int); - if (s < 0) { - neg = 1; - v = (unsigned long long)(-s); - } else - v = (unsigned long long)s; - } else if (c == 'p') { - v = (unsigned long long)(size_t)va_arg(ap, void*); - } else { - v = (lng >= 2) ? va_arg(ap, unsigned long long) - : (lng == 1) ? va_arg(ap, unsigned long) - : va_arg(ap, unsigned); - } - char tmp[24]; - int ti = 0; - const char* digits = - (c == 'X') ? "0123456789ABCDEF" : "0123456789abcdef"; - if (v == 0) - tmp[ti++] = '0'; - while (v) { - tmp[ti++] = digits[v % base]; - v /= base; - } - if (neg) - PUT('-'); - while (ti) - PUT(tmp[--ti]); - continue; - } - /* Unknown conversion: emit literally so nothing is lost silently. */ - PUT('%'); - PUT(c); - } - if (size) - buf[(n < size) ? n : size - 1] = '\0'; -#undef PUT - return (int)n; -} - -/* Error-path stubs Capstone references (never hit during cost lookup). */ -FILE* stderr = 0; - -size_t fwrite(const void* p, size_t s, size_t n, FILE* f) -{ - (void)p; - (void)s; - (void)f; - return n; -} -int puts(const char* s) -{ - (void)s; - return 0; -} -int printf(const char* fmt, ...) -{ - (void)fmt; - return 0; + int sz = (size > (size_t)0x7fffffff) ? 0x7fffffff : (int)size; + return (int)vgPlain_vsnprintf(buf, sz, fmt, ap); } - -int sprintf(char* str, const char* fmt, ...) +int sprintf(char* buf, const char* fmt, ...) { va_list ap; va_start(ap, fmt); - int r = vsnprintf(str, (size_t)-1, fmt, ap); + int r = (int)vgPlain_vsprintf(buf, fmt, ap); va_end(ap); return r; } -/* String shims (coregrind supplies memcpy/memset/memmove). */ -size_t strlen(const char* s) -{ - size_t n = 0; - while (s[n]) - n++; - return n; -} -int strcmp(const char* a, const char* b) +/* Capstone calls printf/puts only on internal fatal-error paths; forward them + * to the Valgrind log so the failure is visible rather than swallowed. */ +int printf(const char* fmt, ...) { - while (*a && *a == *b) { - a++; - b++; - } - return (int)(unsigned char)*a - (int)(unsigned char)*b; + va_list ap; + va_start(ap, fmt); + unsigned int r = vgPlain_vprintf(fmt, ap); + va_end(ap); + return (int)r; } -int strncmp(const char* a, const char* b, size_t n) +int puts(const char* s) { return printf("%s\n", s); } + +/* Capstone's SStream references stderr/fwrite on a buffer-overflow guard in the + * op_str text path (which this code never reads). Valgrind has no FILE* layer, + * so stderr is a sentinel and fwrite routes the bytes to the Valgrind log fd, + * making such an overflow visible rather than swallowed. */ +extern int vgPlain_write(int fd, const void* buf, int count); +FILE* stderr = 0; +size_t fwrite(const void* p, size_t size, size_t nmemb, FILE* f) { - for (size_t i = 0; i < n; i++) { - if (a[i] != b[i]) - return (int)(unsigned char)a[i] - (int)(unsigned char)b[i]; - if (!a[i]) - break; - } - return 0; + (void)f; + vgPlain_write(2, p, (int)(size * nmemb)); + return nmemb; } -char* strcpy(char* d, const char* s) + +size_t strlen(const char* s) { return vgPlain_strlen(s); } +int strcmp(const char* a, const char* b) { return vgPlain_strcmp(a, b); } +int strncmp(const char* a, const char* b, size_t n) { - char* r = d; - while ((*d++ = *s++)) { - } - return r; + return vgPlain_strncmp(a, b, n); } +char* strcpy(char* d, const char* s) { return vgPlain_strcpy(d, s); } char* strncpy(char* d, const char* s, size_t n) { - size_t i = 0; - for (; i < n && s[i]; i++) - d[i] = s[i]; - for (; i < n; i++) - d[i] = 0; - return d; -} -char* strchr(const char* s, int c) -{ - for (; *s; s++) - if (*s == (char)c) - return (char*)s; - return (c == 0) ? (char*)s : 0; -} -char* strrchr(const char* s, int c) -{ - const char* last = 0; - for (; *s; s++) - if (*s == (char)c) - last = s; - return (char*)((c == 0) ? s : last); -} -char* strstr(const char* h, const char* n) -{ - if (!*n) - return (char*)h; - for (; *h; h++) { - const char *a = h, *b = n; - while (*a && *b && *a == *b) { - a++; - b++; - } - if (!*b) - return (char*)h; - } - return 0; -} -long strtol(const char* s, char** end, int base) -{ - long v = 0; - int neg = 0; - while (*s == ' ' || *s == '\t') - s++; - if (*s == '-') { - neg = 1; - s++; - } else if (*s == '+') - s++; - if (base == 16 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) - s += 2; - for (;;) { - int d; - if (*s >= '0' && *s <= '9') - d = *s - '0'; - else if (*s >= 'a' && *s <= 'f') - d = *s - 'a' + 10; - else if (*s >= 'A' && *s <= 'F') - d = *s - 'A' + 10; - else - break; - if (d >= base) - break; - v = v * base + d; - s++; - } - if (end) - *end = (char*)s; - return neg ? -v : v; + return vgPlain_strncpy(d, s, n); } +char* strchr(const char* s, int c) { return vgPlain_strchr(s, (char)c); } +char* strrchr(const char* s, int c) { return vgPlain_strrchr(s, (char)c); } +char* strstr(const char* h, const char* n) { return vgPlain_strstr(h, n); } /*------------------------------------------------------------*/ /*--- Table sort + lookup -*/ @@ -595,7 +429,10 @@ int clg_cycledecode_init(void) return 1; } -int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy) +int clg_cycle_cost(const unsigned char* bytes, + unsigned len, + unsigned* ct, + unsigned* cl) { const uint8_t* code = (const uint8_t*)bytes; size_t size = len; @@ -618,7 +455,8 @@ int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy) return 0; } - *cy = row->cy; /* the LUT still carries row->cl; the caller only uses cy */ + *ct = row->cy; /* throughput-bound (reciprocal throughput) */ + *cl = row->cl; /* latency-bound */ n_matched++; return 1; } diff --git a/callgrind/cycledecode.h b/callgrind/cycledecode.h index df3d2cdeb..d297e8252 100644 --- a/callgrind/cycledecode.h +++ b/callgrind/cycledecode.h @@ -27,10 +27,14 @@ int clg_cycledecode_init(void); extern int clg_cd_init_stage; /* Decode the guest instruction in [bytes, bytes+len) and return its estimated - * cost in centi-cycles (1 cycle = 100): *cy = reciprocal throughput. Returns 1 - * on a table hit, 0 on decode failure or table miss. The caller decides which - * fallback cost to charge. */ -int clg_cycle_cost(const unsigned char* bytes, unsigned len, unsigned* cy); + * cost in centi-cycles (1 cycle = 100): *ct = reciprocal throughput + * (throughput- bound), *cl = latency (latency-bound). Returns 1 on a table hit, + * 0 on decode failure or table miss. The caller decides which fallback cost to + * charge. */ +int clg_cycle_cost(const unsigned char* bytes, + unsigned len, + unsigned* ct, + unsigned* cl); /* Diagnostic counters since init. */ void clg_cycledecode_stats(unsigned long* decoded, diff --git a/callgrind/global.h b/callgrind/global.h index 8c000f465..10d4c53b1 100644 --- a/callgrind/global.h +++ b/callgrind/global.h @@ -116,7 +116,7 @@ struct _CommandLineOptions { Bool instrument_atstart; /* Instrument at start? */ Bool simulate_cache; /* Call into cache simulator ? */ Bool simulate_branch; /* Call into branch prediction simulator ? */ - Bool cycle_estimation; /* Estimate per-instruction cycles (Cy) ? */ + Bool cycle_estimation; /* Estimate per-instruction cycles (Ct/Cl) ? */ /* Call graph generation */ Bool pop_on_jump; /* Handle a jump between functions as ret+call */ @@ -261,11 +261,13 @@ struct _InstrInfo { UInt cost_offset; EventSet* eventset; /* Cycle estimation (only filled when --cycle-estimation=yes), centi-cycles. - * cy_cost = this instruction's own throughput cost; cy_incl is the running - * sum over instr[0..this] in the BB, used for the inclusive (call-graph) cost - * update at each side exit. */ - UInt cy_cost; - UInt cy_incl; + * ct_cost/cl_cost = this instruction's own throughput-bound / latency-bound cost; + * ct_incl/cl_incl are the running sums over instr[0..this] in the BB, used for the + * inclusive (call-graph) cost update at each side exit. */ + UInt ct_cost; + UInt ct_incl; + UInt cl_cost; + UInt cl_incl; }; @@ -675,7 +677,7 @@ struct cachesim_if #define EG_BUS 6 #define EG_ALLOC 7 #define EG_SYS 8 -#define EG_CYCLES 9 /* estimated cycles: Cy (reciprocal throughput) */ +#define EG_CYCLES 9 /* estimated cycles: Ct (reciprocal throughput) + Cl (latency) */ struct event_sets { EventSet *base, *full; diff --git a/callgrind/main.c b/callgrind/main.c index 46332168a..5c7afcd95 100644 --- a/callgrind/main.c +++ b/callgrind/main.c @@ -791,8 +791,10 @@ InstrInfo* next_InstrInfo ( ClgState* clgs, UInt instr_size ) ii->instr_size = instr_size; ii->cost_offset = 0; ii->eventset = 0; - ii->cy_cost = 0; - ii->cy_incl = 0; + ii->ct_cost = 0; + ii->ct_incl = 0; + ii->cl_cost = 0; + ii->cl_incl = 0; } clgs->ii_index++; @@ -1047,13 +1049,15 @@ IRSB* CLG_(instrument)( VgCallbackClosure* closure, // Estimate this instruction's cycle cost by decoding the real // guest bytes. Only on first translation; values persist in the BB. if (CLG_(clo).cycle_estimation && !clgs.seen_before) { - unsigned cy = 0; + unsigned ct = 0, cl = 0; if (!clg_cycle_cost((const unsigned char*)cia, st->Ist.IMark.len ? st->Ist.IMark.len : isize, - &cy)) { - cy = 100; + &ct, &cl)) { + ct = 100; + cl = 100; } - curr_inode->cy_cost = cy; + curr_inode->ct_cost = ct; + curr_inode->cl_cost = cl; } addEvent_Ir( &clgs, curr_inode ); @@ -1362,10 +1366,12 @@ IRSB* CLG_(instrument)( VgCallbackClosure* closure, /* Running sums of per-instruction cycle cost, so the inclusive * (call-graph) cost at each side exit is an O(1) lookup in setup_bbcc. */ if (CLG_(clo).cycle_estimation) { - UInt cy = 0; + UInt ct = 0, cl = 0; for (i = 0; i < clgs.bb->instr_count; i++) { - cy += clgs.bb->instr[i].cy_cost; - clgs.bb->instr[i].cy_incl = cy; + ct += clgs.bb->instr[i].ct_cost; + clgs.bb->instr[i].ct_incl = ct; + cl += clgs.bb->instr[i].cl_cost; + clgs.bb->instr[i].cl_incl = cl; } } } @@ -2037,7 +2043,7 @@ void finish(void) if (fallback > 0) VG_(umsg)("\nWARNING: cycle-estimation: %lu of %lu decoded instructions " "had no cost-table match and were charged the default 1.00 " - "cycle, so Cy is approximate.\n", + "cycle, so Ct/Cl are approximate.\n", fallback, decoded); } } diff --git a/callgrind/sim.c b/callgrind/sim.c index 1daa0f4ee..db3f9bef1 100644 --- a/callgrind/sim.c +++ b/callgrind/sim.c @@ -1633,7 +1633,7 @@ void CLG_(init_eventsets)(void) } if (CLG_(clo).cycle_estimation) - CLG_(register_event_group)(EG_CYCLES, "Cy"); + CLG_(register_event_group2)(EG_CYCLES, "Ct", "Cl"); // event set used as base for instruction self cost CLG_(sets).base = CLG_(get_event_set2)(EG_USE, EG_IR); @@ -1679,7 +1679,8 @@ void CLG_(init_eventsets)(void) CLG_(append_event)(CLG_(dumpmap), "sysCount"); CLG_(append_event)(CLG_(dumpmap), "sysTime"); CLG_(append_event)(CLG_(dumpmap), "sysCpuTime"); - CLG_(append_event)(CLG_(dumpmap), "Cy"); + CLG_(append_event)(CLG_(dumpmap), "Ct"); + CLG_(append_event)(CLG_(dumpmap), "Cl"); } @@ -1690,8 +1691,10 @@ static void cachesim_add_icost(SimCost cost, BBCC* bbcc, if (!CLG_(clo).simulate_cache) cost[ fullOffset(EG_IR) ] += exe_count; - if (CLG_(clo).cycle_estimation) - cost[ fullOffset(EG_CYCLES) ] += exe_count * (ULong)ii->cy_cost; + if (CLG_(clo).cycle_estimation) { + cost[ fullOffset(EG_CYCLES) ] += exe_count * (ULong)ii->ct_cost; + cost[ fullOffset(EG_CYCLES)+1 ] += exe_count * (ULong)ii->cl_cost; + } if (ii->eventset) CLG_(add_and_zero_cost2)( CLG_(sets).full, cost,