[PATCH] D13015: [X86] Make f16c intrinsics accessible through emmintrin.h, per Intel docs

Kuperstein, Michael M via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 30 23:23:40 PST 2015


Hi Paul,

I'd rather not move them into immintrin.h. The current situation is that if you include emmintrin.h you get "too many" intrinsics w.r.t to the Intel docs (and immintrin.h is just right, since it recursively includes emmintrin.h), while if we move it to immintrin.h, including emmintrin.h would provide "not enough" intrinsics. So, in terms of compatibility, I think this is slightly better.
Regarding MSVC and GCC - MSVC doesn't have an emmintrin.h (or any other specialized intrinsic file) and puts everything in immintrin.h. GCC, in my opinion, should probably also be fixed. :-)

On the other hand, I undersand why providing _mm256 stuff in emmintrin.h may be a problem. Perhaps we can split the file in two (or move the relevant intrinsics directly into emm/immintrin)?
That would means our header structure is slightly different from GCC's, but since this file should not be included directly anyway, that doesn't really bother me.
Does that sound reasonable to you?

Michael

-----Original Message-----
From: Paul Robinson [mailto:Paul_Robinson at playstation.sony.com] 
Sent: Monday, November 30, 2015 23:01
To: Kuperstein, Michael M; Badouh, Asaf
Cc: cfe-commits at lists.llvm.org
Subject: Re: [PATCH] D13015: [X86] Make f16c intrinsics accessible through emmintrin.h, per Intel docs

probinson added a subscriber: probinson.
probinson added a comment.

Regarding _mm[256]_cvtps_ph and ...cvtph_ps, I can find an Intel doc that say the _mm_* functions are in emmintrin.h and the _mm256_* are in immintrin.h, so putting them all with emmintrin.h is not consistent with what Intel says.  I can find a Microsoft doc that say these are all available with immintrin.h (not emmintrin.h).  It looks like gcc puts them with immintrin.h also.

Can we move the #include of f16cintrin.h from emmintrin.h to immintrin.h?  It would be more compatible with everybody else, and equally inconsistent with Intel's doc AFAICT.


Repository:
  rL LLVM

http://reviews.llvm.org/D13015



---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the cfe-commits mailing list