]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Force V2SI mode operands to registers in expand_sse_movcc
authorUros Bizjak <ubizjak@gmail.com>
Mon, 10 May 2021 14:41:16 +0000 (16:41 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Mon, 10 May 2021 14:41:16 +0000 (16:41 +0200)
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.

gcc/config/i386/i386-expand.c

index e9f11bca78a2e11ad8776b982ea56a77f3464f2b..5cfde5b3d3046d598654ee4e3a858f958f4013f4 100644 (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);