On Fri, Dec 24, 2021 at 12:17 AM Uros Bizjak <ubiz...@gmail.com> wrote:
>
> On Thu, Dec 23, 2021 at 11:21 PM H.J. Lu via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
> >
> > Restore i686 bootstrap by requiring TARGET_64BIT for any_mul_highpart
> > peephole.
> >
> >         PR bootstrap/103785
> >         * config/i386/i386.md: Require TARGET_64BIT for any_mul_highpart
> >         peephole.
>
> I don't think this is correct. The patch uses SWI48, where DImode is
> enabled only for TARGET_64BIT. The patch disables SImode peephole only
> for 32bit targets, so if there is something wrong with the peephole,
> it still remains buggy for 64bit targets. Either we remove problematic
> peepholes to restore bootstrap or get a testcase and analyze the
> problem to figure out the correct fix.
>

I couldn't create a small testcase in C.   The problem is in

(set (reg:SI 1 dx [92])
     (const_int 714200473 [0x2a91d599]))
(set (reg:SI 0 ax [105])
     (reg:SI 0 ax [orig:89 k ] [89]))
(parallel [
  (set (reg:SI 1 dx [91])
       (smul_highpart:SI (reg:SI 0 ax [105]) (reg:SI 1 dx [92])))
       (clobber (reg:SI 0 ax [105]))
       (clobber (reg:CC 17 flags))
])

The v2 patch is posted at

https://gcc.gnu.org/pipermail/gcc-patches/2021-December/587356.html

-- 
H.J.

Reply via email to