On Sun, 17 Mar 2019 20:12:04 +0100 Robin Gareus <ro...@gareus.org> wrote:
>On 3/17/19 5:56 PM, Jonathan Brickman wrote: >> That is likely to change depending on GCC optimization setting, no? > >Not usually. It depends on the target architecture more than anything. > >Even with -O0, gcc translates integer addition and multiplications into >a combination of bitwise and arithmetic operations if that is >appropriate for the target CPU. > > >On 3/12/19 11:43 PM, Will Godfrey wrote: >> Does anyone know if GCC will replace power of 2 >> multiplications/divisions of unsigned integers with bit shifts? >Not only power of two, and it depends. In some cases the compiler >doesn't replace it because the resulting code is not faster. Many modern >CPU already implement integer multiplication using bitwise operations in >microcode. > >I don't know if this your question is academic, but if you plan to >manually optimize code, I highly recommend against that. > >Write semantically! If you mean a multiplication, use (a * 2), if you >mean bit-shift use (a << 1). Do not use bitwise-operations when you >really do integer-arithmetics. > >Your future self and code-contributers will thank you for it; as will >compilers targeting future CPU architectures. ></rant> > >2c, >robin Thanks Robin. Very clear. It's the direction I was beginning to think in. It's sometimes difficult to imagine how far compilers have advanced over the years. -- Will J Godfrey http://www.musically.me.uk Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev