Re: [PATCH 5/14] i386 / Use early clobber to eliminate rotate indesc

From: H. Peter Anvin
Date: Wed Aug 17 2005 - 10:57:44 EST


Alan Cox wrote:
On Maw, 2005-08-16 at 17:06 -0700, H. Peter Anvin wrote:

At least i386 and x86-64 gcc should recognize

((foo << x) + (foo >> (32-x)))

... as a 32-bit rotate


Only for 1 <= x <= 31. For the x = 0 case the code posted is undefined
and at least in some cases gcc will do "interesting" things as a result
such as treating >> 32 as >> 0.


True, although I thought gcc considered the above an idiom and would generate a rotate instruction. Perhaps it should be | rather than +.

-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/