[PATCH, i386]: Rewrite x87 sqrt patterns, take 2a (macroized)

Roger Sayle roger@eyesopen.com
Sat Nov 25 19:32:00 GMT 2006


Thanks Eric,

On Sat, 25 Nov 2006, Eric Botcazou wrote:
> > +      case UNSPEC:
> > +       if (XINT (*pat, 1) == UNSPEC_TRUNC_NOOP)
> > +         {
> > +           pat = & XVECEXP (*pat, 0, 0);
> > +           break;
> > +         }
> > +
>
> internal compiler error: RTL check: expected elt 0 type 'e' or 'u',
> have 'E' (rtx unspec) in get_true_reg, at reg-stack.c:452

Grr,  it looks like Uros meant to write:

+      case UNSPEC:
+       if (XINT (*pat, 1) == UNSPEC_TRUNC_NOOP)
+         pat = & XVECEXP (*pat, 0, 0);
+       break;

Or else we fall through to the FLOAT_TRUNCATE case for UNSPECs other
than UNSPEC_TRUNC_NOOP.

I'll pre-approve that correction (as obvious?), if it bootstraps and
regression tests without problems.  My apologies for missing this
during review.

Roger
--



More information about the Gcc-patches mailing list