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

--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 42094
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42094&action=edit
workaround patch

Using this workaround patch, we have instead:
...
            0 Early clobber: reject++
            3 Matching earlyclobber alt: reject--
            0 Matched conflict early clobber reloads: reject == 0
          alt=0,overall=17,losers=3,rld_nregs=1
         Choosing alt 0 in insn 14:  (0) =&v  (1) vm  (2) v  (3) 0C  (4) Yk
{srcp14v2df_mask}
      Creating newreg=100 from oldreg=93, assigning class ALL_SSE_REGS to r100
      Creating newreg=101, assigning class MASK_EVEX_REGS to r101
   14: r100:V2DF=vec_merge(vec_merge(unspec[r91:V2DF]
152,r100:V2DF,r101:QI),xmm1:V2DF,0x1)
...

resulting in insn:
...
(insn 14 25 24 2 (set (reg:V2DF 23 xmm2 [93])
        (vec_merge:V2DF (vec_merge:V2DF (unspec:V2DF [
                        (reg/v:V2DF 21 xmm0 [orig:91 aD.2698 ] [91])
                    ] UNSPEC_RCP14)
                (reg:V2DF 23 xmm2 [93])
                (reg:QI 70 k1 [101]))
            (reg:V2DF 22 xmm1 [ bD.2699 ])
            (const_int 1 [0x1]))) "avx-1.c":7 1503 {srcp14v2df_mask}
     (nil))
...

Reply via email to