{
  "License": [
    "Copyright (C) 2023 The Android Open Source Project",
    "",
    "Licensed under the Apache License, Version 2.0 (the “License”);",
    "you may not use this file except in compliance with the License.",
    "You may obtain a copy of the License at",
    "",
    "     http://www.apache.org/licenses/LICENSE-2.0",
    "",
    "Unless required by applicable law or agreed to in writing, software",
    "distributed under the License is distributed on an “AS IS” BASIS,",
    "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
    "See the License for the specific language governing permissions and",
    "limitations under the License."
  ],
  "arch": "x86_64",
  "insns": [
    {
      "encodings": {
        "Adcq": { "opcode": "13" },
        "Sbbq": { "opcode": "1B" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "Adcq": { "opcodes": [ "81", "2" ] },
        "Sbbq": { "opcodes": [ "81", "3" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "Adcq": { "opcode": "11", "type": "reg_to_rm" },
        "Sbbq": { "opcode": "19", "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "AdcqAccumulator": { "opcodes": [ "48", "15" ] },
        "SbbqAccumulator": { "opcodes": [ "48", "1D" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "AdcqImm8": { "opcodes": [ "83", "2" ] },
        "Rclq": { "opcodes": [ "C1", "2" ] },
        "Rcrq": { "opcodes": [ "C1", "3" ] },
        "SbbqImm8": { "opcodes": [ "83", "3" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "Imm8" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "Addq": { "opcode": "01", "type": "reg_to_rm" },
        "Andq": { "opcode": "21", "type": "reg_to_rm" },
        "Btcq": { "opcodes": [ "0F", "BB" ], "type": "reg_to_rm" },
        "Btrq": { "opcodes": [ "0F", "B3" ], "type": "reg_to_rm" },
        "Btsq": { "opcodes": [ "0F", "AB" ], "type": "reg_to_rm" },
        "Orq": { "opcode": "09", "type": "reg_to_rm" },
        "Subq": { "opcode": "29", "type": "reg_to_rm" },
        "Xorq": { "opcode": "31", "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Addq": { "opcode": "03" },
        "Andq": { "opcode": "23" },
        "Orq": { "opcode": "0B" },
        "Subq": { "opcode": "2B" },
        "Xorq": { "opcode": "33" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Addq": { "opcodes": [ "81", "0" ] },
        "Andq": { "opcodes": [ "81", "4" ] },
        "Orq": { "opcodes": [ "81", "1" ] },
        "Subq": { "opcodes": [ "81", "5" ] },
        "Xorq": { "opcodes": [ "81", "6" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "AddqAccumulator": { "opcodes": [ "48", "05" ] },
        "AndqAccumulator": { "opcodes": [ "48", "25" ] },
        "OrqAccumulator": { "opcodes": [ "48", "0D" ] },
        "SubqAccumulator": { "opcodes": [ "48", "2D" ] },
        "XorqAccumulator": { "opcodes": [ "48", "35" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "AddqImm8": { "opcodes": [ "83", "0" ] },
        "AndqImm8": { "opcodes": [ "83", "4" ] },
        "Btcq": { "opcodes": [ "0F", "BA", "7" ] },
        "Btq": { "opcodes": [ "0F", "BA", "4" ] },
        "Btrq": { "opcodes": [ "0F", "BA", "6" ] },
        "Btsq": { "opcodes": [ "0F", "BA", "5" ] },
        "OrqImm8": { "opcodes": [ "83", "1" ] },
        "Rolq": { "opcodes": [ "C1", "0" ] },
        "Rorq": { "opcodes": [ "C1", "1" ] },
        "Sarq": { "opcodes": [ "C1", "7" ] },
        "Shlq": { "opcodes": [ "C1", "4" ] },
        "Shrq": { "opcodes": [ "C1", "5" ] },
        "SubqImm8": { "opcodes": [ "83", "5" ] },
        "XorqImm8": { "opcodes": [ "83", "6" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "Imm8" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Andnq": { "feature": "BMI", "opcodes": [ "C4", "02", "80", "F2" ], "type": "vex_rm_to_reg" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Bextrq": { "feature": "BMI", "opcodes": [ "C4", "02", "80", "F7" ] },
        "Bzhiq": { "feature": "BMI2", "opcodes": [ "C4", "02", "80", "F5" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Blsiq": { "feature": "BMI", "opcodes": [ "C4", "02", "80", "F3", "3" ], "type": "rm_to_vex" },
        "Blsmskq": { "feature": "BMI", "opcodes": [ "C4", "02", "80", "F3", "2" ], "type": "rm_to_vex" },
        "Blsrq": { "feature": "BMI", "opcodes": [ "C4", "02", "80", "F3", "1" ], "type": "rm_to_vex" },
        "Bsfq": { "opcodes": [ "0F", "BC" ] },
        "Bsrq": { "opcodes": [ "0F", "BD" ] },
        "Lzcntq": { "feature": "LZCNT", "opcodes": [ "F3", "0F", "BD" ] },
        "Popcntq": { "feature": "POPCNT", "opcodes": [ "F3", "0F", "B8" ] },
        "Tzcntq": { "feature": "BMI", "opcodes": [ "F3", "0F", "BC" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Bswapq": { "opcodes": [ "0F", "C8" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "Btq": { "opcodes": [ "0F", "A3" ], "type": "reg_to_rm" },
        "Cmpq": { "opcode": "39", "type": "reg_to_rm" },
        "Testq": { "opcode": "85", "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Callq": { "opcodes": [ "FF", "2" ] }
      },
      "args": [
        { "class": "RSP", "usage": "use_def" },
        { "class": "VecMem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Cdqe": { "opcodes": [ "48", "98" ] },
        "Cltq": { "opcodes": [ "48", "98" ] }
      },
      "args": [
        { "class": "EAX", "usage": "use" },
        { "class": "RAX", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Cmovq": { "opcodes": [ "0F", "40" ] }
      },
      "args": [
        { "class": "Cond" },
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "CmpXchg16b": { "opcodes": [ "0F", "C7", "1" ] },
        "Lock CmpXchg16b": { "opcodes": [ "F0", "0F", "C7", "1" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "RDX", "usage": "use_def" },
        { "class": "RBX", "usage": "use" },
        { "class": "RCX", "usage": "use" },
        { "class": "Mem128", "usage": "use_def" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "CmpXchgq": { "opcodes": [ "0F", "B1" ], "type": "reg_to_rm" }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Cmpq": { "opcodes": [ "81", "7" ] },
        "Testq": { "opcodes": [ "F7", "0" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Cmpq": { "opcode": "3B" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "CmpqAccumulator": { "opcodes": [ "48", "3D" ] },
        "TestqAccumulator": { "opcodes": [ "48", "A9" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "CmpqImm8": { "opcodes": [ "83", "7" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "Imm8" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Cqo": { "opcodes": [ "48", "99" ] },
        "Cqto": { "opcodes": [ "48", "99" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use" },
        { "class": "RDX", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Crc32q": { "opcodes": [ "F2", "0F", "38", "F1" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Cvtsd2siq": { "opcodes": [ "F2", "0F", "2D" ] },
        "Cvttsd2siq": { "opcodes": [ "F2", "0F", "2C" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "FpReg64/VecMem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Cvtsi2sdq": { "opcodes": [ "F2", "0F", "2A" ] }
      },
      "args": [
        { "class": "FpReg64", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Cvtsi2ssq": { "opcodes": [ "F3", "0F", "2A" ] }
      },
      "args": [
        { "class": "FpReg32", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Cvtss2siq": { "opcodes": [ "F3", "0F", "2D" ] },
        "Cvttss2siq": { "opcodes": [ "F3", "0F", "2C" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "FpReg32/Mem32", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Decl": { "opcodes": [ "FF", "1" ] },
        "Incl": { "opcodes": [ "FF", "0" ] }
      },
      "args": [
        { "class": "GeneralReg32", "usage": "use_def" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Decq": { "opcodes": [ "FF", "1" ] },
        "Incq": { "opcodes": [ "FF", "0" ] },
        "Negq": { "opcodes": [ "F7", "3" ] },
        "RolqByOne": { "opcodes": [ "D1", "0" ] },
        "RorqByOne": { "opcodes": [ "D1", "1" ] },
        "SarqByOne": { "opcodes": [ "D1", "7" ] },
        "ShlqByOne": { "opcodes": [ "D1", "4" ] },
        "ShrqByOne": { "opcodes": [ "D1", "5" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Decw": { "opcodes": [ "66", "FF", "1" ] },
        "Incw": { "opcodes": [ "66", "FF", "0" ] }
      },
      "args": [
        { "class": "GeneralReg16", "usage": "use_def" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Divq": { "opcodes": [ "F7", "6" ] },
        "Idivq": { "opcodes": [ "F7", "7" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "RDX", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Fxrstor64": { "opcodes": [ "0F", "AE", "1" ] }
      },
      "args": [
        { "class": "Mem64", "usage": "use" },
        { "class": "CC", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Fxsave64": { "opcodes": [ "0F", "AE", "0" ] }
      },
      "args": [
        { "class": "CC", "usage": "def" },
        { "class": "Mem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Imulq": { "opcodes": [ "F7", "5" ] },
        "Mulq": { "opcodes": [ "F7", "4" ] }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "RDX", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Imulq": { "opcode": "69" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "Imm32" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Imulq": { "opcodes": [ "0F", "AF" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "ImulqImm8": { "opcode": "6B" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "Imm8" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Jmpq": { "opcodes": [ "FF", "4" ] }
      },
      "args": [
        { "class": "VecMem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Leaq": { "opcode": "8D" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "Mem", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Lock CmpXchgq": { "opcodes": [ "F0", "0F", "B1" ], "type": "reg_to_rm" }
      },
      "args": [
        { "class": "RAX", "usage": "use_def" },
        { "class": "Mem64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Movq": { "opcodes": [ "66", "0F", "7E" ], "type": "reg_to_rm" },
        "Vmovq": { "feature": "AVX", "opcodes": [ "C4", "01", "81", "7E" ], "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "XmmReg", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Movq": { "opcodes": [ "66", "0F", "6E" ] },
        "Vmovq": { "feature": "AVX", "opcodes": [ "C4", "01", "81", "6E" ] }
      },
      "args": [
        { "class": "XmmReg", "usage": "def" },
        { "class": "GeneralReg64", "usage": "use" }
      ]
    },
    {
      "stems": [ "Movq" ],
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "Imm64" }
      ]
    },
    {
      "encodings": {
        "Movq": { "opcode": "89", "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "def" },
        { "class": "GeneralReg64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Movq": { "opcode": "8B" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "Mem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Movq": { "opcodes": [ "C7", "0" ] }
      },
      "args": [
        { "class": "Mem64", "usage": "def" },
        { "class": "Imm32" }
      ]
    },
    {
      "encodings": {
        "Movsxbq": { "opcodes": [ "0F", "BE" ] },
        "Movzxbq": { "opcodes": [ "0F", "B6" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg8/Mem8", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Movsxlq": { "opcode": "63" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg32/Mem32", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Movsxwq": { "opcodes": [ "0F", "BF" ] },
        "Movzxwq": { "opcodes": [ "0F", "B7" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg16/Mem16", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Mulxq": { "feature": "BMI2", "opcodes": [ "C4", "82", "83", "F6" ], "type": "vex_rm_to_reg" },
        "Pdepq": { "feature": "BMI2", "opcodes": [ "C4", "82", "83", "F5" ], "type": "vex_rm_to_reg" },
        "Pextq": { "feature": "BMI2", "opcodes": [ "C4", "82", "82", "F5" ], "type": "vex_rm_to_reg" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "GeneralReg64/Mem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Notq": { "opcodes": [ "F7", "2" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "Pextrq": { "feature": "SSE4_1", "opcodes": [ "66", "0F", "3A", "16" ], "type": "reg_to_rm" },
        "Vpextrq": { "feature": "AVX", "opcodes": [ "C4", "03", "81", "16" ], "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "VecReg128", "usage": "use" },
        { "class": "Imm8" }
      ]
    },
    {
      "encodings": {
        "Pinsrq": { "feature": "SSE4_1", "opcodes": [ "66", "0F", "3A", "22" ] }
      },
      "args": [
        { "class": "VecReg128", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "Imm8" }
      ]
    },
    {
      "encodings": {
        "Popq": { "opcodes": [ "8F", "0" ] }
      },
      "args": [
        { "class": "RSP", "usage": "use_def" },
        { "class": "VecMem64", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Pushq": { "opcodes": [ "FF", "6" ] }
      },
      "args": [
        { "class": "RSP", "usage": "use_def" },
        { "class": "VecMem64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "RclqByCl": { "opcodes": [ "D3", "2" ] },
        "RcrqByCl": { "opcodes": [ "D3", "3" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "CL", "usage": "use" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "RclqByOne": { "opcodes": [ "D1", "2" ] },
        "RcrqByOne": { "opcodes": [ "D1", "3" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "FLAGS", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "RolqByCl": { "opcodes": [ "D3", "0" ] },
        "RorqByCl": { "opcodes": [ "D3", "1" ] },
        "SarqByCl": { "opcodes": [ "D3", "7" ] },
        "ShlqByCl": { "opcodes": [ "D3", "4" ] },
        "ShrqByCl": { "opcodes": [ "D3", "5" ] }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "CL", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "Rorxq": { "feature": "BMI2", "opcodes": [ "C4", "03", "83", "F0" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "Imm8" }
      ]
    },
    {
      "encodings": {
        "Sarxq": { "feature": "BMI2", "opcodes": [ "C4", "02", "82", "F7" ] },
        "Shlxq": { "feature": "BMI2", "opcodes": [ "C4", "02", "81", "F7" ] },
        "Shrxq": { "feature": "BMI2", "opcodes": [ "C4", "02", "83", "F7" ] }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64/Mem64", "usage": "use" },
        { "class": "GeneralReg64", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Shldq": { "opcodes": [ "0F", "A4" ], "type": "reg_to_rm" },
        "Shrdq": { "opcodes": [ "0F", "AC" ], "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "Imm8" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "encodings": {
        "ShldqByCl": { "opcodes": [ "0F", "A5" ], "type": "reg_to_rm" },
        "ShrdqByCl": { "opcodes": [ "0F", "AD" ], "type": "reg_to_rm" }
      },
      "args": [
        { "class": "GeneralReg64/Mem64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "CL", "usage": "use" },
        { "class": "FLAGS", "usage": "def" }
      ]
    },
    {
      "stems": [ "Vmovapd", "Vmovaps", "Vmovdqa", "Vmovdqu" ],
      "feature": "AVX",
      "args": [
        { "class": "XmmReg", "usage": "def" },
        { "class": "XmmReg", "usage": "use" }
      ]
    },
    {
      "stems": [ "Vmovsd", "Vmovss" ],
      "args": [
        { "class": "XmmReg", "usage": "def" },
        { "class": "XmmReg", "usage": "use" },
        { "class": "XmmReg", "usage": "use" }
      ]
    },
    {
      "encodings": {
        "Vpinsrq": { "feature": "AVX", "opcodes": [ "C4", "03", "81", "22" ], "type": "vex_rm_to_reg" }
      },
      "args": [
        { "class": "VecReg128", "usage": "def" },
        { "class": "VecReg128", "usage": "use" },
        { "class": "GeneralReg64", "usage": "use" },
        { "class": "Imm8" }
      ]
    },
    {
      "stems": [ "Xchgq" ],
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "GeneralReg64", "usage": "use_def" }
      ]
    },
    {
      "encodings": {
        "Xchgq": { "opcode": "87" }
      },
      "args": [
        { "class": "GeneralReg64", "usage": "use_def" },
        { "class": "Mem64", "usage": "use_def" }
      ]
    }
  ]
}
