Lines Matching refs:dV
9286 static IRTemp math_PALIGNR_XMM ( IRTemp sV, IRTemp dV, UInt imm8 )
9296 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
9297 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
9629 IRTemp dV = newTemp(Ity_V128);
9630 assign(dV,
9637 (gregOfRexRM(pfx,modrm), mkexpr(dV));
9644 IRTemp dV = newTemp(Ity_V128);
9652 assign(dV, mkV128(0x0000));
9653 return dV;
9684 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
9685 return dV;
9691 IRTemp dV = newTemp(Ity_V128);
9699 assign(dV, mkV128(0x0000));
9700 return dV;
9731 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
9732 return dV;
10297 static IRTemp math_UNPCKxPS_128 ( IRTemp sV, IRTemp dV, Bool xIsH )
10301 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
10312 static IRTemp math_UNPCKxPD_128 ( IRTemp sV, IRTemp dV, Bool xIsH )
10318 assign( d1, unop(Iop_V128HIto64, mkexpr(dV)) );
10319 assign( d0, unop(Iop_V128to64, mkexpr(dV)) );
10333 static IRTemp math_UNPCKxPD_256 ( IRTemp sV, IRTemp dV, Bool xIsH )
10337 breakupV256to64s( dV, &d3, &d2, &d1, &d0 );
10355 static IRTemp math_UNPCKxPS_256 ( IRTemp sV, IRTemp dV, Bool xIsH )
10360 breakupV256toV128s( dV, &dVhi, &dVlo );
10369 static IRTemp math_SHUFPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10375 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
10393 static IRTemp math_SHUFPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10398 breakupV256toV128s( dV, &dVhi, &dVlo );
10407 static IRTemp math_SHUFPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10414 assign( d1, unop(Iop_V128HIto64, mkexpr(dV)) );
10415 assign( d0, unop(Iop_V128to64, mkexpr(dV)) );
10432 static IRTemp math_SHUFPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10437 breakupV256toV128s( dV, &dVhi, &dVlo );
10446 static IRTemp math_BLENDPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10464 binop( Iop_AndV128, mkexpr(dV),
10470 static IRTemp math_BLENDPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10475 breakupV256toV128s( dV, &dVhi, &dVlo );
10484 static IRTemp math_BLENDPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10497 binop( Iop_AndV128, mkexpr(dV),
10503 static IRTemp math_BLENDPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10508 breakupV256toV128s( dV, &dVhi, &dVlo );
10517 static IRTemp math_PBLENDW_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10534 binop( Iop_AndV128, mkexpr(dV),
10540 static IRTemp math_PMULUDQ_128 ( IRTemp sV, IRTemp dV )
10546 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
10556 static IRTemp math_PMULDQ_128 ( IRTemp dV, IRTemp sV )
10562 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
10572 static IRTemp math_PMADDWD_128 ( IRTemp dV, IRTemp sV )
10579 breakupV128to64s( dV, &dVhi, &dVlo );
10594 static IRTemp math_ADDSUBPD_128 ( IRTemp dV, IRTemp sV )
10601 assign( addV, binop(Iop_Add64Fx2, mkexpr(dV), mkexpr(sV)) );
10602 assign( subV, binop(Iop_Sub64Fx2, mkexpr(dV), mkexpr(sV)) );
10613 static IRTemp math_ADDSUBPD_256 ( IRTemp dV, IRTemp sV )
10620 assign( addV, binop(Iop_Add64Fx4, mkexpr(dV), mkexpr(sV)) );
10621 assign( subV, binop(Iop_Sub64Fx4, mkexpr(dV), mkexpr(sV)) );
10632 static IRTemp math_ADDSUBPS_128 ( IRTemp dV, IRTemp sV )
10639 assign( addV, binop(Iop_Add32Fx4, mkexpr(dV), mkexpr(sV)) );
10640 assign( subV, binop(Iop_Sub32Fx4, mkexpr(dV), mkexpr(sV)) );
10651 static IRTemp math_ADDSUBPS_256 ( IRTemp dV, IRTemp sV )
10660 assign( addV, binop(Iop_Add32Fx8, mkexpr(dV), mkexpr(sV)) );
10661 assign( subV, binop(Iop_Sub32Fx8, mkexpr(dV), mkexpr(sV)) );
10682 IRTemp sVmut, dVmut, sVcon, sV, dV, s3, s2, s1, s0;
10685 dV = newTemp(Ity_V128);
10719 assign(dV, xIsH ? binop(Iop_64HLtoV128, mkexpr(dVmut), mkexpr(sVcon))
10722 (isAvx ? putYMMRegLoAndZU : putXMMReg)(rG, mkexpr(dV));
10914 static IRTemp math_PSADBW_128 ( IRTemp dV, IRTemp sV )
10920 breakupV128to64s( dV, &d1, &d0 );
11390 IRTemp dV = newTemp(Ity_V128);
11393 assign( dV, getXMMReg(rG) );
11407 IRTemp res = math_UNPCKxPS_128( sV, dV, hi );
11418 IRTemp dV = newTemp(Ity_V128);
11421 assign( dV, getXMMReg(rG) );
11435 IRTemp res = math_UNPCKxPD_128( sV, dV, hi );
12606 IRTemp sV, dV, s3, s2, s1, s0;
12609 dV = newTemp(Ity_I64);
12632 assign(dV,
12636 putMMXReg(gregLO3ofRM(modrm), mkexpr(dV));
13281 IRTemp dV = newTemp(Ity_V128);
13284 assign( dV, getXMMReg(rG) );
13298 IRTemp res = math_SHUFPS_128( sV, dV, imm8 );
13306 IRTemp dV = newTemp(Ity_V128);
13309 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
13328 IRTemp res = math_SHUFPD_128( sV, dV, select );
13805 IRTemp dV = newTemp(Ity_V128);
13808 assign( dV, getXMMReg(rG) );
13820 putXMMReg( rG, mkexpr(math_PMULUDQ_128( sV, dV )) );
13828 IRTemp dV = newTemp(Ity_I64);
13834 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
13849 assign( t0, unop(Iop_64to32, mkexpr(dV)) );
13862 IRTemp dV = newTemp(Ity_V128);
13876 assign( dV, getXMMReg(rG) );
13877 putXMMReg( rG, mkexpr(math_PMADDWD_128(dV, sV)) );
13895 IRTemp dV = newTemp(Ity_V128);
13909 assign( dV, getXMMReg(rG) );
13910 putXMMReg( rG, mkexpr( math_PSADBW_128 ( dV, sV ) ) );
14152 static IRTemp math_HADDPS_128 ( IRTemp dV, IRTemp sV, Bool isAdd )
14160 breakupV128to32s( dV, &d3, &d2, &d1, &d0 );
14172 static IRTemp math_HADDPD_128 ( IRTemp dV, IRTemp sV, Bool isAdd )
14180 breakupV128to64s( dV, &d1, &d0 );
14380 IRTemp math_PSHUFB_XMM ( IRTemp dV/*data to perm*/, IRTemp sV/*perm*/ )
14399 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
14400 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
14481 IRTemp dV = newTemp(Ity_V128);
14504 assign( dV, getXMMReg(rV) );
14520 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
14521 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
14542 static IRTemp math_PMADDUBSW_128 ( IRTemp dV, IRTemp sV )
14548 /* compute dV unsigned x sV signed */
14553 assign( dVoddsZX, binop(Iop_ShrN16x8, mkexpr(dV), mkU8(8)) );
14555 binop(Iop_ShlN16x8, mkexpr(dV), mkU8(8)),
14591 IRTemp dV = newTemp(Ity_V128);
14594 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14610 IRTemp res = math_PSHUFB_XMM( dV, sV );
14617 IRTemp dV = newTemp(Ity_I64);
14621 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14643 mkexpr(dV),
14696 IRTemp dV = newTemp(Ity_I64);
14715 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14733 binop(opCatE,mkexpr(sV),mkexpr(dV)),
14734 binop(opCatO,mkexpr(sV),mkexpr(dV))
14747 IRTemp dV = newTemp(Ity_V128);
14751 assign( dV, getXMMReg(rG) );
14766 putXMMReg( rG, mkexpr( math_PMADDUBSW_128( dV, sV ) ) );
14773 IRTemp dV = newTemp(Ity_I64);
14781 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14796 /* compute dV unsigned x sV signed */
14804 binop(Iop_ShrN16x4, mkexpr(dV), mkU8(8)) );
14807 binop(Iop_ShlN16x4, mkexpr(dV), mkU8(8)),
14830 IRTemp dV = newTemp(Ity_V128);
14846 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14862 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
14863 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
14881 IRTemp dV = newTemp(Ity_I64);
14894 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14911 dis_PSIGN_helper( mkexpr(sV), mkexpr(dV), laneszB )
14923 IRTemp dV = newTemp(Ity_V128);
14930 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14946 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) );
14947 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) );
14964 IRTemp dV = newTemp(Ity_I64);
14968 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14985 dis_PMULHRSW_helper( mkexpr(sV), mkexpr(dV) )
15111 IRTemp dV = newTemp(Ity_V128);
15114 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
15134 IRTemp res = math_PALIGNR_XMM( sV, dV, d64 );
15141 IRTemp dV = newTemp(Ity_I64);
15146 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
15172 binop(Iop_Shl64, mkexpr(dV), mkU8(8*(8-d64))
15176 dV) );
15179 assign( res, binop(Iop_Shr64, mkexpr(dV), mkU8(8*(d64-8))) );
16363 IRTemp dV = newTemp(Ity_V128);
16366 assign( dV, getXMMReg(rG) );
16379 putXMMReg( rG, mkexpr(math_PMULDQ_128( dV, sV )) );
17332 static IRTemp math_PCLMULQDQ( IRTemp dV, IRTemp sV, UInt imm8 )
17337 mkexpr(dV)));
23394 IRTemp dV = newTemp(Ity_V128);
23413 assign( dV, getXMMReg(rV) );
23414 putYMMRegLoAndZU( rG, mkexpr( math_HADDPS_128 ( dV, sV, isAdd ) ) );
23422 IRTemp dV = newTemp(Ity_V256);
23443 assign( dV, getYMMReg(rV) );
23444 breakupV256toV128s( dV, &d1, &d0 );
23456 IRTemp dV = newTemp(Ity_V128);
23475 assign( dV, getXMMReg(rV) );
23476 putYMMRegLoAndZU( rG, mkexpr( math_HADDPD_128 ( dV, sV, isAdd ) ) );
23484 IRTemp dV = newTemp(Ity_V256);
23505 assign( dV, getYMMReg(rV) );
23506 breakupV256toV128s( dV, &d1, &d0 );
24597 IRTemp dV = newTemp(Ity_V128);
24613 assign( dV, getXMMReg(rV) );
24629 breakupV128to64s( dV, &dHi, &dLo );
24648 IRTemp dV = newTemp(Ity_V128);
24655 assign( dV, getXMMReg(rV) );
24671 breakupV128to64s( dV, &dHi, &dLo );
25372 IRTemp dV = newTemp(Ity_V128);
25373 assign(dV, binop(Iop_64HLtoV128,
25376 putYMMRegLoAndZU(rG, mkexpr(dV));
25404 IRTemp dV = newTemp(Ity_V256);
25405 assign(dV, IRExpr_Qop(Iop_64x4toV256,
25410 putYMMReg(rG, mkexpr(dV));
25889 IRTemp dV = newTemp(Ity_V128);
25892 assign( dV, getXMMReg(rV) );
25910 IRTemp res = math_PALIGNR_XMM( sV, dV, imm8 );
26320 IRTemp dV = newTemp(Ity_V128);
26324 assign( dV, getXMMReg(rV) );
26343 putYMMRegLoAndZU( rG, mkexpr( math_PCLMULQDQ(dV, sV, imm8) ) );