Re: [patch,avr] Support new built-in for faster mask computation

2024-07-20 Thread Jeff Law
On 7/20/24 11:27 AM, Georg-Johann Lay wrote: Hi Jeff, at least combiner patterns won't work.  For something like var |= 1 << (off & 7) insn combine is just getting lost; it tries expressions with MEM, IOR, even PARALLELs, but nothing that's close to a rotation. Also it doesn't break out m

Re: [patch,avr] Support new built-in for faster mask computation

2024-07-20 Thread Georg-Johann Lay
Am 19.07.24 um 16:56 schrieb Jeff Law: On 7/18/24 3:12 PM, Georg-Johann Lay wrote: This new builtin provides a faster way to compute expressions like  1 << x  or ~(1 << x) that are sometimes used as masks for setting bits in the I/O region, and when x is not known at compile-time. The open code

Re: [patch,avr] Support new built-in for faster mask computation

2024-07-19 Thread Jeff Law
On 7/18/24 3:12 PM, Georg-Johann Lay wrote: This new builtin provides a faster way to compute expressions like  1 << x  or ~(1 << x) that are sometimes used as masks for setting bits in the I/O region, and when x is not known at compile-time. The open coded C expression takes 5 + 4 * x cycles

[patch,avr] Support new built-in for faster mask computation

2024-07-18 Thread Georg-Johann Lay
This new builtin provides a faster way to compute expressions like 1 << x or ~(1 << x) that are sometimes used as masks for setting bits in the I/O region, and when x is not known at compile-time. The open coded C expression takes 5 + 4 * x cycles to compute an 8-bit result, whereas the builtin