On 09/21/2011 04:37 AM, Jakub Jelinek wrote: > op_false = force_reg (mode, op_false); > + switch (mode) > + { > + case V4SFmode: if (TARGET_SSE4_1) gen = gen_sse4_1_blendvps; break; > + case V2DFmode: if (TARGET_SSE4_1) gen = gen_sse4_1_blendvpd; break; > + case V16QImode: if (TARGET_SSE4_1) gen = gen_sse4_1_pblendvb; break; > + case V8SFmode: if (TARGET_AVX) gen = gen_avx_blendvps256; break; > + case V4DFmode: if (TARGET_AVX) gen = gen_avx_blendvpd256; break; > + case V32QImode: if (TARGET_AVX2) gen = gen_avx2_pblendvb; break; > + default: break; > + }
pblendvb is applicable to all of the integer modes, not just QImode. You do have to frob the modes around, but it'll work. r~