Home | History | Annotate | Download | only in priv

Lines Matching refs:sV

9286 static IRTemp math_PALIGNR_XMM ( IRTemp sV, IRTemp dV, UInt imm8 ) 
9298 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) );
9299 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) );
9602 IRTemp sV = newTemp(Ity_V128);
9607 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
9616 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
9626 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
9642 static IRTemp math_PSRLDQ ( IRTemp sV, Int imm )
9656 assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) );
9657 assign( lo64, unop(Iop_V128to64, mkexpr(sV)) );
9689 static IRTemp math_PSLLDQ ( IRTemp sV, Int imm )
9703 assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) );
9704 assign( lo64, unop(Iop_V128to64, mkexpr(sV)) );
10297 static IRTemp math_UNPCKxPS_128 ( IRTemp sV, IRTemp dV, Bool xIsH )
10302 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
10312 static IRTemp math_UNPCKxPD_128 ( IRTemp sV, IRTemp dV, Bool xIsH )
10320 assign( s1, unop(Iop_V128HIto64, mkexpr(sV)) );
10321 assign( s0, unop(Iop_V128to64, mkexpr(sV)) );
10333 static IRTemp math_UNPCKxPD_256 ( IRTemp sV, IRTemp dV, Bool xIsH )
10338 breakupV256to64s( sV, &s3, &s2, &s1, &s0 );
10355 static IRTemp math_UNPCKxPS_256 ( IRTemp sV, IRTemp dV, Bool xIsH )
10359 breakupV256toV128s( sV, &sVhi, &sVlo );
10369 static IRTemp math_SHUFPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10376 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
10393 static IRTemp math_SHUFPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10397 breakupV256toV128s( sV, &sVhi, &sVlo );
10407 static IRTemp math_SHUFPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10416 assign( s1, unop(Iop_V128HIto64, mkexpr(sV)) );
10417 assign( s0, unop(Iop_V128to64, mkexpr(sV)) );
10432 static IRTemp math_SHUFPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10436 breakupV256toV128s( sV, &sVhi, &sVlo );
10446 static IRTemp math_BLENDPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10462 binop( Iop_AndV128, mkexpr(sV),
10470 static IRTemp math_BLENDPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10474 breakupV256toV128s( sV, &sVhi, &sVlo );
10484 static IRTemp math_BLENDPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10495 binop( Iop_AndV128, mkexpr(sV),
10503 static IRTemp math_BLENDPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
10507 breakupV256toV128s( sV, &sVhi, &sVlo );
10517 static IRTemp math_PBLENDW_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
10532 binop( Iop_AndV128, mkexpr(sV),
10540 static IRTemp math_PMULUDQ_128 ( IRTemp sV, IRTemp dV )
10547 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
10556 static IRTemp math_PMULDQ_128 ( IRTemp dV, IRTemp sV )
10563 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
10572 static IRTemp math_PMADDWD_128 ( IRTemp dV, IRTemp sV )
10578 breakupV128to64s( sV, &sVhi, &sVlo );
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;
10684 sV = newTemp(Ity_V128);
10691 assign( sV, getXMMReg(rE) );
10699 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
10709 assign( sVmut, unop(xIsH ? Iop_V128HIto64 : Iop_V128to64, mkexpr(sV)) );
10710 assign( sVcon, unop(xIsH ? Iop_V128to64 : Iop_V128HIto64, mkexpr(sV)) );
10733 IRTemp sV = newTemp(Ity_V128);
10739 assign(sV, getXMMReg(rE));
10749 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
10914 static IRTemp math_PSADBW_128 ( IRTemp dV, IRTemp sV )
10919 breakupV128to64s( sV, &s1, &s0 );
11389 IRTemp sV = newTemp(Ity_V128);
11396 assign( sV, getXMMReg(rE) );
11402 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
11407 IRTemp res = math_UNPCKxPS_128( sV, dV, hi );
11417 IRTemp sV = newTemp(Ity_V128);
11424 assign( sV, getXMMReg(rE) );
11430 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
11435 IRTemp res = math_UNPCKxPD_128( sV, dV, hi );
12606 IRTemp sV, dV, s3, s2, s1, s0;
12608 sV = newTemp(Ity_I64);
12613 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
12622 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
12629 breakup64to16s( sV, &s3, &s2, &s1, &s0 );
12714 IRTemp sV = newTemp(Ity_V128);
12715 assign( sV, getXMMReg(reg) );
12716 putXMMReg(reg, mkexpr(math_PSRLDQ( sV, imm )));
12729 IRTemp sV = newTemp(Ity_V128);
12730 assign( sV, getXMMReg(reg) );
12731 putXMMReg(reg, mkexpr(math_PSLLDQ( sV, imm )));
13234 IRTemp sV = newTemp(Ity_I64);
13237 assign(sV, getMMXReg(eregLO3ofRM(modrm)));
13238 breakup64to16s( sV, &t3, &t2, &t1, &t0 );
13280 IRTemp sV = newTemp(Ity_V128);
13287 assign( sV, getXMMReg(rE) );
13293 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
13298 IRTemp res = math_SHUFPS_128( sV, dV, imm8 );
13305 IRTemp sV = newTemp(Ity_V128);
13312 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
13320 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
13328 IRTemp res = math_SHUFPD_128( sV, dV, select );
13804 IRTemp sV = newTemp(Ity_V128);
13811 assign( sV, getXMMReg(rE) );
13816 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
13820 putXMMReg( rG, mkexpr(math_PMULUDQ_128( sV, dV )) );
13827 IRTemp sV = newTemp(Ity_I64);
13837 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
13843 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
13850 assign( t1, unop(Iop_64to32, mkexpr(sV)) );
13861 IRTemp sV = newTemp(Ity_V128);
13867 assign( sV, getXMMReg(rE) );
13872 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
13877 putXMMReg( rG, mkexpr(math_PMADDWD_128(dV, sV)) );
13894 IRTemp sV = newTemp(Ity_V128);
13900 assign( sV, getXMMReg(rE) );
13905 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
13910 putXMMReg( rG, mkexpr( math_PSADBW_128 ( dV, sV ) ) );
14029 IRTemp sV = newTemp(Ity_V128);
14035 assign( sV, getXMMReg(rE) );
14039 assign ( d0, unop(Iop_V128to64, mkexpr(sV)) );
14091 IRTemp sV = newTemp(Ity_V128);
14098 assign( sV, getXMMReg(rE) );
14106 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
14111 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
14125 IRTemp sV = newTemp(Ity_V256);
14132 assign( sV, getYMMReg(rE) );
14138 assign( sV, loadLE(Ity_V256, mkexpr(addr)) );
14143 breakupV256to32s( sV, &s7, &s6, &s5, &s4, &s3, &s2, &s1, &s0 );
14152 static IRTemp math_HADDPS_128 ( IRTemp dV, IRTemp sV, Bool isAdd )
14159 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
14172 static IRTemp math_HADDPD_128 ( IRTemp dV, IRTemp sV, Bool isAdd )
14179 breakupV128to64s( sV, &s1, &s0 );
14380 IRTemp math_PSHUFB_XMM ( IRTemp dV/*data to perm*/, IRTemp sV/*perm*/ )
14401 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) );
14402 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) );
14480 IRTemp sV = newTemp(Ity_V128);
14508 assign( sV, getXMMReg(rE) );
14515 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
14522 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) );
14523 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) );
14542 static IRTemp math_PMADDUBSW_128 ( IRTemp dV, IRTemp sV )
14548 /* compute dV unsigned x sV signed */
14549 assign( sVoddsSX, binop(Iop_SarN16x8, mkexpr(sV), mkU8(8)) );
14551 binop(Iop_ShlN16x8, mkexpr(sV), mkU8(8)),
14590 IRTemp sV = newTemp(Ity_V128);
14597 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
14604 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
14610 IRTemp res = math_PSHUFB_XMM( dV, sV );
14616 IRTemp sV = newTemp(Ity_I64);
14624 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14630 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
14644 binop(Iop_And64, mkexpr(sV), mkU64(0x0707070707070707ULL))
14647 unop(Iop_Not64, binop(Iop_SarN8x8, mkexpr(sV), mkU8(7)))
14695 IRTemp sV = newTemp(Ity_I64);
14718 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14724 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
14733 binop(opCatE,mkexpr(sV),mkexpr(dV)),
14734 binop(opCatO,mkexpr(sV),mkexpr(dV))
14746 IRTemp sV = newTemp(Ity_V128);
14755 assign( sV, getXMMReg(rE) );
14761 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
14766 putXMMReg( rG, mkexpr( math_PMADDUBSW_128( dV, sV ) ) );
14772 IRTemp sV = newTemp(Ity_I64);
14784 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14790 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
14796 /* compute dV unsigned x sV signed */
14798 binop(Iop_SarN16x4, mkexpr(sV), mkU8(8)) );
14801 binop(Iop_ShlN16x4, mkexpr(sV), mkU8(8)),
14829 IRTemp sV = newTemp(Ity_V128);
14849 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
14856 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
14864 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) );
14865 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) );
14880 IRTemp sV = newTemp(Ity_I64);
14897 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14903 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
14911 dis_PSIGN_helper( mkexpr(sV), mkexpr(dV), laneszB )
14922 IRTemp sV = newTemp(Ity_V128);
14933 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
14940 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
14948 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) );
14949 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) );
14963 IRTemp sV = newTemp(Ity_I64);
14971 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14977 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
14985 dis_PMULHRSW_helper( mkexpr(sV), mkexpr(dV) )
14999 IRTemp sV = newTemp(Ity_V128);
15012 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
15019 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
15026 mkexpr(math_PABS_XMM(sV, laneszB)) );
15033 IRTemp sV = newTemp(Ity_I64);
15048 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
15054 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
15061 mkexpr(math_PABS_MMX( sV, laneszB )) );
15110 IRTemp sV = newTemp(Ity_V128);
15117 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
15126 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
15134 IRTemp res = math_PALIGNR_XMM( sV, dV, d64 );
15140 IRTemp sV = newTemp(Ity_I64);
15149 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
15157 assign( sV, loadLE(Ity_I64, mkexpr(addr)) );
15166 assign( res, mkexpr(sV) );
15171 binop(Iop_Shr64, mkexpr(sV), mkU8(8*d64)),
16019 IRTemp sV = newTemp(Ity_V128);
16026 assign( sV, getXMMReg(rE) );
16033 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
16037 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) );
16038 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) );
16362 IRTemp sV = newTemp(Ity_V128);
16369 assign( sV, getXMMReg(rE) );
16374 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
16379 putXMMReg( rG, mkexpr(math_PMULDQ_128( dV, sV )) );
17332 static IRTemp math_PCLMULQDQ( IRTemp dV, IRTemp sV, UInt imm8 )
17339 mkexpr(sV)));
21363 IRTemp sV = newTemp(Ity_V128);
21367 assign( sV, getXMMReg(rE) );
21372 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
21378 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
23393 IRTemp sV = newTemp(Ity_V128);
23402 assign( sV, getXMMReg(rE) );
23408 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
23414 putYMMRegLoAndZU( rG, mkexpr( math_HADDPS_128 ( dV, sV, isAdd ) ) );
23421 IRTemp sV = newTemp(Ity_V256);
23432 assign( sV, getYMMReg(rE) );
23438 assign( sV, loadLE(Ity_V256, mkexpr(addr)) );
23445 breakupV256toV128s( sV, &s1, &s0 );
23455 IRTemp sV = newTemp(Ity_V128);
23464 assign( sV, getXMMReg(rE) );
23470 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
23476 putYMMRegLoAndZU( rG, mkexpr( math_HADDPD_128 ( dV, sV, isAdd ) ) );
23483 IRTemp sV = newTemp(Ity_V256);
23494 assign( sV, getYMMReg(rE) );
23500 assign( sV, loadLE(Ity_V256, mkexpr(addr)) );
23507 breakupV256toV128s( sV, &s1, &s0 );
24596 IRTemp sV = newTemp(Ity_V128);
24617 assign( sV, getXMMReg(rE) );
24623 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
24630 breakupV128to64s( sV, &sHi, &sLo );
24647 IRTemp sV = newTemp(Ity_V128);
24659 assign( sV, getXMMReg(rE) );
24665 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
24672 breakupV128to64s( sV, &sHi, &sLo );
25247 static IRTemp math_VPERMILPS_128 ( IRTemp sV, UInt imm8 )
25252 breakupV128to32s( sV, &s3, &s2, &s1, &s0 );
25293 IRTemp sV = newTemp(Ity_V256);
25300 assign(sV, getYMMReg(rE));
25307 assign(sV, loadLE(Ity_V256, mkexpr(addr)));
25311 breakupV256toV128s( sV, &sVhi, &sVlo );
25323 IRTemp sV = newTemp(Ity_V128);
25330 assign(sV, getXMMReg(rE));
25337 assign(sV, loadLE(Ity_V128, mkexpr(addr)));
25340 putYMMRegLoAndZU(rG, mkexpr ( math_VPERMILPS_128 ( sV, imm8 ) ) );
25351 IRTemp sV = newTemp(Ity_V128);
25358 assign(sV, getXMMReg(rE));
25365 assign(sV, loadLE(Ity_V128, mkexpr(addr)));
25370 assign(s1, unop(Iop_V128HIto64, mkexpr(sV)));
25371 assign(s0, unop(Iop_V128to64, mkexpr(sV)));
25384 IRTemp sV = newTemp(Ity_V256);
25391 assign(sV, getYMMReg(rE));
25398 assign(sV, loadLE(Ity_V256, mkexpr(addr)));
25403 breakupV256to64s(sV, &s3, &s2, &s1, &s0);
25725 IRTemp sV = newTemp(Ity_V256);
25727 assign ( sV, getYMMReg(rV) );
25745 mkexpr( math_BLENDPS_256( sE, sV, imm8) ) );
25756 IRTemp sV = newTemp(Ity_V128);
25758 assign ( sV, getXMMReg(rV) );
25776 mkexpr( math_BLENDPS_128( sE, sV, imm8) ) );
25790 IRTemp sV = newTemp(Ity_V256);
25792 assign ( sV, getYMMReg(rV) );
25810 mkexpr( math_BLENDPD_256( sE, sV, imm8) ) );
25821 IRTemp sV = newTemp(Ity_V128);
25823 assign ( sV, getXMMReg(rV) );
25841 mkexpr( math_BLENDPD_128( sE, sV, imm8) ) );
25855 IRTemp sV = newTemp(Ity_V128);
25857 assign ( sV, getXMMReg(rV) );
25875 mkexpr( math_PBLENDW_128( sE, sV, imm8) ) );
25888 IRTemp sV = newTemp(Ity_V128);
25896 assign( sV, getXMMReg(rE) );
25903 assign( sV, loadLE(Ity_V128, mkexpr(addr)) );
25910 IRTemp res = math_PALIGNR_XMM( sV, dV, imm8 );
26319 IRTemp sV = newTemp(Ity_V128);
26329 assign( sV, getXMMReg(rE) );
26336 assign( sV, loadLE( Ity_V128, mkexpr(addr) ) );
26343 putYMMRegLoAndZU( rG, mkexpr( math_PCLMULQDQ(dV, sV, imm8) ) );