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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|12.0                        |9.5
           Priority|P3                          |P2
             Target|X86                         |x86_64-*-* i?86-*-*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-09-07
     Ever confirmed|0                           |1

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
Miscompiled with -O2, expanding from

  _3 = .XORSIGN (x_2(D), x_2(D)); [tail call]

and the issue is in ix86_split_xorsign which does

  dest = lowpart_subreg (vmode, dest, mode);
  x = gen_rtx_AND (vmode, dest, mask);
  emit_insn (gen_rtx_SET (dest, x));

  op0 = lowpart_subreg (vmode, op0, mode);
  x = gen_rtx_XOR (vmode, dest, op0);
  emit_insn (gen_rtx_SET (dest, x));

not catering for op0 == dest

Reply via email to