From fbab6239d9c799d161a447efb27af2870860f803 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 16:01:52 +0200 Subject: [PATCH 1/4] 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 baac49f147801f939deddc90a4100ae27079211e Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 19:23:37 +0200 Subject: [PATCH 2/4] 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/lut-gen/README.md | 78 + callgrind/lut-gen/arm64/gen_arm64_lut.py | 118 + callgrind/lut-gen/arm64/insn_bench_to_xml.py | 122 + callgrind/lut-gen/arm64/merge_arm64_lut.py | 135 + callgrind/lut-gen/lib/gen_common.py | 95 + callgrind/lut-gen/lib/sigkey.py | 170 + callgrind/lut-gen/test_lut.py | 258 + callgrind/lut-gen/x86/gen_x86_lut.py | 278 + callgrind/x86_caps_lut.inc | 6973 ++++++++++++++++++ 10 files changed, 10330 insertions(+) create mode 100644 callgrind/arm64_caps_lut.inc create mode 100644 callgrind/lut-gen/README.md create mode 100644 callgrind/lut-gen/arm64/gen_arm64_lut.py create mode 100644 callgrind/lut-gen/arm64/insn_bench_to_xml.py create mode 100644 callgrind/lut-gen/arm64/merge_arm64_lut.py create mode 100644 callgrind/lut-gen/lib/gen_common.py create mode 100644 callgrind/lut-gen/lib/sigkey.py create mode 100644 callgrind/lut-gen/test_lut.py create mode 100644 callgrind/lut-gen/x86/gen_x86_lut.py 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/lut-gen/README.md b/callgrind/lut-gen/README.md new file mode 100644 index 000000000..420c190e4 --- /dev/null +++ b/callgrind/lut-gen/README.md @@ -0,0 +1,78 @@ +# lut-gen + +Offline generators for Callgrind's `--cycle-estimation` cost tables. They emit +the `*_caps_lut.inc` files in `callgrind/`, which `cycledecode.c` `#include`s and +looks up by the packed key defined in `callgrind/sigkey.h`. + +``` +lib/sigkey.h* ─────────┐ (*../sigkey.h — the C key contract the runtime keys from) + ├─ MUST agree ──► test_lut.py +lib/sigkey.py ──────────┘ (Python mirror; the generators key from it) +lib/gen_common.py (arch-independent generator steps) + │ + ├─ x86/gen_x86_lut.py ─────────────────────────────► ../x86_caps_lut.inc + │ (Zen4, from uops.info instructions.xml) + │ + └─ arm64/insn_bench_to_xml.py ─► gen_arm64_lut.py ─► merge_arm64_lut.py ─► ../arm64_caps_lut.inc + (ocxtal markdown) (measured base) (+ embedded SUPPLEMENT) +``` + +Layout: `lib/` holds the shared importables; each arch has its own folder; the +cross-arch `test_lut.py` and this README stay at the top. The two arches are kept +as **separate** generators on purpose: x86 reads structured per-operand +uops.info data (precise signatures) and carries Zen4 correctness fixes, while +arm64 derives signatures heuristically from mnemonic suffixes and category hints. +They share only `lib/` (the key contract + common steps). + +The committed arm64 table is **measured** data from +[ocxtal/insn_bench_aarch64](https://github.com/ocxtal/insn_bench_aarch64) (MIT) +for the Cortex-A72 (NXP LX2160A), with a small guide-derived supplement grafted +on for the ops that benchmark doesn't cover (see below). + +## Regenerate + +The committed `.inc` files are the consumed artifacts; only regenerate when the +source data or generator logic changes, then rebuild callgrind. + +Run these from this `lut-gen/` directory (so `../*.inc` resolves to `callgrind/`). + +```bash +# x86 (Zen4) +uv run --no-project x86/gen_x86_lut.py \ + --xml ~/Downloads/instructions.xml --uarch ZEN4 \ + --caps-header /path/to/capstone/x86.h \ + --out ../x86_caps_lut.inc + +# arm64 (Cortex-A72, measured) — fetch the ocxtal results, convert, generate, merge +gh api repos/ocxtal/insn_bench_aarch64/contents/results/nxp_lx2160a_a72.md \ + --jq .content | base64 -d > /tmp/nxp_lx2160a_a72.md +uv run --no-project arm64/insn_bench_to_xml.py --md /tmp/nxp_lx2160a_a72.md --out /tmp/a72.xml +uv run --no-project arm64/gen_arm64_lut.py \ + --xml /tmp/a72.xml --uarch INSNBENCH \ + --caps-header /path/to/capstone/arm64.h --out /tmp/a72-base.inc +uv run --no-project arm64/merge_arm64_lut.py \ + --base /tmp/a72-base.inc --out ../arm64_caps_lut.inc # SUPPLEMENT is embedded + +make -C .. # recompiles cycledecode.c + relinks +``` + +The capstone header must match the version the tool links, so the `X86_INS_*` / +`ARM64_INS_*` enumerators resolve at compile time. The arm64 table is only +compiled into an **aarch64** build (amd64 builds use the x86 table). + +## Test + +```bash +uv run --no-project -m pytest test_lut.py -q # or: uv run --no-project test_lut.py +``` + +`test_lut.py` reads only committed artifacts (no Capstone needed). It checks: +- `sigkey.py` operand/width/flag codes and the `CLG_SIG` bit layout match + `sigkey.h` (the lockstep guard); +- cost non-negativity (measured data legitimately has `cy > cl` for + non-pipelined ops like FSQRT and branches, so `cy <= cl` is NOT required); +- flag bits are arch-appropriate (LOCK/REP x86-only, VEC arm64-only); +- arm64 widths are runtime-keyable (no dead `>128` rows); +- measured anchors (width-keyed scalar FP) and grafted-guide anchors (FDIV, …) + both hold, so the merge is neither dropping measured rows nor undercosting the + supplement. diff --git a/callgrind/lut-gen/arm64/gen_arm64_lut.py b/callgrind/lut-gen/arm64/gen_arm64_lut.py new file mode 100644 index 000000000..47d95c374 --- /dev/null +++ b/callgrind/lut-gen/arm64/gen_arm64_lut.py @@ -0,0 +1,118 @@ +# /// script +# requires-python = ">=3.10" +# dependencies = [] +# /// +"""Generate the Capstone-keyed arm64 cycle LUT for cycledecode.c. + +Consumes a cputables-style XML and emits the measured base table. The committed +arm64 LUT is built from ocxtal/insn_bench_aarch64 (Cortex-A72 / NXP LX2160A) via +insn_bench_to_xml.py, then merge_arm64_lut.py grafts the guide supplement on top. +Same packed-key contract as sigkey.h (via sigkey.py), so the output is a drop-in +#include for the runtime. + +Rows are emitted as: { CLG_CSKEY(, 0x), cy, cl }, +The C compiler resolves to the Capstone enum int; CLG_CSKEY packs it +with the sig. Costs are centi-cycles (1 cycle = 100). Collisions on a key keep +max(cy)/max(cl) and are reported. Element width comes from the .b/.h/.s/.d +mnemonic suffix; a "vector" category sets the F_VEC flag. + +Usage: + uv run --no-project insn_bench_to_xml.py --md .md --out a72.xml + uv run --no-project gen_arm64_lut.py \ + --xml a72.xml --uarch INSNBENCH \ + --caps-header /path/to/capstone/arm64.h \ + --out a72-base.inc +""" + +import argparse +import os +import sys +import xml.etree.ElementTree as ET +from collections import defaultdict + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "lib")) +import gen_common +import sigkey + +# arm64 element-width suffix/form -> bits +_ARM_SUFFIX_W = {"b": 8, "h": 16, "s": 32, "d": 64, "q": 128} + + +def arm64_sig(asm, category): + """Pack the arm64 LUT signature: width from the .b/.h/.s/.d mnemonic suffix, + F_VEC flag from a "vector" category.""" + width = 0 + parts = asm.split(".") + if len(parts) > 1 and parts[1][:1].lower() in _ARM_SUFFIX_W: + width = _ARM_SUFFIX_W[parts[1][:1].lower()] + flags = sigkey.F_VEC if category.lower().startswith("vector") else 0 + return sigkey.pack_sig([], width, flags) + + +def collect(args, valid): + """Return {(ins_name, sig): set((cy,cl))} and a stats dict.""" + forms = defaultdict(set) + stats = defaultdict(int) + xml_path = os.path.expanduser(args.xml) + + for _ev, instr in ET.iterparse(xml_path, events=("end",)): + if instr.tag != "instruction": + continue + stats["instructions"] += 1 + meas = gen_common.measurement_for(instr, args.uarch) + if meas is None: + instr.clear() + continue + cy = gen_common.throughput_centi(meas) + if cy is None: + stats["no_throughput"] += 1 + instr.clear() + continue + cl = gen_common.latency_centi(meas) + if cl is None: + cl = cy + + asm = instr.get("asm") or "" + name = sigkey.arm64_ins_name(asm, valid) + sig = arm64_sig(asm, instr.get("category") or "") + if name is None: + stats["unmapped_ins"] += 1 + instr.clear() + continue + + stats["mapped"] += 1 + forms[(name, sig)].add((cy, cl)) + instr.clear() + + return forms, stats + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--xml", required=True, help="cputables-style arm64 XML") + ap.add_argument("--uarch", default="A72", help=" in the XML") + ap.add_argument("--caps-header", required=True, help="capstone arm64.h") + ap.add_argument("--out", required=True) + args = ap.parse_args() + + valid = sigkey.load_valid_ins(os.path.expanduser(args.caps_header), "ARM64") + print(f"[gen] valid ARM64_INS_*: {len(valid)}", file=sys.stderr) + + forms, stats = collect(args, valid) + rows, collisions = gen_common.collapse_collisions(forms) + synthetic_keys = gen_common.complete_rows(rows, valid) + + header = [ + f"/* Generated by lut-gen/arm64/gen_arm64_lut.py ({args.uarch}) - do not edit. */", + "/* { CLG_CSKEY(insn, sig), cy, cl } centi-cycles; see sigkey.h. */", + ] + gen_common.write_lut(args.out, header, rows, synthetic_keys) + + for k, v in sorted(stats.items()): + print(f"[gen] {k}: {v}", file=sys.stderr) + print(f"[gen] key collisions (max-merged): {collisions}", file=sys.stderr) + print(f"[gen] emitted rows: {len(rows)} -> {args.out}", file=sys.stderr) + + +if __name__ == "__main__": + main() diff --git a/callgrind/lut-gen/arm64/insn_bench_to_xml.py b/callgrind/lut-gen/arm64/insn_bench_to_xml.py new file mode 100644 index 000000000..802ca93bb --- /dev/null +++ b/callgrind/lut-gen/arm64/insn_bench_to_xml.py @@ -0,0 +1,122 @@ +# /// script +# requires-python = ">=3.10" +# dependencies = [] +# /// +"""Convert an ocxtal/insn_bench_aarch64 results markdown into the cputables-style +XML that gen_arm64_lut.py consumes. + +insn_bench publishes measured per-instruction latency and throughput as markdown +tables (one file per CPU). This adapter lets gen_arm64_lut.py treat that measured +data the same way it treats the Cortex-A72 optimization-guide XML, so the LUT +generator stays unchanged. + + https://github.com/ocxtal/insn_bench_aarch64 (MIT) + +Two conversions matter: + - insn_bench "throughput" is instructions-per-cycle (IPC); gen_arm64_lut.py + wants reciprocal throughput (cycles/instruction), so TP_unrolled = 1 / ipc. + - "latency" is already in cycles, emitted verbatim as . + +Vector-ness drives the F_VEC sig flag. The vector sections name the element +width with a .b/.h/.s/.d mnemonic suffix and no marker, while the FP sections +mark each row "(scl)" or "(vec)" explicitly; we treat a row as vector if either +its section is a "Vector ..." section or its descriptor contains "(vec)". + +Usage: + uv run --no-project insn_bench_to_xml.py \ + --md nxp_lx2160a_a72.md --uarch A72 --out a72-insnbench.xml +""" + +import argparse +import re +import sys +import xml.etree.ElementTree as ET + +SECTION_RE = re.compile(r"^##\s+(.*)$") +ROW_RE = re.compile(r"^\|(.+?)\|(.+?)\|(.+?)\|\s*$") + + +def parse_num(cell): + """A measured cell is a float or '-' (not measured / not applicable).""" + cell = cell.strip() + if cell in ("", "-"): + return None + try: + return float(cell) + except ValueError: + return None + + +def mnemonic_of(descriptor): + """First token of the instruction column, e.g. 'fmul.s (scl)' -> 'fmul.s'.""" + return re.split(r"[\s(]", descriptor.strip(), maxsplit=1)[0] + + +def convert(md_path): + root = ET.Element("instructions") + section = "" + kept = skipped = 0 + + with open(md_path) as f: + for line in f: + sec = SECTION_RE.match(line) + if sec: + section = sec.group(1).strip().lower() + continue + row = ROW_RE.match(line) + if not row: + continue + + descriptor = row.group(1).strip() + # header rows and markdown separators + if descriptor in ("instruction",) or set(descriptor) <= set("-: "): + continue + # fusion pairs ("adds -> b.eq") are not single instructions + if "->" in descriptor: + skipped += 1 + continue + + ipc = parse_num(row.group(3)) + if ipc is None or ipc <= 0: + skipped += 1 # no throughput -> no reciprocal-throughput cost + continue + lat = parse_num(row.group(2)) + + # gen_arm64_lut.py reads vector-ness from the category prefix; width + # comes from the .b/.h/.s/.d mnemonic suffix, so a flat tag suffices. + is_vec = section.startswith("vector") or "(vec)" in descriptor + category = "vector" if is_vec else "scalar" + + instr = ET.SubElement(root, "instruction") + instr.set("asm", mnemonic_of(descriptor)) + instr.set("category", category) + arch = ET.SubElement(instr, "architecture") + arch.set("name", "INSNBENCH") + meas = ET.SubElement(arch, "measurement") + meas.set("TP_unrolled", f"{1.0 / ipc:.4f}") + if lat is not None: + ET.SubElement(meas, "latency").set("cycles", f"{lat:.2f}") + kept += 1 + + return root, kept, skipped + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--md", required=True, help="ocxtal insn_bench results markdown") + ap.add_argument("--out", required=True) + args = ap.parse_args() + + root, kept, skipped = convert(args.md) + ET.ElementTree(root).write(args.out, encoding="unicode") + print( + f"[conv] rows kept: {kept}, skipped: {skipped} -> {args.out}", file=sys.stderr + ) + print( + "[conv] architecture name is INSNBENCH (pass --uarch INSNBENCH to gen_arm64_lut.py)", + file=sys.stderr, + ) + + +if __name__ == "__main__": + main() diff --git a/callgrind/lut-gen/arm64/merge_arm64_lut.py b/callgrind/lut-gen/arm64/merge_arm64_lut.py new file mode 100644 index 000000000..f7534c5d6 --- /dev/null +++ b/callgrind/lut-gen/arm64/merge_arm64_lut.py @@ -0,0 +1,135 @@ +# /// script +# requires-python = ">=3.10" +# dependencies = [] +# /// +"""Overlay the guide-derived supplement onto a measured arm64 cycle LUT. + +The measured base (from insn_bench_to_xml.py + gen_arm64_lut.py) does not cover +every instruction the Cortex-A72 optimization guide does, because ocxtal's run +doesn't benchmark them (FP divide, FP<->int converts, vector lane moves, ...). +For each instruction NAME in SUPPLEMENT below, this drops the base's rows and +substitutes the supplement's, so those ops keep a real cost instead of the +1-cycle synthetic default. All other base rows pass through unchanged. + +Usage: + uv run --no-project merge_arm64_lut.py \ + --base /tmp/a72-base.inc --out ../../arm64_caps_lut.inc +""" + +import argparse +import re +import sys + +# Guide-derived gap-fill rows, frozen by hand from the Arm Cortex-A72 Software +# Optimization Guide for the instructions ocxtal/insn_bench_aarch64 does NOT +# benchmark. Edit these directly when a value needs fixing. Each row is +# (ARM64_INS name, sig, cy, cl) in centi-cycles; sig per sigkey.h: 0x000000 +# width-agnostic, 0x000400 vector width-agnostic, 0x001800 S/W32, 0x001c00 vec +# 32b, 0x002000 D/X64, 0x002400 vec 64b, 0x001400 16b. +SUPPLEMENT = [ + # FP <-> int converts (~3-8 cyc latency) + ("ARM64_INS_FCVT", 0x000000, 100, 300), + ("ARM64_INS_FCVTL", 0x000000, 200, 700), + ("ARM64_INS_FCVTL", 0x001400, 200, 700), + ("ARM64_INS_FCVTL", 0x001C00, 100, 300), + ("ARM64_INS_FCVTMS", 0x000000, 100, 800), + ("ARM64_INS_FCVTMS", 0x000400, 200, 400), + ("ARM64_INS_FCVTMU", 0x000000, 100, 800), + ("ARM64_INS_FCVTMU", 0x000400, 200, 400), + ("ARM64_INS_FCVTN", 0x000000, 200, 700), + ("ARM64_INS_FCVTN", 0x001C00, 200, 700), + ("ARM64_INS_FCVTN", 0x002400, 100, 300), + ("ARM64_INS_FCVTNS", 0x000000, 100, 800), + ("ARM64_INS_FCVTNS", 0x000400, 200, 400), + ("ARM64_INS_FCVTNU", 0x000000, 100, 800), + ("ARM64_INS_FCVTNU", 0x000400, 200, 400), + ("ARM64_INS_FCVTPS", 0x000000, 100, 800), + ("ARM64_INS_FCVTPS", 0x000400, 200, 400), + ("ARM64_INS_FCVTPU", 0x000000, 100, 800), + ("ARM64_INS_FCVTPU", 0x000400, 200, 400), + ("ARM64_INS_FCVTZS", 0x000000, 100, 800), + ("ARM64_INS_FCVTZS", 0x000400, 200, 400), + ("ARM64_INS_FCVTZU", 0x000000, 100, 800), + ("ARM64_INS_FCVTZU", 0x000400, 200, 400), + ("ARM64_INS_UCVTF", 0x000000, 100, 800), + ("ARM64_INS_UCVTF", 0x000400, 200, 400), + # FP divide (data-dependent; worst case ~36 cyc) + ("ARM64_INS_FDIV", 0x000000, 3200, 3600), + ("ARM64_INS_FDIV", 0x001800, 450, 1100), + ("ARM64_INS_FDIV", 0x001C00, 1800, 2200), + ("ARM64_INS_FDIV", 0x002000, 1600, 1800), + ("ARM64_INS_FDIV", 0x002400, 3200, 3600), + # FP / vector lane moves (~5-8 cyc) + ("ARM64_INS_FMOV", 0x000000, 100, 500), + ("ARM64_INS_FMOV", 0x000400, 50, 300), + ("ARM64_INS_INS", 0x000000, 100, 800), + ("ARM64_INS_INS", 0x000400, 100, 800), + ("ARM64_INS_SMOV", 0x000000, 100, 600), + ("ARM64_INS_SMOV", 0x000400, 100, 600), + ("ARM64_INS_UMOV", 0x000000, 100, 600), + ("ARM64_INS_UMOV", 0x000400, 100, 600), + # vector widening add / reductions / unzip permute (~3-6 cyc) + ("ARM64_INS_UADDL", 0x000000, 50, 300), + ("ARM64_INS_UADDL", 0x000400, 50, 300), + ("ARM64_INS_UADDLP", 0x000000, 50, 300), + ("ARM64_INS_UADDLP", 0x000400, 50, 300), + ("ARM64_INS_UADDLV", 0x000000, 200, 600), + ("ARM64_INS_UADDLV", 0x000400, 200, 600), + ("ARM64_INS_UZP1", 0x000000, 50, 300), + ("ARM64_INS_UZP1", 0x000400, 50, 300), + ("ARM64_INS_UZP2", 0x000000, 50, 300), + ("ARM64_INS_UZP2", 0x000400, 50, 300), + # unprivileged loads + prefetch (~4 cyc) + ("ARM64_INS_LDTR", 0x000000, 100, 400), + ("ARM64_INS_LDTRB", 0x000000, 100, 400), + ("ARM64_INS_LDTRH", 0x000000, 100, 400), + ("ARM64_INS_LDTRSB", 0x000000, 100, 400), + ("ARM64_INS_LDTRSH", 0x000000, 100, 400), + ("ARM64_INS_LDTRSW", 0x000000, 100, 400), + ("ARM64_INS_PRFM", 0x000000, 100, 400), + ("ARM64_INS_PRFUM", 0x000000, 100, 400), +] + +ROW = re.compile(r"\{ CLG_CSKEY\((\w+),\s*0x([0-9a-fA-F]+)\),\s*(\d+),\s*(\d+) \},") + + +def load_rows(path): + rows = [] + for line in open(path): + m = ROW.search(line) + if m: + rows.append( + (m.group(1), int(m.group(2), 16), int(m.group(3)), int(m.group(4))) + ) + return rows + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--base", required=True, help="measured LUT (ocxtal-derived)") + ap.add_argument("--out", required=True) + args = ap.parse_args() + + base = load_rows(args.base) + supp_names = {name for name, _s, _cy, _cl in SUPPLEMENT} + + merged = [r for r in base if r[0] not in supp_names] + list(SUPPLEMENT) + merged.sort(key=lambda r: (r[0], r[1])) + + with open(args.out, "w") as out: + out.write( + "/* Generated by lut-gen/arm64/merge_arm64_lut.py (Cortex-A72) - do not edit. */\n" + ) + out.write("/* { CLG_CSKEY(insn, sig), cy, cl } centi-cycles; see sigkey.h. */\n") + for name, sig, cy, cl in merged: + out.write(f"{{ CLG_CSKEY({name}, 0x{sig:06x}), {cy}, {cl} }},\n") + + print( + f"[merge] base={len(base)} supplement={len(SUPPLEMENT)} " + f"({len(supp_names)} names) -> {len(merged)} rows -> {args.out}", + file=sys.stderr, + ) + + +if __name__ == "__main__": + main() diff --git a/callgrind/lut-gen/lib/gen_common.py b/callgrind/lut-gen/lib/gen_common.py new file mode 100644 index 000000000..babb60543 --- /dev/null +++ b/callgrind/lut-gen/lib/gen_common.py @@ -0,0 +1,95 @@ +"""Shared helpers for the cycle-LUT generators (gen_x86_lut.py, gen_arm64_lut.py). + +Only the arch-independent steps live here: reading uops.info-style measurements, +collapsing per-key cost sets, completing the table with width-agnostic rows, and +emitting the .inc. The arch-specific parts (operand/signature derivation, x86 +control-flow clamping) stay in each generator. +""" + +from collections import defaultdict + +# Cost of an instruction the source data doesn't measure (centi-cycles, = 1cy). +SYNTHETIC_DEFAULT = (100, 100) + + +def throughput_centi(meas): + """Reciprocal throughput in centi-cycles from a element.""" + for attr in ("TP_unrolled", "TP_loop", "TP_ports"): + v = meas.get(attr) + if v is not None: + return round(float(v) * 100) + return None + + +def latency_centi(meas): + """Worst-case latency in centi-cycles across a measurement's rows.""" + best = None + for lat in meas.findall("latency"): + c = lat.get("cycles") or lat.get("max_cycles") or lat.get("min_cycles") + if c is None: + continue + val = round(float(c) * 100) + best = val if best is None else max(best, val) + return best + + +def measurement_for(instr, uarch): + """The for a given , or None.""" + for a in instr.findall("architecture"): + if a.get("name") == uarch: + return a.find("measurement") + return None + + +def collapse_collisions(forms): + """forms: {(name, sig): set((cy, cl))} -> ([(name, sig, cy, cl)], n_collisions). + Keys whose source rows disagree keep max(cy)/max(cl).""" + rows, collisions = [], 0 + for (name, sig), costs in forms.items(): + if len(costs) > 1: + collisions += 1 + cy = max(c for c, _ in costs) + cl = max(lat for _, lat in costs) + else: + cy, cl = next(iter(costs)) + rows.append((name, sig, cy, cl)) + return rows, collisions + + +def complete_rows(rows, valid): + """Append a width-agnostic (sig 0) row per instruction id so runtime misses + resolve to explicit LUT data. Returns the set of (name, 0) keys that are + pure synthetic defaults (the id had no measured data at all).""" + by_name = defaultdict(list) + existing = {(name, sig) for name, sig, _cy, _cl in rows} + for name, _sig, cy, cl in rows: + by_name[name].append((cy, cl)) + + synthetic_keys = set() + for name in sorted(valid): + if (name, 0) in existing: + continue + costs = by_name.get(name) + if costs: + cy = max(c for c, _ in costs) + cl = max(lat for _, lat in costs) + else: + cy, cl = SYNTHETIC_DEFAULT + synthetic_keys.add((name, 0)) + rows.append((name, 0, cy, cl)) + existing.add((name, 0)) + return synthetic_keys + + +def write_lut(out_path, header_lines, rows, synthetic_keys): + """Emit header_lines (verbatim, no trailing newline) then the rows: measured + rows first, synthetic defaults last, each block sorted by (name, sig).""" + rows.sort(key=lambda r: (r[0], r[1])) + normal = [r for r in rows if (r[0], r[1]) not in synthetic_keys] + synthetic = [r for r in rows if (r[0], r[1]) in synthetic_keys] + + with open(out_path, "w") as out: + for line in header_lines: + out.write(line + "\n") + for name, sig, cy, cl in normal + synthetic: + out.write(f"{{ CLG_CSKEY({name}, 0x{sig:06x}), {cy}, {cl} }},\n") diff --git a/callgrind/lut-gen/lib/sigkey.py b/callgrind/lut-gen/lib/sigkey.py new file mode 100644 index 000000000..97afeee9b --- /dev/null +++ b/callgrind/lut-gen/lib/sigkey.py @@ -0,0 +1,170 @@ +"""Shared keying logic for the Capstone cycle LUT. + +Python mirror of callgrind/sigkey.h. The packed signature computed here MUST +match what cycledecode.c computes from cs_detail at runtime; keep both in +lockstep (test_lut.py enforces the bit layout against sigkey.h). + +Offline we emit the Capstone instruction-id *name* token (resolved by the C +compiler) plus the id-independent `sig` integer; the C macro CLG_CSKEY combines +them. So this module groups/dedups by (id_name, sig) and never needs the numeric +id itself. +""" + +import re + +# operand type codes (== sigkey.h CLG_OP_*) +OP_NONE, OP_REG, OP_MEM, OP_IMM, OP_OTHER = 0, 1, 2, 3, 4 + +# width-bits -> width class code (== sigkey.h CLG_W_*) +_WIDTH = {0: 0, 8: 1, 16: 2, 32: 3, 64: 4, 128: 5, 256: 6, 512: 7} + +# flag bits (== sigkey.h CLG_F_*); lock/rep x86-only, vec arm64-only +F_LOCK, F_REP, F_VEC = 1, 2, 4 + +# sig field shifts (== sigkey.h CLG_SIG layout) +_O0_SHIFT, _O1_SHIFT, _O2_SHIFT, _W_SHIFT, _F_SHIFT = 21, 18, 15, 11, 8 + + +def width_code(bits): + return _WIDTH.get(int(bits or 0), 0) + + +def pack_sig(op_types, width_bits, flags): + """Pack (first 3 explicit op types, width bits, flag bits) -> 24-bit sig int.""" + o = list(op_types[:3]) + [OP_NONE] * (3 - len(op_types[:3])) + w = width_code(width_bits) + return ( + ((o[0] & 7) << _O0_SHIFT) + | ((o[1] & 7) << _O1_SHIFT) + | ((o[2] & 7) << _O2_SHIFT) + | ((w & 15) << _W_SHIFT) + | ((flags & 7) << _F_SHIFT) + ) + + +def load_valid_ins(header_path, prefix): + """Return the set of _INS_* enumerator names defined by a Capstone header.""" + token = re.compile(prefix + r"_INS_[A-Z0-9_]+") + valid = set() + with open(header_path) as f: + for line in f: + for m in token.findall(line): + if m.endswith(("_ENDING", "_INVALID")): + continue + valid.add(m) + return valid + + +# ---------------------------------------------------------------------------- +# x86: XED iclass -> Capstone X86_INS_* name +# ---------------------------------------------------------------------------- + +# XED iclass names that don't map to X86_INS_. Extend as coverage demands. +_X86_OVERRIDES = { + "JZ": "X86_INS_JE", + "JNZ": "X86_INS_JNE", + "JNBE": "X86_INS_JA", + "JNB": "X86_INS_JAE", + "JB": "X86_INS_JB", + "JBE": "X86_INS_JBE", + "JNLE": "X86_INS_JG", + "JNL": "X86_INS_JGE", + "JL": "X86_INS_JL", + "JLE": "X86_INS_JLE", + "JP": "X86_INS_JP", + "JNP": "X86_INS_JNP", + "JNS": "X86_INS_JNS", + "JS": "X86_INS_JS", + "JO": "X86_INS_JO", + "JNO": "X86_INS_JNO", + "SETZ": "X86_INS_SETE", + "SETNZ": "X86_INS_SETNE", + "CMOVZ": "X86_INS_CMOVE", + "CMOVNZ": "X86_INS_CMOVNE", + "IRETD": "X86_INS_IRETD", + "RET_NEAR": "X86_INS_RET", + "RET_FAR": "X86_INS_RETF", + "CALL_NEAR": "X86_INS_CALL", + "CALL_FAR": "X86_INS_LCALL", + "JMP_FAR": "X86_INS_LJMP", +} + + +# XED names conditional instructions by the signed/unsigned condition; Capstone +# uses the common mnemonic. Map the XED condition suffix to the Capstone one. +_CC = { + "Z": "E", + "NZ": "NE", + "NLE": "G", + "NL": "GE", + "NBE": "A", + "NB": "AE", + "LE": "LE", + "L": "L", + "BE": "BE", + "B": "B", + "O": "O", + "NO": "NO", + "P": "P", + "NP": "NP", + "S": "S", + "NS": "NS", + "E": "E", + "NE": "NE", + "G": "G", + "GE": "GE", + "A": "A", + "AE": "AE", +} + + +def _cc_name(iclass, valid): + """Resolve a SETcc/CMOVcc/Jcc iclass to its Capstone condition mnemonic.""" + for pre in ("CMOV", "SET", "J"): + if not iclass.startswith(pre): + continue + cc = iclass[len(pre) :] + if cc in _CC: + cand = "X86_INS_" + pre + _CC[cc] + if cand in valid: + return cand + return None + + +def x86_ins_name(iclass, valid): + """Map a XED iclass to a valid Capstone X86_INS_* name, or None.""" + if iclass in _X86_OVERRIDES: + cand = _X86_OVERRIDES[iclass] + return cand if cand in valid else None + cand = "X86_INS_" + iclass + if cand in valid: + return cand + cc = _cc_name(iclass, valid) + if cc: + return cc + # XED sometimes suffixes the width/operand kind (e.g. MOVSD_XMM); try base. + base = "X86_INS_" + iclass.split("_")[0] + return base if base in valid else None + + +# Extra Capstone ids that share an iclass's cost (Capstone splits where XED does +# not). Each gets a duplicate LUT row with the same signature/cost. +_X86_ALIASES = { + "MOV": ["X86_INS_MOVABS"], # the imm64->reg form decodes as MOVABS +} + + +def x86_alias_names(iclass, valid): + return [n for n in _X86_ALIASES.get(iclass, []) if n in valid] + + +# ---------------------------------------------------------------------------- +# arm64: cputables mnemonic -> Capstone ARM64_INS_* name +# ---------------------------------------------------------------------------- + + +def arm64_ins_name(mnemonic, valid): + """Map a cputables mnemonic (e.g. 'fmadd.s', 'add') to ARM64_INS_*, or None.""" + base = mnemonic.split(".")[0].strip().upper() + cand = "ARM64_INS_" + base + return cand if cand in valid else None diff --git a/callgrind/lut-gen/test_lut.py b/callgrind/lut-gen/test_lut.py new file mode 100644 index 000000000..8ccef1f2b --- /dev/null +++ b/callgrind/lut-gen/test_lut.py @@ -0,0 +1,258 @@ +# /// script +# requires-python = ">=3.10" +# dependencies = ["pytest"] +# /// +"""Validate the committed cycle LUTs against the runtime keying contract. + +Run: uv run --no-project -m pytest test_lut.py -q +or: uv run --no-project test_lut.py (plain assert harness, no pytest) + +These read only committed artifacts (no Capstone, no uops.info XML needed): + - ../x86_caps_lut.inc ../arm64_caps_lut.inc (the emitted LUTs) + - ../sigkey.h (the key bit-layout contract) + - sigkey.py (the generator's mirror of it) + +The point of co-locating this with the generator is the lockstep test: it fails +the moment sigkey.h and sigkey.py disagree on the packed-key layout, which would +silently mis-key every row the runtime looks up. +""" + +from __future__ import annotations + +import os +import re +import sys +from pathlib import Path + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "lib")) +import sigkey + +HERE = Path(__file__).resolve().parent +CALLGRIND = HERE.parent +X86_INC = CALLGRIND / "x86_caps_lut.inc" +ARM64_INC = CALLGRIND / "arm64_caps_lut.inc" +SIGKEY_H = CALLGRIND / "sigkey.h" + +# sig bit layout, mirrors sigkey.h / sigkey.py +WIDTH_SHIFT, WIDTH_MASK = 11, 0xF +FLAG_SHIFT, FLAG_MASK = 8, 0x7 +WIDTH_BITS = {0: 0, 1: 8, 2: 16, 3: 32, 4: 64, 5: 128, 6: 256, 7: 512} + +ROW_RE = re.compile(r"CLG_CSKEY\((\w+),\s*0x([0-9a-fA-F]+)\),\s*(\d+),\s*(\d+)") + + +def sig_width(sig: int) -> int: + return WIDTH_BITS[(sig >> WIDTH_SHIFT) & WIDTH_MASK] + + +def sig_flags(sig: int) -> int: + return (sig >> FLAG_SHIFT) & FLAG_MASK + + +def load_inc(path: Path) -> dict[tuple[str, int], tuple[int, int]]: + rows: dict[tuple[str, int], tuple[int, int]] = {} + for line in path.read_text().splitlines(): + m = ROW_RE.search(line) + if not m: + continue + rows[(m.group(1), int(m.group(2), 16))] = (int(m.group(3)), int(m.group(4))) + assert rows, f"no LUT rows parsed from {path}" + return rows + + +# --- lockstep: sigkey.py must agree with sigkey.h ----------------------------- + + +def _header_defines() -> dict[str, int]: + text = SIGKEY_H.read_text() + return { + m.group(1): int(m.group(2)) + for m in re.finditer(r"#define\s+(CLG_\w+)\s+(\d+)u", text) + } + + +def _header_sig_layout() -> dict[str, tuple[int, int]]: + """Parse CLG_SIG(...) into {var: (mask, shift)} for o0/o1/o2/w/f.""" + text = SIGKEY_H.read_text() + body = text[text.index("#define CLG_SIG") :] + layout = {} + for var, mask, shift in re.findall(r"\((\w+)\)\s*&\s*(\d+)u\)\s*<<\s*(\d+)", body): + layout[var] = (int(mask), int(shift)) + return layout + + +def test_op_width_flag_codes_match_header(): + d = _header_defines() + assert ( + sigkey.OP_NONE, + sigkey.OP_REG, + sigkey.OP_MEM, + sigkey.OP_IMM, + sigkey.OP_OTHER, + ) == ( + d["CLG_OP_NONE"], + d["CLG_OP_REG"], + d["CLG_OP_MEM"], + d["CLG_OP_IMM"], + d["CLG_OP_OTHER"], + ) + assert (sigkey.F_LOCK, sigkey.F_REP, sigkey.F_VEC) == ( + d["CLG_F_LOCK"], + d["CLG_F_REP"], + d["CLG_F_VEC"], + ) + header_w = { + 0: d["CLG_W_ANY"], + 8: d["CLG_W_8"], + 16: d["CLG_W_16"], + 32: d["CLG_W_32"], + 64: d["CLG_W_64"], + 128: d["CLG_W_128"], + 256: d["CLG_W_256"], + 512: d["CLG_W_512"], + } + for bits, code in header_w.items(): + assert sigkey.width_code(bits) == code, ( + f"width {bits}: py={sigkey.width_code(bits)} h={code}" + ) + + +def test_sig_bit_layout_matches_header(): + layout = _header_sig_layout() + assert layout == { + "o0": (7, 21), + "o1": (7, 18), + "o2": (7, 15), + "w": (15, 11), + "f": (7, 8), + }, f"sigkey.h CLG_SIG layout drifted: {layout}" + # And sigkey.py packs into exactly those positions. + assert sigkey.pack_sig([sigkey.OP_REG], 0, 0) == (sigkey.OP_REG << 21) + assert sigkey.pack_sig([sigkey.OP_NONE, sigkey.OP_MEM], 0, 0) == ( + sigkey.OP_MEM << 18 + ) + assert sigkey.pack_sig([], 64, 0) == (sigkey.width_code(64) << 11) + assert sigkey.pack_sig([], 0, sigkey.F_VEC) == (sigkey.F_VEC << 8) + + +# --- per-LUT invariants ------------------------------------------------------- + + +def test_x86_cost_invariants(): + """The runtime sums cy/cl, so both must be non-negative. x86 does NOT obey + cy<=cl: locked/serializing RMW ops have reciprocal-throughput > latency, and + renamed XCHG/zeroing idioms have latency 0.""" + bad = [ + (n, s, cy, cl) + for (n, s), (cy, cl) in load_inc(X86_INC).items() + if cy < 0 or cl < 0 + ] + assert not bad, "x86_caps_lut.inc has negative cost rows:\n" + "\n".join( + f" {n} 0x{s:06x} cy={cy} cl={cl}" for n, s, cy, cl in bad + ) + + +def test_arm64_cost_invariants(): + """Costs must be non-negative. Measured data does NOT obey cy<=cl: a + non-pipelined op (FSQRT, branches) has reciprocal-throughput > latency.""" + bad = [ + (n, s, cy, cl) + for (n, s), (cy, cl) in load_inc(ARM64_INC).items() + if cy < 0 or cl < 0 + ] + assert not bad, "arm64_caps_lut.inc has negative cost rows:\n" + "\n".join( + f" {n} 0x{s:06x} cy={cy} cl={cl}" for n, s, cy, cl in bad + ) + + +def test_x86_flags_are_lock_rep_only(): + """x86 sigs may only carry LOCK/REP flag bits (VEC is arm64-only).""" + allowed = {0, sigkey.F_LOCK, sigkey.F_REP, sigkey.F_LOCK | sigkey.F_REP} + bad = [(n, s) for (n, s) in load_inc(X86_INC) if sig_flags(s) not in allowed] + assert not bad, "x86 rows with non-LOCK/REP flags:\n" + "\n".join( + f" {n} 0x{s:06x} flags={sig_flags(s)}" for n, s in bad + ) + + +def test_arm64_flags_are_vec_only(): + """arm64 sigs may only carry the F_VEC flag bit (lock/rep are x86-only).""" + bad = [ + (n, s) + for (n, s) in load_inc(ARM64_INC) + if sig_flags(s) not in (0, sigkey.F_VEC) + ] + assert not bad, "arm64 rows with non-VEC flags:\n" + "\n".join( + f" {n} 0x{s:06x} flags={sig_flags(s)}" for n, s in bad + ) + + +def test_arm64_widths_are_keyable(): + """cycledecode.c never produces an arm64 width class above 128, so such rows + would be dead lookups.""" + bad = [(n, s) for (n, s) in load_inc(ARM64_INC) if sig_width(s) > 128] + assert not bad, "arm64 rows with un-keyable width (>128):\n" + "\n".join( + f" {n} 0x{s:06x} w={sig_width(s)}" for n, s in bad + ) + + +# --- arm64 golden anchors ----------------------------------------------------- +# cy = reciprocal throughput, cl = latency, in centi-cycles. +# (sig: 0x001800 = S/W32, 0x002000 = D/X64, 0x000000 = width-agnostic.) +# +# MEASURED rows come from ocxtal/insn_bench_aarch64 (Cortex-A72 / LX2160A) and +# are the width-keyed scalar-FP costs cycledecode.c actually looks up. GRAFTED +# rows are frozen from the A72 guide for ops ocxtal does not benchmark (the +# SUPPLEMENT list in arm64/merge_arm64_lut.py); they must survive the merge intact. +ARM64_GOLDEN_MEASURED = { + ("ARM64_INS_FSQRT", 0x001800): (769, 1700), + ("ARM64_INS_FSQRT", 0x002000): (3333, 3200), + ("ARM64_INS_FADD", 0x001800): (50, 400), + ("ARM64_INS_FADD", 0x002000): (50, 400), + ("ARM64_INS_FMUL", 0x001800): (50, 400), + ("ARM64_INS_FMADD", 0x001800): (50, 700), + ("ARM64_INS_SDIV", 0x000000): (400, 400), +} +ARM64_GOLDEN_GRAFTED = { + ("ARM64_INS_FDIV", 0x001800): (450, 1100), + ("ARM64_INS_FDIV", 0x002000): (1600, 1800), + ("ARM64_INS_FCVTZS", 0x000000): (100, 800), + ("ARM64_INS_UMOV", 0x000000): (100, 600), +} + + +def test_arm64_measured_anchors(): + inc = load_inc(ARM64_INC) + wrong = { + k: (inc.get(k), v) for k, v in ARM64_GOLDEN_MEASURED.items() if inc.get(k) != v + } + assert not wrong, "measured anchors drifted:\n" + "\n".join( + f" {n} 0x{s:06x}: got {got}, expected {exp}" + for (n, s), (got, exp) in wrong.items() + ) + + +def test_arm64_grafted_anchors_survive_merge(): + """Guide-supplement rows for ops ocxtal doesn't bench must not be undercost + to the synthetic default.""" + inc = load_inc(ARM64_INC) + wrong = { + k: (inc.get(k), v) for k, v in ARM64_GOLDEN_GRAFTED.items() if inc.get(k) != v + } + assert not wrong, "grafted guide anchors missing/wrong:\n" + "\n".join( + f" {n} 0x{s:06x}: got {got}, expected {exp}" + for (n, s), (got, exp) in wrong.items() + ) + + +if __name__ == "__main__": + tests = [v for k, v in sorted(globals().items()) if k.startswith("test_")] + failures = 0 + for t in tests: + try: + t() + print(f"PASS {t.__name__}") + except AssertionError as e: + failures += 1 + print(f"FAIL {t.__name__}\n{e}\n") + print(f"\n{len(tests) - failures}/{len(tests)} passed") + raise SystemExit(1 if failures else 0) diff --git a/callgrind/lut-gen/x86/gen_x86_lut.py b/callgrind/lut-gen/x86/gen_x86_lut.py new file mode 100644 index 000000000..9d6905803 --- /dev/null +++ b/callgrind/lut-gen/x86/gen_x86_lut.py @@ -0,0 +1,278 @@ +# /// script +# requires-python = ">=3.10" +# dependencies = [] +# /// +"""Generate the Zen4-tuned, Capstone-keyed x86 cycle LUT for cycledecode.c. + +Emits callgrind/x86_caps_lut.inc. Same packed-key contract as sigkey.h (via +sigkey.py), so the output is a drop-in #include for the runtime. + +Built for AMD Ryzen 7000 / Phoenix (Zen4) hosts. Two corrections on top of the +raw ZEN4 uops.info numbers: + + FIX 1 - system/privileged iform contamination. + XED iclasses like MOV_CR / MOV_DR fall through sigkey.x86_ins_name()'s + `iclass.split("_")[0]` fallback to plain X86_INS_MOV, share the + (MOV, reg,reg,64) key with a normal `mov reg64,reg64`, and the max() + collision merge then pins that key to the ~200-cycle debug-register cost. + We drop these iforms entirely (they never appear in benchmarked user code) + so the common variant keeps its real ~0.25-cycle cost. + + FIX 2 - control-transfer throughput is a front-end artifact, not port pressure. + uops.info loop throughput for RET / indirect CALL / indirect JMP is bound by + branch-predictor / BTB recovery (Zen4: RET 16.4, call reg 17.2, jmp [mem] + 24.4), not issue-port occupancy. In a linear sum-of-throughput model that + detonates branchy code. A correctly-predicted transfer costs ~1 issue slot; + the misprediction penalty belongs to --branch-sim. So we clamp all + control-transfer ops to a small fixed cost. + +Usage: + uv run --no-project gen_x86_lut.py \ + --xml ~/Downloads/instructions.xml --uarch ZEN4 \ + --caps-header /path/to/capstone/x86.h \ + --out ../x86_caps_lut.inc +""" + +import argparse +import os +import re +import sys +import xml.etree.ElementTree as ET +from collections import defaultdict + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "lib")) +import gen_common +import sigkey + +# --- FIX 1: privileged / system iclasses that must never reach the table ----- +# Keyed by XED iclass. MOV_CR/MOV_DR are the contaminators that ruin `mov r64,r64`; +# the rest are privileged/serializing ops absent from normal benchmarked code. +SYSTEM_ICLASSES = { + "MOV_CR", + "MOV_DR", + "IRET", + "IRETD", + "IRETQ", + "RSM", + "HLT", + "RDMSR", + "WRMSR", + "RDPMC", + "SWAPGS", + "SYSRET", + "SYSEXIT", + "SYSENTER", + "SYSCALL", + "INVD", + "WBINVD", + "INVLPG", + "INVPCID", + "CLTS", + "LMSW", + "SMSW", + "LGDT", + "SGDT", + "LIDT", + "SIDT", + "LLDT", + "SLDT", + "LTR", + "STR", + "VERR", + "VERW", + "LAR", + "LSL", + "ARPL", + "XSETBV", + "XGETBV", + "VMCALL", + "VMREAD", + "VMWRITE", + "VMLAUNCH", + "VMRESUME", + "STI", + "CLI", + "WRPKRU", + "RDPKRU", + "CLAC", + "STAC", + "RDFSBASE", + "WRFSBASE", + "RDGSBASE", + "WRGSBASE", + # privileged port I/O (uops.info reports 1000s of cycles; never in user code) + "IN", + "OUT", + "INSB", + "INSW", + "INSD", + "OUTSB", + "OUTSW", + "OUTSD", +} + +# Drop any iform naming a control/debug/segment register or a far transfer. +SYSTEM_IFORM_RE = re.compile(r"(?:_CR_|_DR_|_SR_|_FAR(?:_|$)|FAR_)") + +# Final safety ceiling for any non-control-flow row. uops.info reports thousands +# of cycles for entropy/microcoded ops (RDSEED ~83k, CLZERO, AVX-512 scatter); a +# linear sum-of-throughput model must not let one rare instruction dominate. +GLOBAL_CY_CAP = 6400 # 64 cycles +GLOBAL_CL_CAP = 10000 # 100 cycles + +# --- FIX 2: control-transfer ops get a fixed cost; mispredict via --branch-sim - +# Matched on the resolved Capstone X86_INS_* name. All jumps share the J* prefix. +CONTROL_FLOW_NAMES = { + "X86_INS_CALL", + "X86_INS_LCALL", + "X86_INS_RET", + "X86_INS_RETF", + "X86_INS_RETFQ", + "X86_INS_JMP", + "X86_INS_LJMP", + "X86_INS_LOOP", + "X86_INS_LOOPE", + "X86_INS_LOOPNE", + "X86_INS_JCXZ", + "X86_INS_JECXZ", + "X86_INS_JRCXZ", +} +CF_CY_CAP = 100 # 1.0 cycle of throughput for a predicted transfer +CF_CL_CAP = 200 # 2.0 cycles latency + +# operand type attr (XML) -> sig op code +_OPMAP = { + "reg": sigkey.OP_REG, + "mem": sigkey.OP_MEM, + "agen": sigkey.OP_MEM, + "ptr": sigkey.OP_MEM, + "imm": sigkey.OP_IMM, + "relbr": sigkey.OP_IMM, +} + + +def is_control_flow(name): + return name in CONTROL_FLOW_NAMES or name.startswith("X86_INS_J") + + +def x86_sig(instr, iform): + """Explicit operands (skip suppressed + flags), width = max reg/mem width.""" + op_types, max_w = [], 0 + for op in instr.findall("operand"): + if op.get("suppressed") == "1": + continue + t = op.get("type") + if t == "flags": + continue + code = _OPMAP.get(t, sigkey.OP_OTHER) + op_types.append(code) + if code in (sigkey.OP_REG, sigkey.OP_MEM): + w = int(op.get("width") or 0) + max_w = max(max_w, w) + tokens = iform.split("_") + flags = 0 + if "LOCK" in tokens: + flags |= sigkey.F_LOCK + if {"REP", "REPE", "REPNE"} & set(tokens): + flags |= sigkey.F_REP + return sigkey.pack_sig(op_types, max_w, flags) + + +def collect(args, valid): + """Return {(ins_name, sig): set((cy,cl))} and a stats dict.""" + forms = defaultdict(set) + stats = defaultdict(int) + xml_path = os.path.expanduser(args.xml) + + for _ev, instr in ET.iterparse(xml_path, events=("end",)): + if instr.tag != "instruction": + continue + stats["instructions"] += 1 + + iclass = instr.get("iclass") or "" + iform = instr.get("iform") or "" + if iclass in SYSTEM_ICLASSES or SYSTEM_IFORM_RE.search(iform): + stats["dropped_system"] += 1 + instr.clear() + continue + + meas = gen_common.measurement_for(instr, args.uarch) + if meas is None: + instr.clear() + continue + cy = gen_common.throughput_centi(meas) + if cy is None: + stats["no_throughput"] += 1 + instr.clear() + continue + cl = gen_common.latency_centi(meas) + if cl is None: + cl = cy + + name = sigkey.x86_ins_name(iclass, valid) + sig = x86_sig(instr, iform) + names = [] + if name is not None: + names = [name] + sigkey.x86_alias_names(iclass, valid) + if not names: + stats["unmapped_ins"] += 1 + instr.clear() + continue + + stats["mapped"] += 1 + for nm in names: + forms[(nm, sig)].add((cy, cl)) + instr.clear() + + return forms, stats + + +def clamp_control_flow(rows, stats): + """FIX 2: pin control-transfer cost to a predicted-branch issue slot, and + apply the global safety ceiling to everything else.""" + out = [] + for name, sig, cy, cl in rows: + if is_control_flow(name): + if cy > CF_CY_CAP or cl > CF_CL_CAP: + stats["clamped_control_flow"] += 1 + cy = min(cy, CF_CY_CAP) + cl = min(cl, CF_CL_CAP) + else: + if cy > GLOBAL_CY_CAP or cl > GLOBAL_CL_CAP: + stats["clamped_ceiling"] += 1 + cy = min(cy, GLOBAL_CY_CAP) + cl = min(cl, GLOBAL_CL_CAP) + out.append((name, sig, cy, cl)) + return out + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--xml", required=True, help="uops.info instructions.xml") + ap.add_argument("--uarch", default="ZEN4", help=" in the XML") + ap.add_argument("--caps-header", required=True, help="capstone x86.h") + ap.add_argument("--out", required=True) + args = ap.parse_args() + + valid = sigkey.load_valid_ins(os.path.expanduser(args.caps_header), "X86") + print(f"[gen] valid X86_INS_*: {len(valid)}", file=sys.stderr) + + forms, stats = collect(args, valid) + rows, collisions = gen_common.collapse_collisions(forms) + synthetic_keys = gen_common.complete_rows(rows, valid) + rows = clamp_control_flow(rows, stats) + + header = [ + f"/* Generated by lut-gen/x86/gen_x86_lut.py ({args.uarch}) - do not edit. */", + "/* { CLG_CSKEY(insn, sig), cy, cl } centi-cycles; see sigkey.h. */", + ] + gen_common.write_lut(args.out, header, rows, synthetic_keys) + + for k, v in sorted(stats.items()): + print(f"[gen] {k}: {v}", file=sys.stderr) + print(f"[gen] key collisions (max-merged): {collisions}", file=sys.stderr) + print(f"[gen] emitted rows: {len(rows)} -> {args.out}", file=sys.stderr) + + +if __name__ == "__main__": + main() 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 4259abafece89ffe7379f3fd68bfdc23530d9784 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 19:25:28 +0200 Subject: [PATCH 3/4] 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 22e09344e8aba1d2a50e50ac3378f9bf491d313a Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 11 Jun 2026 19:55:42 +0200 Subject: [PATCH 4/4] 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 #----------------------------------------------------------------------------