Messages in this thread | | | Date | Tue, 16 Aug 2005 17:06:04 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 5/14] i386 / Use early clobber to eliminate rotate in desc |
| |
Zachary Amsden wrote: > > This one in particular is non-optimal looking from C because the > compiler misses the potential for rotation. But, composing into > temporaries and then issuing two writes to memory instead of multiple > writes within the same word could actually get you a better cycle count, > and that is something GCC just might be able to do :) >
At least i386 and x86-64 gcc should recognize
((foo << x) + (foo >> (32-x)))
... as a 32-bit rotate; similar for 8-, 16- and 64-bit rotates of appropriate sized items. Also, it seems it could just be an inline function instead of a macro.
-hpa
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |