[cfe-dev] The intrinsics headers (especially avx512) are too big. What to do about it?

Demikhovsky, Elena via cfe-dev cfe-dev at lists.llvm.org
Tue May 17 06:49:57 PDT 2016


   >Indeed. It is not clear to me, however, that this situation is desirable. We
   >had a general policy that our intrinsics headers should generate generic IR
   >whenever possible, and if we've strayed from that, we should discuss that
   >first.

Let's take a look at this intrinsic:

static __inline__ __m512i __DEFAULT_FN_ATTRS
_mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
{
  return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
             (__v8di) __B,
             (__v8di) __W,
             (__mmask8) __U);
}

The IR that should be generated:
%C = add <8 x double> %B, %A
%res = select <8 x i1> %mask, <8 x double> %C, %W

If we parse __builtin_ia32_paddq512_mask in CGBuiltin.cpp and generate IR there, will it help?

(Please do not consider my question as a general Intel solution. I just want to understand the problem.)

Thanks.

-  Elena

---------------------------------------------------------------------
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-dev mailing list