Richard Henderson <rth@xxxxxxxxxx> writes: > On Fri, Sep 03, 2004 at 08:05:15AM +0100, Richard Sandiford wrote: >> However, on some machines, such as the 80386 and the 680x0, truncation >> only applies to shift operations and not the (real or pretended) >> bit-field operations. Define @code{SHIFT_COUNT_TRUNCATED} to be zero on >> such machines. Instead, add patterns to the @file{md} file that include >> the implied truncation of the shift instructions. >> >> I was deliberately trying to avoid this fuzziness with the new target hook. > > Hmm. I suppose we could pass the shift operation in there; > ASHIFT, LSHIFT, ZERO_EXTRACT, SIGN_EXTRACT. But the point as I understand it is that the generic optimisers (e.g. simplify-rtx.c) can't tell the difference between an ASHIFT that came from an (ashift ...) in the instruction stream or from something that was generated artificially by expand_compound_operation. Richard