On Thu, Dec 10, 2009 at 14:06, Jakub Jelinek wrote: > Why do you want the HI mode version generated, ever (except for 16-bit code which > gcc doesn't emit)?  IMNSHO you don't want to ever use even the 32-bit one > for -m64 code.  I believe you want lwpintrin.h to provide one intrinsic, > not three, it takes a void * argument anyway in all 3 cases.  What would be > an intrinsic that just uses some lower bits from the pointer good for? > Why should a user care whether the pointer is 32-bit or 64-bit or 16-bit? > > What could make some very limited sense is when that void * pointer is > initialized through say movl symbol, %edx use the 32-bit insn even for -m64 > code to save one byte, but 1) I doubt it is worth writing the peepholes > 2) you don't want to let the user make this decision, instead you want the > compiler to decide (if at all).  And 16-bit addresses aren't really useful > at all. Ok. I simplified the lwpintrin.h file and the LWP insns patterns like this. Sebastian