Lines Matching defs:dV
9824 static IRTemp math_PALIGNR_XMM ( IRTemp sV, IRTemp dV, UInt imm8 )
9834 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
9835 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
10171 IRTemp dV = newTemp(Ity_V128);
10172 assign(dV,
10179 (gregOfRexRM(pfx,modrm), mkexpr(dV));
10227 IRTemp dV = newTemp(Ity_V128);
10235 assign(dV, mkV128(0x0000));
10236 return dV;
10267 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
10268 return dV;
10274 IRTemp dV = newTemp(Ity_V128);
10282 assign(dV, mkV128(0x0000));
10283 return dV;
10314 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
10315 return dV;
10896 static IRTemp math_UNPCKxPS_128 ( IRTemp sV, IRTemp dV, Bool xIsH )
10900 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
10911 static IRTemp math_UNPCKxPD_128 ( IRTemp sV, IRTemp dV, Bool xIsH )
10917 assign( d1, unop(Iop_V128HIto64, mkexpr(dV)) );
10918 assign( d0, unop(Iop_V128to64, mkexpr(dV)) );
10932 static IRTemp math_UNPCKxPD_256 ( IRTemp sV, IRTemp dV, Bool xIsH )
10936 breakupV256to64s( dV, &d3, &d2, &d1, &d0 );
10954 static IRTemp math_UNPCKxPS_256 ( IRTemp sV, IRTemp dV, Bool xIsH )
10959 breakupV256toV128s( dV, &dVhi, &dVlo );
10968 static IRTemp math_SHUFPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10974 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
10992 static IRTemp math_SHUFPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10997 breakupV256toV128s( dV, &dVhi, &dVlo );
11006 static IRTemp math_SHUFPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
11013 assign( d1, unop(Iop_V128HIto64, mkexpr(dV)) );
11014 assign( d0, unop(Iop_V128to64, mkexpr(dV)) );
11031 static IRTemp math_SHUFPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
11036 breakupV256toV128s( dV, &dVhi, &dVlo );
11045 static IRTemp math_BLENDPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
11063 binop( Iop_AndV128, mkexpr(dV),
11069 static IRTemp math_BLENDPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
11074 breakupV256toV128s( dV, &dVhi, &dVlo );
11083 static IRTemp math_BLENDPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
11096 binop( Iop_AndV128, mkexpr(dV),
11102 static IRTemp math_BLENDPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
11107 breakupV256toV128s( dV, &dVhi, &dVlo );
11116 static IRTemp math_PBLENDW_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
11133 binop( Iop_AndV128, mkexpr(dV),
11139 static IRTemp math_PMULUDQ_128 ( IRTemp sV, IRTemp dV )
11145 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
11155 static IRTemp math_PMULUDQ_256 ( IRTemp sV, IRTemp dV )
11161 breakupV256toV128s( dV, &dHi, &dLo);
11171 static IRTemp math_PMULDQ_128 ( IRTemp dV, IRTemp sV )
11177 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
11187 static IRTemp math_PMULDQ_256 ( IRTemp sV, IRTemp dV )
11193 breakupV256toV128s( dV, &dHi, &dLo);
11203 static IRTemp math_PMADDWD_128 ( IRTemp dV, IRTemp sV )
11210 breakupV128to64s( dV, &dVhi, &dVlo );
11225 static IRTemp math_PMADDWD_256 ( IRTemp dV, IRTemp sV )
11229 breakupV256toV128s( dV, &dHi, &dLo);
11239 static IRTemp math_ADDSUBPD_128 ( IRTemp dV, IRTemp sV )
11248 assign( addV, triop(Iop_Add64Fx2, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11249 assign( subV, triop(Iop_Sub64Fx2, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11260 dV, IRTemp sV )
11269 assign( addV, triop(Iop_Add64Fx4, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11270 assign( subV, triop(Iop_Sub64Fx4, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11281 static IRTemp math_ADDSUBPS_128 ( IRTemp dV, IRTemp sV )
11290 assign( addV, triop(Iop_Add32Fx4, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11291 assign( subV, triop(Iop_Sub32Fx4, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11302 static IRTemp math_ADDSUBPS_256 ( IRTemp dV, IRTemp sV )
11313 assign( addV, triop(Iop_Add32Fx8, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11314 assign( subV, triop(Iop_Sub32Fx8, mkexpr(rm), mkexpr(dV), mkexpr(sV)) );
11335 IRTemp sVmut, dVmut, sVcon, sV, dV, s3, s2, s1, s0;
11338 dV = newTemp(Ity_V128);
11372 assign(dV, xIsH ? binop(Iop_64HLtoV128, mkexpr(dVmut), mkexpr(sVcon))
11375 (isAvx ? putYMMRegLoAndZU : putXMMReg)(rG, mkexpr(dV));
12104 static IRTemp math_PSADBW_128 ( IRTemp dV, IRTemp sV )
12110 breakupV128to64s( dV, &d1, &d0 );
12127 static IRTemp math_PSADBW_256 ( IRTemp dV, IRTemp sV )
12131 breakupV256toV128s( dV, &dHi, &dLo);
12595 IRTemp dV = newTemp(Ity_V128);
12598 assign( dV, getXMMReg(rG) );
12612 IRTemp res = math_UNPCKxPS_128( sV, dV, hi );
12623 IRTemp dV = newTemp(Ity_V128);
12626 assign( dV, getXMMReg(rG) );
12640 IRTemp res = math_UNPCKxPD_128( sV, dV, hi );
13811 IRTemp sV, dV, s3, s2, s1, s0;
13814 dV = newTemp(Ity_I64);
13837 assign(dV,
13841 putMMXReg(gregLO3ofRM(modrm), mkexpr(dV));
14357 IRTemp dV = newTemp(Ity_V128);
14360 assign( dV, getXMMReg(rG) );
14374 IRTemp res = math_SHUFPS_128( sV, dV, imm8 );
14382 IRTemp dV = newTemp(Ity_V128);
14385 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14404 IRTemp res = math_SHUFPD_128( sV, dV, select );
14877 IRTemp dV = newTemp(Ity_V128);
14880 assign( dV, getXMMReg(rG) );
14892 putXMMReg( rG, mkexpr(math_PMULUDQ_128( sV, dV )) );
14900 IRTemp dV = newTemp(Ity_I64);
14906 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14921 assign( t0, unop(Iop_64to32, mkexpr(dV)) );
14934 IRTemp dV = newTemp(Ity_V128);
14948 assign( dV, getXMMReg(rG) );
14949 putXMMReg( rG, mkexpr(math_PMADDWD_128(dV, sV)) );
14967 IRTemp dV = newTemp(Ity_V128);
14981 assign( dV, getXMMReg(rG) );
14982 putXMMReg( rG, mkexpr( math_PSADBW_128 ( dV, sV ) ) );
15224 static IRTemp math_HADDPS_128 ( IRTemp dV, IRTemp sV, Bool isAdd )
15233 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
15246 static IRTemp math_HADDPD_128 ( IRTemp dV, IRTemp sV, Bool isAdd )
15255 breakupV128to64s( dV, &d1, &d0 );
15456 IRTemp math_PSHUFB_XMM ( IRTemp dV/*data to perm*/, IRTemp sV/*perm*/ )
15475 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
15476 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
15547 IRTemp math_PSHUFB_YMM ( IRTemp dV/*data to perm*/, IRTemp sV/*perm*/ )
15551 breakupV256toV128s( dV, &dHi, &dLo);
15572 IRTemp dV = newTemp(Ity_V128);
15595 assign( dV, getXMMReg(rV) );
15613 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
15614 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
15646 IRTemp dV = newTemp(Ity_V256);
15667 assign( dV, getYMMReg(rV) );
15681 breakupV256to64s( dV, &d3, &d2, &d1, &d0 );
15708 static IRTemp math_PMADDUBSW_128 ( IRTemp dV, IRTemp sV )
15714 /* compute dV unsigned x sV signed */
15719 assign( dVoddsZX, binop(Iop_ShrN16x8, mkexpr(dV), mkU8(8)) );
15721 binop(Iop_ShlN16x8, mkexpr(dV), mkU8(8)),
15735 IRTemp math_PMADDUBSW_256 ( IRTemp dV, IRTemp sV )
15739 breakupV256toV128s( dV, &dHi, &dLo);
15772 IRTemp dV = newTemp(Ity_V128);
15775 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
15791 IRTemp res = math_PSHUFB_XMM( dV, sV );
15798 IRTemp dV = newTemp(Ity_I64);
15802 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
15824 mkexpr(dV),
15877 IRTemp dV = newTemp(Ity_I64);
15896 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
15914 binop(opCatE,mkexpr(sV),mkexpr(dV)),
15915 binop(opCatO,mkexpr(sV),mkexpr(dV))
15928 IRTemp dV = newTemp(Ity_V128);
15932 assign( dV, getXMMReg(rG) );
15947 putXMMReg( rG, mkexpr( math_PMADDUBSW_128( dV, sV ) ) );
15954 IRTemp dV = newTemp(Ity_I64);
15962 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
15977 /* compute dV unsigned x sV signed */
15985 binop(Iop_ShrN16x4, mkexpr(dV), mkU8(8)) );
15988 binop(Iop_ShlN16x4, mkexpr(dV), mkU8(8)),
16011 IRTemp dV = newTemp(Ity_V128);
16027 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
16043 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
16044 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
16062 IRTemp dV = newTemp(Ity_I64);
16075 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
16092 dis_PSIGN_helper( mkexpr(sV), mkexpr(dV), laneszB )
16104 IRTemp dV = newTemp(Ity_V128);
16111 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
16127 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
16128 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
16145 IRTemp dV = newTemp(Ity_I64);
16149 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
16166 dis_PMULHRSW_helper( mkexpr(sV), mkexpr(dV) )
16292 IRTemp dV = newTemp(Ity_V128);
16295 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
16315 IRTemp res = math_PALIGNR_XMM( sV, dV, d64 );
16322 IRTemp dV = newTemp(Ity_I64);
16327 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
16353 binop(Iop_Shl64, mkexpr(dV), mkU8(8*(8-d64))
16357 assign( res, mkexpr(dV) );
16360 assign( res, binop(Iop_Shr64, mkexpr(dV), mkU8(8*(d64-8))) );
17945 IRTemp dV = newTemp(Ity_V128);
17948 assign( dV, getXMMReg(rG) );
17961 putXMMReg( rG, mkexpr(math_PMULDQ_128( dV, sV )) );
19080 static IRTemp math_PCLMULQDQ( IRTemp dV, IRTemp sV, UInt imm8 )
19085 mkexpr(dV)));
26078 IRTemp dV = newTemp(Ity_V128);
26097 assign( dV, getXMMReg(rV) );
26098 putYMMRegLoAndZU( rG, mkexpr( math_HADDPS_128 ( dV, sV, isAdd ) ) );
26106 IRTemp dV = newTemp(Ity_V256);
26127 assign( dV, getYMMReg(rV) );
26128 breakupV256toV128s( dV, &d1, &d0 );
26140 IRTemp dV = newTemp(Ity_V128);
26159 assign( dV, getXMMReg(rV) );
26160 putYMMRegLoAndZU( rG, mkexpr( math_HADDPD_128 ( dV, sV, isAdd ) ) );
26168 IRTemp dV = newTemp(Ity_V256);
26189 assign( dV, getYMMReg(rV) );
26190 breakupV256toV128s( dV, &d1, &d0 );
27986 IRTemp dV = newTemp(Ity_V128);
28002 assign( dV, getXMMReg(rV) );
28018 breakupV128to64s( dV, &dHi, &dLo );
28036 IRTemp dV = newTemp(Ity_V256);
28053 assign( dV, getYMMReg(rV) );
28069 breakupV256to64s( dV, &d3, &d2, &d1, &d0 );
28094 IRTemp dV = newTemp(Ity_V128);
28101 assign( dV, getXMMReg(rV) );
28117 breakupV128to64s( dV, &dHi, &dLo );
28133 IRTemp dV = newTemp(Ity_V256);
28140 assign( dV, getYMMReg(rV) );
28156 breakupV256to64s( dV, &d3, &d2, &d1, &d0 );
30166 IRTemp dV = newTemp(Ity_V256);
30167 assign(dV, IRExpr_Qop(Iop_64x4toV256,
30172 putYMMReg(rG, mkexpr(dV));
30186 IRTemp dV = newTemp(Ity_V128);
30196 assign(dV, getXMMReg(rE));
30203 assign(dV, loadLE(Ity_V128, mkexpr(addr)));
30211 breakupV128to32s( dV, &d[3], &d[2], &d[1], &d[0] );
30226 IRTemp dV = newTemp(Ity_V256);
30236 assign(dV, getYMMReg(rE));
30243 assign(dV, loadLE(Ity_V256, mkexpr(addr)));
30252 breakupV256to32s( dV, &d[7], &d[6], &d[5], &d[4],
30346 IRTemp dV = newTemp(Ity_V128);
30347 assign(dV, binop(Iop_64HLtoV128,
30350 putYMMRegLoAndZU(rG, mkexpr(dV));
30378 IRTemp dV = newTemp(Ity_V256);
30379 assign(dV, IRExpr_Qop(Iop_64x4toV256,
30384 putYMMReg(rG, mkexpr(dV));
30899 IRTemp dV = newTemp(Ity_V128);
30902 assign( dV, getXMMReg(rV) );
30920 IRTemp res = math_PALIGNR_XMM( sV, dV, imm8 );
30932 IRTemp dV = newTemp(Ity_V256);
30937 assign( dV, getYMMReg(rV) );
30955 breakupV256toV128s( dV, &dHi, &dLo );
31477 IRTemp dV = newTemp(Ity_V128);
31481 assign( dV, getXMMReg(rV) );
31500 putYMMRegLoAndZU( rG, mkexpr( math_PCLMULQDQ(dV, sV, imm8) ) );