[Bug rtl-optimization/82058] ICE in process_alt_operands, at lra-constraints.c:2954 (after adding early clobber in .md)

vries at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Aug 31 16:46:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82058

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #0)
> At r251537, with this patch:
> ...
> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
> index d61afcf..a42358d 100644
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -1741,7 +1741,7 @@
>     (set_attr "mode" "<MODE>")])
>  
>  (define_insn "srcp14<mode>_mask"
> -  [(set (match_operand:VF_128 0 "register_operand" "=v")
> +  [(set (match_operand:VF_128 0 "register_operand" "=&v")
>         (vec_merge:VF_128
>           (vec_merge:VF_128
>             (unspec:VF_128
> ...
> 

Written to make it easy to reproduce an ICE encountered for target gcn on
branch gcn for this insn from gcn-valu.md:
...
(define_insn "*mov<mode>"
  [(set (match_operand:VEC_2REG_MODE 0 "register_operand" "=&v")
        (vec_merge:VEC_2REG_MODE
           (match_operand:VEC_2REG_MODE 1 "gcn_alu_operand" "0vB")
           (match_operand:VEC_2REG_MODE 3 "gcn_register_or_unspec_operand"
"0U")
          (match_operand:DI 2 "gcn_exec_reg_operand" "e")))]
  "!memory_operand (operands[0], VOIDmode) || register_operand (operands[1],
VOIDmode)"
  "v_mov_b32\t%L0, %L1\n\tv_mov_b32\t%H0, %H1"
  [(set_attr "type" "vop1")
   (set_attr "mode" "<MODE>")])
...


More information about the Gcc-bugs mailing list