> Hm. In fold-const.c we try to make sure to produce the same result
> as the target would for constant-folding shifts. Thus, Paolo, I think
> what fold-const.c does is what we should assume for
> !SHIFT_COUNT_TRUNCATED. No?
Unfortunately it is not so simple. fold-const.c is actually wrong, as
witnessed by this program
static inline int f (int s) { return 2 << s; }
int main () { printf ("%d\n", f(33)); }
which prints 4 at -O0 and 0 at -O2 on i686-pc-linux-gnu.
This might mean either that it is easier than I thought (i.e. that all
the subtleties of the targets could be ignored), but I want to play it
safe and actually take the opportunity to fix the above problem (my
current patch does fix it).
Paolo