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. Uros. > --- > gcc/config/i386/i386.md | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md > index 284b9507466..9d6786c5c2e 100644 > --- a/gcc/config/i386/i386.md > +++ b/gcc/config/i386/i386.md > @@ -8588,7 +8588,8 @@ > (any_mul_highpart:SWI48 (match_dup 2) (match_dup 0))) > (clobber (match_dup 2)) > (clobber (reg:CC FLAGS_REG))])] > - "REGNO (operands[0]) != REGNO (operands[2]) > + "TARGET_64BIT > + && REGNO (operands[0]) != REGNO (operands[2]) > && REGNO (operands[0]) != REGNO (operands[3]) > && (REGNO (operands[0]) == REGNO (operands[4]) > || peep2_reg_dead_p (3, operands[0]))" > -- > 2.33.1 >