RFC: More ia64 intrinsics

H. J. Lu hjl@lucon.org
Fri Jun 20 20:00:00 GMT 2003


On Thu, Jun 19, 2003 at 09:12:29PM -0700, Mark Mitchell wrote:
> On Thu, 2003-06-19 at 19:19, H. J. Lu wrote:
> > Intel C++ compiler defines quite a few intrinsics for ia64:
> > 
> > http://www.tacc.utexas.edu/resources/user_guides/intel/c_ug/
> > 
> > There are 4 categories of intrinsics:
> > 
> > 1. Native intrinsics.
> > 2. Lock and atomic operation related intrinsics
> > 3. Operating system related intrinsics.
> > 4. MMX/SSE intrinsics.
> > 
> > I don't know how useful MMX/SSE intrinsics for ia64 are. But #1, #2
> > and #3 are useful in user space and kernel. I'd like to submit a
> > patch to provide the same functionality. However, I am not sure if
> > gcc should use the same intrinsic names like
> > 
> > long _InterlockedIncrement(long *addend)
> > 
> > Increment the addend by one atomically. Maps to the fetchadd4
> > instruction.
> 
> I think we should just use the Intel names.  There's no need to be
> gratuitously incompatible.

Ok, I will do that. There is another issue. Intel intrinsics uses
__int64 for 64bit integer type. It is used in

unsigned __int64
const __int64

I can't use typedef. I can do

#define __int64 long long

But I don't know if it is a good idea. __int64 is a builtin type in
Intel compiler so that it isn't a problem. Any suggestions?


H.J.



More information about the Gcc mailing list