i386: Force V2SI mode operands to registers in expand_sse_movcc

For some reason middle-end does not enforce operand
predicates for vcond patterns.

2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
	* config/i386/i386-expand.c (ix86_expand_sse_movcc)
	<case E_V2SImode>: Force op_true to register.
This commit is contained in:
Uros Bizjak 2021-05-10 16:41:16 +02:00
parent 2bbacc18b3
commit 6957767337

View File

@ -3707,6 +3707,8 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
case E_V2SImode:
if (TARGET_SSE4_1)
{
op_true = force_reg (mode, op_true);
gen = gen_mmx_pblendvb;
if (mode != V8QImode)
d = gen_reg_rtx (V8QImode);