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

--- Comment #16 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #15)
> (In reply to Andrew Pinski from comment #14)
> > Just a quick update. It looks like undefined code in the verifier producing
> > a verification error.
> 
> Sorry this is incorrect. basically the problem is we have:
> a <<= 32
> a s>>= 32
> 
> which is a sign extend but the verifier loses track of what the value a
> contained originally.

And a quick other update to my understanding of the verifier.
It has support to track both min/max and value/mask. Just for shifts it just
does the min/max tracking. I don't know the history of that code to understand
why it did do both though.

Basically you update the min/max values and the value/mask by doing the shifts.
And I think the rest will fall out.

Reply via email to