blob: a4942d243c190d4c052ebf626c39c4f69cf457cc [file] [log] [blame]
/* **********************************************************
* Copyright (c) 2011-2014 Google, Inc. All rights reserved.
* Copyright (c) 2008-2010 VMware, Inc. All rights reserved.
* **********************************************************/
/*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of VMware, Inc. nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
/* AVX 256-bit */
OPCODE(vunpcklps_256, vunpcklps, vunpcklps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vunpcklpd_256, vunpcklpd, vunpcklpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vunpckhps_256, vunpckhps, vunpckhps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vunpckhpd_256, vunpckhpd, vunpckhpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vandps_256, vandps, vandps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vandpd_256, vandpd, vandpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vandnps_256, vandnps, vandnps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vandnpd_256, vandnpd, vandnpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vorps_256, vorps, vorps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vorpd_256, vorpd, vorpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vxorps_256, vxorps, vxorps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vxorpd_256, vxorpd, vxorpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vaddps_256, vaddps, vaddps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vaddpd_256, vaddpd, vaddpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vmulps_256, vmulps, vmulps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vmulpd_256, vmulpd, vmulpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vsubps_256, vsubps, vsubps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vsubpd_256, vsubpd, vsubpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vminps_256, vminps, vminps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vminpd_256, vminpd, vminpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vdivps_256, vdivps, vdivps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vdivpd_256, vdivpd, vdivpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vmaxps_256, vmaxps, vmaxps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vmaxpd_256, vmaxpd, vmaxpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vhaddpd_256, vhaddpd, vhaddpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vhaddps_256, vhaddps, vhaddps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vhsubpd_256, vhsubpd, vhsubpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vhsubps_256, vhsubps, vhsubps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vaddsubpd_256, vaddsubpd, vaddsubpd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vaddsubps_256, vaddsubps, vaddsubps, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vroundps_256, vroundps, vroundps, 0, REGARG(YMM0), REGARG(YMM1), IMMARG(OPSZ_1))
OPCODE(vroundpd_256, vroundpd, vroundpd, 0, REGARG(YMM0), REGARG(YMM1), IMMARG(OPSZ_1))
OPCODE(vpcmpestrm, vpcmpestrm, vpcmpestrm, 0, REGARG(XMM0), MEMARG(OPSZ_16),
IMMARG(OPSZ_1))
OPCODE(vpcmpestri, vpcmpestri, vpcmpestri, 0, REGARG(XMM0), MEMARG(OPSZ_16),
IMMARG(OPSZ_1))
OPCODE(vpcmpistrm, vpcmpistrm, vpcmpistrm, 0, REGARG(XMM0), MEMARG(OPSZ_16),
IMMARG(OPSZ_1))
OPCODE(vpcmpistri, vpcmpistri, vpcmpistri, 0, REGARG(XMM0), MEMARG(OPSZ_16),
IMMARG(OPSZ_1))
OPCODE(vcvtps2ph_256, vcvtps2ph, vcvtps2ph, 0, MEMARG(OPSZ_32), REGARG(YMM0),
IMMARG(OPSZ_1))
OPCODE(vmaskmovps_ld_256, vmaskmovps, vmaskmovps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vmaskmovps_st_256, vmaskmovps, vmaskmovps, 0, MEMARG(OPSZ_32), REGARG(YMM0),
REGARG(YMM1))
OPCODE(vmaskmovpd_ld_256, vmaskmovpd, vmaskmovpd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vmaskmovpd_st_256, vmaskmovpd, vmaskmovpd, 0, MEMARG(OPSZ_32), REGARG(YMM0),
REGARG(YMM1))
OPCODE(vpermilp_256s, vpermilps, vpermilps, 0, REGARG(YMM0), MEMARG(OPSZ_32),
IMMARG(OPSZ_1))
OPCODE(vpermilpd_256, vpermilpd, vpermilpd, 0, REGARG(YMM0), MEMARG(OPSZ_32),
IMMARG(OPSZ_1))
OPCODE(vpermilps_noimm_256, vpermilps, vpermilps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpermilpd_noimm_256, vpermilpd, vpermilpd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vextractf128_256, vextractf128, vextractf128, 0, MEMARG(OPSZ_16),
REGARG_PARTIAL(YMM0, OPSZ_16), IMMARG(OPSZ_1))
/* AVX2 256-bit */
OPCODE(vpunpcklbw_256, vpunpcklbw, vpunpcklbw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpcklwd_256, vpunpcklwd, vpunpcklwd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpckldq_256, vpunpckldq, vpunpckldq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpacksswb_256, vpacksswb, vpacksswb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpgtb_256, vpcmpgtb, vpcmpgtb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpgtw_256, vpcmpgtw, vpcmpgtw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpgtd_256, vpcmpgtd, vpcmpgtd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpackuswb_256, vpackuswb, vpackuswb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpckhbw_256, vpunpckhbw, vpunpckhbw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpckhwd_256, vpunpckhwd, vpunpckhwd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpckhdq_256, vpunpckhdq, vpunpckhdq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpackssdw_256, vpackssdw, vpackssdw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpcklqdq_256, vpunpcklqdq, vpunpcklqdq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpunpckhqdq_256, vpunpckhqdq, vpunpckhqdq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpeqb_256, vpcmpeqb, vpcmpeqb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpeqw_256, vpcmpeqw, vpcmpeqw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpeqd_256, vpcmpeqd, vpcmpeqd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsrlw_256, vpsrlw, vpsrlw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsrld_256, vpsrld, vpsrld, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsrlq_256, vpsrlq, vpsrlq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddq_256, vpaddq, vpaddq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmullw_256, vpmullw, vpmullw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubusb_256, vpsubusb, vpsubusb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubusw_256, vpsubusw, vpsubusw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpminub_256, vpminub, vpminub, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpand_256, vpand, vpand, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddusb_256, vpaddusb, vpaddusb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddusw_256, vpaddusw, vpaddusw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaxub_256, vpmaxub, vpmaxub, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpandn_256, vpandn, vpandn, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpavgb_256, vpavgb, vpavgb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsraw_256, vpsraw, vpsraw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsrad_256, vpsrad, vpsrad, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpavgw_256, vpavgw, vpavgw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmulhuw_256, vpmulhuw, vpmulhuw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmulhw_256, vpmulhw, vpmulhw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubsb_256, vpsubsb, vpsubsb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubsw_256, vpsubsw, vpsubsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpminsw_256, vpminsw, vpminsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpor_256, vpor, vpor, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddsb_256, vpaddsb, vpaddsb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddsw_256, vpaddsw, vpaddsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaxsw_256, vpmaxsw, vpmaxsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpxor_256, vpxor, vpxor, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsllw_256, vpsllw, vpsllw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpslld_256, vpslld, vpslld, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsllq_256, vpsllq, vpsllq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmuludq_256, vpmuludq, vpmuludq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaddwd_256, vpmaddwd, vpmaddwd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsadbw_256, vpsadbw, vpsadbw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubb_256, vpsubb, vpsubb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubw_256, vpsubw, vpsubw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubd_256, vpsubd, vpsubd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsubq_256, vpsubq, vpsubq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddb_256, vpaddb, vpaddb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddw_256, vpaddw, vpaddw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpaddd_256, vpaddd, vpaddd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vphaddw_256, vphaddw, vphaddw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vphaddd_256, vphaddd, vphaddd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vphaddsw_256, vphaddsw, vphaddsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaddubsw_256, vpmaddubsw, vpmaddubsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vphsubw_256, vphsubw, vphsubw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vphsubd_256, vphsubd, vphsubd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vphsubsw_256, vphsubsw, vphsubsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsignb_256, vpsignb, vpsignb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsignw_256, vpsignw, vpsignw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpsignd_256, vpsignd, vpsignd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmulhrsw_256, vpmulhrsw, vpmulhrsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpabsb_256, vpabsb, vpabsb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpabsw_256, vpabsw, vpabsw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpabsd_256, vpabsd, vpabsd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmuldq_256, vpmuldq, vpmuldq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpeqq_256, vpcmpeqq, vpcmpeqq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpackusdw_256, vpackusdw, vpackusdw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpcmpgtq_256, vpcmpgtq, vpcmpgtq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpminsb_256, vpminsb, vpminsb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpminsd_256, vpminsd, vpminsd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpminuw_256, vpminuw, vpminuw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpminud_256, vpminud, vpminud, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaxsb_256, vpmaxsb, vpmaxsb, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaxsd_256, vpmaxsd, vpmaxsd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaxuw_256, vpmaxuw, vpmaxuw, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaxud_256, vpmaxud, vpmaxud, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmulld_256, vpmulld, vpmulld, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpshufhw_256, vpshufhw, vpshufhw, 0, REGARG(YMM0), MEMARG(OPSZ_32),
IMMARG(OPSZ_1))
OPCODE(vpshufd_256, vpshufd, vpshufd, 0, REGARG(YMM0), MEMARG(OPSZ_32),
IMMARG(OPSZ_1))
OPCODE(vpshuflw_256, vpshuflw, vpshuflw, 0, REGARG(YMM0), MEMARG(OPSZ_32),
IMMARG(OPSZ_1))
OPCODE(vpsrldq_256, vpsrldq, vpsrldq, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpslldq_256, vpslldq, vpslldq, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsrlw_b_256, vpsrlw, vpsrlw, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsraw_b_256, vpsraw, vpsraw, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsllw_b_256, vpsllw, vpsllw, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsrld_b_256, vpsrld, vpsrld, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsrad_b_256, vpsrad, vpsrad, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpslld_b_256, vpslld, vpslld, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsrlq_b_256, vpsrlq, vpsrlq, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpsllq_b_256, vpsllq, vpsllq, 0, REGARG(YMM0), IMMARG(OPSZ_1),
REGARG(YMM1))
OPCODE(vpmaskmovd_ld_256, vpmaskmovd, vpmaskmovd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaskmovq_ld_256, vpmaskmovq, vpmaskmovq, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vpmaskmovd_st_256, vpmaskmovd, vpmaskmovd, 0, MEMARG(OPSZ_32), REGARG(YMM0),
REGARG(YMM1))
OPCODE(vpmaskmovq_st_256, vpmaskmovq, vpmaskmovq, 0, MEMARG(OPSZ_32), REGARG(YMM0),
REGARG(YMM1))
OPCODE(vpsllvd_256, vpsllvd, vpsllvd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vpsllvq_256, vpsllvq, vpsllvq, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vpsrlvd_256, vpsrlvd, vpsrlvd, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
OPCODE(vpsrlvq_256, vpsrlvq, vpsrlvq, 0, REGARG(YMM0), REGARG(YMM1), MEMARG(OPSZ_32))
/****************************************************************************/
/* FMA */
OPCODE(vfmadd132ps, vfmadd132ps, vfmadd132ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmadd132pd, vfmadd132pd, vfmadd132pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmadd213ps, vfmadd213ps, vfmadd213ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmadd213pd, vfmadd213pd, vfmadd213pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmadd231ps, vfmadd231ps, vfmadd231ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmadd231pd, vfmadd231pd, vfmadd231pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmadd132ss, vfmadd132ss, vfmadd132ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfmadd132sd, vfmadd132sd, vfmadd132sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfmadd213ss, vfmadd213ss, vfmadd213ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfmadd213sd, vfmadd213sd, vfmadd213sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfmadd231ss, vfmadd231ss, vfmadd231ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfmadd231sd, vfmadd231sd, vfmadd231sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfmaddsub132ps, vfmaddsub132ps, vfmaddsub132ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmaddsub132pd, vfmaddsub132pd, vfmaddsub132pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmaddsub213ps, vfmaddsub213ps, vfmaddsub213ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmaddsub213pd, vfmaddsub213pd, vfmaddsub213pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmaddsub231ps, vfmaddsub231ps, vfmaddsub231ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmaddsub231pd, vfmaddsub231pd, vfmaddsub231pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsubadd132ps, vfmsubadd132ps, vfmsubadd132ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsubadd132pd, vfmsubadd132pd, vfmsubadd132pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsubadd213ps, vfmsubadd213ps, vfmsubadd213ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsubadd213pd, vfmsubadd213pd, vfmsubadd213pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsubadd231ps, vfmsubadd231ps, vfmsubadd231ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsubadd231pd, vfmsubadd231pd, vfmsubadd231pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub132ps, vfmsub132ps, vfmsub132ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub132pd, vfmsub132pd, vfmsub132pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub213ps, vfmsub213ps, vfmsub213ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub213pd, vfmsub213pd, vfmsub213pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub231ps, vfmsub231ps, vfmsub231ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub231pd, vfmsub231pd, vfmsub231pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfmsub132ss, vfmsub132ss, vfmsub132ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfmsub132sd, vfmsub132sd, vfmsub132sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfmsub213ss, vfmsub213ss, vfmsub213ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfmsub213sd, vfmsub213sd, vfmsub213sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfmsub231ss, vfmsub231ss, vfmsub231ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfmsub231sd, vfmsub231sd, vfmsub231sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfnmadd132ps, vfnmadd132ps, vfnmadd132ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmadd132pd, vfnmadd132pd, vfnmadd132pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmadd213ps, vfnmadd213ps, vfnmadd213ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmadd213pd, vfnmadd213pd, vfnmadd213pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmadd231ps, vfnmadd231ps, vfnmadd231ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmadd231pd, vfnmadd231pd, vfnmadd231pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmadd132ss, vfnmadd132ss, vfnmadd132ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfnmadd132sd, vfnmadd132sd, vfnmadd132sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfnmadd213ss, vfnmadd213ss, vfnmadd213ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfnmadd213sd, vfnmadd213sd, vfnmadd213sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfnmadd231ss, vfnmadd231ss, vfnmadd231ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfnmadd231sd, vfnmadd231sd, vfnmadd231sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfnmsub132ps, vfnmsub132ps, vfnmsub132ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmsub132pd, vfnmsub132pd, vfnmsub132pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmsub213ps, vfnmsub213ps, vfnmsub213ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmsub213pd, vfnmsub213pd, vfnmsub213pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmsub231ps, vfnmsub231ps, vfnmsub231ps, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmsub231pd, vfnmsub231pd, vfnmsub231pd, 0, REGARG(XMM0), REGARG(XMM1),
MEMARG(OPSZ_16))
OPCODE(vfnmsub132ss, vfnmsub132ss, vfnmsub132ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfnmsub132sd, vfnmsub132sd, vfnmsub132sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfnmsub213ss, vfnmsub213ss, vfnmsub213ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfnmsub213sd, vfnmsub213sd, vfnmsub213sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
OPCODE(vfnmsub231ss, vfnmsub231ss, vfnmsub231ss, 0, REGARG_PARTIAL(XMM0, OPSZ_4),
REGARG_PARTIAL(XMM1, OPSZ_4), MEMARG(OPSZ_4))
OPCODE(vfnmsub231sd, vfnmsub231sd, vfnmsub231sd, 0, REGARG_PARTIAL(XMM0, OPSZ_8),
REGARG_PARTIAL(XMM1, OPSZ_8), MEMARG(OPSZ_8))
/* FMA 256-bit */
OPCODE(vfmadd132ps_256, vfmadd132ps, vfmadd132ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmadd132pd_256, vfmadd132pd, vfmadd132pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmadd213ps_256, vfmadd213ps, vfmadd213ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmadd213pd_256, vfmadd213pd, vfmadd213pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmadd231ps_256, vfmadd231ps, vfmadd231ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmadd231pd_256, vfmadd231pd, vfmadd231pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmaddsub132ps_256, vfmaddsub132ps, vfmaddsub132ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmaddsub132pd_256, vfmaddsub132pd, vfmaddsub132pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmaddsub213ps_256, vfmaddsub213ps, vfmaddsub213ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmaddsub213pd_256, vfmaddsub213pd, vfmaddsub213pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmaddsub231ps_256, vfmaddsub231ps, vfmaddsub231ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmaddsub231pd_256, vfmaddsub231pd, vfmaddsub231pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsubadd132ps_256, vfmsubadd132ps, vfmsubadd132ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsubadd132pd_256, vfmsubadd132pd, vfmsubadd132pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsubadd213ps_256, vfmsubadd213ps, vfmsubadd213ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsubadd213pd_256, vfmsubadd213pd, vfmsubadd213pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsubadd231ps_256, vfmsubadd231ps, vfmsubadd231ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsubadd231pd_256, vfmsubadd231pd, vfmsubadd231pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsub132ps_256, vfmsub132ps, vfmsub132ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsub132pd_256, vfmsub132pd, vfmsub132pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsub213ps_256, vfmsub213ps, vfmsub213ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsub213pd_256, vfmsub213pd, vfmsub213pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsub231ps_256, vfmsub231ps, vfmsub231ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfmsub231pd_256, vfmsub231pd, vfmsub231pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmadd132ps_256, vfnmadd132ps, vfnmadd132ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmadd132pd_256, vfnmadd132pd, vfnmadd132pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmadd213ps_256, vfnmadd213ps, vfnmadd213ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmadd213pd_256, vfnmadd213pd, vfnmadd213pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmadd231ps_256, vfnmadd231ps, vfnmadd231ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmadd231pd_256, vfnmadd231pd, vfnmadd231pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmsub132ps_256, vfnmsub132ps, vfnmsub132ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmsub132pd_256, vfnmsub132pd, vfnmsub132pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmsub213ps_256, vfnmsub213ps, vfnmsub213ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmsub213pd_256, vfnmsub213pd, vfnmsub213pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmsub231ps_256, vfnmsub231ps, vfnmsub231ps, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))
OPCODE(vfnmsub231pd_256, vfnmsub231pd, vfnmsub231pd, 0, REGARG(YMM0), REGARG(YMM1),
MEMARG(OPSZ_32))