Subversion Repositories Kolibri OS

Rev

Rev 5221 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #ifdef NEED_OPCODE_TABLE
  2.  
  3. static const struct dis386 evex_table[][256] = {
  4.   /* EVEX_0F */
  5.   {
  6.     /* 00 */
  7.     { Bad_Opcode },
  8.     { Bad_Opcode },
  9.     { Bad_Opcode },
  10.     { Bad_Opcode },
  11.     { Bad_Opcode },
  12.     { Bad_Opcode },
  13.     { Bad_Opcode },
  14.     { Bad_Opcode },
  15.     /* 08 */
  16.     { Bad_Opcode },
  17.     { Bad_Opcode },
  18.     { Bad_Opcode },
  19.     { Bad_Opcode },
  20.     { Bad_Opcode },
  21.     { Bad_Opcode },
  22.     { Bad_Opcode },
  23.     { Bad_Opcode },
  24.     /* 10 */
  25.     { PREFIX_TABLE (PREFIX_EVEX_0F10) },
  26.     { PREFIX_TABLE (PREFIX_EVEX_0F11) },
  27.     { PREFIX_TABLE (PREFIX_EVEX_0F12) },
  28.     { PREFIX_TABLE (PREFIX_EVEX_0F13) },
  29.     { PREFIX_TABLE (PREFIX_EVEX_0F14) },
  30.     { PREFIX_TABLE (PREFIX_EVEX_0F15) },
  31.     { PREFIX_TABLE (PREFIX_EVEX_0F16) },
  32.     { PREFIX_TABLE (PREFIX_EVEX_0F17) },
  33.     /* 18 */
  34.     { Bad_Opcode },
  35.     { Bad_Opcode },
  36.     { Bad_Opcode },
  37.     { Bad_Opcode },
  38.     { Bad_Opcode },
  39.     { Bad_Opcode },
  40.     { Bad_Opcode },
  41.     { Bad_Opcode },
  42.     /* 20 */
  43.     { Bad_Opcode },
  44.     { Bad_Opcode },
  45.     { Bad_Opcode },
  46.     { Bad_Opcode },
  47.     { Bad_Opcode },
  48.     { Bad_Opcode },
  49.     { Bad_Opcode },
  50.     { Bad_Opcode },
  51.     /* 28 */
  52.     { PREFIX_TABLE (PREFIX_EVEX_0F28) },
  53.     { PREFIX_TABLE (PREFIX_EVEX_0F29) },
  54.     { PREFIX_TABLE (PREFIX_EVEX_0F2A) },
  55.     { PREFIX_TABLE (PREFIX_EVEX_0F2B) },
  56.     { PREFIX_TABLE (PREFIX_EVEX_0F2C) },
  57.     { PREFIX_TABLE (PREFIX_EVEX_0F2D) },
  58.     { PREFIX_TABLE (PREFIX_EVEX_0F2E) },
  59.     { PREFIX_TABLE (PREFIX_EVEX_0F2F) },
  60.     /* 30 */
  61.     { Bad_Opcode },
  62.     { Bad_Opcode },
  63.     { Bad_Opcode },
  64.     { Bad_Opcode },
  65.     { Bad_Opcode },
  66.     { Bad_Opcode },
  67.     { Bad_Opcode },
  68.     { Bad_Opcode },
  69.     /* 38 */
  70.     { Bad_Opcode },
  71.     { Bad_Opcode },
  72.     { Bad_Opcode },
  73.     { Bad_Opcode },
  74.     { Bad_Opcode },
  75.     { Bad_Opcode },
  76.     { Bad_Opcode },
  77.     { Bad_Opcode },
  78.     /* 40 */
  79.     { Bad_Opcode },
  80.     { Bad_Opcode },
  81.     { Bad_Opcode },
  82.     { Bad_Opcode },
  83.     { Bad_Opcode },
  84.     { Bad_Opcode },
  85.     { Bad_Opcode },
  86.     { Bad_Opcode },
  87.     /* 48 */
  88.     { Bad_Opcode },
  89.     { Bad_Opcode },
  90.     { Bad_Opcode },
  91.     { Bad_Opcode },
  92.     { Bad_Opcode },
  93.     { Bad_Opcode },
  94.     { Bad_Opcode },
  95.     { Bad_Opcode },
  96.     /* 50 */
  97.     { Bad_Opcode },
  98.     { PREFIX_TABLE (PREFIX_EVEX_0F51) },
  99.     { Bad_Opcode },
  100.     { Bad_Opcode },
  101.     { PREFIX_TABLE (PREFIX_EVEX_0F54) },
  102.     { PREFIX_TABLE (PREFIX_EVEX_0F55) },
  103.     { PREFIX_TABLE (PREFIX_EVEX_0F56) },
  104.     { PREFIX_TABLE (PREFIX_EVEX_0F57) },
  105.     /* 58 */
  106.     { PREFIX_TABLE (PREFIX_EVEX_0F58) },
  107.     { PREFIX_TABLE (PREFIX_EVEX_0F59) },
  108.     { PREFIX_TABLE (PREFIX_EVEX_0F5A) },
  109.     { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
  110.     { PREFIX_TABLE (PREFIX_EVEX_0F5C) },
  111.     { PREFIX_TABLE (PREFIX_EVEX_0F5D) },
  112.     { PREFIX_TABLE (PREFIX_EVEX_0F5E) },
  113.     { PREFIX_TABLE (PREFIX_EVEX_0F5F) },
  114.     /* 60 */
  115.     { PREFIX_TABLE (PREFIX_EVEX_0F60) },
  116.     { PREFIX_TABLE (PREFIX_EVEX_0F61) },
  117.     { PREFIX_TABLE (PREFIX_EVEX_0F62) },
  118.     { PREFIX_TABLE (PREFIX_EVEX_0F63) },
  119.     { PREFIX_TABLE (PREFIX_EVEX_0F64) },
  120.     { PREFIX_TABLE (PREFIX_EVEX_0F65) },
  121.     { PREFIX_TABLE (PREFIX_EVEX_0F66) },
  122.     { PREFIX_TABLE (PREFIX_EVEX_0F67) },
  123.     /* 68 */
  124.     { PREFIX_TABLE (PREFIX_EVEX_0F68) },
  125.     { PREFIX_TABLE (PREFIX_EVEX_0F69) },
  126.     { PREFIX_TABLE (PREFIX_EVEX_0F6A) },
  127.     { PREFIX_TABLE (PREFIX_EVEX_0F6B) },
  128.     { PREFIX_TABLE (PREFIX_EVEX_0F6C) },
  129.     { PREFIX_TABLE (PREFIX_EVEX_0F6D) },
  130.     { PREFIX_TABLE (PREFIX_EVEX_0F6E) },
  131.     { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
  132.     /* 70 */
  133.     { PREFIX_TABLE (PREFIX_EVEX_0F70) },
  134.     { REG_TABLE (REG_EVEX_0F71) },
  135.     { REG_TABLE (REG_EVEX_0F72) },
  136.     { REG_TABLE (REG_EVEX_0F73) },
  137.     { PREFIX_TABLE (PREFIX_EVEX_0F74) },
  138.     { PREFIX_TABLE (PREFIX_EVEX_0F75) },
  139.     { PREFIX_TABLE (PREFIX_EVEX_0F76) },
  140.     { Bad_Opcode },
  141.     /* 78 */
  142.     { PREFIX_TABLE (PREFIX_EVEX_0F78) },
  143.     { PREFIX_TABLE (PREFIX_EVEX_0F79) },
  144.     { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
  145.     { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
  146.     { Bad_Opcode },
  147.     { Bad_Opcode },
  148.     { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
  149.     { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
  150.     /* 80 */
  151.     { Bad_Opcode },
  152.     { Bad_Opcode },
  153.     { Bad_Opcode },
  154.     { Bad_Opcode },
  155.     { Bad_Opcode },
  156.     { Bad_Opcode },
  157.     { Bad_Opcode },
  158.     { Bad_Opcode },
  159.     /* 88 */
  160.     { Bad_Opcode },
  161.     { Bad_Opcode },
  162.     { Bad_Opcode },
  163.     { Bad_Opcode },
  164.     { Bad_Opcode },
  165.     { Bad_Opcode },
  166.     { Bad_Opcode },
  167.     { Bad_Opcode },
  168.     /* 90 */
  169.     { Bad_Opcode },
  170.     { Bad_Opcode },
  171.     { Bad_Opcode },
  172.     { Bad_Opcode },
  173.     { Bad_Opcode },
  174.     { Bad_Opcode },
  175.     { Bad_Opcode },
  176.     { Bad_Opcode },
  177.     /* 98 */
  178.     { Bad_Opcode },
  179.     { Bad_Opcode },
  180.     { Bad_Opcode },
  181.     { Bad_Opcode },
  182.     { Bad_Opcode },
  183.     { Bad_Opcode },
  184.     { Bad_Opcode },
  185.     { Bad_Opcode },
  186.     /* A0 */
  187.     { Bad_Opcode },
  188.     { Bad_Opcode },
  189.     { Bad_Opcode },
  190.     { Bad_Opcode },
  191.     { Bad_Opcode },
  192.     { Bad_Opcode },
  193.     { Bad_Opcode },
  194.     { Bad_Opcode },
  195.     /* A8 */
  196.     { Bad_Opcode },
  197.     { Bad_Opcode },
  198.     { Bad_Opcode },
  199.     { Bad_Opcode },
  200.     { Bad_Opcode },
  201.     { Bad_Opcode },
  202.     { Bad_Opcode },
  203.     { Bad_Opcode },
  204.     /* B0 */
  205.     { Bad_Opcode },
  206.     { Bad_Opcode },
  207.     { Bad_Opcode },
  208.     { Bad_Opcode },
  209.     { Bad_Opcode },
  210.     { Bad_Opcode },
  211.     { Bad_Opcode },
  212.     { Bad_Opcode },
  213.     /* B8 */
  214.     { Bad_Opcode },
  215.     { Bad_Opcode },
  216.     { Bad_Opcode },
  217.     { Bad_Opcode },
  218.     { Bad_Opcode },
  219.     { Bad_Opcode },
  220.     { Bad_Opcode },
  221.     { Bad_Opcode },
  222.     /* C0 */
  223.     { Bad_Opcode },
  224.     { Bad_Opcode },
  225.     { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
  226.     { Bad_Opcode },
  227.     { PREFIX_TABLE (PREFIX_EVEX_0FC4) },
  228.     { PREFIX_TABLE (PREFIX_EVEX_0FC5) },
  229.     { PREFIX_TABLE (PREFIX_EVEX_0FC6) },
  230.     { Bad_Opcode },
  231.     /* C8 */
  232.     { Bad_Opcode },
  233.     { Bad_Opcode },
  234.     { Bad_Opcode },
  235.     { Bad_Opcode },
  236.     { Bad_Opcode },
  237.     { Bad_Opcode },
  238.     { Bad_Opcode },
  239.     { Bad_Opcode },
  240.     /* D0 */
  241.     { Bad_Opcode },
  242.     { PREFIX_TABLE (PREFIX_EVEX_0FD1) },
  243.     { PREFIX_TABLE (PREFIX_EVEX_0FD2) },
  244.     { PREFIX_TABLE (PREFIX_EVEX_0FD3) },
  245.     { PREFIX_TABLE (PREFIX_EVEX_0FD4) },
  246.     { PREFIX_TABLE (PREFIX_EVEX_0FD5) },
  247.     { PREFIX_TABLE (PREFIX_EVEX_0FD6) },
  248.     { Bad_Opcode },
  249.     /* D8 */
  250.     { PREFIX_TABLE (PREFIX_EVEX_0FD8) },
  251.     { PREFIX_TABLE (PREFIX_EVEX_0FD9) },
  252.     { PREFIX_TABLE (PREFIX_EVEX_0FDA) },
  253.     { PREFIX_TABLE (PREFIX_EVEX_0FDB) },
  254.     { PREFIX_TABLE (PREFIX_EVEX_0FDC) },
  255.     { PREFIX_TABLE (PREFIX_EVEX_0FDD) },
  256.     { PREFIX_TABLE (PREFIX_EVEX_0FDE) },
  257.     { PREFIX_TABLE (PREFIX_EVEX_0FDF) },
  258.     /* E0 */
  259.     { PREFIX_TABLE (PREFIX_EVEX_0FE0) },
  260.     { PREFIX_TABLE (PREFIX_EVEX_0FE1) },
  261.     { PREFIX_TABLE (PREFIX_EVEX_0FE2) },
  262.     { PREFIX_TABLE (PREFIX_EVEX_0FE3) },
  263.     { PREFIX_TABLE (PREFIX_EVEX_0FE4) },
  264.     { PREFIX_TABLE (PREFIX_EVEX_0FE5) },
  265.     { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
  266.     { PREFIX_TABLE (PREFIX_EVEX_0FE7) },
  267.     /* E8 */
  268.     { PREFIX_TABLE (PREFIX_EVEX_0FE8) },
  269.     { PREFIX_TABLE (PREFIX_EVEX_0FE9) },
  270.     { PREFIX_TABLE (PREFIX_EVEX_0FEA) },
  271.     { PREFIX_TABLE (PREFIX_EVEX_0FEB) },
  272.     { PREFIX_TABLE (PREFIX_EVEX_0FEC) },
  273.     { PREFIX_TABLE (PREFIX_EVEX_0FED) },
  274.     { PREFIX_TABLE (PREFIX_EVEX_0FEE) },
  275.     { PREFIX_TABLE (PREFIX_EVEX_0FEF) },
  276.     /* F0 */
  277.     { Bad_Opcode },
  278.     { PREFIX_TABLE (PREFIX_EVEX_0FF1) },
  279.     { PREFIX_TABLE (PREFIX_EVEX_0FF2) },
  280.     { PREFIX_TABLE (PREFIX_EVEX_0FF3) },
  281.     { PREFIX_TABLE (PREFIX_EVEX_0FF4) },
  282.     { PREFIX_TABLE (PREFIX_EVEX_0FF5) },
  283.     { PREFIX_TABLE (PREFIX_EVEX_0FF6) },
  284.     { Bad_Opcode },
  285.     /* F8 */
  286.     { PREFIX_TABLE (PREFIX_EVEX_0FF8) },
  287.     { PREFIX_TABLE (PREFIX_EVEX_0FF9) },
  288.     { PREFIX_TABLE (PREFIX_EVEX_0FFA) },
  289.     { PREFIX_TABLE (PREFIX_EVEX_0FFB) },
  290.     { PREFIX_TABLE (PREFIX_EVEX_0FFC) },
  291.     { PREFIX_TABLE (PREFIX_EVEX_0FFD) },
  292.     { PREFIX_TABLE (PREFIX_EVEX_0FFE) },
  293.     { Bad_Opcode },
  294.   },
  295.   /* EVEX_0F38 */
  296.   {
  297.     /* 00 */
  298.     { PREFIX_TABLE (PREFIX_EVEX_0F3800) },
  299.     { Bad_Opcode },
  300.     { Bad_Opcode },
  301.     { Bad_Opcode },
  302.     { PREFIX_TABLE (PREFIX_EVEX_0F3804) },
  303.     { Bad_Opcode },
  304.     { Bad_Opcode },
  305.     { Bad_Opcode },
  306.     /* 08 */
  307.     { Bad_Opcode },
  308.     { Bad_Opcode },
  309.     { Bad_Opcode },
  310.     { PREFIX_TABLE (PREFIX_EVEX_0F380B) },
  311.     { PREFIX_TABLE (PREFIX_EVEX_0F380C) },
  312.     { PREFIX_TABLE (PREFIX_EVEX_0F380D) },
  313.     { Bad_Opcode },
  314.     { Bad_Opcode },
  315.     /* 10 */
  316.     { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
  317.     { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
  318.     { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
  319.     { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
  320.     { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
  321.     { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
  322.     { PREFIX_TABLE (PREFIX_EVEX_0F3816) },
  323.     { Bad_Opcode },
  324.     /* 18 */
  325.     { PREFIX_TABLE (PREFIX_EVEX_0F3818) },
  326.     { PREFIX_TABLE (PREFIX_EVEX_0F3819) },
  327.     { PREFIX_TABLE (PREFIX_EVEX_0F381A) },
  328.     { PREFIX_TABLE (PREFIX_EVEX_0F381B) },
  329.     { PREFIX_TABLE (PREFIX_EVEX_0F381C) },
  330.     { PREFIX_TABLE (PREFIX_EVEX_0F381D) },
  331.     { PREFIX_TABLE (PREFIX_EVEX_0F381E) },
  332.     { PREFIX_TABLE (PREFIX_EVEX_0F381F) },
  333.     /* 20 */
  334.     { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
  335.     { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
  336.     { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
  337.     { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
  338.     { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
  339.     { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
  340.     { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
  341.     { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
  342.     /* 28 */
  343.     { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
  344.     { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
  345.     { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
  346.     { PREFIX_TABLE (PREFIX_EVEX_0F382B) },
  347.     { PREFIX_TABLE (PREFIX_EVEX_0F382C) },
  348.     { PREFIX_TABLE (PREFIX_EVEX_0F382D) },
  349.     { Bad_Opcode },
  350.     { Bad_Opcode },
  351.     /* 30 */
  352.     { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
  353.     { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
  354.     { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
  355.     { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
  356.     { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
  357.     { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
  358.     { PREFIX_TABLE (PREFIX_EVEX_0F3836) },
  359.     { PREFIX_TABLE (PREFIX_EVEX_0F3837) },
  360.     /* 38 */
  361.     { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
  362.     { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
  363.     { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
  364.     { PREFIX_TABLE (PREFIX_EVEX_0F383B) },
  365.     { PREFIX_TABLE (PREFIX_EVEX_0F383C) },
  366.     { PREFIX_TABLE (PREFIX_EVEX_0F383D) },
  367.     { PREFIX_TABLE (PREFIX_EVEX_0F383E) },
  368.     { PREFIX_TABLE (PREFIX_EVEX_0F383F) },
  369.     /* 40 */
  370.     { PREFIX_TABLE (PREFIX_EVEX_0F3840) },
  371.     { Bad_Opcode },
  372.     { PREFIX_TABLE (PREFIX_EVEX_0F3842) },
  373.     { PREFIX_TABLE (PREFIX_EVEX_0F3843) },
  374.     { PREFIX_TABLE (PREFIX_EVEX_0F3844) },
  375.     { PREFIX_TABLE (PREFIX_EVEX_0F3845) },
  376.     { PREFIX_TABLE (PREFIX_EVEX_0F3846) },
  377.     { PREFIX_TABLE (PREFIX_EVEX_0F3847) },
  378.     /* 48 */
  379.     { Bad_Opcode },
  380.     { Bad_Opcode },
  381.     { Bad_Opcode },
  382.     { Bad_Opcode },
  383.     { PREFIX_TABLE (PREFIX_EVEX_0F384C) },
  384.     { PREFIX_TABLE (PREFIX_EVEX_0F384D) },
  385.     { PREFIX_TABLE (PREFIX_EVEX_0F384E) },
  386.     { PREFIX_TABLE (PREFIX_EVEX_0F384F) },
  387.     /* 50 */
  388.     { Bad_Opcode },
  389.     { Bad_Opcode },
  390.     { Bad_Opcode },
  391.     { Bad_Opcode },
  392.     { Bad_Opcode },
  393.     { Bad_Opcode },
  394.     { Bad_Opcode },
  395.     { Bad_Opcode },
  396.     /* 58 */
  397.     { PREFIX_TABLE (PREFIX_EVEX_0F3858) },
  398.     { PREFIX_TABLE (PREFIX_EVEX_0F3859) },
  399.     { PREFIX_TABLE (PREFIX_EVEX_0F385A) },
  400.     { PREFIX_TABLE (PREFIX_EVEX_0F385B) },
  401.     { Bad_Opcode },
  402.     { Bad_Opcode },
  403.     { Bad_Opcode },
  404.     { Bad_Opcode },
  405.     /* 60 */
  406.     { Bad_Opcode },
  407.     { Bad_Opcode },
  408.     { Bad_Opcode },
  409.     { Bad_Opcode },
  410.     { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
  411.     { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
  412.     { PREFIX_TABLE (PREFIX_EVEX_0F3866) },
  413.     { Bad_Opcode },
  414.     /* 68 */
  415.     { Bad_Opcode },
  416.     { Bad_Opcode },
  417.     { Bad_Opcode },
  418.     { Bad_Opcode },
  419.     { Bad_Opcode },
  420.     { Bad_Opcode },
  421.     { Bad_Opcode },
  422.     { Bad_Opcode },
  423.     /* 70 */
  424.     { Bad_Opcode },
  425.     { Bad_Opcode },
  426.     { Bad_Opcode },
  427.     { Bad_Opcode },
  428.     { Bad_Opcode },
  429.     { PREFIX_TABLE (PREFIX_EVEX_0F3875) },
  430.     { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
  431.     { PREFIX_TABLE (PREFIX_EVEX_0F3877) },
  432.     /* 78 */
  433.     { PREFIX_TABLE (PREFIX_EVEX_0F3878) },
  434.     { PREFIX_TABLE (PREFIX_EVEX_0F3879) },
  435.     { PREFIX_TABLE (PREFIX_EVEX_0F387A) },
  436.     { PREFIX_TABLE (PREFIX_EVEX_0F387B) },
  437.     { PREFIX_TABLE (PREFIX_EVEX_0F387C) },
  438.     { PREFIX_TABLE (PREFIX_EVEX_0F387D) },
  439.     { PREFIX_TABLE (PREFIX_EVEX_0F387E) },
  440.     { PREFIX_TABLE (PREFIX_EVEX_0F387F) },
  441.     /* 80 */
  442.     { Bad_Opcode },
  443.     { Bad_Opcode },
  444.     { Bad_Opcode },
  445.     { PREFIX_TABLE (PREFIX_EVEX_0F3883) },
  446.     { Bad_Opcode },
  447.     { Bad_Opcode },
  448.     { Bad_Opcode },
  449.     { Bad_Opcode },
  450.     /* 88 */
  451.     { PREFIX_TABLE (PREFIX_EVEX_0F3888) },
  452.     { PREFIX_TABLE (PREFIX_EVEX_0F3889) },
  453.     { PREFIX_TABLE (PREFIX_EVEX_0F388A) },
  454.     { PREFIX_TABLE (PREFIX_EVEX_0F388B) },
  455.     { Bad_Opcode },
  456.     { PREFIX_TABLE (PREFIX_EVEX_0F388D) },
  457.     { Bad_Opcode },
  458.     { Bad_Opcode },
  459.     /* 90 */
  460.     { PREFIX_TABLE (PREFIX_EVEX_0F3890) },
  461.     { PREFIX_TABLE (PREFIX_EVEX_0F3891) },
  462.     { PREFIX_TABLE (PREFIX_EVEX_0F3892) },
  463.     { PREFIX_TABLE (PREFIX_EVEX_0F3893) },
  464.     { Bad_Opcode },
  465.     { Bad_Opcode },
  466.     { PREFIX_TABLE (PREFIX_EVEX_0F3896) },
  467.     { PREFIX_TABLE (PREFIX_EVEX_0F3897) },
  468.     /* 98 */
  469.     { PREFIX_TABLE (PREFIX_EVEX_0F3898) },
  470.     { PREFIX_TABLE (PREFIX_EVEX_0F3899) },
  471.     { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
  472.     { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
  473.     { PREFIX_TABLE (PREFIX_EVEX_0F389C) },
  474.     { PREFIX_TABLE (PREFIX_EVEX_0F389D) },
  475.     { PREFIX_TABLE (PREFIX_EVEX_0F389E) },
  476.     { PREFIX_TABLE (PREFIX_EVEX_0F389F) },
  477.     /* A0 */
  478.     { PREFIX_TABLE (PREFIX_EVEX_0F38A0) },
  479.     { PREFIX_TABLE (PREFIX_EVEX_0F38A1) },
  480.     { PREFIX_TABLE (PREFIX_EVEX_0F38A2) },
  481.     { PREFIX_TABLE (PREFIX_EVEX_0F38A3) },
  482.     { Bad_Opcode },
  483.     { Bad_Opcode },
  484.     { PREFIX_TABLE (PREFIX_EVEX_0F38A6) },
  485.     { PREFIX_TABLE (PREFIX_EVEX_0F38A7) },
  486.     /* A8 */
  487.     { PREFIX_TABLE (PREFIX_EVEX_0F38A8) },
  488.     { PREFIX_TABLE (PREFIX_EVEX_0F38A9) },
  489.     { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
  490.     { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
  491.     { PREFIX_TABLE (PREFIX_EVEX_0F38AC) },
  492.     { PREFIX_TABLE (PREFIX_EVEX_0F38AD) },
  493.     { PREFIX_TABLE (PREFIX_EVEX_0F38AE) },
  494.     { PREFIX_TABLE (PREFIX_EVEX_0F38AF) },
  495.     /* B0 */
  496.     { Bad_Opcode },
  497.     { Bad_Opcode },
  498.     { Bad_Opcode },
  499.     { Bad_Opcode },
  500.     { PREFIX_TABLE (PREFIX_EVEX_0F38B4) },
  501.     { PREFIX_TABLE (PREFIX_EVEX_0F38B5) },
  502.     { PREFIX_TABLE (PREFIX_EVEX_0F38B6) },
  503.     { PREFIX_TABLE (PREFIX_EVEX_0F38B7) },
  504.     /* B8 */
  505.     { PREFIX_TABLE (PREFIX_EVEX_0F38B8) },
  506.     { PREFIX_TABLE (PREFIX_EVEX_0F38B9) },
  507.     { PREFIX_TABLE (PREFIX_EVEX_0F38BA) },
  508.     { PREFIX_TABLE (PREFIX_EVEX_0F38BB) },
  509.     { PREFIX_TABLE (PREFIX_EVEX_0F38BC) },
  510.     { PREFIX_TABLE (PREFIX_EVEX_0F38BD) },
  511.     { PREFIX_TABLE (PREFIX_EVEX_0F38BE) },
  512.     { PREFIX_TABLE (PREFIX_EVEX_0F38BF) },
  513.     /* C0 */
  514.     { Bad_Opcode },
  515.     { Bad_Opcode },
  516.     { Bad_Opcode },
  517.     { Bad_Opcode },
  518.     { PREFIX_TABLE (PREFIX_EVEX_0F38C4) },
  519.     { Bad_Opcode },
  520.     { REG_TABLE (REG_EVEX_0F38C6) },
  521.     { REG_TABLE (REG_EVEX_0F38C7) },
  522.     /* C8 */
  523.     { PREFIX_TABLE (PREFIX_EVEX_0F38C8) },
  524.     { Bad_Opcode },
  525.     { PREFIX_TABLE (PREFIX_EVEX_0F38CA) },
  526.     { PREFIX_TABLE (PREFIX_EVEX_0F38CB) },
  527.     { PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
  528.     { PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
  529.     { Bad_Opcode },
  530.     { Bad_Opcode },
  531.     /* D0 */
  532.     { Bad_Opcode },
  533.     { Bad_Opcode },
  534.     { Bad_Opcode },
  535.     { Bad_Opcode },
  536.     { Bad_Opcode },
  537.     { Bad_Opcode },
  538.     { Bad_Opcode },
  539.     { Bad_Opcode },
  540.     /* D8 */
  541.     { Bad_Opcode },
  542.     { Bad_Opcode },
  543.     { Bad_Opcode },
  544.     { Bad_Opcode },
  545.     { Bad_Opcode },
  546.     { Bad_Opcode },
  547.     { Bad_Opcode },
  548.     { Bad_Opcode },
  549.     /* E0 */
  550.     { Bad_Opcode },
  551.     { Bad_Opcode },
  552.     { Bad_Opcode },
  553.     { Bad_Opcode },
  554.     { Bad_Opcode },
  555.     { Bad_Opcode },
  556.     { Bad_Opcode },
  557.     { Bad_Opcode },
  558.     /* E8 */
  559.     { Bad_Opcode },
  560.     { Bad_Opcode },
  561.     { Bad_Opcode },
  562.     { Bad_Opcode },
  563.     { Bad_Opcode },
  564.     { Bad_Opcode },
  565.     { Bad_Opcode },
  566.     { Bad_Opcode },
  567.     /* F0 */
  568.     { Bad_Opcode },
  569.     { Bad_Opcode },
  570.     { Bad_Opcode },
  571.     { Bad_Opcode },
  572.     { Bad_Opcode },
  573.     { Bad_Opcode },
  574.     { Bad_Opcode },
  575.     { Bad_Opcode },
  576.     /* F8 */
  577.     { Bad_Opcode },
  578.     { Bad_Opcode },
  579.     { Bad_Opcode },
  580.     { Bad_Opcode },
  581.     { Bad_Opcode },
  582.     { Bad_Opcode },
  583.     { Bad_Opcode },
  584.     { Bad_Opcode },
  585.   },
  586.   /* EVEX_0F3A */
  587.   {
  588.     /* 00 */
  589.     { PREFIX_TABLE (PREFIX_EVEX_0F3A00) },
  590.     { PREFIX_TABLE (PREFIX_EVEX_0F3A01) },
  591.     { Bad_Opcode },
  592.     { PREFIX_TABLE (PREFIX_EVEX_0F3A03) },
  593.     { PREFIX_TABLE (PREFIX_EVEX_0F3A04) },
  594.     { PREFIX_TABLE (PREFIX_EVEX_0F3A05) },
  595.     { Bad_Opcode },
  596.     { Bad_Opcode },
  597.     /* 08 */
  598.     { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
  599.     { PREFIX_TABLE (PREFIX_EVEX_0F3A09) },
  600.     { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
  601.     { PREFIX_TABLE (PREFIX_EVEX_0F3A0B) },
  602.     { Bad_Opcode },
  603.     { Bad_Opcode },
  604.     { Bad_Opcode },
  605.     { PREFIX_TABLE (PREFIX_EVEX_0F3A0F) },
  606.     /* 10 */
  607.     { Bad_Opcode },
  608.     { Bad_Opcode },
  609.     { Bad_Opcode },
  610.     { Bad_Opcode },
  611.     { PREFIX_TABLE (PREFIX_EVEX_0F3A14) },
  612.     { PREFIX_TABLE (PREFIX_EVEX_0F3A15) },
  613.     { PREFIX_TABLE (PREFIX_EVEX_0F3A16) },
  614.     { PREFIX_TABLE (PREFIX_EVEX_0F3A17) },
  615.     /* 18 */
  616.     { PREFIX_TABLE (PREFIX_EVEX_0F3A18) },
  617.     { PREFIX_TABLE (PREFIX_EVEX_0F3A19) },
  618.     { PREFIX_TABLE (PREFIX_EVEX_0F3A1A) },
  619.     { PREFIX_TABLE (PREFIX_EVEX_0F3A1B) },
  620.     { Bad_Opcode },
  621.     { PREFIX_TABLE (PREFIX_EVEX_0F3A1D) },
  622.     { PREFIX_TABLE (PREFIX_EVEX_0F3A1E) },
  623.     { PREFIX_TABLE (PREFIX_EVEX_0F3A1F) },
  624.     /* 20 */
  625.     { PREFIX_TABLE (PREFIX_EVEX_0F3A20) },
  626.     { PREFIX_TABLE (PREFIX_EVEX_0F3A21) },
  627.     { PREFIX_TABLE (PREFIX_EVEX_0F3A22) },
  628.     { PREFIX_TABLE (PREFIX_EVEX_0F3A23) },
  629.     { Bad_Opcode },
  630.     { PREFIX_TABLE (PREFIX_EVEX_0F3A25) },
  631.     { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
  632.     { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
  633.     /* 28 */
  634.     { Bad_Opcode },
  635.     { Bad_Opcode },
  636.     { Bad_Opcode },
  637.     { Bad_Opcode },
  638.     { Bad_Opcode },
  639.     { Bad_Opcode },
  640.     { Bad_Opcode },
  641.     { Bad_Opcode },
  642.     /* 30 */
  643.     { Bad_Opcode },
  644.     { Bad_Opcode },
  645.     { Bad_Opcode },
  646.     { Bad_Opcode },
  647.     { Bad_Opcode },
  648.     { Bad_Opcode },
  649.     { Bad_Opcode },
  650.     { Bad_Opcode },
  651.     /* 38 */
  652.     { PREFIX_TABLE (PREFIX_EVEX_0F3A38) },
  653.     { PREFIX_TABLE (PREFIX_EVEX_0F3A39) },
  654.     { PREFIX_TABLE (PREFIX_EVEX_0F3A3A) },
  655.     { PREFIX_TABLE (PREFIX_EVEX_0F3A3B) },
  656.     { Bad_Opcode },
  657.     { Bad_Opcode },
  658.     { PREFIX_TABLE (PREFIX_EVEX_0F3A3E) },
  659.     { PREFIX_TABLE (PREFIX_EVEX_0F3A3F) },
  660.     /* 40 */
  661.     { Bad_Opcode },
  662.     { Bad_Opcode },
  663.     { PREFIX_TABLE (PREFIX_EVEX_0F3A42) },
  664.     { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
  665.     { Bad_Opcode },
  666.     { Bad_Opcode },
  667.     { Bad_Opcode },
  668.     { Bad_Opcode },
  669.     /* 48 */
  670.     { Bad_Opcode },
  671.     { Bad_Opcode },
  672.     { Bad_Opcode },
  673.     { Bad_Opcode },
  674.     { Bad_Opcode },
  675.     { Bad_Opcode },
  676.     { Bad_Opcode },
  677.     { Bad_Opcode },
  678.     /* 50 */
  679.     { PREFIX_TABLE (PREFIX_EVEX_0F3A50) },
  680.     { PREFIX_TABLE (PREFIX_EVEX_0F3A51) },
  681.     { Bad_Opcode },
  682.     { Bad_Opcode },
  683.     { PREFIX_TABLE (PREFIX_EVEX_0F3A54) },
  684.     { PREFIX_TABLE (PREFIX_EVEX_0F3A55) },
  685.     { PREFIX_TABLE (PREFIX_EVEX_0F3A56) },
  686.     { PREFIX_TABLE (PREFIX_EVEX_0F3A57) },
  687.     /* 58 */
  688.     { Bad_Opcode },
  689.     { Bad_Opcode },
  690.     { Bad_Opcode },
  691.     { Bad_Opcode },
  692.     { Bad_Opcode },
  693.     { Bad_Opcode },
  694.     { Bad_Opcode },
  695.     { Bad_Opcode },
  696.     /* 60 */
  697.     { Bad_Opcode },
  698.     { Bad_Opcode },
  699.     { Bad_Opcode },
  700.     { Bad_Opcode },
  701.     { Bad_Opcode },
  702.     { Bad_Opcode },
  703.     { PREFIX_TABLE (PREFIX_EVEX_0F3A66) },
  704.     { PREFIX_TABLE (PREFIX_EVEX_0F3A67) },
  705.     /* 68 */
  706.     { Bad_Opcode },
  707.     { Bad_Opcode },
  708.     { Bad_Opcode },
  709.     { Bad_Opcode },
  710.     { Bad_Opcode },
  711.     { Bad_Opcode },
  712.     { Bad_Opcode },
  713.     { Bad_Opcode },
  714.     /* 70 */
  715.     { Bad_Opcode },
  716.     { Bad_Opcode },
  717.     { Bad_Opcode },
  718.     { Bad_Opcode },
  719.     { Bad_Opcode },
  720.     { Bad_Opcode },
  721.     { Bad_Opcode },
  722.     { Bad_Opcode },
  723.     /* 78 */
  724.     { Bad_Opcode },
  725.     { Bad_Opcode },
  726.     { Bad_Opcode },
  727.     { Bad_Opcode },
  728.     { Bad_Opcode },
  729.     { Bad_Opcode },
  730.     { Bad_Opcode },
  731.     { Bad_Opcode },
  732.     /* 80 */
  733.     { Bad_Opcode },
  734.     { Bad_Opcode },
  735.     { Bad_Opcode },
  736.     { Bad_Opcode },
  737.     { Bad_Opcode },
  738.     { Bad_Opcode },
  739.     { Bad_Opcode },
  740.     { Bad_Opcode },
  741.     /* 88 */
  742.     { Bad_Opcode },
  743.     { Bad_Opcode },
  744.     { Bad_Opcode },
  745.     { Bad_Opcode },
  746.     { Bad_Opcode },
  747.     { Bad_Opcode },
  748.     { Bad_Opcode },
  749.     { Bad_Opcode },
  750.     /* 90 */
  751.     { Bad_Opcode },
  752.     { Bad_Opcode },
  753.     { Bad_Opcode },
  754.     { Bad_Opcode },
  755.     { Bad_Opcode },
  756.     { Bad_Opcode },
  757.     { Bad_Opcode },
  758.     { Bad_Opcode },
  759.     /* 98 */
  760.     { Bad_Opcode },
  761.     { Bad_Opcode },
  762.     { Bad_Opcode },
  763.     { Bad_Opcode },
  764.     { Bad_Opcode },
  765.     { Bad_Opcode },
  766.     { Bad_Opcode },
  767.     { Bad_Opcode },
  768.     /* A0 */
  769.     { Bad_Opcode },
  770.     { Bad_Opcode },
  771.     { Bad_Opcode },
  772.     { Bad_Opcode },
  773.     { Bad_Opcode },
  774.     { Bad_Opcode },
  775.     { Bad_Opcode },
  776.     { Bad_Opcode },
  777.     /* A8 */
  778.     { Bad_Opcode },
  779.     { Bad_Opcode },
  780.     { Bad_Opcode },
  781.     { Bad_Opcode },
  782.     { Bad_Opcode },
  783.     { Bad_Opcode },
  784.     { Bad_Opcode },
  785.     { Bad_Opcode },
  786.     /* B0 */
  787.     { Bad_Opcode },
  788.     { Bad_Opcode },
  789.     { Bad_Opcode },
  790.     { Bad_Opcode },
  791.     { Bad_Opcode },
  792.     { Bad_Opcode },
  793.     { Bad_Opcode },
  794.     { Bad_Opcode },
  795.     /* B8 */
  796.     { Bad_Opcode },
  797.     { Bad_Opcode },
  798.     { Bad_Opcode },
  799.     { Bad_Opcode },
  800.     { Bad_Opcode },
  801.     { Bad_Opcode },
  802.     { Bad_Opcode },
  803.     { Bad_Opcode },
  804.     /* C0 */
  805.     { Bad_Opcode },
  806.     { Bad_Opcode },
  807.     { Bad_Opcode },
  808.     { Bad_Opcode },
  809.     { Bad_Opcode },
  810.     { Bad_Opcode },
  811.     { Bad_Opcode },
  812.     { Bad_Opcode },
  813.     /* C8 */
  814.     { Bad_Opcode },
  815.     { Bad_Opcode },
  816.     { Bad_Opcode },
  817.     { Bad_Opcode },
  818.     { Bad_Opcode },
  819.     { Bad_Opcode },
  820.     { Bad_Opcode },
  821.     { Bad_Opcode },
  822.     /* D0 */
  823.     { Bad_Opcode },
  824.     { Bad_Opcode },
  825.     { Bad_Opcode },
  826.     { Bad_Opcode },
  827.     { Bad_Opcode },
  828.     { Bad_Opcode },
  829.     { Bad_Opcode },
  830.     { Bad_Opcode },
  831.     /* D8 */
  832.     { Bad_Opcode },
  833.     { Bad_Opcode },
  834.     { Bad_Opcode },
  835.     { Bad_Opcode },
  836.     { Bad_Opcode },
  837.     { Bad_Opcode },
  838.     { Bad_Opcode },
  839.     { Bad_Opcode },
  840.     /* E0 */
  841.     { Bad_Opcode },
  842.     { Bad_Opcode },
  843.     { Bad_Opcode },
  844.     { Bad_Opcode },
  845.     { Bad_Opcode },
  846.     { Bad_Opcode },
  847.     { Bad_Opcode },
  848.     { Bad_Opcode },
  849.     /* E8 */
  850.     { Bad_Opcode },
  851.     { Bad_Opcode },
  852.     { Bad_Opcode },
  853.     { Bad_Opcode },
  854.     { Bad_Opcode },
  855.     { Bad_Opcode },
  856.     { Bad_Opcode },
  857.     { Bad_Opcode },
  858.     /* F0 */
  859.     { Bad_Opcode },
  860.     { Bad_Opcode },
  861.     { Bad_Opcode },
  862.     { Bad_Opcode },
  863.     { Bad_Opcode },
  864.     { Bad_Opcode },
  865.     { Bad_Opcode },
  866.     { Bad_Opcode },
  867.     /* F8 */
  868.     { Bad_Opcode },
  869.     { Bad_Opcode },
  870.     { Bad_Opcode },
  871.     { Bad_Opcode },
  872.     { Bad_Opcode },
  873.     { Bad_Opcode },
  874.     { Bad_Opcode },
  875.     { Bad_Opcode },
  876.   },
  877. };
  878. #endif /* NEED_OPCODE_TABLE */
  879.  
  880. #ifdef NEED_REG_TABLE
  881.   /* REG_EVEX_0F71 */
  882.   {
  883.     { Bad_Opcode },
  884.     { Bad_Opcode },
  885.     { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_2) },
  886.     { Bad_Opcode },
  887.     { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_4) },
  888.     { Bad_Opcode },
  889.     { PREFIX_TABLE (PREFIX_EVEX_0F71_REG_6) },
  890.   },
  891.   /* REG_EVEX_0F72 */
  892.   {
  893.     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_0) },
  894.     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_1) },
  895.     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_2) },
  896.     { Bad_Opcode },
  897.     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_4) },
  898.     { Bad_Opcode },
  899.     { PREFIX_TABLE (PREFIX_EVEX_0F72_REG_6) },
  900.   },
  901.   /* REG_EVEX_0F73 */
  902.   {
  903.     { Bad_Opcode },
  904.     { Bad_Opcode },
  905.     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_2) },
  906.     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_3) },
  907.     { Bad_Opcode },
  908.     { Bad_Opcode },
  909.     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_6) },
  910.     { PREFIX_TABLE (PREFIX_EVEX_0F73_REG_7) },
  911.   },
  912.   /* REG_EVEX_0F38C6 */
  913.   {
  914.     { Bad_Opcode },
  915.     { MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
  916.     { MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
  917.     { Bad_Opcode },
  918.     { Bad_Opcode },
  919.     { MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
  920.     { MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
  921.   },
  922.   /* REG_EVEX_0F38C7 */
  923.   {
  924.     { Bad_Opcode },
  925.     { MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
  926.     { MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
  927.     { Bad_Opcode },
  928.     { Bad_Opcode },
  929.     { MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
  930.     { MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
  931.   },
  932. #endif /* NEED_REG_TABLE */
  933.  
  934. #ifdef NEED_PREFIX_TABLE
  935.   /* PREFIX_EVEX_0F10 */
  936.   {
  937.     { VEX_W_TABLE (EVEX_W_0F10_P_0) },
  938.     { MOD_TABLE (MOD_EVEX_0F10_PREFIX_1) },
  939.     { VEX_W_TABLE (EVEX_W_0F10_P_2) },
  940.     { MOD_TABLE (MOD_EVEX_0F10_PREFIX_3) },
  941.   },
  942.   /* PREFIX_EVEX_0F11 */
  943.   {
  944.     { VEX_W_TABLE (EVEX_W_0F11_P_0) },
  945.     { MOD_TABLE (MOD_EVEX_0F11_PREFIX_1) },
  946.     { VEX_W_TABLE (EVEX_W_0F11_P_2) },
  947.     { MOD_TABLE (MOD_EVEX_0F11_PREFIX_3) },
  948.   },
  949.   /* PREFIX_EVEX_0F12 */
  950.   {
  951.     { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) },
  952.     { VEX_W_TABLE (EVEX_W_0F12_P_1) },
  953.     { VEX_W_TABLE (EVEX_W_0F12_P_2) },
  954.     { VEX_W_TABLE (EVEX_W_0F12_P_3) },
  955.   },
  956.   /* PREFIX_EVEX_0F13 */
  957.   {
  958.     { VEX_W_TABLE (EVEX_W_0F13_P_0) },
  959.     { Bad_Opcode },
  960.     { VEX_W_TABLE (EVEX_W_0F13_P_2) },
  961.   },
  962.   /* PREFIX_EVEX_0F14 */
  963.   {
  964.     { VEX_W_TABLE (EVEX_W_0F14_P_0) },
  965.     { Bad_Opcode },
  966.     { VEX_W_TABLE (EVEX_W_0F14_P_2) },
  967.   },
  968.   /* PREFIX_EVEX_0F15 */
  969.   {
  970.     { VEX_W_TABLE (EVEX_W_0F15_P_0) },
  971.     { Bad_Opcode },
  972.     { VEX_W_TABLE (EVEX_W_0F15_P_2) },
  973.   },
  974.   /* PREFIX_EVEX_0F16 */
  975.   {
  976.     { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) },
  977.     { VEX_W_TABLE (EVEX_W_0F16_P_1) },
  978.     { VEX_W_TABLE (EVEX_W_0F16_P_2) },
  979.   },
  980.   /* PREFIX_EVEX_0F17 */
  981.   {
  982.     { VEX_W_TABLE (EVEX_W_0F17_P_0) },
  983.     { Bad_Opcode },
  984.     { VEX_W_TABLE (EVEX_W_0F17_P_2) },
  985.   },
  986.   /* PREFIX_EVEX_0F28 */
  987.   {
  988.     { VEX_W_TABLE (EVEX_W_0F28_P_0) },
  989.     { Bad_Opcode },
  990.     { VEX_W_TABLE (EVEX_W_0F28_P_2) },
  991.   },
  992.   /* PREFIX_EVEX_0F29 */
  993.   {
  994.     { VEX_W_TABLE (EVEX_W_0F29_P_0) },
  995.     { Bad_Opcode },
  996.     { VEX_W_TABLE (EVEX_W_0F29_P_2) },
  997.   },
  998.   /* PREFIX_EVEX_0F2A */
  999.   {
  1000.     { Bad_Opcode },
  1001.     { VEX_W_TABLE (EVEX_W_0F2A_P_1) },
  1002.     { Bad_Opcode },
  1003.     { VEX_W_TABLE (EVEX_W_0F2A_P_3) },
  1004.   },
  1005.   /* PREFIX_EVEX_0F2B */
  1006.   {
  1007.     { VEX_W_TABLE (EVEX_W_0F2B_P_0) },
  1008.     { Bad_Opcode },
  1009.     { VEX_W_TABLE (EVEX_W_0F2B_P_2) },
  1010.   },
  1011.   /* PREFIX_EVEX_0F2C */
  1012.   {
  1013.     { Bad_Opcode },
  1014.     { "vcvttss2si",     { Gdq, EXxmm_md, EXxEVexS }, 0 },
  1015.     { Bad_Opcode },
  1016.     { "vcvttsd2si",     { Gdq, EXxmm_mq, EXxEVexS }, 0 },
  1017.   },
  1018.   /* PREFIX_EVEX_0F2D */
  1019.   {
  1020.     { Bad_Opcode },
  1021.     { "vcvtss2si",      { Gdq, EXxmm_md, EXxEVexR }, 0 },
  1022.     { Bad_Opcode },
  1023.     { "vcvtsd2si",      { Gdq, EXxmm_mq, EXxEVexR }, 0 },
  1024.   },
  1025.   /* PREFIX_EVEX_0F2E */
  1026.   {
  1027.     { VEX_W_TABLE (EVEX_W_0F2E_P_0) },
  1028.     { Bad_Opcode },
  1029.     { VEX_W_TABLE (EVEX_W_0F2E_P_2) },
  1030.   },
  1031.   /* PREFIX_EVEX_0F2F */
  1032.   {
  1033.     { VEX_W_TABLE (EVEX_W_0F2F_P_0) },
  1034.     { Bad_Opcode },
  1035.     { VEX_W_TABLE (EVEX_W_0F2F_P_2) },
  1036.   },
  1037.   /* PREFIX_EVEX_0F51 */
  1038.   {
  1039.     { VEX_W_TABLE (EVEX_W_0F51_P_0) },
  1040.     { VEX_W_TABLE (EVEX_W_0F51_P_1) },
  1041.     { VEX_W_TABLE (EVEX_W_0F51_P_2) },
  1042.     { VEX_W_TABLE (EVEX_W_0F51_P_3) },
  1043.   },
  1044.   /* PREFIX_EVEX_0F54 */
  1045.   {
  1046.     { VEX_W_TABLE (EVEX_W_0F54_P_0) },
  1047.     { Bad_Opcode },
  1048.     { VEX_W_TABLE (EVEX_W_0F54_P_2) },
  1049.   },
  1050.   /* PREFIX_EVEX_0F55 */
  1051.   {
  1052.     { VEX_W_TABLE (EVEX_W_0F55_P_0) },
  1053.     { Bad_Opcode },
  1054.     { VEX_W_TABLE (EVEX_W_0F55_P_2) },
  1055.   },
  1056.   /* PREFIX_EVEX_0F56 */
  1057.   {
  1058.     { VEX_W_TABLE (EVEX_W_0F56_P_0) },
  1059.     { Bad_Opcode },
  1060.     { VEX_W_TABLE (EVEX_W_0F56_P_2) },
  1061.   },
  1062.   /* PREFIX_EVEX_0F57 */
  1063.   {
  1064.     { VEX_W_TABLE (EVEX_W_0F57_P_0) },
  1065.     { Bad_Opcode },
  1066.     { VEX_W_TABLE (EVEX_W_0F57_P_2) },
  1067.   },
  1068.   /* PREFIX_EVEX_0F58 */
  1069.   {
  1070.     { VEX_W_TABLE (EVEX_W_0F58_P_0) },
  1071.     { VEX_W_TABLE (EVEX_W_0F58_P_1) },
  1072.     { VEX_W_TABLE (EVEX_W_0F58_P_2) },
  1073.     { VEX_W_TABLE (EVEX_W_0F58_P_3) },
  1074.   },
  1075.   /* PREFIX_EVEX_0F59 */
  1076.   {
  1077.     { VEX_W_TABLE (EVEX_W_0F59_P_0) },
  1078.     { VEX_W_TABLE (EVEX_W_0F59_P_1) },
  1079.     { VEX_W_TABLE (EVEX_W_0F59_P_2) },
  1080.     { VEX_W_TABLE (EVEX_W_0F59_P_3) },
  1081.   },
  1082.   /* PREFIX_EVEX_0F5A */
  1083.   {
  1084.     { VEX_W_TABLE (EVEX_W_0F5A_P_0) },
  1085.     { VEX_W_TABLE (EVEX_W_0F5A_P_1) },
  1086.     { VEX_W_TABLE (EVEX_W_0F5A_P_2) },
  1087.     { VEX_W_TABLE (EVEX_W_0F5A_P_3) },
  1088.   },
  1089.   /* PREFIX_EVEX_0F5B */
  1090.   {
  1091.     { VEX_W_TABLE (EVEX_W_0F5B_P_0) },
  1092.     { VEX_W_TABLE (EVEX_W_0F5B_P_1) },
  1093.     { VEX_W_TABLE (EVEX_W_0F5B_P_2) },
  1094.   },
  1095.   /* PREFIX_EVEX_0F5C */
  1096.   {
  1097.     { VEX_W_TABLE (EVEX_W_0F5C_P_0) },
  1098.     { VEX_W_TABLE (EVEX_W_0F5C_P_1) },
  1099.     { VEX_W_TABLE (EVEX_W_0F5C_P_2) },
  1100.     { VEX_W_TABLE (EVEX_W_0F5C_P_3) },
  1101.   },
  1102.   /* PREFIX_EVEX_0F5D */
  1103.   {
  1104.     { VEX_W_TABLE (EVEX_W_0F5D_P_0) },
  1105.     { VEX_W_TABLE (EVEX_W_0F5D_P_1) },
  1106.     { VEX_W_TABLE (EVEX_W_0F5D_P_2) },
  1107.     { VEX_W_TABLE (EVEX_W_0F5D_P_3) },
  1108.   },
  1109.   /* PREFIX_EVEX_0F5E */
  1110.   {
  1111.     { VEX_W_TABLE (EVEX_W_0F5E_P_0) },
  1112.     { VEX_W_TABLE (EVEX_W_0F5E_P_1) },
  1113.     { VEX_W_TABLE (EVEX_W_0F5E_P_2) },
  1114.     { VEX_W_TABLE (EVEX_W_0F5E_P_3) },
  1115.   },
  1116.   /* PREFIX_EVEX_0F5F */
  1117.   {
  1118.     { VEX_W_TABLE (EVEX_W_0F5F_P_0) },
  1119.     { VEX_W_TABLE (EVEX_W_0F5F_P_1) },
  1120.     { VEX_W_TABLE (EVEX_W_0F5F_P_2) },
  1121.     { VEX_W_TABLE (EVEX_W_0F5F_P_3) },
  1122.   },
  1123.   /* PREFIX_EVEX_0F60 */
  1124.   {
  1125.     { Bad_Opcode },
  1126.     { Bad_Opcode },
  1127.     { "vpunpcklbw",     { XM, Vex, EXx }, 0 },
  1128.   },
  1129.   /* PREFIX_EVEX_0F61 */
  1130.   {
  1131.     { Bad_Opcode },
  1132.     { Bad_Opcode },
  1133.     { "vpunpcklwd",     { XM, Vex, EXx }, 0 },
  1134.   },
  1135.   /* PREFIX_EVEX_0F62 */
  1136.   {
  1137.     { Bad_Opcode },
  1138.     { Bad_Opcode },
  1139.     { VEX_W_TABLE (EVEX_W_0F62_P_2) },
  1140.   },
  1141.   /* PREFIX_EVEX_0F63 */
  1142.   {
  1143.     { Bad_Opcode },
  1144.     { Bad_Opcode },
  1145.     { "vpacksswb",      { XM, Vex, EXx }, 0 },
  1146.   },
  1147.   /* PREFIX_EVEX_0F64 */
  1148.   {
  1149.     { Bad_Opcode },
  1150.     { Bad_Opcode },
  1151.     { "vpcmpgtb",       { XMask, Vex, EXx }, 0 },
  1152.   },
  1153.   /* PREFIX_EVEX_0F65 */
  1154.   {
  1155.     { Bad_Opcode },
  1156.     { Bad_Opcode },
  1157.     { "vpcmpgtw",       { XMask, Vex, EXx }, 0 },
  1158.   },
  1159.   /* PREFIX_EVEX_0F66 */
  1160.   {
  1161.     { Bad_Opcode },
  1162.     { Bad_Opcode },
  1163.     { VEX_W_TABLE (EVEX_W_0F66_P_2) },
  1164.   },
  1165.   /* PREFIX_EVEX_0F67 */
  1166.   {
  1167.     { Bad_Opcode },
  1168.     { Bad_Opcode },
  1169.     { "vpackuswb",      { XM, Vex, EXx }, 0 },
  1170.   },
  1171.   /* PREFIX_EVEX_0F68 */
  1172.   {
  1173.     { Bad_Opcode },
  1174.     { Bad_Opcode },
  1175.     { "vpunpckhbw",     { XM, Vex, EXx }, 0 },
  1176.   },
  1177.   /* PREFIX_EVEX_0F69 */
  1178.   {
  1179.     { Bad_Opcode },
  1180.     { Bad_Opcode },
  1181.     { "vpunpckhwd",     { XM, Vex, EXx }, 0 },
  1182.   },
  1183.   /* PREFIX_EVEX_0F6A */
  1184.   {
  1185.     { Bad_Opcode },
  1186.     { Bad_Opcode },
  1187.     { VEX_W_TABLE (EVEX_W_0F6A_P_2) },
  1188.   },
  1189.   /* PREFIX_EVEX_0F6B */
  1190.   {
  1191.     { Bad_Opcode },
  1192.     { Bad_Opcode },
  1193.     { VEX_W_TABLE (EVEX_W_0F6B_P_2) },
  1194.   },
  1195.   /* PREFIX_EVEX_0F6C */
  1196.   {
  1197.     { Bad_Opcode },
  1198.     { Bad_Opcode },
  1199.     { VEX_W_TABLE (EVEX_W_0F6C_P_2) },
  1200.   },
  1201.   /* PREFIX_EVEX_0F6D */
  1202.   {
  1203.     { Bad_Opcode },
  1204.     { Bad_Opcode },
  1205.     { VEX_W_TABLE (EVEX_W_0F6D_P_2) },
  1206.   },
  1207.   /* PREFIX_EVEX_0F6E */
  1208.   {
  1209.     { Bad_Opcode },
  1210.     { Bad_Opcode },
  1211.     { VEX_W_TABLE (EVEX_W_0F6E_P_2) },
  1212.   },
  1213.   /* PREFIX_EVEX_0F6F */
  1214.   {
  1215.     { Bad_Opcode },
  1216.     { VEX_W_TABLE (EVEX_W_0F6F_P_1) },
  1217.     { VEX_W_TABLE (EVEX_W_0F6F_P_2) },
  1218.     { VEX_W_TABLE (EVEX_W_0F6F_P_3) },
  1219.   },
  1220.   /* PREFIX_EVEX_0F70 */
  1221.   {
  1222.     { Bad_Opcode },
  1223.     { "vpshufhw",       { XM, EXx, Ib }, 0 },
  1224.     { VEX_W_TABLE (EVEX_W_0F70_P_2) },
  1225.     { "vpshuflw",       { XM, EXx, Ib }, 0 },
  1226.   },
  1227.   /* PREFIX_EVEX_0F71_REG_2 */
  1228.   {
  1229.     { Bad_Opcode },
  1230.     { Bad_Opcode },
  1231.     { "vpsrlw", { Vex, EXx, Ib }, 0 },
  1232.   },
  1233.   /* PREFIX_EVEX_0F71_REG_4 */
  1234.   {
  1235.     { Bad_Opcode },
  1236.     { Bad_Opcode },
  1237.     { "vpsraw", { Vex, EXx, Ib }, 0 },
  1238.   },
  1239.   /* PREFIX_EVEX_0F71_REG_6 */
  1240.   {
  1241.     { Bad_Opcode },
  1242.     { Bad_Opcode },
  1243.     { "vpsllw", { Vex, EXx, Ib }, 0 },
  1244.   },
  1245.   /* PREFIX_EVEX_0F72_REG_0 */
  1246.   {
  1247.     { Bad_Opcode },
  1248.     { Bad_Opcode },
  1249.     { "vpror%LW",       { Vex, EXx, Ib }, 0 },
  1250.   },
  1251.   /* PREFIX_EVEX_0F72_REG_1 */
  1252.   {
  1253.     { Bad_Opcode },
  1254.     { Bad_Opcode },
  1255.     { "vprol%LW",       { Vex, EXx, Ib }, 0 },
  1256.   },
  1257.   /* PREFIX_EVEX_0F72_REG_2 */
  1258.   {
  1259.     { Bad_Opcode },
  1260.     { Bad_Opcode },
  1261.     { VEX_W_TABLE (EVEX_W_0F72_R_2_P_2) },
  1262.   },
  1263.   /* PREFIX_EVEX_0F72_REG_4 */
  1264.   {
  1265.     { Bad_Opcode },
  1266.     { Bad_Opcode },
  1267.     { "vpsra%LW",       { Vex, EXx, Ib }, 0 },
  1268.   },
  1269.   /* PREFIX_EVEX_0F72_REG_6 */
  1270.   {
  1271.     { Bad_Opcode },
  1272.     { Bad_Opcode },
  1273.     { VEX_W_TABLE (EVEX_W_0F72_R_6_P_2) },
  1274.   },
  1275.   /* PREFIX_EVEX_0F73_REG_2 */
  1276.   {
  1277.     { Bad_Opcode },
  1278.     { Bad_Opcode },
  1279.     { VEX_W_TABLE (EVEX_W_0F73_R_2_P_2) },
  1280.   },
  1281.   /* PREFIX_EVEX_0F73_REG_3 */
  1282.   {
  1283.     { Bad_Opcode },
  1284.     { Bad_Opcode },
  1285.     { "vpsrldq",        { Vex, EXx, Ib }, 0 },
  1286.   },
  1287.   /* PREFIX_EVEX_0F73_REG_6 */
  1288.   {
  1289.     { Bad_Opcode },
  1290.     { Bad_Opcode },
  1291.     { VEX_W_TABLE (EVEX_W_0F73_R_6_P_2) },
  1292.   },
  1293.   /* PREFIX_EVEX_0F73_REG_7 */
  1294.   {
  1295.     { Bad_Opcode },
  1296.     { Bad_Opcode },
  1297.     { "vpslldq",        { Vex, EXx, Ib }, 0 },
  1298.   },
  1299.   /* PREFIX_EVEX_0F74 */
  1300.   {
  1301.     { Bad_Opcode },
  1302.     { Bad_Opcode },
  1303.     { "vpcmpeqb",       { XMask, Vex, EXx }, 0 },
  1304.   },
  1305.   /* PREFIX_EVEX_0F75 */
  1306.   {
  1307.     { Bad_Opcode },
  1308.     { Bad_Opcode },
  1309.     { "vpcmpeqw",       { XMask, Vex, EXx }, 0 },
  1310.   },
  1311.   /* PREFIX_EVEX_0F76 */
  1312.   {
  1313.     { Bad_Opcode },
  1314.     { Bad_Opcode },
  1315.     { VEX_W_TABLE (EVEX_W_0F76_P_2) },
  1316.   },
  1317.   /* PREFIX_EVEX_0F78 */
  1318.   {
  1319.     { VEX_W_TABLE (EVEX_W_0F78_P_0) },
  1320.     { "vcvttss2usi",    { Gdq, EXxmm_md, EXxEVexS }, 0 },
  1321.     { VEX_W_TABLE (EVEX_W_0F78_P_2) },
  1322.     { "vcvttsd2usi",    { Gdq, EXxmm_mq, EXxEVexS }, 0 },
  1323.   },
  1324.   /* PREFIX_EVEX_0F79 */
  1325.   {
  1326.     { VEX_W_TABLE (EVEX_W_0F79_P_0) },
  1327.     { "vcvtss2usi",     { Gdq, EXxmm_md, EXxEVexR }, 0 },
  1328.     { VEX_W_TABLE (EVEX_W_0F79_P_2) },
  1329.     { "vcvtsd2usi",     { Gdq, EXxmm_mq, EXxEVexR }, 0 },
  1330.   },
  1331.   /* PREFIX_EVEX_0F7A */
  1332.   {
  1333.     { Bad_Opcode },
  1334.     { VEX_W_TABLE (EVEX_W_0F7A_P_1) },
  1335.     { VEX_W_TABLE (EVEX_W_0F7A_P_2) },
  1336.     { VEX_W_TABLE (EVEX_W_0F7A_P_3) },
  1337.   },
  1338.   /* PREFIX_EVEX_0F7B */
  1339.   {
  1340.     { Bad_Opcode },
  1341.     { VEX_W_TABLE (EVEX_W_0F7B_P_1) },
  1342.     { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
  1343.     { VEX_W_TABLE (EVEX_W_0F7B_P_3) },
  1344.   },
  1345.   /* PREFIX_EVEX_0F7E */
  1346.   {
  1347.     { Bad_Opcode },
  1348.     { VEX_W_TABLE (EVEX_W_0F7E_P_1) },
  1349.     { VEX_W_TABLE (EVEX_W_0F7E_P_2) },
  1350.   },
  1351.   /* PREFIX_EVEX_0F7F */
  1352.   {
  1353.     { Bad_Opcode },
  1354.     { VEX_W_TABLE (EVEX_W_0F7F_P_1) },
  1355.     { VEX_W_TABLE (EVEX_W_0F7F_P_2) },
  1356.     { VEX_W_TABLE (EVEX_W_0F7F_P_3) },
  1357.   },
  1358.   /* PREFIX_EVEX_0FC2 */
  1359.   {
  1360.     { VEX_W_TABLE (EVEX_W_0FC2_P_0) },
  1361.     { VEX_W_TABLE (EVEX_W_0FC2_P_1) },
  1362.     { VEX_W_TABLE (EVEX_W_0FC2_P_2) },
  1363.     { VEX_W_TABLE (EVEX_W_0FC2_P_3) },
  1364.   },
  1365.   /* PREFIX_EVEX_0FC4 */
  1366.   {
  1367.     { Bad_Opcode },
  1368.     { Bad_Opcode },
  1369.     { "vpinsrw",        { XM, Vex128, Edw, Ib }, 0 },
  1370.   },
  1371.   /* PREFIX_EVEX_0FC5 */
  1372.   {
  1373.     { Bad_Opcode },
  1374.     { Bad_Opcode },
  1375.     { "vpextrw",        { Gdq, XS, Ib }, 0 },
  1376.   },
  1377.   /* PREFIX_EVEX_0FC6 */
  1378.   {
  1379.     { VEX_W_TABLE (EVEX_W_0FC6_P_0) },
  1380.     { Bad_Opcode },
  1381.     { VEX_W_TABLE (EVEX_W_0FC6_P_2) },
  1382.   },
  1383.   /* PREFIX_EVEX_0FD1 */
  1384.   {
  1385.     { Bad_Opcode },
  1386.     { Bad_Opcode },
  1387.     { "vpsrlw", { XM, Vex, EXxmm }, 0 },
  1388.   },
  1389.   /* PREFIX_EVEX_0FD2 */
  1390.   {
  1391.     { Bad_Opcode },
  1392.     { Bad_Opcode },
  1393.     { VEX_W_TABLE (EVEX_W_0FD2_P_2) },
  1394.   },
  1395.   /* PREFIX_EVEX_0FD3 */
  1396.   {
  1397.     { Bad_Opcode },
  1398.     { Bad_Opcode },
  1399.     { VEX_W_TABLE (EVEX_W_0FD3_P_2) },
  1400.   },
  1401.   /* PREFIX_EVEX_0FD4 */
  1402.   {
  1403.     { Bad_Opcode },
  1404.     { Bad_Opcode },
  1405.     { VEX_W_TABLE (EVEX_W_0FD4_P_2) },
  1406.   },
  1407.   /* PREFIX_EVEX_0FD5 */
  1408.   {
  1409.     { Bad_Opcode },
  1410.     { Bad_Opcode },
  1411.     { "vpmullw",        { XM, Vex, EXx }, 0 },
  1412.   },
  1413.   /* PREFIX_EVEX_0FD6 */
  1414.   {
  1415.     { Bad_Opcode },
  1416.     { Bad_Opcode },
  1417.     { VEX_W_TABLE (EVEX_W_0FD6_P_2) },
  1418.   },
  1419.   /* PREFIX_EVEX_0FD8 */
  1420.   {
  1421.     { Bad_Opcode },
  1422.     { Bad_Opcode },
  1423.     { "vpsubusb",       { XM, Vex, EXx }, 0 },
  1424.   },
  1425.   /* PREFIX_EVEX_0FD9 */
  1426.   {
  1427.     { Bad_Opcode },
  1428.     { Bad_Opcode },
  1429.     { "vpsubusw",       { XM, Vex, EXx }, 0 },
  1430.   },
  1431.   /* PREFIX_EVEX_0FDA */
  1432.   {
  1433.     { Bad_Opcode },
  1434.     { Bad_Opcode },
  1435.     { "vpminub",        { XM, Vex, EXx }, 0 },
  1436.   },
  1437.   /* PREFIX_EVEX_0FDB */
  1438.   {
  1439.     { Bad_Opcode },
  1440.     { Bad_Opcode },
  1441.     { "vpand%LW",       { XM, Vex, EXx }, 0 },
  1442.   },
  1443.   /* PREFIX_EVEX_0FDC */
  1444.   {
  1445.     { Bad_Opcode },
  1446.     { Bad_Opcode },
  1447.     { "vpaddusb",       { XM, Vex, EXx }, 0 },
  1448.   },
  1449.   /* PREFIX_EVEX_0FDD */
  1450.   {
  1451.     { Bad_Opcode },
  1452.     { Bad_Opcode },
  1453.     { "vpaddusw",       { XM, Vex, EXx }, 0 },
  1454.   },
  1455.   /* PREFIX_EVEX_0FDE */
  1456.   {
  1457.     { Bad_Opcode },
  1458.     { Bad_Opcode },
  1459.     { "vpmaxub",        { XM, Vex, EXx }, 0 },
  1460.   },
  1461.   /* PREFIX_EVEX_0FDF */
  1462.   {
  1463.     { Bad_Opcode },
  1464.     { Bad_Opcode },
  1465.     { "vpandn%LW",      { XM, Vex, EXx }, 0 },
  1466.   },
  1467.   /* PREFIX_EVEX_0FE0 */
  1468.   {
  1469.     { Bad_Opcode },
  1470.     { Bad_Opcode },
  1471.     { "vpavgb", { XM, Vex, EXx }, 0 },
  1472.   },
  1473.   /* PREFIX_EVEX_0FE1 */
  1474.   {
  1475.     { Bad_Opcode },
  1476.     { Bad_Opcode },
  1477.     { "vpsraw", { XM, Vex, EXxmm }, 0 },
  1478.   },
  1479.   /* PREFIX_EVEX_0FE2 */
  1480.   {
  1481.     { Bad_Opcode },
  1482.     { Bad_Opcode },
  1483.     { "vpsra%LW",       { XM, Vex, EXxmm }, 0 },
  1484.   },
  1485.   /* PREFIX_EVEX_0FE3 */
  1486.   {
  1487.     { Bad_Opcode },
  1488.     { Bad_Opcode },
  1489.     { "vpavgw", { XM, Vex, EXx }, 0 },
  1490.   },
  1491.   /* PREFIX_EVEX_0FE4 */
  1492.   {
  1493.     { Bad_Opcode },
  1494.     { Bad_Opcode },
  1495.     { "vpmulhuw",       { XM, Vex, EXx }, 0 },
  1496.   },
  1497.   /* PREFIX_EVEX_0FE5 */
  1498.   {
  1499.     { Bad_Opcode },
  1500.     { Bad_Opcode },
  1501.     { "vpmulhw",        { XM, Vex, EXx }, 0 },
  1502.   },
  1503.   /* PREFIX_EVEX_0FE6 */
  1504.   {
  1505.     { Bad_Opcode },
  1506.     { VEX_W_TABLE (EVEX_W_0FE6_P_1) },
  1507.     { VEX_W_TABLE (EVEX_W_0FE6_P_2) },
  1508.     { VEX_W_TABLE (EVEX_W_0FE6_P_3) },
  1509.   },
  1510.   /* PREFIX_EVEX_0FE7 */
  1511.   {
  1512.     { Bad_Opcode },
  1513.     { Bad_Opcode },
  1514.     { VEX_W_TABLE (EVEX_W_0FE7_P_2) },
  1515.   },
  1516.   /* PREFIX_EVEX_0FE8 */
  1517.   {
  1518.     { Bad_Opcode },
  1519.     { Bad_Opcode },
  1520.     { "vpsubsb",        { XM, Vex, EXx }, 0 },
  1521.   },
  1522.   /* PREFIX_EVEX_0FE9 */
  1523.   {
  1524.     { Bad_Opcode },
  1525.     { Bad_Opcode },
  1526.     { "vpsubsw",        { XM, Vex, EXx }, 0 },
  1527.   },
  1528.   /* PREFIX_EVEX_0FEA */
  1529.   {
  1530.     { Bad_Opcode },
  1531.     { Bad_Opcode },
  1532.     { "vpminsw",        { XM, Vex, EXx }, 0 },
  1533.   },
  1534.   /* PREFIX_EVEX_0FEB */
  1535.   {
  1536.     { Bad_Opcode },
  1537.     { Bad_Opcode },
  1538.     { "vpor%LW",        { XM, Vex, EXx }, 0 },
  1539.   },
  1540.   /* PREFIX_EVEX_0FEC */
  1541.   {
  1542.     { Bad_Opcode },
  1543.     { Bad_Opcode },
  1544.     { "vpaddsb",        { XM, Vex, EXx }, 0 },
  1545.   },
  1546.   /* PREFIX_EVEX_0FED */
  1547.   {
  1548.     { Bad_Opcode },
  1549.     { Bad_Opcode },
  1550.     { "vpaddsw",        { XM, Vex, EXx }, 0 },
  1551.   },
  1552.   /* PREFIX_EVEX_0FEE */
  1553.   {
  1554.     { Bad_Opcode },
  1555.     { Bad_Opcode },
  1556.     { "vpmaxsw",        { XM, Vex, EXx }, 0 },
  1557.   },
  1558.   /* PREFIX_EVEX_0FEF */
  1559.   {
  1560.     { Bad_Opcode },
  1561.     { Bad_Opcode },
  1562.     { "vpxor%LW",       { XM, Vex, EXx }, 0 },
  1563.   },
  1564.   /* PREFIX_EVEX_0FF1 */
  1565.   {
  1566.     { Bad_Opcode },
  1567.     { Bad_Opcode },
  1568.     { "vpsllw", { XM, Vex, EXxmm }, 0 },
  1569.   },
  1570.   /* PREFIX_EVEX_0FF2 */
  1571.   {
  1572.     { Bad_Opcode },
  1573.     { Bad_Opcode },
  1574.     { VEX_W_TABLE (EVEX_W_0FF2_P_2) },
  1575.   },
  1576.   /* PREFIX_EVEX_0FF3 */
  1577.   {
  1578.     { Bad_Opcode },
  1579.     { Bad_Opcode },
  1580.     { VEX_W_TABLE (EVEX_W_0FF3_P_2) },
  1581.   },
  1582.   /* PREFIX_EVEX_0FF4 */
  1583.   {
  1584.     { Bad_Opcode },
  1585.     { Bad_Opcode },
  1586.     { VEX_W_TABLE (EVEX_W_0FF4_P_2) },
  1587.   },
  1588.   /* PREFIX_EVEX_0FF5 */
  1589.   {
  1590.     { Bad_Opcode },
  1591.     { Bad_Opcode },
  1592.     { "vpmaddwd",       { XM, Vex, EXx }, 0 },
  1593.   },
  1594.   /* PREFIX_EVEX_0FF6 */
  1595.   {
  1596.     { Bad_Opcode },
  1597.     { Bad_Opcode },
  1598.     { "vpsadbw",        { XM, Vex, EXx }, 0 },
  1599.   },
  1600.   /* PREFIX_EVEX_0FF8 */
  1601.   {
  1602.     { Bad_Opcode },
  1603.     { Bad_Opcode },
  1604.     { "vpsubb", { XM, Vex, EXx }, 0 },
  1605.   },
  1606.   /* PREFIX_EVEX_0FF9 */
  1607.   {
  1608.     { Bad_Opcode },
  1609.     { Bad_Opcode },
  1610.     { "vpsubw", { XM, Vex, EXx }, 0 },
  1611.   },
  1612.   /* PREFIX_EVEX_0FFA */
  1613.   {
  1614.     { Bad_Opcode },
  1615.     { Bad_Opcode },
  1616.     { VEX_W_TABLE (EVEX_W_0FFA_P_2) },
  1617.   },
  1618.   /* PREFIX_EVEX_0FFB */
  1619.   {
  1620.     { Bad_Opcode },
  1621.     { Bad_Opcode },
  1622.     { VEX_W_TABLE (EVEX_W_0FFB_P_2) },
  1623.   },
  1624.   /* PREFIX_EVEX_0FFC */
  1625.   {
  1626.     { Bad_Opcode },
  1627.     { Bad_Opcode },
  1628.     { "vpaddb", { XM, Vex, EXx }, 0 },
  1629.   },
  1630.   /* PREFIX_EVEX_0FFD */
  1631.   {
  1632.     { Bad_Opcode },
  1633.     { Bad_Opcode },
  1634.     { "vpaddw", { XM, Vex, EXx }, 0 },
  1635.   },
  1636.   /* PREFIX_EVEX_0FFE */
  1637.   {
  1638.     { Bad_Opcode },
  1639.     { Bad_Opcode },
  1640.     { VEX_W_TABLE (EVEX_W_0FFE_P_2) },
  1641.   },
  1642.   /* PREFIX_EVEX_0F3800 */
  1643.   {
  1644.     { Bad_Opcode },
  1645.     { Bad_Opcode },
  1646.     { "vpshufb",        { XM, Vex, EXx }, 0 },
  1647.   },
  1648.   /* PREFIX_EVEX_0F3804 */
  1649.   {
  1650.     { Bad_Opcode },
  1651.     { Bad_Opcode },
  1652.     { "vpmaddubsw",     { XM, Vex, EXx }, 0 },
  1653.   },
  1654.   /* PREFIX_EVEX_0F380B */
  1655.   {
  1656.     { Bad_Opcode },
  1657.     { Bad_Opcode },
  1658.     { "vpmulhrsw",      { XM, Vex, EXx }, 0 },
  1659.   },
  1660.   /* PREFIX_EVEX_0F380C */
  1661.   {
  1662.     { Bad_Opcode },
  1663.     { Bad_Opcode },
  1664.     { VEX_W_TABLE (EVEX_W_0F380C_P_2) },
  1665.   },
  1666.   /* PREFIX_EVEX_0F380D */
  1667.   {
  1668.     { Bad_Opcode },
  1669.     { Bad_Opcode },
  1670.     { VEX_W_TABLE (EVEX_W_0F380D_P_2) },
  1671.   },
  1672.   /* PREFIX_EVEX_0F3810 */
  1673.   {
  1674.     { Bad_Opcode },
  1675.     { VEX_W_TABLE (EVEX_W_0F3810_P_1) },
  1676.     { VEX_W_TABLE (EVEX_W_0F3810_P_2) },
  1677.   },
  1678.   /* PREFIX_EVEX_0F3811 */
  1679.   {
  1680.     { Bad_Opcode },
  1681.     { VEX_W_TABLE (EVEX_W_0F3811_P_1) },
  1682.     { VEX_W_TABLE (EVEX_W_0F3811_P_2) },
  1683.   },
  1684.   /* PREFIX_EVEX_0F3812 */
  1685.   {
  1686.     { Bad_Opcode },
  1687.     { VEX_W_TABLE (EVEX_W_0F3812_P_1) },
  1688.     { VEX_W_TABLE (EVEX_W_0F3812_P_2) },
  1689.   },
  1690.   /* PREFIX_EVEX_0F3813 */
  1691.   {
  1692.     { Bad_Opcode },
  1693.     { VEX_W_TABLE (EVEX_W_0F3813_P_1) },
  1694.     { VEX_W_TABLE (EVEX_W_0F3813_P_2) },
  1695.   },
  1696.   /* PREFIX_EVEX_0F3814 */
  1697.   {
  1698.     { Bad_Opcode },
  1699.     { VEX_W_TABLE (EVEX_W_0F3814_P_1) },
  1700.     { "vprorv%LW",      { XM, Vex, EXx }, 0 },
  1701.   },
  1702.   /* PREFIX_EVEX_0F3815 */
  1703.   {
  1704.     { Bad_Opcode },
  1705.     { VEX_W_TABLE (EVEX_W_0F3815_P_1) },
  1706.     { "vprolv%LW",      { XM, Vex, EXx }, 0 },
  1707.   },
  1708.   /* PREFIX_EVEX_0F3816 */
  1709.   {
  1710.     { Bad_Opcode },
  1711.     { Bad_Opcode },
  1712.     { "vpermp%XW",      { XM, Vex, EXx }, 0 },
  1713.   },
  1714.   /* PREFIX_EVEX_0F3818 */
  1715.   {
  1716.     { Bad_Opcode },
  1717.     { Bad_Opcode },
  1718.     { VEX_W_TABLE (EVEX_W_0F3818_P_2) },
  1719.   },
  1720.   /* PREFIX_EVEX_0F3819 */
  1721.   {
  1722.     { Bad_Opcode },
  1723.     { Bad_Opcode },
  1724.     { VEX_W_TABLE (EVEX_W_0F3819_P_2) },
  1725.   },
  1726.   /* PREFIX_EVEX_0F381A */
  1727.   {
  1728.     { Bad_Opcode },
  1729.     { Bad_Opcode },
  1730.     { VEX_W_TABLE (EVEX_W_0F381A_P_2) },
  1731.   },
  1732.   /* PREFIX_EVEX_0F381B */
  1733.   {
  1734.     { Bad_Opcode },
  1735.     { Bad_Opcode },
  1736.     { VEX_W_TABLE (EVEX_W_0F381B_P_2) },
  1737.   },
  1738.   /* PREFIX_EVEX_0F381C */
  1739.   {
  1740.     { Bad_Opcode },
  1741.     { Bad_Opcode },
  1742.     { "vpabsb", { XM, EXx }, 0 },
  1743.   },
  1744.   /* PREFIX_EVEX_0F381D */
  1745.   {
  1746.     { Bad_Opcode },
  1747.     { Bad_Opcode },
  1748.     { "vpabsw", { XM, EXx }, 0 },
  1749.   },
  1750.   /* PREFIX_EVEX_0F381E */
  1751.   {
  1752.     { Bad_Opcode },
  1753.     { Bad_Opcode },
  1754.     { VEX_W_TABLE (EVEX_W_0F381E_P_2) },
  1755.   },
  1756.   /* PREFIX_EVEX_0F381F */
  1757.   {
  1758.     { Bad_Opcode },
  1759.     { Bad_Opcode },
  1760.     { VEX_W_TABLE (EVEX_W_0F381F_P_2) },
  1761.   },
  1762.   /* PREFIX_EVEX_0F3820 */
  1763.   {
  1764.     { Bad_Opcode },
  1765.     { VEX_W_TABLE (EVEX_W_0F3820_P_1) },
  1766.     { "vpmovsxbw",      { XM, EXxmmq }, 0 },
  1767.   },
  1768.   /* PREFIX_EVEX_0F3821 */
  1769.   {
  1770.     { Bad_Opcode },
  1771.     { VEX_W_TABLE (EVEX_W_0F3821_P_1) },
  1772.     { "vpmovsxbd",      { XM, EXxmmqd }, 0 },
  1773.   },
  1774.   /* PREFIX_EVEX_0F3822 */
  1775.   {
  1776.     { Bad_Opcode },
  1777.     { VEX_W_TABLE (EVEX_W_0F3822_P_1) },
  1778.     { "vpmovsxbq",      { XM, EXxmmdw }, 0 },
  1779.   },
  1780.   /* PREFIX_EVEX_0F3823 */
  1781.   {
  1782.     { Bad_Opcode },
  1783.     { VEX_W_TABLE (EVEX_W_0F3823_P_1) },
  1784.     { "vpmovsxwd",      { XM, EXxmmq }, 0 },
  1785.   },
  1786.   /* PREFIX_EVEX_0F3824 */
  1787.   {
  1788.     { Bad_Opcode },
  1789.     { VEX_W_TABLE (EVEX_W_0F3824_P_1) },
  1790.     { "vpmovsxwq",      { XM, EXxmmqd }, 0 },
  1791.   },
  1792.   /* PREFIX_EVEX_0F3825 */
  1793.   {
  1794.     { Bad_Opcode },
  1795.     { VEX_W_TABLE (EVEX_W_0F3825_P_1) },
  1796.     { VEX_W_TABLE (EVEX_W_0F3825_P_2) },
  1797.   },
  1798.   /* PREFIX_EVEX_0F3826 */
  1799.   {
  1800.     { Bad_Opcode },
  1801.     { VEX_W_TABLE (EVEX_W_0F3826_P_1) },
  1802.     { VEX_W_TABLE (EVEX_W_0F3826_P_2) },
  1803.   },
  1804.   /* PREFIX_EVEX_0F3827 */
  1805.   {
  1806.     { Bad_Opcode },
  1807.     { "vptestnm%LW",    { XMask, Vex, EXx }, 0 },
  1808.     { "vptestm%LW",     { XMask, Vex, EXx }, 0 },
  1809.   },
  1810.   /* PREFIX_EVEX_0F3828 */
  1811.   {
  1812.     { Bad_Opcode },
  1813.     { VEX_W_TABLE (EVEX_W_0F3828_P_1) },
  1814.     { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
  1815.   },
  1816.   /* PREFIX_EVEX_0F3829 */
  1817.   {
  1818.     { Bad_Opcode },
  1819.     { VEX_W_TABLE (EVEX_W_0F3829_P_1) },
  1820.     { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
  1821.   },
  1822.   /* PREFIX_EVEX_0F382A */
  1823.   {
  1824.     { Bad_Opcode },
  1825.     { VEX_W_TABLE (EVEX_W_0F382A_P_1) },
  1826.     { VEX_W_TABLE (EVEX_W_0F382A_P_2) },
  1827.   },
  1828.   /* PREFIX_EVEX_0F382B */
  1829.   {
  1830.     { Bad_Opcode },
  1831.     { Bad_Opcode },
  1832.     { VEX_W_TABLE (EVEX_W_0F382B_P_2) },
  1833.   },
  1834.   /* PREFIX_EVEX_0F382C */
  1835.   {
  1836.     { Bad_Opcode },
  1837.     { Bad_Opcode },
  1838.     { "vscalefp%XW",    { XM, Vex, EXx, EXxEVexR }, 0 },
  1839.   },
  1840.   /* PREFIX_EVEX_0F382D */
  1841.   {
  1842.     { Bad_Opcode },
  1843.     { Bad_Opcode },
  1844.     { "vscalefs%XW",    { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  1845.   },
  1846.   /* PREFIX_EVEX_0F3830 */
  1847.   {
  1848.     { Bad_Opcode },
  1849.     { VEX_W_TABLE (EVEX_W_0F3830_P_1) },
  1850.     { "vpmovzxbw",      { XM, EXxmmq }, 0 },
  1851.   },
  1852.   /* PREFIX_EVEX_0F3831 */
  1853.   {
  1854.     { Bad_Opcode },
  1855.     { VEX_W_TABLE (EVEX_W_0F3831_P_1) },
  1856.     { "vpmovzxbd",      { XM, EXxmmqd }, 0 },
  1857.   },
  1858.   /* PREFIX_EVEX_0F3832 */
  1859.   {
  1860.     { Bad_Opcode },
  1861.     { VEX_W_TABLE (EVEX_W_0F3832_P_1) },
  1862.     { "vpmovzxbq",      { XM, EXxmmdw }, 0 },
  1863.   },
  1864.   /* PREFIX_EVEX_0F3833 */
  1865.   {
  1866.     { Bad_Opcode },
  1867.     { VEX_W_TABLE (EVEX_W_0F3833_P_1) },
  1868.     { "vpmovzxwd",      { XM, EXxmmq }, 0 },
  1869.   },
  1870.   /* PREFIX_EVEX_0F3834 */
  1871.   {
  1872.     { Bad_Opcode },
  1873.     { VEX_W_TABLE (EVEX_W_0F3834_P_1) },
  1874.     { "vpmovzxwq",      { XM, EXxmmqd }, 0 },
  1875.   },
  1876.   /* PREFIX_EVEX_0F3835 */
  1877.   {
  1878.     { Bad_Opcode },
  1879.     { VEX_W_TABLE (EVEX_W_0F3835_P_1) },
  1880.     { VEX_W_TABLE (EVEX_W_0F3835_P_2) },
  1881.   },
  1882.   /* PREFIX_EVEX_0F3836 */
  1883.   {
  1884.     { Bad_Opcode },
  1885.     { Bad_Opcode },
  1886.     { "vperm%LW",       { XM, Vex, EXx }, 0 },
  1887.   },
  1888.   /* PREFIX_EVEX_0F3837 */
  1889.   {
  1890.     { Bad_Opcode },
  1891.     { Bad_Opcode },
  1892.     { VEX_W_TABLE (EVEX_W_0F3837_P_2) },
  1893.   },
  1894.   /* PREFIX_EVEX_0F3838 */
  1895.   {
  1896.     { Bad_Opcode },
  1897.     { VEX_W_TABLE (EVEX_W_0F3838_P_1) },
  1898.     { "vpminsb",        { XM, Vex, EXx }, 0 },
  1899.   },
  1900.   /* PREFIX_EVEX_0F3839 */
  1901.   {
  1902.     { Bad_Opcode },
  1903.     { VEX_W_TABLE (EVEX_W_0F3839_P_1) },
  1904.     { "vpmins%LW",      { XM, Vex, EXx }, 0 },
  1905.   },
  1906.   /* PREFIX_EVEX_0F383A */
  1907.   {
  1908.     { Bad_Opcode },
  1909.     { VEX_W_TABLE (EVEX_W_0F383A_P_1) },
  1910.     { "vpminuw",        { XM, Vex, EXx }, 0 },
  1911.   },
  1912.   /* PREFIX_EVEX_0F383B */
  1913.   {
  1914.     { Bad_Opcode },
  1915.     { Bad_Opcode },
  1916.     { "vpminu%LW",      { XM, Vex, EXx }, 0 },
  1917.   },
  1918.   /* PREFIX_EVEX_0F383C */
  1919.   {
  1920.     { Bad_Opcode },
  1921.     { Bad_Opcode },
  1922.     { "vpmaxsb",        { XM, Vex, EXx }, 0 },
  1923.   },
  1924.   /* PREFIX_EVEX_0F383D */
  1925.   {
  1926.     { Bad_Opcode },
  1927.     { Bad_Opcode },
  1928.     { "vpmaxs%LW",      { XM, Vex, EXx }, 0 },
  1929.   },
  1930.   /* PREFIX_EVEX_0F383E */
  1931.   {
  1932.     { Bad_Opcode },
  1933.     { Bad_Opcode },
  1934.     { "vpmaxuw",        { XM, Vex, EXx }, 0 },
  1935.   },
  1936.   /* PREFIX_EVEX_0F383F */
  1937.   {
  1938.     { Bad_Opcode },
  1939.     { Bad_Opcode },
  1940.     { "vpmaxu%LW",      { XM, Vex, EXx }, 0 },
  1941.   },
  1942.   /* PREFIX_EVEX_0F3840 */
  1943.   {
  1944.     { Bad_Opcode },
  1945.     { Bad_Opcode },
  1946.     { VEX_W_TABLE (EVEX_W_0F3840_P_2) },
  1947.   },
  1948.   /* PREFIX_EVEX_0F3842 */
  1949.   {
  1950.     { Bad_Opcode },
  1951.     { Bad_Opcode },
  1952.     { "vgetexpp%XW",    { XM, EXx, EXxEVexS }, 0 },
  1953.   },
  1954.   /* PREFIX_EVEX_0F3843 */
  1955.   {
  1956.     { Bad_Opcode },
  1957.     { Bad_Opcode },
  1958.     { "vgetexps%XW",    { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
  1959.   },
  1960.   /* PREFIX_EVEX_0F3844 */
  1961.   {
  1962.     { Bad_Opcode },
  1963.     { Bad_Opcode },
  1964.     { "vplzcnt%LW",     { XM, EXx }, 0 },
  1965.   },
  1966.   /* PREFIX_EVEX_0F3845 */
  1967.   {
  1968.     { Bad_Opcode },
  1969.     { Bad_Opcode },
  1970.     { "vpsrlv%LW",      { XM, Vex, EXx }, 0 },
  1971.   },
  1972.   /* PREFIX_EVEX_0F3846 */
  1973.   {
  1974.     { Bad_Opcode },
  1975.     { Bad_Opcode },
  1976.     { "vpsrav%LW",      { XM, Vex, EXx }, 0 },
  1977.   },
  1978.   /* PREFIX_EVEX_0F3847 */
  1979.   {
  1980.     { Bad_Opcode },
  1981.     { Bad_Opcode },
  1982.     { "vpsllv%LW",      { XM, Vex, EXx }, 0 },
  1983.   },
  1984.   /* PREFIX_EVEX_0F384C */
  1985.   {
  1986.     { Bad_Opcode },
  1987.     { Bad_Opcode },
  1988.     { "vrcp14p%XW",     { XM, EXx }, 0 },
  1989.   },
  1990.   /* PREFIX_EVEX_0F384D */
  1991.   {
  1992.     { Bad_Opcode },
  1993.     { Bad_Opcode },
  1994.     { "vrcp14s%XW",     { XMScalar, VexScalar, EXxmm_mdq }, 0 },
  1995.   },
  1996.   /* PREFIX_EVEX_0F384E */
  1997.   {
  1998.     { Bad_Opcode },
  1999.     { Bad_Opcode },
  2000.     { "vrsqrt14p%XW",   { XM, EXx }, 0 },
  2001.   },
  2002.   /* PREFIX_EVEX_0F384F */
  2003.   {
  2004.     { Bad_Opcode },
  2005.     { Bad_Opcode },
  2006.     { "vrsqrt14s%XW",   { XMScalar, VexScalar, EXxmm_mdq }, 0 },
  2007.   },
  2008.   /* PREFIX_EVEX_0F3858 */
  2009.   {
  2010.     { Bad_Opcode },
  2011.     { Bad_Opcode },
  2012.     { VEX_W_TABLE (EVEX_W_0F3858_P_2) },
  2013.   },
  2014.   /* PREFIX_EVEX_0F3859 */
  2015.   {
  2016.     { Bad_Opcode },
  2017.     { Bad_Opcode },
  2018.     { VEX_W_TABLE (EVEX_W_0F3859_P_2) },
  2019.   },
  2020.   /* PREFIX_EVEX_0F385A */
  2021.   {
  2022.     { Bad_Opcode },
  2023.     { Bad_Opcode },
  2024.     { VEX_W_TABLE (EVEX_W_0F385A_P_2) },
  2025.   },
  2026.   /* PREFIX_EVEX_0F385B */
  2027.   {
  2028.     { Bad_Opcode },
  2029.     { Bad_Opcode },
  2030.     { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
  2031.   },
  2032.   /* PREFIX_EVEX_0F3864 */
  2033.   {
  2034.     { Bad_Opcode },
  2035.     { Bad_Opcode },
  2036.     { "vpblendm%LW",    { XM, Vex, EXx }, 0 },
  2037.   },
  2038.   /* PREFIX_EVEX_0F3865 */
  2039.   {
  2040.     { Bad_Opcode },
  2041.     { Bad_Opcode },
  2042.     { "vblendmp%XW",    { XM, Vex, EXx }, 0 },
  2043.   },
  2044.   /* PREFIX_EVEX_0F3866 */
  2045.   {
  2046.     { Bad_Opcode },
  2047.     { Bad_Opcode },
  2048.     { VEX_W_TABLE (EVEX_W_0F3866_P_2) },
  2049.   },
  2050.   /* PREFIX_EVEX_0F3875 */
  2051.   {
  2052.     { Bad_Opcode },
  2053.     { Bad_Opcode },
  2054.     { VEX_W_TABLE (EVEX_W_0F3875_P_2) },
  2055.   },
  2056.   /* PREFIX_EVEX_0F3876 */
  2057.   {
  2058.     { Bad_Opcode },
  2059.     { Bad_Opcode },
  2060.     { "vpermi2%LW",     { XM, Vex, EXx }, 0 },
  2061.   },
  2062.   /* PREFIX_EVEX_0F3877 */
  2063.   {
  2064.     { Bad_Opcode },
  2065.     { Bad_Opcode },
  2066.     { "vpermi2p%XW",    { XM, Vex, EXx }, 0 },
  2067.   },
  2068.   /* PREFIX_EVEX_0F3878 */
  2069.   {
  2070.     { Bad_Opcode },
  2071.     { Bad_Opcode },
  2072.     { VEX_W_TABLE (EVEX_W_0F3878_P_2) },
  2073.   },
  2074.   /* PREFIX_EVEX_0F3879 */
  2075.   {
  2076.     { Bad_Opcode },
  2077.     { Bad_Opcode },
  2078.     { VEX_W_TABLE (EVEX_W_0F3879_P_2) },
  2079.   },
  2080.   /* PREFIX_EVEX_0F387A */
  2081.   {
  2082.     { Bad_Opcode },
  2083.     { Bad_Opcode },
  2084.     { VEX_W_TABLE (EVEX_W_0F387A_P_2) },
  2085.   },
  2086.   /* PREFIX_EVEX_0F387B */
  2087.   {
  2088.     { Bad_Opcode },
  2089.     { Bad_Opcode },
  2090.     { VEX_W_TABLE (EVEX_W_0F387B_P_2) },
  2091.   },
  2092.   /* PREFIX_EVEX_0F387C */
  2093.   {
  2094.     { Bad_Opcode },
  2095.     { Bad_Opcode },
  2096.     { "vpbroadcast%LW", { XM, Rdq }, 0 },
  2097.   },
  2098.   /* PREFIX_EVEX_0F387D */
  2099.   {
  2100.     { Bad_Opcode },
  2101.     { Bad_Opcode },
  2102.     { VEX_W_TABLE (EVEX_W_0F387D_P_2) },
  2103.   },
  2104.   /* PREFIX_EVEX_0F387E */
  2105.   {
  2106.     { Bad_Opcode },
  2107.     { Bad_Opcode },
  2108.     { "vpermt2%LW",     { XM, Vex, EXx }, 0 },
  2109.   },
  2110.   /* PREFIX_EVEX_0F387F */
  2111.   {
  2112.     { Bad_Opcode },
  2113.     { Bad_Opcode },
  2114.     { "vpermt2p%XW",    { XM, Vex, EXx }, 0 },
  2115.   },
  2116.   /* PREFIX_EVEX_0F3883 */
  2117.   {
  2118.     { Bad_Opcode },
  2119.     { Bad_Opcode },
  2120.     { VEX_W_TABLE (EVEX_W_0F3883_P_2) },
  2121.   },
  2122.   /* PREFIX_EVEX_0F3888 */
  2123.   {
  2124.     { Bad_Opcode },
  2125.     { Bad_Opcode },
  2126.     { "vexpandp%XW",    { XM, EXEvexXGscat }, 0 },
  2127.   },
  2128.   /* PREFIX_EVEX_0F3889 */
  2129.   {
  2130.     { Bad_Opcode },
  2131.     { Bad_Opcode },
  2132.     { "vpexpand%LW",    { XM, EXEvexXGscat }, 0 },
  2133.   },
  2134.   /* PREFIX_EVEX_0F388A */
  2135.   {
  2136.     { Bad_Opcode },
  2137.     { Bad_Opcode },
  2138.     { "vcompressp%XW"{ EXEvexXGscat, XM }, 0 },
  2139.   },
  2140.   /* PREFIX_EVEX_0F388B */
  2141.   {
  2142.     { Bad_Opcode },
  2143.     { Bad_Opcode },
  2144.     { "vpcompress%LW"{ EXEvexXGscat, XM }, 0 },
  2145.   },
  2146.   /* PREFIX_EVEX_0F388D */
  2147.   {
  2148.     { Bad_Opcode },
  2149.     { Bad_Opcode },
  2150.     { VEX_W_TABLE (EVEX_W_0F388D_P_2) },
  2151.   },
  2152.   /* PREFIX_EVEX_0F3890 */
  2153.   {
  2154.     { Bad_Opcode },
  2155.     { Bad_Opcode },
  2156.     { "vpgatherd%LW",   { XM, MVexVSIBDWpX }, 0 },
  2157.   },
  2158.   /* PREFIX_EVEX_0F3891 */
  2159.   {
  2160.     { Bad_Opcode },
  2161.     { Bad_Opcode },
  2162.     { VEX_W_TABLE (EVEX_W_0F3891_P_2) },
  2163.   },
  2164.   /* PREFIX_EVEX_0F3892 */
  2165.   {
  2166.     { Bad_Opcode },
  2167.     { Bad_Opcode },
  2168.     { "vgatherdp%XW",   { XM, MVexVSIBDWpX}, 0 },
  2169.   },
  2170.   /* PREFIX_EVEX_0F3893 */
  2171.   {
  2172.     { Bad_Opcode },
  2173.     { Bad_Opcode },
  2174.     { VEX_W_TABLE (EVEX_W_0F3893_P_2) },
  2175.   },
  2176.   /* PREFIX_EVEX_0F3896 */
  2177.   {
  2178.     { Bad_Opcode },
  2179.     { Bad_Opcode },
  2180.     { "vfmaddsub132p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
  2181.   },
  2182.   /* PREFIX_EVEX_0F3897 */
  2183.   {
  2184.     { Bad_Opcode },
  2185.     { Bad_Opcode },
  2186.     { "vfmsubadd132p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
  2187.   },
  2188.   /* PREFIX_EVEX_0F3898 */
  2189.   {
  2190.     { Bad_Opcode },
  2191.     { Bad_Opcode },
  2192.     { "vfmadd132p%XW"{ XM, Vex, EXx, EXxEVexR }, 0 },
  2193.   },
  2194.   /* PREFIX_EVEX_0F3899 */
  2195.   {
  2196.     { Bad_Opcode },
  2197.     { Bad_Opcode },
  2198.     { "vfmadd132s%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2199.   },
  2200.   /* PREFIX_EVEX_0F389A */
  2201.   {
  2202.     { Bad_Opcode },
  2203.     { Bad_Opcode },
  2204.     { "vfmsub132p%XW"{ XM, Vex, EXx, EXxEVexR }, 0 },
  2205.   },
  2206.   /* PREFIX_EVEX_0F389B */
  2207.   {
  2208.     { Bad_Opcode },
  2209.     { Bad_Opcode },
  2210.     { "vfmsub132s%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2211.   },
  2212.   /* PREFIX_EVEX_0F389C */
  2213.   {
  2214.     { Bad_Opcode },
  2215.     { Bad_Opcode },
  2216.     { "vfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
  2217.   },
  2218.   /* PREFIX_EVEX_0F389D */
  2219.   {
  2220.     { Bad_Opcode },
  2221.     { Bad_Opcode },
  2222.     { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2223.   },
  2224.   /* PREFIX_EVEX_0F389E */
  2225.   {
  2226.     { Bad_Opcode },
  2227.     { Bad_Opcode },
  2228.     { "vfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
  2229.   },
  2230.   /* PREFIX_EVEX_0F389F */
  2231.   {
  2232.     { Bad_Opcode },
  2233.     { Bad_Opcode },
  2234.     { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2235.   },
  2236.   /* PREFIX_EVEX_0F38A0 */
  2237.   {
  2238.     { Bad_Opcode },
  2239.     { Bad_Opcode },
  2240.     { "vpscatterd%LW"{ MVexVSIBDWpX, XM }, 0 },
  2241.   },
  2242.   /* PREFIX_EVEX_0F38A1 */
  2243.   {
  2244.     { Bad_Opcode },
  2245.     { Bad_Opcode },
  2246.     { VEX_W_TABLE (EVEX_W_0F38A1_P_2) },
  2247.   },
  2248.   /* PREFIX_EVEX_0F38A2 */
  2249.   {
  2250.     { Bad_Opcode },
  2251.     { Bad_Opcode },
  2252.     { "vscatterdp%XW"{ MVexVSIBDWpX, XM }, 0 },
  2253.   },
  2254.   /* PREFIX_EVEX_0F38A3 */
  2255.   {
  2256.     { Bad_Opcode },
  2257.     { Bad_Opcode },
  2258.     { VEX_W_TABLE (EVEX_W_0F38A3_P_2) },
  2259.   },
  2260.   /* PREFIX_EVEX_0F38A6 */
  2261.   {
  2262.     { Bad_Opcode },
  2263.     { Bad_Opcode },
  2264.     { "vfmaddsub213p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
  2265.   },
  2266.   /* PREFIX_EVEX_0F38A7 */
  2267.   {
  2268.     { Bad_Opcode },
  2269.     { Bad_Opcode },
  2270.     { "vfmsubadd213p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
  2271.   },
  2272.   /* PREFIX_EVEX_0F38A8 */
  2273.   {
  2274.     { Bad_Opcode },
  2275.     { Bad_Opcode },
  2276.     { "vfmadd213p%XW"{ XM, Vex, EXx, EXxEVexR }, 0 },
  2277.   },
  2278.   /* PREFIX_EVEX_0F38A9 */
  2279.   {
  2280.     { Bad_Opcode },
  2281.     { Bad_Opcode },
  2282.     { "vfmadd213s%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2283.   },
  2284.   /* PREFIX_EVEX_0F38AA */
  2285.   {
  2286.     { Bad_Opcode },
  2287.     { Bad_Opcode },
  2288.     { "vfmsub213p%XW"{ XM, Vex, EXx, EXxEVexR }, 0 },
  2289.   },
  2290.   /* PREFIX_EVEX_0F38AB */
  2291.   {
  2292.     { Bad_Opcode },
  2293.     { Bad_Opcode },
  2294.     { "vfmsub213s%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2295.   },
  2296.   /* PREFIX_EVEX_0F38AC */
  2297.   {
  2298.     { Bad_Opcode },
  2299.     { Bad_Opcode },
  2300.     { "vfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
  2301.   },
  2302.   /* PREFIX_EVEX_0F38AD */
  2303.   {
  2304.     { Bad_Opcode },
  2305.     { Bad_Opcode },
  2306.     { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2307.   },
  2308.   /* PREFIX_EVEX_0F38AE */
  2309.   {
  2310.     { Bad_Opcode },
  2311.     { Bad_Opcode },
  2312.     { "vfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
  2313.   },
  2314.   /* PREFIX_EVEX_0F38AF */
  2315.   {
  2316.     { Bad_Opcode },
  2317.     { Bad_Opcode },
  2318.     { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2319.   },
  2320.   /* PREFIX_EVEX_0F38B4 */
  2321.   {
  2322.     { Bad_Opcode },
  2323.     { Bad_Opcode },
  2324.     { "vpmadd52luq",    { XM, Vex, EXx }, 0 },
  2325.   },
  2326.   /* PREFIX_EVEX_0F38B5 */
  2327.   {
  2328.     { Bad_Opcode },
  2329.     { Bad_Opcode },
  2330.     { "vpmadd52huq",    { XM, Vex, EXx }, 0 },
  2331.   },
  2332.   /* PREFIX_EVEX_0F38B6 */
  2333.   {
  2334.     { Bad_Opcode },
  2335.     { Bad_Opcode },
  2336.     { "vfmaddsub231p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
  2337.   },
  2338.   /* PREFIX_EVEX_0F38B7 */
  2339.   {
  2340.     { Bad_Opcode },
  2341.     { Bad_Opcode },
  2342.     { "vfmsubadd231p%XW",       { XM, Vex, EXx, EXxEVexR }, 0 },
  2343.   },
  2344.   /* PREFIX_EVEX_0F38B8 */
  2345.   {
  2346.     { Bad_Opcode },
  2347.     { Bad_Opcode },
  2348.     { "vfmadd231p%XW"{ XM, Vex, EXx, EXxEVexR }, 0 },
  2349.   },
  2350.   /* PREFIX_EVEX_0F38B9 */
  2351.   {
  2352.     { Bad_Opcode },
  2353.     { Bad_Opcode },
  2354.     { "vfmadd231s%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2355.   },
  2356.   /* PREFIX_EVEX_0F38BA */
  2357.   {
  2358.     { Bad_Opcode },
  2359.     { Bad_Opcode },
  2360.     { "vfmsub231p%XW"{ XM, Vex, EXx, EXxEVexR }, 0 },
  2361.   },
  2362.   /* PREFIX_EVEX_0F38BB */
  2363.   {
  2364.     { Bad_Opcode },
  2365.     { Bad_Opcode },
  2366.     { "vfmsub231s%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2367.   },
  2368.   /* PREFIX_EVEX_0F38BC */
  2369.   {
  2370.     { Bad_Opcode },
  2371.     { Bad_Opcode },
  2372.     { "vfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
  2373.   },
  2374.   /* PREFIX_EVEX_0F38BD */
  2375.   {
  2376.     { Bad_Opcode },
  2377.     { Bad_Opcode },
  2378.     { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2379.   },
  2380.   /* PREFIX_EVEX_0F38BE */
  2381.   {
  2382.     { Bad_Opcode },
  2383.     { Bad_Opcode },
  2384.     { "vfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, 0 },
  2385.   },
  2386.   /* PREFIX_EVEX_0F38BF */
  2387.   {
  2388.     { Bad_Opcode },
  2389.     { Bad_Opcode },
  2390.     { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 },
  2391.   },
  2392.   /* PREFIX_EVEX_0F38C4 */
  2393.   {
  2394.     { Bad_Opcode },
  2395.     { Bad_Opcode },
  2396.     { "vpconflict%LW"{ XM, EXx }, 0 },
  2397.   },
  2398.   /* PREFIX_EVEX_0F38C6_REG_1 */
  2399.   {
  2400.     { Bad_Opcode },
  2401.     { Bad_Opcode },
  2402.     { "vgatherpf0dp%XW",  { MVexVSIBDWpX }, 0 },
  2403.   },
  2404.   /* PREFIX_EVEX_0F38C6_REG_2 */
  2405.   {
  2406.     { Bad_Opcode },
  2407.     { Bad_Opcode },
  2408.     { "vgatherpf1dp%XW",  { MVexVSIBDWpX }, 0 },
  2409.   },
  2410.   /* PREFIX_EVEX_0F38C6_REG_5 */
  2411.   {
  2412.     { Bad_Opcode },
  2413.     { Bad_Opcode },
  2414.     { "vscatterpf0dp%XW",  { MVexVSIBDWpX }, 0 },
  2415.   },
  2416.   /* PREFIX_EVEX_0F38C6_REG_6 */
  2417.   {
  2418.     { Bad_Opcode },
  2419.     { Bad_Opcode },
  2420.     { "vscatterpf1dp%XW",  { MVexVSIBDWpX }, 0 },
  2421.   },
  2422.   /* PREFIX_EVEX_0F38C7_REG_1 */
  2423.   {
  2424.     { Bad_Opcode },
  2425.     { Bad_Opcode },
  2426.     { VEX_W_TABLE (EVEX_W_0F38C7_R_1_P_2) },
  2427.   },
  2428.   /* PREFIX_EVEX_0F38C7_REG_2 */
  2429.   {
  2430.     { Bad_Opcode },
  2431.     { Bad_Opcode },
  2432.     { VEX_W_TABLE (EVEX_W_0F38C7_R_2_P_2) },
  2433.   },
  2434.   /* PREFIX_EVEX_0F38C7_REG_5 */
  2435.   {
  2436.     { Bad_Opcode },
  2437.     { Bad_Opcode },
  2438.     { VEX_W_TABLE (EVEX_W_0F38C7_R_5_P_2) },
  2439.   },
  2440.   /* PREFIX_EVEX_0F38C7_REG_6 */
  2441.   {
  2442.     { Bad_Opcode },
  2443.     { Bad_Opcode },
  2444.     { VEX_W_TABLE (EVEX_W_0F38C7_R_6_P_2) },
  2445.   },
  2446.   /* PREFIX_EVEX_0F38C8 */
  2447.   {
  2448.     { Bad_Opcode },
  2449.     { Bad_Opcode },
  2450.     { "vexp2p%XW",        { XM, EXx, EXxEVexS }, 0 },
  2451.   },
  2452.   /* PREFIX_EVEX_0F38CA */
  2453.   {
  2454.     { Bad_Opcode },
  2455.     { Bad_Opcode },
  2456.     { "vrcp28p%XW",       { XM, EXx, EXxEVexS }, 0 },
  2457.   },
  2458.   /* PREFIX_EVEX_0F38CB */
  2459.   {
  2460.     { Bad_Opcode },
  2461.     { Bad_Opcode },
  2462.     { "vrcp28s%XW",       { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
  2463.   },
  2464.   /* PREFIX_EVEX_0F38CC */
  2465.   {
  2466.     { Bad_Opcode },
  2467.     { Bad_Opcode },
  2468.     { "vrsqrt28p%XW",     { XM, EXx, EXxEVexS }, 0 },
  2469.   },
  2470.   /* PREFIX_EVEX_0F38CD */
  2471.   {
  2472.     { Bad_Opcode },
  2473.     { Bad_Opcode },
  2474.     { "vrsqrt28s%XW",     { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
  2475.   },
  2476.   /* PREFIX_EVEX_0F3A00 */
  2477.   {
  2478.     { Bad_Opcode },
  2479.     { Bad_Opcode },
  2480.     { VEX_W_TABLE (EVEX_W_0F3A00_P_2) },
  2481.   },
  2482.   /* PREFIX_EVEX_0F3A01 */
  2483.   {
  2484.     { Bad_Opcode },
  2485.     { Bad_Opcode },
  2486.     { VEX_W_TABLE (EVEX_W_0F3A01_P_2) },
  2487.   },
  2488.   /* PREFIX_EVEX_0F3A03 */
  2489.   {
  2490.     { Bad_Opcode },
  2491.     { Bad_Opcode },
  2492.     { "valign%LW",      { XM, Vex, EXx, Ib }, 0 },
  2493.   },
  2494.   /* PREFIX_EVEX_0F3A04 */
  2495.   {
  2496.     { Bad_Opcode },
  2497.     { Bad_Opcode },
  2498.     { VEX_W_TABLE (EVEX_W_0F3A04_P_2) },
  2499.   },
  2500.   /* PREFIX_EVEX_0F3A05 */
  2501.   {
  2502.     { Bad_Opcode },
  2503.     { Bad_Opcode },
  2504.     { VEX_W_TABLE (EVEX_W_0F3A05_P_2) },
  2505.   },
  2506.   /* PREFIX_EVEX_0F3A08 */
  2507.   {
  2508.     { Bad_Opcode },
  2509.     { Bad_Opcode },
  2510.     { VEX_W_TABLE (EVEX_W_0F3A08_P_2) },
  2511.   },
  2512.   /* PREFIX_EVEX_0F3A09 */
  2513.   {
  2514.     { Bad_Opcode },
  2515.     { Bad_Opcode },
  2516.     { VEX_W_TABLE (EVEX_W_0F3A09_P_2) },
  2517.   },
  2518.   /* PREFIX_EVEX_0F3A0A */
  2519.   {
  2520.     { Bad_Opcode },
  2521.     { Bad_Opcode },
  2522.     { VEX_W_TABLE (EVEX_W_0F3A0A_P_2) },
  2523.   },
  2524.   /* PREFIX_EVEX_0F3A0B */
  2525.   {
  2526.     { Bad_Opcode },
  2527.     { Bad_Opcode },
  2528.     { VEX_W_TABLE (EVEX_W_0F3A0B_P_2) },
  2529.   },
  2530.   /* PREFIX_EVEX_0F3A0F */
  2531.   {
  2532.     { Bad_Opcode },
  2533.     { Bad_Opcode },
  2534.     { "vpalignr",       { XM, Vex, EXx, Ib }, 0 },
  2535.   },
  2536.   /* PREFIX_EVEX_0F3A14 */
  2537.   {
  2538.     { Bad_Opcode },
  2539.     { Bad_Opcode },
  2540.     { "vpextrb",        { Edqb, XM, Ib }, 0 },
  2541.   },
  2542.   /* PREFIX_EVEX_0F3A15 */
  2543.   {
  2544.     { Bad_Opcode },
  2545.     { Bad_Opcode },
  2546.     { "vpextrw",        { EdqwS, XM, Ib }, 0 },
  2547.   },
  2548.   /* PREFIX_EVEX_0F3A16 */
  2549.   {
  2550.     { Bad_Opcode },
  2551.     { Bad_Opcode },
  2552.     { VEX_W_TABLE (EVEX_W_0F3A16_P_2) },
  2553.   },
  2554.   /* PREFIX_EVEX_0F3A17 */
  2555.   {
  2556.     { Bad_Opcode },
  2557.     { Bad_Opcode },
  2558.     { "vextractps",     { Edqd, XMM, Ib }, 0 },
  2559.   },
  2560.   /* PREFIX_EVEX_0F3A18 */
  2561.   {
  2562.     { Bad_Opcode },
  2563.     { Bad_Opcode },
  2564.     { VEX_W_TABLE (EVEX_W_0F3A18_P_2) },
  2565.   },
  2566.   /* PREFIX_EVEX_0F3A19 */
  2567.   {
  2568.     { Bad_Opcode },
  2569.     { Bad_Opcode },
  2570.     { VEX_W_TABLE (EVEX_W_0F3A19_P_2) },
  2571.   },
  2572.   /* PREFIX_EVEX_0F3A1A */
  2573.   {
  2574.     { Bad_Opcode },
  2575.     { Bad_Opcode },
  2576.     { VEX_W_TABLE (EVEX_W_0F3A1A_P_2) },
  2577.   },
  2578.   /* PREFIX_EVEX_0F3A1B */
  2579.   {
  2580.     { Bad_Opcode },
  2581.     { Bad_Opcode },
  2582.     { VEX_W_TABLE (EVEX_W_0F3A1B_P_2) },
  2583.   },
  2584.   /* PREFIX_EVEX_0F3A1D */
  2585.   {
  2586.     { Bad_Opcode },
  2587.     { Bad_Opcode },
  2588.     { VEX_W_TABLE (EVEX_W_0F3A1D_P_2) },
  2589.   },
  2590.   /* PREFIX_EVEX_0F3A1E */
  2591.   {
  2592.     { Bad_Opcode },
  2593.     { Bad_Opcode },
  2594.     { "vpcmpu%LW",      { XMask, Vex, EXx, VPCMP }, 0 },
  2595.   },
  2596.   /* PREFIX_EVEX_0F3A1F */
  2597.   {
  2598.     { Bad_Opcode },
  2599.     { Bad_Opcode },
  2600.     { "vpcmp%LW",       { XMask, Vex, EXx, VPCMP }, 0 },
  2601.   },
  2602.   /* PREFIX_EVEX_0F3A20 */
  2603.   {
  2604.     { Bad_Opcode },
  2605.     { Bad_Opcode },
  2606.     { "vpinsrb",        { XM, Vex128, Edb, Ib }, 0 },
  2607.   },
  2608.   /* PREFIX_EVEX_0F3A21 */
  2609.   {
  2610.     { Bad_Opcode },
  2611.     { Bad_Opcode },
  2612.     { VEX_W_TABLE (EVEX_W_0F3A21_P_2) },
  2613.   },
  2614.   /* PREFIX_EVEX_0F3A22 */
  2615.   {
  2616.     { Bad_Opcode },
  2617.     { Bad_Opcode },
  2618.     { VEX_W_TABLE (EVEX_W_0F3A22_P_2) },
  2619.   },
  2620.   /* PREFIX_EVEX_0F3A23 */
  2621.   {
  2622.     { Bad_Opcode },
  2623.     { Bad_Opcode },
  2624.     { VEX_W_TABLE (EVEX_W_0F3A23_P_2) },
  2625.   },
  2626.   /* PREFIX_EVEX_0F3A25 */
  2627.   {
  2628.     { Bad_Opcode },
  2629.     { Bad_Opcode },
  2630.     { "vpternlog%LW",   { XM, Vex, EXx, Ib }, 0 },
  2631.   },
  2632.   /* PREFIX_EVEX_0F3A26 */
  2633.   {
  2634.     { Bad_Opcode },
  2635.     { Bad_Opcode },
  2636.     { "vgetmantp%XW",   { XM, EXx, EXxEVexS, Ib }, 0 },
  2637.   },
  2638.   /* PREFIX_EVEX_0F3A27 */
  2639.   {
  2640.     { Bad_Opcode },
  2641.     { Bad_Opcode },
  2642.     { "vgetmants%XW",   { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 },
  2643.   },
  2644.   /* PREFIX_EVEX_0F3A38 */
  2645.   {
  2646.     { Bad_Opcode },
  2647.     { Bad_Opcode },
  2648.     { VEX_W_TABLE (EVEX_W_0F3A38_P_2) },
  2649.   },
  2650.   /* PREFIX_EVEX_0F3A39 */
  2651.   {
  2652.     { Bad_Opcode },
  2653.     { Bad_Opcode },
  2654.     { VEX_W_TABLE (EVEX_W_0F3A39_P_2) },
  2655.   },
  2656.   /* PREFIX_EVEX_0F3A3A */
  2657.   {
  2658.     { Bad_Opcode },
  2659.     { Bad_Opcode },
  2660.     { VEX_W_TABLE (EVEX_W_0F3A3A_P_2) },
  2661.   },
  2662.   /* PREFIX_EVEX_0F3A3B */
  2663.   {
  2664.     { Bad_Opcode },
  2665.     { Bad_Opcode },
  2666.     { VEX_W_TABLE (EVEX_W_0F3A3B_P_2) },
  2667.   },
  2668.   /* PREFIX_EVEX_0F3A3E */
  2669.   {
  2670.     { Bad_Opcode },
  2671.     { Bad_Opcode },
  2672.     { VEX_W_TABLE (EVEX_W_0F3A3E_P_2) },
  2673.   },
  2674.   /* PREFIX_EVEX_0F3A3F */
  2675.   {
  2676.     { Bad_Opcode },
  2677.     { Bad_Opcode },
  2678.     { VEX_W_TABLE (EVEX_W_0F3A3F_P_2) },
  2679.   },
  2680.   /* PREFIX_EVEX_0F3A42 */
  2681.   {
  2682.     { Bad_Opcode },
  2683.     { Bad_Opcode },
  2684.     { VEX_W_TABLE (EVEX_W_0F3A42_P_2) },
  2685.   },
  2686.   /* PREFIX_EVEX_0F3A43 */
  2687.   {
  2688.     { Bad_Opcode },
  2689.     { Bad_Opcode },
  2690.     { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
  2691.   },
  2692.   /* PREFIX_EVEX_0F3A50 */
  2693.   {
  2694.     { Bad_Opcode },
  2695.     { Bad_Opcode },
  2696.     { VEX_W_TABLE (EVEX_W_0F3A50_P_2) },
  2697.   },
  2698.   /* PREFIX_EVEX_0F3A51 */
  2699.   {
  2700.     { Bad_Opcode },
  2701.     { Bad_Opcode },
  2702.     { VEX_W_TABLE (EVEX_W_0F3A51_P_2) },
  2703.   },
  2704.   /* PREFIX_EVEX_0F3A54 */
  2705.   {
  2706.     { Bad_Opcode },
  2707.     { Bad_Opcode },
  2708.     { "vfixupimmp%XW"{ XM, Vex, EXx, EXxEVexS, Ib }, 0 },
  2709.   },
  2710.   /* PREFIX_EVEX_0F3A55 */
  2711.   {
  2712.     { Bad_Opcode },
  2713.     { Bad_Opcode },
  2714.     { "vfixupimms%XW"{ XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 },
  2715.   },
  2716.   /* PREFIX_EVEX_0F3A56 */
  2717.   {
  2718.     { Bad_Opcode },
  2719.     { Bad_Opcode },
  2720.     { VEX_W_TABLE (EVEX_W_0F3A56_P_2) },
  2721.   },
  2722.   /* PREFIX_EVEX_0F3A57 */
  2723.   {
  2724.     { Bad_Opcode },
  2725.     { Bad_Opcode },
  2726.     { VEX_W_TABLE (EVEX_W_0F3A57_P_2) },
  2727.   },
  2728.   /* PREFIX_EVEX_0F3A66 */
  2729.   {
  2730.     { Bad_Opcode },
  2731.     { Bad_Opcode },
  2732.     { VEX_W_TABLE (EVEX_W_0F3A66_P_2) },
  2733.   },
  2734.   /* PREFIX_EVEX_0F3A67 */
  2735.   {
  2736.     { Bad_Opcode },
  2737.     { Bad_Opcode },
  2738.     { VEX_W_TABLE (EVEX_W_0F3A67_P_2) },
  2739.   },
  2740. #endif /* NEED_PREFIX_TABLE */
  2741.  
  2742. #ifdef NEED_VEX_W_TABLE
  2743.   /* EVEX_W_0F10_P_0 */
  2744.   {
  2745.     { "vmovups",        { XM, EXEvexXNoBcst }, 0 },
  2746.   },
  2747.   /* EVEX_W_0F10_P_1_M_0 */
  2748.   {
  2749.     { "vmovss", { XMScalar, EXdScalar }, 0 },
  2750.   },
  2751.   /* EVEX_W_0F10_P_1_M_1 */
  2752.   {
  2753.     { "vmovss", { XMScalar, VexScalar, EXxmm_md }, 0 },
  2754.   },
  2755.   /* EVEX_W_0F10_P_2 */
  2756.   {
  2757.     { Bad_Opcode },
  2758.     { "vmovupd",        { XM, EXEvexXNoBcst }, 0 },
  2759.   },
  2760.   /* EVEX_W_0F10_P_3_M_0 */
  2761.   {
  2762.     { Bad_Opcode },
  2763.     { "vmovsd", { XMScalar, EXqScalar }, 0 },
  2764.   },
  2765.   /* EVEX_W_0F10_P_3_M_1 */
  2766.   {
  2767.     { Bad_Opcode },
  2768.     { "vmovsd", { XMScalar, VexScalar, EXxmm_mq }, 0 },
  2769.   },
  2770.   /* EVEX_W_0F11_P_0 */
  2771.   {
  2772.     { "vmovups",        { EXxS, XM }, 0 },
  2773.   },
  2774.   /* EVEX_W_0F11_P_1_M_0 */
  2775.   {
  2776.     { "vmovss", { EXdScalarS, XMScalar }, 0 },
  2777.   },
  2778.   /* EVEX_W_0F11_P_1_M_1 */
  2779.   {
  2780.     { "vmovss", { EXxS, Vex, XMScalar }, 0 },
  2781.   },
  2782.   /* EVEX_W_0F11_P_2 */
  2783.   {
  2784.     { Bad_Opcode },
  2785.     { "vmovupd",        { EXxS, XM }, 0 },
  2786.   },
  2787.   /* EVEX_W_0F11_P_3_M_0 */
  2788.   {
  2789.     { Bad_Opcode },
  2790.     { "vmovsd", { EXqScalarS, XMScalar }, 0 },
  2791.   },
  2792.   /* EVEX_W_0F11_P_3_M_1 */
  2793.   {
  2794.     { Bad_Opcode },
  2795.     { "vmovsd", { EXxS, Vex, XMScalar }, 0 },
  2796.   },
  2797.   /* EVEX_W_0F12_P_0_M_0 */
  2798.   {
  2799.     { "vmovlps",        { XMM, Vex, EXxmm_mq }, 0 },
  2800.   },
  2801.   /* EVEX_W_0F12_P_0_M_1 */
  2802.   {
  2803.     { "vmovhlps",       { XMM, Vex, EXxmm_mq }, 0 },
  2804.   },
  2805.   /* EVEX_W_0F12_P_1 */
  2806.   {
  2807.     { "vmovsldup",      { XM, EXEvexXNoBcst }, 0 },
  2808.   },
  2809.   /* EVEX_W_0F12_P_2 */
  2810.   {
  2811.     { Bad_Opcode },
  2812.     { "vmovlpd",        { XMM, Vex, EXxmm_mq }, 0 },
  2813.   },
  2814.   /* EVEX_W_0F12_P_3 */
  2815.   {
  2816.     { Bad_Opcode },
  2817.     { "vmovddup",       { XM, EXymmq }, 0 },
  2818.   },
  2819.   /* EVEX_W_0F13_P_0 */
  2820.   {
  2821.     { "vmovlps",        { EXxmm_mq, XMM }, 0 },
  2822.   },
  2823.   /* EVEX_W_0F13_P_2 */
  2824.   {
  2825.     { Bad_Opcode },
  2826.     { "vmovlpd",        { EXxmm_mq, XMM }, 0 },
  2827.   },
  2828.   /* EVEX_W_0F14_P_0 */
  2829.   {
  2830.     { "vunpcklps",      { XM, Vex, EXx }, 0 },
  2831.   },
  2832.   /* EVEX_W_0F14_P_2 */
  2833.   {
  2834.     { Bad_Opcode },
  2835.     { "vunpcklpd",      { XM, Vex, EXx }, 0 },
  2836.   },
  2837.   /* EVEX_W_0F15_P_0 */
  2838.   {
  2839.     { "vunpckhps",      { XM, Vex, EXx }, 0 },
  2840.   },
  2841.   /* EVEX_W_0F15_P_2 */
  2842.   {
  2843.     { Bad_Opcode },
  2844.     { "vunpckhpd",      { XM, Vex, EXx }, 0 },
  2845.   },
  2846.   /* EVEX_W_0F16_P_0_M_0 */
  2847.   {
  2848.     { "vmovhps",        { XMM, Vex, EXxmm_mq }, 0 },
  2849.   },
  2850.   /* EVEX_W_0F16_P_0_M_1 */
  2851.   {
  2852.     { "vmovlhps",       { XMM, Vex, EXx }, 0 },
  2853.   },
  2854.   /* EVEX_W_0F16_P_1 */
  2855.   {
  2856.     { "vmovshdup",      { XM, EXx }, 0 },
  2857.   },
  2858.   /* EVEX_W_0F16_P_2 */
  2859.   {
  2860.     { Bad_Opcode },
  2861.     { "vmovhpd",        { XMM, Vex, EXxmm_mq }, 0 },
  2862.   },
  2863.   /* EVEX_W_0F17_P_0 */
  2864.   {
  2865.     { "vmovhps",        { EXxmm_mq, XMM }, 0 },
  2866.   },
  2867.   /* EVEX_W_0F17_P_2 */
  2868.   {
  2869.     { Bad_Opcode },
  2870.     { "vmovhpd",        { EXxmm_mq, XMM }, 0 },
  2871.   },
  2872.   /* EVEX_W_0F28_P_0 */
  2873.   {
  2874.     { "vmovaps",        { XM, EXx }, 0 },
  2875.   },
  2876.   /* EVEX_W_0F28_P_2 */
  2877.   {
  2878.     { Bad_Opcode },
  2879.     { "vmovapd",        { XM, EXx }, 0 },
  2880.   },
  2881.   /* EVEX_W_0F29_P_0 */
  2882.   {
  2883.     { "vmovaps",        { EXxS, XM }, 0 },
  2884.   },
  2885.   /* EVEX_W_0F29_P_2 */
  2886.   {
  2887.     { Bad_Opcode },
  2888.     { "vmovapd",        { EXxS, XM }, 0 },
  2889.   },
  2890.   /* EVEX_W_0F2A_P_1 */
  2891.   {
  2892.     { "vcvtsi2ss",      { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
  2893.     { "vcvtsi2ss",      { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
  2894.   },
  2895.   /* EVEX_W_0F2A_P_3 */
  2896.   {
  2897.     { "vcvtsi2sd",      { XMScalar, VexScalar, Ed }, 0 },
  2898.     { "vcvtsi2sd",      { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
  2899.   },
  2900.   /* EVEX_W_0F2B_P_0 */
  2901.   {
  2902.     { "vmovntps",       { EXx, XM }, 0 },
  2903.   },
  2904.   /* EVEX_W_0F2B_P_2 */
  2905.   {
  2906.     { Bad_Opcode },
  2907.     { "vmovntpd",       { EXx, XM }, 0 },
  2908.   },
  2909.   /* EVEX_W_0F2E_P_0 */
  2910.   {
  2911.     { "vucomiss",       { XMScalar, EXxmm_md, EXxEVexS }, 0 },
  2912.   },
  2913.   /* EVEX_W_0F2E_P_2 */
  2914.   {
  2915.     { Bad_Opcode },
  2916.     { "vucomisd",       { XMScalar, EXxmm_mq, EXxEVexS }, 0 },
  2917.   },
  2918.   /* EVEX_W_0F2F_P_0 */
  2919.   {
  2920.     { "vcomiss",        { XMScalar, EXxmm_md, EXxEVexS }, 0 },
  2921.   },
  2922.   /* EVEX_W_0F2F_P_2 */
  2923.   {
  2924.     { Bad_Opcode },
  2925.     { "vcomisd",        { XMScalar, EXxmm_mq, EXxEVexS }, 0 },
  2926.   },
  2927.   /* EVEX_W_0F51_P_0 */
  2928.   {
  2929.     { "vsqrtps",        { XM, EXx, EXxEVexR }, 0 },
  2930.   },
  2931.   /* EVEX_W_0F51_P_1 */
  2932.   {
  2933.     { "vsqrtss",        { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
  2934.   },
  2935.   /* EVEX_W_0F51_P_2 */
  2936.   {
  2937.     { Bad_Opcode },
  2938.     { "vsqrtpd",        { XM, EXx, EXxEVexR }, 0 },
  2939.   },
  2940.   /* EVEX_W_0F51_P_3 */
  2941.   {
  2942.     { Bad_Opcode },
  2943.     { "vsqrtsd",        { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
  2944.   },
  2945.   /* EVEX_W_0F54_P_0 */
  2946.   {
  2947.     { "vandps", { XM, Vex, EXx }, 0 },
  2948.   },
  2949.   /* EVEX_W_0F54_P_2 */
  2950.   {
  2951.     { Bad_Opcode },
  2952.     { "vandpd", { XM, Vex, EXx }, 0 },
  2953.   },
  2954.   /* EVEX_W_0F55_P_0 */
  2955.   {
  2956.     { "vandnps",        { XM, Vex, EXx }, 0 },
  2957.   },
  2958.   /* EVEX_W_0F55_P_2 */
  2959.   {
  2960.     { Bad_Opcode },
  2961.     { "vandnpd",        { XM, Vex, EXx }, 0 },
  2962.   },
  2963.   /* EVEX_W_0F56_P_0 */
  2964.   {
  2965.     { "vorps"{ XM, Vex, EXx }, 0 },
  2966.   },
  2967.   /* EVEX_W_0F56_P_2 */
  2968.   {
  2969.     { Bad_Opcode },
  2970.     { "vorpd"{ XM, Vex, EXx }, 0 },
  2971.   },
  2972.   /* EVEX_W_0F57_P_0 */
  2973.   {
  2974.     { "vxorps", { XM, Vex, EXx }, 0 },
  2975.   },
  2976.   /* EVEX_W_0F57_P_2 */
  2977.   {
  2978.     { Bad_Opcode },
  2979.     { "vxorpd", { XM, Vex, EXx }, 0 },
  2980.   },
  2981.   /* EVEX_W_0F58_P_0 */
  2982.   {
  2983.     { "vaddps", { XM, Vex, EXx, EXxEVexR }, 0 },
  2984.   },
  2985.   /* EVEX_W_0F58_P_1 */
  2986.   {
  2987.     { "vaddss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
  2988.   },
  2989.   /* EVEX_W_0F58_P_2 */
  2990.   {
  2991.     { Bad_Opcode },
  2992.     { "vaddpd", { XM, Vex, EXx, EXxEVexR }, 0 },
  2993.   },
  2994.   /* EVEX_W_0F58_P_3 */
  2995.   {
  2996.     { Bad_Opcode },
  2997.     { "vaddsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
  2998.   },
  2999.   /* EVEX_W_0F59_P_0 */
  3000.   {
  3001.     { "vmulps", { XM, Vex, EXx, EXxEVexR }, 0 },
  3002.   },
  3003.   /* EVEX_W_0F59_P_1 */
  3004.   {
  3005.     { "vmulss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
  3006.   },
  3007.   /* EVEX_W_0F59_P_2 */
  3008.   {
  3009.     { Bad_Opcode },
  3010.     { "vmulpd", { XM, Vex, EXx, EXxEVexR }, 0 },
  3011.   },
  3012.   /* EVEX_W_0F59_P_3 */
  3013.   {
  3014.     { Bad_Opcode },
  3015.     { "vmulsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
  3016.   },
  3017.   /* EVEX_W_0F5A_P_0 */
  3018.   {
  3019.     { "vcvtps2pd",   { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
  3020.   },
  3021.   /* EVEX_W_0F5A_P_1 */
  3022.   {
  3023.     { "vcvtss2sd",      { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
  3024.   },
  3025.   /* EVEX_W_0F5A_P_2 */
  3026.   {
  3027.     { Bad_Opcode },
  3028.     { "vcvtpd2ps%XY",   { XMxmmq, EXx, EXxEVexR }, 0 },
  3029.   },
  3030.   /* EVEX_W_0F5A_P_3 */
  3031.   {
  3032.     { Bad_Opcode },
  3033.     { "vcvtsd2ss",      { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
  3034.   },
  3035.   /* EVEX_W_0F5B_P_0 */
  3036.   {
  3037.     { "vcvtdq2ps",      { XM, EXx, EXxEVexR }, 0 },
  3038.     { "vcvtqq2ps%XY",   { XMxmmq, EXx, EXxEVexR }, 0 },
  3039.   },
  3040.   /* EVEX_W_0F5B_P_1 */
  3041.   {
  3042.     { "vcvttps2dq",     { XM, EXx, EXxEVexS }, 0 },
  3043.   },
  3044.   /* EVEX_W_0F5B_P_2 */
  3045.   {
  3046.     { "vcvtps2dq",      { XM, EXx, EXxEVexR }, 0 },
  3047.   },
  3048.   /* EVEX_W_0F5C_P_0 */
  3049.   {
  3050.     { "vsubps", { XM, Vex, EXx, EXxEVexR }, 0 },
  3051.   },
  3052.   /* EVEX_W_0F5C_P_1 */
  3053.   {
  3054.     { "vsubss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
  3055.   },
  3056.   /* EVEX_W_0F5C_P_2 */
  3057.   {
  3058.     { Bad_Opcode },
  3059.     { "vsubpd", { XM, Vex, EXx, EXxEVexR }, 0 },
  3060.   },
  3061.   /* EVEX_W_0F5C_P_3 */
  3062.   {
  3063.     { Bad_Opcode },
  3064.     { "vsubsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
  3065.   },
  3066.   /* EVEX_W_0F5D_P_0 */
  3067.   {
  3068.     { "vminps", { XM, Vex, EXx, EXxEVexS }, 0 },
  3069.   },
  3070.   /* EVEX_W_0F5D_P_1 */
  3071.   {
  3072.     { "vminss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
  3073.   },
  3074.   /* EVEX_W_0F5D_P_2 */
  3075.   {
  3076.     { Bad_Opcode },
  3077.     { "vminpd", { XM, Vex, EXx, EXxEVexS }, 0 },
  3078.   },
  3079.   /* EVEX_W_0F5D_P_3 */
  3080.   {
  3081.     { Bad_Opcode },
  3082.     { "vminsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
  3083.   },
  3084.   /* EVEX_W_0F5E_P_0 */
  3085.   {
  3086.     { "vdivps", { XM, Vex, EXx, EXxEVexR }, 0 },
  3087.   },
  3088.   /* EVEX_W_0F5E_P_1 */
  3089.   {
  3090.     { "vdivss", { XMScalar, VexScalar, EXxmm_md, EXxEVexR }, 0 },
  3091.   },
  3092.   /* EVEX_W_0F5E_P_2 */
  3093.   {
  3094.     { Bad_Opcode },
  3095.     { "vdivpd", { XM, Vex, EXx, EXxEVexR }, 0 },
  3096.   },
  3097.   /* EVEX_W_0F5E_P_3 */
  3098.   {
  3099.     { Bad_Opcode },
  3100.     { "vdivsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexR }, 0 },
  3101.   },
  3102.   /* EVEX_W_0F5F_P_0 */
  3103.   {
  3104.     { "vmaxps", { XM, Vex, EXx, EXxEVexS }, 0 },
  3105.   },
  3106.   /* EVEX_W_0F5F_P_1 */
  3107.   {
  3108.     { "vmaxss", { XMScalar, VexScalar, EXxmm_md, EXxEVexS }, 0 },
  3109.   },
  3110.   /* EVEX_W_0F5F_P_2 */
  3111.   {
  3112.     { Bad_Opcode },
  3113.     { "vmaxpd", { XM, Vex, EXx, EXxEVexS }, 0 },
  3114.   },
  3115.   /* EVEX_W_0F5F_P_3 */
  3116.   {
  3117.     { Bad_Opcode },
  3118.     { "vmaxsd", { XMScalar, VexScalar, EXxmm_mq, EXxEVexS }, 0 },
  3119.   },
  3120.   /* EVEX_W_0F62_P_2 */
  3121.   {
  3122.     { "vpunpckldq",     { XM, Vex, EXx }, 0 },
  3123.   },
  3124.   /* EVEX_W_0F66_P_2 */
  3125.   {
  3126.     { "vpcmpgtd",       { XMask, Vex, EXx }, 0 },
  3127.   },
  3128.   /* EVEX_W_0F6A_P_2 */
  3129.   {
  3130.     { "vpunpckhdq",     { XM, Vex, EXx }, 0 },
  3131.   },
  3132.   /* EVEX_W_0F6B_P_2 */
  3133.   {
  3134.     { "vpackssdw",      { XM, Vex, EXx }, 0 },
  3135.   },
  3136.   /* EVEX_W_0F6C_P_2 */
  3137.   {
  3138.     { Bad_Opcode },
  3139.     { "vpunpcklqdq",    { XM, Vex, EXx }, 0 },
  3140.   },
  3141.   /* EVEX_W_0F6D_P_2 */
  3142.   {
  3143.     { Bad_Opcode },
  3144.     { "vpunpckhqdq",    { XM, Vex, EXx }, 0 },
  3145.   },
  3146.   /* EVEX_W_0F6E_P_2 */
  3147.   {
  3148.     { "vmovd"{ XMScalar, Ed }, 0 },
  3149.     { "vmovq"{ XMScalar, Eq }, 0 },
  3150.   },
  3151.   /* EVEX_W_0F6F_P_1 */
  3152.   {
  3153.     { "vmovdqu32",      { XM, EXEvexXNoBcst }, 0 },
  3154.     { "vmovdqu64",      { XM, EXEvexXNoBcst }, 0 },
  3155.   },
  3156.   /* EVEX_W_0F6F_P_2 */
  3157.   {
  3158.     { "vmovdqa32",      { XM, EXEvexXNoBcst }, 0 },
  3159.     { "vmovdqa64",      { XM, EXEvexXNoBcst }, 0 },
  3160.   },
  3161.   /* EVEX_W_0F6F_P_3 */
  3162.   {
  3163.     { "vmovdqu8",       { XM, EXx }, 0 },
  3164.     { "vmovdqu16",      { XM, EXx }, 0 },
  3165.   },
  3166.   /* EVEX_W_0F70_P_2 */
  3167.   {
  3168.     { "vpshufd",        { XM, EXx, Ib }, 0 },
  3169.   },
  3170.   /* EVEX_W_0F72_R_2_P_2 */
  3171.   {
  3172.     { "vpsrld", { Vex, EXx, Ib }, 0 },
  3173.   },
  3174.   /* EVEX_W_0F72_R_6_P_2 */
  3175.   {
  3176.     { "vpslld", { Vex, EXx, Ib }, 0 },
  3177.   },
  3178.   /* EVEX_W_0F73_R_2_P_2 */
  3179.   {
  3180.     { Bad_Opcode },
  3181.     { "vpsrlq", { Vex, EXx, Ib }, 0 },
  3182.   },
  3183.   /* EVEX_W_0F73_R_6_P_2 */
  3184.   {
  3185.     { Bad_Opcode },
  3186.     { "vpsllq", { Vex, EXx, Ib }, 0 },
  3187.   },
  3188.   /* EVEX_W_0F76_P_2 */
  3189.   {
  3190.     { "vpcmpeqd",       { XMask, Vex, EXx }, 0 },
  3191.   },
  3192.   /* EVEX_W_0F78_P_0 */
  3193.   {
  3194.     { "vcvttps2udq",    { XM, EXx, EXxEVexS }, 0 },
  3195.     { "vcvttpd2udq%XY", { XMxmmq, EXx, EXxEVexS }, 0 },
  3196.   },
  3197.   /* EVEX_W_0F78_P_2 */
  3198.   {
  3199.     { "vcvttps2uqq",    { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
  3200.     { "vcvttpd2uqq",    { XM, EXx, EXxEVexS }, 0 },
  3201.   },
  3202.   /* EVEX_W_0F79_P_0 */
  3203.   {
  3204.     { "vcvtps2udq",     { XM, EXx, EXxEVexR }, 0 },
  3205.     { "vcvtpd2udq%XY"{ XMxmmq, EXx, EXxEVexR }, 0 },
  3206.   },
  3207.   /* EVEX_W_0F79_P_2 */
  3208.   {
  3209.     { "vcvtps2uqq",     { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
  3210.     { "vcvtpd2uqq",     { XM, EXx, EXxEVexR }, 0 },
  3211.   },
  3212.   /* EVEX_W_0F7A_P_1 */
  3213.   {
  3214.     { "vcvtudq2pd",     { XM, EXEvexHalfBcstXmmq }, 0 },
  3215.     { "vcvtuqq2pd",     { XM, EXx, EXxEVexR }, 0 },
  3216.   },
  3217.   /* EVEX_W_0F7A_P_2 */
  3218.   {
  3219.     { "vcvttps2qq",     { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
  3220.     { "vcvttpd2qq",     { XM, EXx, EXxEVexS }, 0 },
  3221.   },
  3222.   /* EVEX_W_0F7A_P_3 */
  3223.   {
  3224.     { "vcvtudq2ps",     { XM, EXx, EXxEVexR }, 0 },
  3225.     { "vcvtuqq2ps%XY"{ XMxmmq, EXx, EXxEVexR }, 0 },
  3226.   },
  3227.   /* EVEX_W_0F7B_P_1 */
  3228.   {
  3229.     { "vcvtusi2ss",     { XMScalar, VexScalar, EXxEVexR, Ed }, 0 },
  3230.     { "vcvtusi2ss",     { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
  3231.   },
  3232.   /* EVEX_W_0F7B_P_2 */
  3233.   {
  3234.     { "vcvtps2qq",      { XM, EXEvexHalfBcstXmmq, EXxEVexR }, 0 },
  3235.     { "vcvtpd2qq",      { XM, EXx, EXxEVexR }, 0 },
  3236.   },
  3237.   /* EVEX_W_0F7B_P_3 */
  3238.   {
  3239.     { "vcvtusi2sd",     { XMScalar, VexScalar, Ed }, 0 },
  3240.     { "vcvtusi2sd",     { XMScalar, VexScalar, EXxEVexR, Eq }, 0 },
  3241.   },
  3242.   /* EVEX_W_0F7E_P_1 */
  3243.   {
  3244.     { Bad_Opcode },
  3245.     { "vmovq"{ XMScalar, EXxmm_mq }, 0 },
  3246.   },
  3247.   /* EVEX_W_0F7E_P_2 */
  3248.   {
  3249.     { "vmovd"{ Ed, XMScalar }, 0 },
  3250.     { "vmovq"{ Eq, XMScalar }, 0 },
  3251.   },
  3252.   /* EVEX_W_0F7F_P_1 */
  3253.   {
  3254.     { "vmovdqu32",      { EXxS, XM }, 0 },
  3255.     { "vmovdqu64",      { EXxS, XM }, 0 },
  3256.   },
  3257.   /* EVEX_W_0F7F_P_2 */
  3258.   {
  3259.     { "vmovdqa32",      { EXxS, XM }, 0 },
  3260.     { "vmovdqa64",      { EXxS, XM }, 0 },
  3261.   },
  3262.   /* EVEX_W_0F7F_P_3 */
  3263.   {
  3264.     { "vmovdqu8",       { EXxS, XM }, 0 },
  3265.     { "vmovdqu16",      { EXxS, XM }, 0 },
  3266.   },
  3267.   /* EVEX_W_0FC2_P_0 */
  3268.   {
  3269.     { "vcmpps", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 },
  3270.   },
  3271.   /* EVEX_W_0FC2_P_1 */
  3272.   {
  3273.     { "vcmpss", { XMask, VexScalar, EXxmm_md, EXxEVexS, VCMP }, 0 },
  3274.   },
  3275.   /* EVEX_W_0FC2_P_2 */
  3276.   {
  3277.     { Bad_Opcode },
  3278.     { "vcmppd", { XMask, Vex, EXx, EXxEVexS, VCMP }, 0 },
  3279.   },
  3280.   /* EVEX_W_0FC2_P_3 */
  3281.   {
  3282.     { Bad_Opcode },
  3283.     { "vcmpsd", { XMask, VexScalar, EXxmm_mq, EXxEVexS, VCMP }, 0 },
  3284.   },
  3285.   /* EVEX_W_0FC6_P_0 */
  3286.   {
  3287.     { "vshufps",        { XM, Vex, EXx, Ib }, 0 },
  3288.   },
  3289.   /* EVEX_W_0FC6_P_2 */
  3290.   {
  3291.     { Bad_Opcode },
  3292.     { "vshufpd",        { XM, Vex, EXx, Ib }, 0 },
  3293.   },
  3294.   /* EVEX_W_0FD2_P_2 */
  3295.   {
  3296.     { "vpsrld", { XM, Vex, EXxmm }, 0 },
  3297.   },
  3298.   /* EVEX_W_0FD3_P_2 */
  3299.   {
  3300.     { Bad_Opcode },
  3301.     { "vpsrlq", { XM, Vex, EXxmm }, 0 },
  3302.   },
  3303.   /* EVEX_W_0FD4_P_2 */
  3304.   {
  3305.     { Bad_Opcode },
  3306.     { "vpaddq", { XM, Vex, EXx }, 0 },
  3307.   },
  3308.   /* EVEX_W_0FD6_P_2 */
  3309.   {
  3310.     { Bad_Opcode },
  3311.     { "vmovq"{ EXxmm_mq, XMScalar }, 0 },
  3312.   },
  3313.   /* EVEX_W_0FE6_P_1 */
  3314.   {
  3315.     { "vcvtdq2pd",      { XM, EXEvexHalfBcstXmmq }, 0 },
  3316.     { "vcvtqq2pd",      { XM, EXx, EXxEVexR }, 0 },
  3317.   },
  3318.   /* EVEX_W_0FE6_P_2 */
  3319.   {
  3320.     { Bad_Opcode },
  3321.     { "vcvttpd2dq%XY"{ XMxmmq, EXx, EXxEVexS }, 0 },
  3322.   },
  3323.   /* EVEX_W_0FE6_P_3 */
  3324.   {
  3325.     { Bad_Opcode },
  3326.     { "vcvtpd2dq%XY",   { XMxmmq, EXx, EXxEVexR }, 0 },
  3327.   },
  3328.   /* EVEX_W_0FE7_P_2 */
  3329.   {
  3330.     { "vmovntdq",       { EXEvexXNoBcst, XM }, 0 },
  3331.   },
  3332.   /* EVEX_W_0FF2_P_2 */
  3333.   {
  3334.     { "vpslld", { XM, Vex, EXxmm }, 0 },
  3335.   },
  3336.   /* EVEX_W_0FF3_P_2 */
  3337.   {
  3338.     { Bad_Opcode },
  3339.     { "vpsllq", { XM, Vex, EXxmm }, 0 },
  3340.   },
  3341.   /* EVEX_W_0FF4_P_2 */
  3342.   {
  3343.     { Bad_Opcode },
  3344.     { "vpmuludq",       { XM, Vex, EXx }, 0 },
  3345.   },
  3346.   /* EVEX_W_0FFA_P_2 */
  3347.   {
  3348.     { "vpsubd", { XM, Vex, EXx }, 0 },
  3349.   },
  3350.   /* EVEX_W_0FFB_P_2 */
  3351.   {
  3352.     { Bad_Opcode },
  3353.     { "vpsubq", { XM, Vex, EXx }, 0 },
  3354.   },
  3355.   /* EVEX_W_0FFE_P_2 */
  3356.   {
  3357.     { "vpaddd", { XM, Vex, EXx }, 0 },
  3358.   },
  3359.   /* EVEX_W_0F380C_P_2 */
  3360.   {
  3361.     { "vpermilps",      { XM, Vex, EXx }, 0 },
  3362.   },
  3363.   /* EVEX_W_0F380D_P_2 */
  3364.   {
  3365.     { Bad_Opcode },
  3366.     { "vpermilpd",      { XM, Vex, EXx }, 0 },
  3367.   },
  3368.   /* EVEX_W_0F3810_P_1 */
  3369.   {
  3370.     { "vpmovuswb",      { EXxmmq, XM }, 0 },
  3371.   },
  3372.   /* EVEX_W_0F3810_P_2 */
  3373.   {
  3374.     { Bad_Opcode },
  3375.     { "vpsrlvw",        { XM, Vex, EXx }, 0 },
  3376.   },
  3377.   /* EVEX_W_0F3811_P_1 */
  3378.   {
  3379.     { "vpmovusdb",      { EXxmmqd, XM }, 0 },
  3380.   },
  3381.   /* EVEX_W_0F3811_P_2 */
  3382.   {
  3383.     { Bad_Opcode },
  3384.     { "vpsravw",        { XM, Vex, EXx }, 0 },
  3385.   },
  3386.   /* EVEX_W_0F3812_P_1 */
  3387.   {
  3388.     { "vpmovusqb",      { EXxmmdw, XM }, 0 },
  3389.   },
  3390.   /* EVEX_W_0F3812_P_2 */
  3391.   {
  3392.     { Bad_Opcode },
  3393.     { "vpsllvw",        { XM, Vex, EXx }, 0 },
  3394.   },
  3395.   /* EVEX_W_0F3813_P_1 */
  3396.   {
  3397.     { "vpmovusdw",      { EXxmmq, XM }, 0 },
  3398.   },
  3399.   /* EVEX_W_0F3813_P_2 */
  3400.   {
  3401.     { "vcvtph2ps",      { XM, EXxmmq, EXxEVexS }, 0 },
  3402.   },
  3403.   /* EVEX_W_0F3814_P_1 */
  3404.   {
  3405.     { "vpmovusqw",      { EXxmmqd, XM }, 0 },
  3406.   },
  3407.   /* EVEX_W_0F3815_P_1 */
  3408.   {
  3409.     { "vpmovusqd",      { EXxmmq, XM }, 0 },
  3410.   },
  3411.   /* EVEX_W_0F3818_P_2 */
  3412.   {
  3413.     { "vbroadcastss",   { XM, EXxmm_md }, 0 },
  3414.   },
  3415.   /* EVEX_W_0F3819_P_2 */
  3416.   {
  3417.     { "vbroadcastf32x2",        { XM, EXxmm_mq }, 0 },
  3418.     { "vbroadcastsd",   { XM, EXxmm_mq }, 0 },
  3419.   },
  3420.   /* EVEX_W_0F381A_P_2 */
  3421.   {
  3422.     { "vbroadcastf32x4",        { XM, EXxmm }, 0 },
  3423.     { "vbroadcastf64x2",        { XM, EXxmm }, 0 },
  3424.   },
  3425.   /* EVEX_W_0F381B_P_2 */
  3426.   {
  3427.     { "vbroadcastf32x8",        { XM, EXxmmq }, 0 },
  3428.     { "vbroadcastf64x4",        { XM, EXymm }, 0 },
  3429.   },
  3430.   /* EVEX_W_0F381E_P_2 */
  3431.   {
  3432.     { "vpabsd", { XM, EXx }, 0 },
  3433.   },
  3434.   /* EVEX_W_0F381F_P_2 */
  3435.   {
  3436.     { Bad_Opcode },
  3437.     { "vpabsq", { XM, EXx }, 0 },
  3438.   },
  3439.   /* EVEX_W_0F3820_P_1 */
  3440.   {
  3441.     { "vpmovswb",       { EXxmmq, XM }, 0 },
  3442.   },
  3443.   /* EVEX_W_0F3821_P_1 */
  3444.   {
  3445.     { "vpmovsdb",       { EXxmmqd, XM }, 0 },
  3446.   },
  3447.   /* EVEX_W_0F3822_P_1 */
  3448.   {
  3449.     { "vpmovsqb",       { EXxmmdw, XM }, 0 },
  3450.   },
  3451.   /* EVEX_W_0F3823_P_1 */
  3452.   {
  3453.     { "vpmovsdw",       { EXxmmq, XM }, 0 },
  3454.   },
  3455.   /* EVEX_W_0F3824_P_1 */
  3456.   {
  3457.     { "vpmovsqw",       { EXxmmqd, XM }, 0 },
  3458.   },
  3459.   /* EVEX_W_0F3825_P_1 */
  3460.   {
  3461.     { "vpmovsqd",       { EXxmmq, XM }, 0 },
  3462.   },
  3463.   /* EVEX_W_0F3825_P_2 */
  3464.   {
  3465.     { "vpmovsxdq",      { XM, EXxmmq }, 0 },
  3466.   },
  3467.   /* EVEX_W_0F3826_P_1 */
  3468.   {
  3469.     { "vptestnmb",      { XMask, Vex, EXx }, 0 },
  3470.     { "vptestnmw",      { XMask, Vex, EXx }, 0 },
  3471.   },
  3472.   /* EVEX_W_0F3826_P_2 */
  3473.   {
  3474.     { "vptestmb",       { XMask, Vex, EXx }, 0 },
  3475.     { "vptestmw",       { XMask, Vex, EXx }, 0 },
  3476.   },
  3477.   /* EVEX_W_0F3828_P_1 */
  3478.   {
  3479.     { "vpmovm2b",       { XM, MaskR }, 0 },
  3480.     { "vpmovm2w",       { XM, MaskR }, 0 },
  3481.   },
  3482.   /* EVEX_W_0F3828_P_2 */
  3483.   {
  3484.     { Bad_Opcode },
  3485.     { "vpmuldq",        { XM, Vex, EXx }, 0 },
  3486.   },
  3487.   /* EVEX_W_0F3829_P_1 */
  3488.   {
  3489.     { "vpmovb2m",       { XMask, EXx }, 0 },
  3490.     { "vpmovw2m",       { XMask, EXx }, 0 },
  3491.   },
  3492.   /* EVEX_W_0F3829_P_2 */
  3493.   {
  3494.     { Bad_Opcode },
  3495.     { "vpcmpeqq",       { XMask, Vex, EXx }, 0 },
  3496.   },
  3497.   /* EVEX_W_0F382A_P_1 */
  3498.   {
  3499.     { Bad_Opcode },
  3500.     { "vpbroadcastmb2q",        { XM, MaskR }, 0 },
  3501.   },
  3502.   /* EVEX_W_0F382A_P_2 */
  3503.   {
  3504.     { "vmovntdqa",      { XM, EXEvexXNoBcst }, 0 },
  3505.   },
  3506.   /* EVEX_W_0F382B_P_2 */
  3507.   {
  3508.     { "vpackusdw",      { XM, Vex, EXx }, 0 },
  3509.   },
  3510.   /* EVEX_W_0F3830_P_1 */
  3511.   {
  3512.     { "vpmovwb",        { EXxmmq, XM }, 0 },
  3513.   },
  3514.   /* EVEX_W_0F3831_P_1 */
  3515.   {
  3516.     { "vpmovdb",        { EXxmmqd, XM }, 0 },
  3517.   },
  3518.   /* EVEX_W_0F3832_P_1 */
  3519.   {
  3520.     { "vpmovqb",        { EXxmmdw, XM }, 0 },
  3521.   },
  3522.   /* EVEX_W_0F3833_P_1 */
  3523.   {
  3524.     { "vpmovdw",        { EXxmmq, XM }, 0 },
  3525.   },
  3526.   /* EVEX_W_0F3834_P_1 */
  3527.   {
  3528.     { "vpmovqw",        { EXxmmqd, XM }, 0 },
  3529.   },
  3530.   /* EVEX_W_0F3835_P_1 */
  3531.   {
  3532.     { "vpmovqd",        { EXxmmq, XM }, 0 },
  3533.   },
  3534.   /* EVEX_W_0F3835_P_2 */
  3535.   {
  3536.     { "vpmovzxdq",      { XM, EXxmmq }, 0 },
  3537.   },
  3538.   /* EVEX_W_0F3837_P_2 */
  3539.   {
  3540.     { Bad_Opcode },
  3541.     { "vpcmpgtq",       { XMask, Vex, EXx }, 0 },
  3542.   },
  3543.   /* EVEX_W_0F3838_P_1 */
  3544.   {
  3545.     { "vpmovm2d",       { XM, MaskR }, 0 },
  3546.     { "vpmovm2q",       { XM, MaskR }, 0 },
  3547.   },
  3548.   /* EVEX_W_0F3839_P_1 */
  3549.   {
  3550.     { "vpmovd2m",       { XMask, EXx }, 0 },
  3551.     { "vpmovq2m",       { XMask, EXx }, 0 },
  3552.   },
  3553.   /* EVEX_W_0F383A_P_1 */
  3554.   {
  3555.     { "vpbroadcastmw2d",        { XM, MaskR }, 0 },
  3556.   },
  3557.   /* EVEX_W_0F3840_P_2 */
  3558.   {
  3559.     { "vpmulld",        { XM, Vex, EXx }, 0 },
  3560.     { "vpmullq",        { XM, Vex, EXx }, 0 },
  3561.   },
  3562.   /* EVEX_W_0F3858_P_2 */
  3563.   {
  3564.     { "vpbroadcastd",   { XM, EXxmm_md }, 0 },
  3565.   },
  3566.   /* EVEX_W_0F3859_P_2 */
  3567.   {
  3568.     { "vbroadcasti32x2",        { XM, EXxmm_mq }, 0 },
  3569.     { "vpbroadcastq",   { XM, EXxmm_mq }, 0 },
  3570.   },
  3571.   /* EVEX_W_0F385A_P_2 */
  3572.   {
  3573.     { "vbroadcasti32x4",        { XM, EXxmm }, 0 },
  3574.     { "vbroadcasti64x2",        { XM, EXxmm }, 0 },
  3575.   },
  3576.   /* EVEX_W_0F385B_P_2 */
  3577.   {
  3578.     { "vbroadcasti32x8",        { XM, EXxmmq }, 0 },
  3579.     { "vbroadcasti64x4",        { XM, EXymm }, 0 },
  3580.   },
  3581.   /* EVEX_W_0F3866_P_2 */
  3582.   {
  3583.     { "vpblendmb",      { XM, Vex, EXx }, 0 },
  3584.     { "vpblendmw",      { XM, Vex, EXx }, 0 },
  3585.   },
  3586.   /* EVEX_W_0F3875_P_2 */
  3587.   {
  3588.     { "vpermi2b",       { XM, Vex, EXx }, 0 },
  3589.     { "vpermi2w",       { XM, Vex, EXx }, 0 },
  3590.   },
  3591.   /* EVEX_W_0F3878_P_2 */
  3592.   {
  3593.     { "vpbroadcastb",   { XM, EXxmm_mb }, 0 },
  3594.   },
  3595.   /* EVEX_W_0F3879_P_2 */
  3596.   {
  3597.     { "vpbroadcastw",   { XM, EXxmm_mw }, 0 },
  3598.   },
  3599.   /* EVEX_W_0F387A_P_2 */
  3600.   {
  3601.     { "vpbroadcastb",   { XM, Rd }, 0 },
  3602.   },
  3603.   /* EVEX_W_0F387B_P_2 */
  3604.   {
  3605.     { "vpbroadcastw",   { XM, Rd }, 0 },
  3606.   },
  3607.   /* EVEX_W_0F387D_P_2 */
  3608.   {
  3609.     { "vpermt2b",       { XM, Vex, EXx }, 0 },
  3610.     { "vpermt2w",       { XM, Vex, EXx }, 0 },
  3611.   },
  3612.   /* EVEX_W_0F3883_P_2 */
  3613.   {
  3614.     { Bad_Opcode },
  3615.     { "vpmultishiftqb", { XM, Vex, EXx }, 0 },
  3616.   },
  3617.   /* EVEX_W_0F388D_P_2 */
  3618.   {
  3619.     { "vpermb", { XM, Vex, EXx }, 0 },
  3620.     { "vpermw", { XM, Vex, EXx }, 0 },
  3621.   },
  3622.   /* EVEX_W_0F3891_P_2 */
  3623.   {
  3624.     { "vpgatherqd",     { XMxmmq, MVexVSIBQDWpX }, 0 },
  3625.     { "vpgatherqq",     { XM, MVexVSIBQWpX }, 0 },
  3626.   },
  3627.   /* EVEX_W_0F3893_P_2 */
  3628.   {
  3629.     { "vgatherqps",     { XMxmmq, MVexVSIBQDWpX }, 0 },
  3630.     { "vgatherqpd",     { XM, MVexVSIBQWpX }, 0 },
  3631.   },
  3632.   /* EVEX_W_0F38A1_P_2 */
  3633.   {
  3634.     { "vpscatterqd",    { MVexVSIBQDWpX, XMxmmq }, 0 },
  3635.     { "vpscatterqq",    { MVexVSIBQWpX, XM }, 0 },
  3636.   },
  3637.   /* EVEX_W_0F38A3_P_2 */
  3638.   {
  3639.     { "vscatterqps",    { MVexVSIBQDWpX, XMxmmq }, 0 },
  3640.     { "vscatterqpd",    { MVexVSIBQWpX, XM }, 0 },
  3641.   },
  3642.   /* EVEX_W_0F38C7_R_1_P_2 */
  3643.   {
  3644.     { "vgatherpf0qps",  { MVexVSIBDQWpX }, 0 },
  3645.     { "vgatherpf0qpd",  { MVexVSIBQWpX }, 0 },
  3646.   },
  3647.   /* EVEX_W_0F38C7_R_2_P_2 */
  3648.   {
  3649.     { "vgatherpf1qps",  { MVexVSIBDQWpX }, 0 },
  3650.     { "vgatherpf1qpd",  { MVexVSIBQWpX }, 0 },
  3651.   },
  3652.   /* EVEX_W_0F38C7_R_5_P_2 */
  3653.   {
  3654.     { "vscatterpf0qps",  { MVexVSIBDQWpX }, 0 },
  3655.     { "vscatterpf0qpd",  { MVexVSIBQWpX }, 0 },
  3656.   },
  3657.   /* EVEX_W_0F38C7_R_6_P_2 */
  3658.   {
  3659.     { "vscatterpf1qps",  { MVexVSIBDQWpX }, 0 },
  3660.     { "vscatterpf1qpd",  { MVexVSIBQWpX }, 0 },
  3661.   },
  3662.   /* EVEX_W_0F3A00_P_2 */
  3663.   {
  3664.     { Bad_Opcode },
  3665.     { "vpermq", { XM, EXx, Ib }, 0 },
  3666.   },
  3667.   /* EVEX_W_0F3A01_P_2 */
  3668.   {
  3669.     { Bad_Opcode },
  3670.     { "vpermpd",        { XM, EXx, Ib }, 0 },
  3671.   },
  3672.   /* EVEX_W_0F3A04_P_2 */
  3673.   {
  3674.     { "vpermilps",      { XM, EXx, Ib }, 0 },
  3675.   },
  3676.   /* EVEX_W_0F3A05_P_2 */
  3677.   {
  3678.     { Bad_Opcode },
  3679.     { "vpermilpd",      { XM, EXx, Ib }, 0 },
  3680.   },
  3681.   /* EVEX_W_0F3A08_P_2 */
  3682.   {
  3683.     { "vrndscaleps",    { XM, EXx, EXxEVexS, Ib }, 0 },
  3684.   },
  3685.   /* EVEX_W_0F3A09_P_2 */
  3686.   {
  3687.     { Bad_Opcode },
  3688.     { "vrndscalepd",    { XM, EXx, EXxEVexS, Ib }, 0 },
  3689.   },
  3690.   /* EVEX_W_0F3A0A_P_2 */
  3691.   {
  3692.     { "vrndscaless",    { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
  3693.   },
  3694.   /* EVEX_W_0F3A0B_P_2 */
  3695.   {
  3696.     { Bad_Opcode },
  3697.     { "vrndscalesd",    { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
  3698.   },
  3699.   /* EVEX_W_0F3A16_P_2 */
  3700.   {
  3701.     { "vpextrd",        { Edqd, XM, Ib }, 0 },
  3702.     { "vpextrq",        { Eq, XM, Ib }, 0 },
  3703.   },
  3704.   /* EVEX_W_0F3A18_P_2 */
  3705.   {
  3706.     { "vinsertf32x4",   { XM, Vex, EXxmm, Ib }, 0 },
  3707.     { "vinsertf64x2",   { XM, Vex, EXxmm, Ib }, 0 },
  3708.   },
  3709.   /* EVEX_W_0F3A19_P_2 */
  3710.   {
  3711.     { "vextractf32x4"{ EXxmm, XM, Ib }, 0 },
  3712.     { "vextractf64x2"{ EXxmm, XM, Ib }, 0 },
  3713.   },
  3714.   /* EVEX_W_0F3A1A_P_2 */
  3715.   {
  3716.     { "vinsertf32x8",   { XM, Vex, EXxmmq, Ib }, 0 },
  3717.     { "vinsertf64x4",   { XM, Vex, EXxmmq, Ib }, 0 },
  3718.   },
  3719.   /* EVEX_W_0F3A1B_P_2 */
  3720.   {
  3721.     { "vextractf32x8"{ EXxmmq, XM, Ib }, 0 },
  3722.     { "vextractf64x4"{ EXxmmq, XM, Ib }, 0 },
  3723.   },
  3724.   /* EVEX_W_0F3A1D_P_2 */
  3725.   {
  3726.     { "vcvtps2ph",      { EXxmmq, XM, EXxEVexS, Ib }, 0 },
  3727.   },
  3728.   /* EVEX_W_0F3A21_P_2 */
  3729.   {
  3730.     { "vinsertps",      { XMM, Vex, EXxmm_md, Ib }, 0 },
  3731.   },
  3732.   /* EVEX_W_0F3A22_P_2 */
  3733.   {
  3734.     { "vpinsrd",        { XM, Vex128, Edqd, Ib }, 0 },
  3735.     { "vpinsrq",        { XM, Vex128, Eq, Ib }, 0 },
  3736.   },
  3737.   /* EVEX_W_0F3A23_P_2 */
  3738.   {
  3739.     { "vshuff32x4",     { XM, Vex, EXx, Ib }, 0 },
  3740.     { "vshuff64x2",     { XM, Vex, EXx, Ib }, 0 },
  3741.   },
  3742.   /* EVEX_W_0F3A38_P_2 */
  3743.   {
  3744.     { "vinserti32x4",   { XM, Vex, EXxmm, Ib }, 0 },
  3745.     { "vinserti64x2",   { XM, Vex, EXxmm, Ib }, 0 },
  3746.   },
  3747.   /* EVEX_W_0F3A39_P_2 */
  3748.   {
  3749.     { "vextracti32x4"{ EXxmm, XM, Ib }, 0 },
  3750.     { "vextracti64x2"{ EXxmm, XM, Ib }, 0 },
  3751.   },
  3752.   /* EVEX_W_0F3A3A_P_2 */
  3753.   {
  3754.     { "vinserti32x8",   { XM, Vex, EXxmmq, Ib }, 0 },
  3755.     { "vinserti64x4",   { XM, Vex, EXxmmq, Ib }, 0 },
  3756.   },
  3757.   /* EVEX_W_0F3A3B_P_2 */
  3758.   {
  3759.     { "vextracti32x8"{ EXxmmq, XM, Ib }, 0 },
  3760.     { "vextracti64x4"{ EXxmmq, XM, Ib }, 0 },
  3761.   },
  3762.   /* EVEX_W_0F3A3E_P_2 */
  3763.   {
  3764.     { "vpcmpub",        { XMask, Vex, EXx, Ib }, 0 },
  3765.     { "vpcmpuw",        { XMask, Vex, EXx, Ib }, 0 },
  3766.   },
  3767.   /* EVEX_W_0F3A3F_P_2 */
  3768.   {
  3769.     { "vpcmpb", { XMask, Vex, EXx, Ib }, 0 },
  3770.     { "vpcmpw", { XMask, Vex, EXx, Ib }, 0 },
  3771.   },
  3772.   /* EVEX_W_0F3A42_P_2 */
  3773.   {
  3774.     { "vdbpsadbw",      { XM, Vex, EXx, Ib }, 0 },
  3775.   },
  3776.   /* EVEX_W_0F3A43_P_2 */
  3777.   {
  3778.     { "vshufi32x4",     { XM, Vex, EXx, Ib }, 0 },
  3779.     { "vshufi64x2",     { XM, Vex, EXx, Ib }, 0 },
  3780.   },
  3781.   /* EVEX_W_0F3A50_P_2 */
  3782.   {
  3783.     { "vrangeps",       { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
  3784.     { "vrangepd",       { XM, Vex, EXx, EXxEVexS, Ib }, 0 },
  3785.   },
  3786.   /* EVEX_W_0F3A51_P_2 */
  3787.   {
  3788.     { "vrangess",       { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
  3789.     { "vrangesd",       { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
  3790.   },
  3791.   /* EVEX_W_0F3A56_P_2 */
  3792.   {
  3793.     { "vreduceps",      { XM, EXx, EXxEVexS, Ib }, 0 },
  3794.     { "vreducepd",      { XM, EXx, EXxEVexS, Ib }, 0 },
  3795.   },
  3796.   /* EVEX_W_0F3A57_P_2 */
  3797.   {
  3798.     { "vreducess",      { XMScalar, VexScalar, EXxmm_md, EXxEVexS, Ib }, 0 },
  3799.     { "vreducesd",      { XMScalar, VexScalar, EXxmm_mq, EXxEVexS, Ib }, 0 },
  3800.   },
  3801.   /* EVEX_W_0F3A66_P_2 */
  3802.   {
  3803.     { "vfpclassps%XZ"{ XMask, EXx, Ib }, 0 },
  3804.     { "vfpclasspd%XZ"{ XMask, EXx, Ib }, 0 },
  3805.   },
  3806.   /* EVEX_W_0F3A67_P_2 */
  3807.   {
  3808.     { "vfpclassss",     { XMask, EXxmm_md, Ib }, 0 },
  3809.     { "vfpclasssd",     { XMask, EXxmm_mq, Ib }, 0 },
  3810.   },
  3811. #endif /* NEED_VEX_W_TABLE */
  3812. #ifdef NEED_MOD_TABLE
  3813.   {
  3814.     /* MOD_EVEX_0F10_PREFIX_1 */
  3815.     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_0) },
  3816.     { VEX_W_TABLE (EVEX_W_0F10_P_1_M_1) },
  3817.   },
  3818.   {
  3819.     /* MOD_EVEX_0F10_PREFIX_3 */
  3820.     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_0) },
  3821.     { VEX_W_TABLE (EVEX_W_0F10_P_3_M_1) },
  3822.   },
  3823.   {
  3824.     /* MOD_EVEX_0F11_PREFIX_1 */
  3825.     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_0) },
  3826.     { VEX_W_TABLE (EVEX_W_0F11_P_1_M_1) },
  3827.   },
  3828.   {
  3829.     /* MOD_EVEX_0F11_PREFIX_3 */
  3830.     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_0) },
  3831.     { VEX_W_TABLE (EVEX_W_0F11_P_3_M_1) },
  3832.   },
  3833.   {
  3834.     /* MOD_EVEX_0F12_PREFIX_0 */
  3835.     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_0) },
  3836.     { VEX_W_TABLE (EVEX_W_0F12_P_0_M_1) },
  3837.   },
  3838.   {
  3839.     /* MOD_EVEX_0F16_PREFIX_0 */
  3840.     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_0) },
  3841.     { VEX_W_TABLE (EVEX_W_0F16_P_0_M_1) },
  3842.   },
  3843.   {
  3844.     /* MOD_EVEX_0F38C6_REG_1 */
  3845.     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) },
  3846.   },
  3847.   {
  3848.     /* MOD_EVEX_0F38C6_REG_2 */
  3849.     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_2) },
  3850.   },
  3851.   {
  3852.     /* MOD_EVEX_0F38C6_REG_5 */
  3853.     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_5) },
  3854.   },
  3855.   {
  3856.     /* MOD_EVEX_0F38C6_REG_6 */
  3857.     { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_6) },
  3858.   },
  3859.   {
  3860.     /* MOD_EVEX_0F38C7_REG_1 */
  3861.     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_1) },
  3862.   },
  3863.   {
  3864.     /* MOD_EVEX_0F38C7_REG_2 */
  3865.     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_2) },
  3866.   },
  3867.   {
  3868.     /* MOD_EVEX_0F38C7_REG_5 */
  3869.     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_5) },
  3870.   },
  3871.   {
  3872.     /* MOD_EVEX_0F38C7_REG_6 */
  3873.     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
  3874.   },
  3875. #endif /* NEED_MOD_TABLE */
  3876.