void GSDrawScanlineCodeGenerator::mix16(const Xmm& a, const Xmm& b, const Xmm& temp) { if(m_cpu.has(util::Cpu::tSSE41)) { pblendw(a, b, 0xaa); } else { pcmpeqd(temp, temp); psrld(temp, 16); pand(a, temp); pandn(temp, b); por(a, temp); } }
void GSDrawScanlineCodeGenerator::mix16(const Xmm& a, const Xmm& b, const Xmm& temp) { #if _M_SSE >= 0x500 vpblendw(a, b, 0xaa); #elif _M_SSE >= 0x401 pblendw(a, b, 0xaa); #else pcmpeqd(temp, temp); psrld(temp, 16); pand(a, temp); pandn(temp, b); por(a, temp); #endif }