Re: TARGET_SHIFT_TRUNCATION_MASK

2010-07-16 Thread Paolo Bonzini
On 07/15/2010 02:26 PM, Uros Bizjak wrote: The reason you pointed out is for SHIFT_COUNT_TRUNCATED. Please note, that we don't use memory_operands, but even in register operand case, "bt" insn doesn't truncate the bit-count operand, but performs modulo operation on it. I.E, "bt %reg, 75" will not

Re: TARGET_SHIFT_TRUNCATION_MASK

2010-07-15 Thread Uros Bizjak
On Thu, Jul 15, 2010 at 2:16 PM, Paolo Bonzini wrote: > On 07/15/2010 09:57 AM, Uros Bizjak wrote: >> >> Hello! >> >> I was playing a bit with TARGET_SHIFT_TRUNCATION_MASK on x86 in the >> hope that redundant masking would get eliminated from: >> >> int test (int a, int c) >> { >>        return a<

Re: TARGET_SHIFT_TRUNCATION_MASK

2010-07-15 Thread Paolo Bonzini
On 07/15/2010 09:57 AM, Uros Bizjak wrote: Hello! I was playing a bit with TARGET_SHIFT_TRUNCATION_MASK on x86 in the hope that redundant masking would get eliminated from: int test (int a, int c) { return a<< (c& 0x1f); } The macro was defined as: +/* Implement TARGET_SHIFT_TRUNCAT

Re: target_shift_truncation_mask for all shifts?!

2005-04-19 Thread Richard Sandiford
Andreas Krebbel <[EMAIL PROTECTED]> writes: > In: > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg00456.html > > you proposed to take care of this in the 4.1 (formerly 3.6) timeframe fixing > all places where shift rtxes are generated besides optabs. > Is this still on your todo list? Yes, but so a