On Mon, 2013-05-13 at 11:33 +0100, David Woodhouse wrote: > > On Mon, 2013-05-13 at 09:33 +0200, Gabriel Paubert wrote: > > Actually, I'd swap the two mr instructions to never > > have an instruction that uses the result from the > > previous one. > > Bad GCC. No biscuit. > > Should we file a PR? Maybe not. If you tell it to tune for an in-order machine like Cell, it swaps them round. Although now I'm confused about which of POWER[567] were in-order: [dwmw2@i7 ~]$ powerpc64-linux-gnu-gcc -O2 -S -o- bswapdi2.c -m32 | grep -B1 mr rlwimi 11,3,24,16,23 mr 4,11 mr 3,10 [dwmw2@i7 ~]$ powerpc64-linux-gnu-gcc -O2 -S -o- bswapdi2.c -m32 -mtune=cell | grep -B1 mr rlwimi 11,3,24,16,23 mr 3,10 mr 4,11 [dwmw2@i7 ~]$ powerpc64-linux-gnu-gcc -O2 -S -o- bswapdi2.c -m32 -mtune=power5 | grep -B1 mr rlwimi 11,3,24,16,23 mr 3,10 mr 4,11 [dwmw2@i7 ~]$ powerpc64-linux-gnu-gcc -O2 -S -o- bswapdi2.c -m32 -mtune=power6 | grep -B1 mr rlwimi 11,3,24,16,23 mr 4,11 mr 3,10 [dwmw2@i7 ~]$ powerpc64-linux-gnu-gcc -O2 -S -o- bswapdi2.c -m32 -mtune=power7 | grep -B1 mr rlwimi 11,3,24,16,23 mr 4,11 mr 3,10 -- David Woodhouse Open Source Technology Centre David.Woodhouse@intel.com Intel Corporation