<div dir="ltr">Fixed in r286738.</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div>
<br><div class="gmail_quote">On Sat, Nov 12, 2016 at 4:41 PM, Craig Topper <span dir="ltr"><<a href="mailto:craig.topper@gmail.com" target="_blank">craig.topper@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">It was an accident. Thanks for catching. I'll fix right away.</div><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br clear="all"><div><div class="m_-3812221718745244971gmail_signature" data-smartmail="gmail_signature">~Craig</div></div></font></span><div><div class="h5">
<br><div class="gmail_quote">On Sat, Nov 12, 2016 at 4:09 PM, Yung, Douglas <span dir="ltr"><<a href="mailto:douglas.yung@sony.com" target="_blank">douglas.yung@sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Craig,<br>
<br>
One of our internal tests noticed a potential issue with your change that I wanted to see if you were aware of in the file avx512bwintrin.h.<br>
<br>
Specifically, you converted _mm512_slli_epi16, _mm512_srai_epi16, _mm512_srli_epi16 from macros into actual functions, but the functions don't return anything despite having a non-void return type. I suspect this is a typo and that you meant to return the value computed?<br>
<br>
For example, here is the implementation of _mm512_slli_epi16 as of r286713:<br>
<br>
#define _mm512_slli_epi16(A, B) __extension__ ({ \<br>
  (__m512i)__builtin_ia32_psllwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>, (int)(B), \<br>
                                         (__v32hi)_mm512_setzero_hi(), \<br>
                                         (__mmask32)-1); })<br>
<br>
New implementation as of r286714:<br>
<br>
static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
_mm512_slli_epi16(__m512i __A, int __B)<br>
{<br>
  (__m512i)__builtin_ia32_psllwi<wbr>512((__v32hi)__A, __B);<br>
}<br>
<br>
The implementations of _mm512_srai_epi16 and _mm512_srli_epi16 are similar. Was this intentional?<br>
<br>
Douglas Yung<br>
<br>
> -----Original Message-----<br>
> From: cfe-commits [mailto:<a href="mailto:cfe-commits-bounces@lists.llvm.org" target="_blank">cfe-commits-bounces@li<wbr>sts.llvm.org</a>] On Behalf<br>
> Of Craig Topper via cfe-commits<br>
> Sent: Friday, November 11, 2016 23:17<br>
> To: <a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
> Subject: r286714 - [AVX-512] Convert the rest of the masked shift by<br>
> immediate and by single element builtins over to the newly added<br>
> unmasked builtins and a select.<br>
><br>
> Author: ctopper<br>
> Date: Sat Nov 12 01:16:59 2016<br>
> New Revision: 286714<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=286714&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=286714&view=rev</a><br>
> Log:<br>
> [AVX-512] Convert the rest of the masked shift by immediate and by<br>
> single element builtins over to the newly added unmasked builtins and a<br>
> select.<br>
><br>
> This should also fix PR30691 since the new builtins are handled like<br>
> the legacy builtins in the backend.<br>
><br>
> Modified:<br>
>     cfe/trunk/include/clang/<wbr>Basic/BuiltinsX86.def<br>
>     cfe/trunk/lib/Headers/avx512b<wbr>wintrin.h<br>
>     cfe/trunk/lib/Headers/avx512f<wbr>intrin.h<br>
>     cfe/trunk/lib/Headers/avx512v<wbr>lintrin.h<br>
>     cfe/trunk/lib/Sema/SemaChecki<wbr>ng.cpp<br>
>     cfe/trunk/test/CodeGen/avx512<wbr>bw-builtins.c<br>
>     cfe/trunk/test/CodeGen/avx512<wbr>f-builtins.c<br>
>     cfe/trunk/test/CodeGen/avx512<wbr>vl-builtins.c<br>
><br>
> Modified: cfe/trunk/include/clang/Basic/<wbr>BuiltinsX86.def<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/include/clan<wbr>g/Basic/BuiltinsX86.def?rev=<wbr>286714&r1=286<br>
> 713&r2=286714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/include/clang/Basic/<wbr>BuiltinsX86.def (original)<br>
> +++ cfe/trunk/include/clang/Basic/<wbr>BuiltinsX86.def Sat Nov 12 01:16:59<br>
> 2016<br>
> @@ -1359,26 +1359,26 @@ TARGET_BUILTIN(__builtin_ia32_<wbr>prorvd256_<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>prorvq128_mask,<br>
> "V2LLiV2LLiV2LLiV2LLiUc","","a<wbr>vx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>prorvq256_mask,<br>
> "V4LLiV4LLiV4LLiV4LLiUc","","a<wbr>vx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psllv32hi_mask,<br>
> "V32sV32sV32sV32sUi","","avx51<wbr>2bw")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psllw512_mask,<br>
> "V32sV32sV8sV32sUi","","avx512<wbr>bw")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psllwi512_mask,<br>
> "V32sV32sIiV32sUi","","avx512b<wbr>w")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psllw512, "V32sV32sV8s","","avx512bw")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psllwi512, "V32sV32si","","avx512bw")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psllv16hi_mask,<br>
> "V16sV16sV16sV16sUs","","avx51<wbr>2bw,avx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psllv8hi_mask,<br>
> "V8sV8sV8sV8sUc","","avx512bw,<wbr>avx512vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_pslldi512_mask,<br>
> "V16iV16iIiV16iUs","","avx512f<wbr>")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psllqi512_mask,<br>
> "V8LLiV8LLiIiV8LLiUc","","avx5<wbr>12f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_pslldi512, "V16iV16ii","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psllqi512, "V8LLiV8LLii","","avx512f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrlv32hi_mask,<br>
> "V32sV32sV32sV32sUi","","avx51<wbr>2bw")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrlv16hi_mask,<br>
> "V16sV16sV16sV16sUs","","avx51<wbr>2bw,avx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrlv8hi_mask,<br>
> "V8sV8sV8sV8sUc","","avx512bw,<wbr>avx512vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrldi512_mask,<br>
> "V16iV16iIiV16iUs","","avx512f<wbr>")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrlqi512_mask,<br>
> "V8LLiV8LLiIiV8LLiUc","","avx5<wbr>12f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrldi512, "V16iV16ii","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrlqi512, "V8LLiV8LLii","","avx512f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrav32hi_mask,<br>
> "V32sV32sV32sV32sUi","","avx51<wbr>2bw")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrav16hi_mask,<br>
> "V16sV16sV16sV16sUs","","avx51<wbr>2bw,avx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrav8hi_mask,<br>
> "V8sV8sV8sV8sUc","","avx512bw,<wbr>avx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psravq128_mask,<br>
> "V2LLiV2LLiV2LLiV2LLiUc","","a<wbr>vx512vl")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psravq256_mask,<br>
> "V4LLiV4LLiV4LLiV4LLiUc","","a<wbr>vx512vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraw512_mask,<br>
> "V32sV32sV8sV32sUi","","avx512<wbr>bw")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrawi512_mask,<br>
> "V32sV32sIiV32sUi","","avx512b<wbr>w")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrlw512_mask,<br>
> "V32sV32sV8sV32sUi","","avx512<wbr>bw")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrlwi512_mask,<br>
> "V32sV32sIiV32sUi","","avx512b<wbr>w")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraw512, "V32sV32sV8s","","avx512bw")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrawi512, "V32sV32si","","avx512bw")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrlw512, "V32sV32sV8s","","avx512bw")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrlwi512, "V32sV32si","","avx512bw")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>movdqa32load128_mask,<br>
> "V4iV4i*V4iUc","","avx512f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>movdqa32load256_mask,<br>
> "V8iV8i*V8iUc","","avx512f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>movdqa32load512_mask,<br>
> "V16iV16iC*V16iUs","","avx512f<wbr>")<br>
> @@ -1539,22 +1539,22 @@ TARGET_BUILTIN(__builtin_ia32_<wbr>scalefpd51<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>scalefps512_mask,<br>
> "V16fV16fV16fV16fUsIi","","avx<wbr>512f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>scalefsd_round_mask,<br>
> "V2dV2dV2dV2dUcIi","","avx512f<wbr>")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>scalefss_round_mask,<br>
> "V4fV4fV4fV4fUcIi","","avx512f<wbr>")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psradi512_mask,<br>
> "V16iV16iIiV16iUs","","avx512f<wbr>")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraqi512_mask,<br>
> "V8LLiV8LLiIiV8LLiUc","","avx5<wbr>12f")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraq128_mask,<br>
> "V2LLiV2LLiV2LLiV2LLiUc","","a<wbr>vx512vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraq256_mask,<br>
> "V4LLiV4LLiV2LLiV4LLiUc","","a<wbr>vx512vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraqi128_mask,<br>
> "V2LLiV2LLiIiV2LLiUc","","avx5<wbr>12vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraqi256_mask,<br>
> "V4LLiV4LLiIiV4LLiUc","","avx5<wbr>12vl")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_pslld512_mask,<br>
> "V16iV16iV4iV16iUs","","avx512<wbr>f")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psllq512_mask,<br>
> "V8LLiV8LLiV2LLiV8LLiUc","","a<wbr>vx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psradi512, "V16iV16ii","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraqi512, "V8LLiV8LLii","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraq128,<br>
> "V2LLiV2LLiV2LLi","","avx512vl<wbr>")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraq256,<br>
> "V4LLiV4LLiV2LLi","","avx512vl<wbr>")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraqi128, "V2LLiV2LLii","","avx512vl")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraqi256, "V4LLiV4LLii","","avx512vl")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_pslld512, "V16iV16iV4i","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psllq512,<br>
> "V8LLiV8LLiV2LLi","","avx512f"<wbr>)<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psllv16si_mask,<br>
> "V16iV16iV16iV16iUs","","avx51<wbr>2f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psllv8di_mask,<br>
> "V8LLiV8LLiV8LLiV8LLiUc","","a<wbr>vx512f")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrad512_mask,<br>
> "V16iV16iV4iV16iUs","","avx512<wbr>f")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psraq512_mask,<br>
> "V8LLiV8LLiV2LLiV8LLiUc","","a<wbr>vx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrad512, "V16iV16iV4i","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psraq512,<br>
> "V8LLiV8LLiV2LLi","","avx512f"<wbr>)<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrav16si_mask,<br>
> "V16iV16iV16iV16iUs","","avx51<wbr>2f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrav8di_mask,<br>
> "V8LLiV8LLiV8LLiV8LLiUc","","a<wbr>vx512f")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrld512_mask,<br>
> "V16iV16iV4iV16iUs","","avx512<wbr>f")<br>
> -TARGET_BUILTIN(__builtin_ia32<wbr>_psrlq512_mask,<br>
> "V8LLiV8LLiV2LLiV8LLiUc","","a<wbr>vx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrld512, "V16iV16iV4i","","avx512f")<br>
> +TARGET_BUILTIN(__builtin_ia32<wbr>_psrlq512,<br>
> "V8LLiV8LLiV2LLi","","avx512f"<wbr>)<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrlv16si_mask,<br>
> "V16iV16iV16iV16iUs","","avx51<wbr>2f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>psrlv8di_mask,<br>
> "V8LLiV8LLiV8LLiV8LLiUc","","a<wbr>vx512f")<br>
>  TARGET_BUILTIN(__builtin_ia32_<wbr>pternlogd512_mask,<br>
> "V16iV16iV16iV16iIiUs","","avx<wbr>512f")<br>
><br>
> Modified: cfe/trunk/lib/Headers/avx512bw<wbr>intrin.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/lib/Headers/<wbr>avx512bwintrin.h?rev=286714&r1<wbr>=286713&r2=<br>
> 286714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/lib/Headers/avx512bw<wbr>intrin.h (original)<br>
> +++ cfe/trunk/lib/Headers/avx512bw<wbr>intrin.h Sat Nov 12 01:16:59 2016<br>
> @@ -1718,49 +1718,48 @@ _mm512_maskz_sllv_epi16 (__mmask32 __U,<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_sll_epi16 (__m512i __A, __m128i __B)<br>
> +_mm512_sll_epi16(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi)<br>
> -             _mm512_setzero_hi (),<br>
> -             (__mmask32) -1);<br>
> +  return (__m512i)__builtin_ia32_psllw5<wbr>12((__v32hi) __A, (__v8hi)<br>
> __B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A,<br>
> -           __m128i __B)<br>
> +_mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi) __W,<br>
> -             (__mmask32) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_sll_epi16(__A, __B), \<br>
> +                                          (__v32hi)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_sll_epi16(__mmas<wbr>k32 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi)<br>
> -             _mm512_setzero_hi (),<br>
> -             (__mmask32) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_sll_epi16(__A, __B), \<br>
> +<br>
> (__v32hi)_mm512_setzero_hi());<br>
>  }<br>
><br>
> -#define _mm512_slli_epi16(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psllwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v32hi)_mm512_setzero_hi(),<br>
> \<br>
> -                                         (__mmask32)-1); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_slli_epi16(__m512i __A, int __B)<br>
> +{<br>
> +  (__m512i)__builtin_ia32_psllwi<wbr>512((__v32hi)__A, __B);<br>
> +}<br>
><br>
> -#define _mm512_mask_slli_epi16(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psllwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v32hi)(__m512i)(W), \<br>
> -                                         (__mmask32)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_slli_epi16(__m512<wbr>i __W, __mmask32 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_slli_epi16(__A<wbr>, __B), \<br>
> +                                         (__v32hi)__W);<br>
> +}<br>
><br>
> -#define _mm512_maskz_slli_epi16(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psllwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v32hi)_mm512_setzero_hi(),<br>
> \<br>
> -                                         (__mmask32)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_slli_epi16(__mma<wbr>sk32 __U, __m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_slli_epi16(__A<wbr>, __B), \<br>
> +<br>
> (__v32hi)_mm512_setzero_hi());<br>
> +}<br>
><br>
>  #define _mm512_bslli_epi128(a, imm) __extension__ ({ \<br>
>    (__m512i)__builtin_shufflevect<wbr>or(<br>
> \<br>
> @@ -1892,95 +1891,92 @@ _mm512_maskz_srav_epi16 (__mmask32 __U,<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_sra_epi16 (__m512i __A, __m128i __B)<br>
> +_mm512_sra_epi16(__m512i __A, __m128i __B)<br>
>  {<br>
> - return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi)<br>
> -             _mm512_setzero_hi (),<br>
> -             (__mmask32) -1);<br>
> +  return (__m512i)__builtin_ia32_psraw5<wbr>12((__v32hi) __A, (__v8hi)<br>
> __B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A,<br>
> -           __m128i __B)<br>
> +_mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi) __W,<br>
> -            (__mmask32) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_sra_epi16(__A, __B), \<br>
> +                                          (__v32hi)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_sra_epi16(__mmas<wbr>k32 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi)<br>
> -             _mm512_setzero_hi (),<br>
> -            (__mmask32) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_sra_epi16(__A, __B), \<br>
> +<br>
> (__v32hi)_mm512_setzero_hi());<br>
>  }<br>
><br>
> -#define _mm512_srai_epi16(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrawi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v32hi)_mm512_setzero_hi(),<br>
> \<br>
> -                                         (__mmask32)-1); })<br>
> -<br>
> -#define _mm512_mask_srai_epi16(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrawi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v32hi)(__m512i)(W), \<br>
> -                                         (__mmask32)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_srai_epi16(__m512i __A, int __B)<br>
> +{<br>
> +  (__m512i)__builtin_ia32_psrawi<wbr>512((__v32hi)__A, __B);<br>
> +}<br>
><br>
> -#define _mm512_maskz_srai_epi16(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrawi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v32hi)_mm512_setzero_hi(),<br>
> \<br>
> -                                         (__mmask32)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_srai_epi16(__m512<wbr>i __W, __mmask32 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_srai_epi16(__A<wbr>, __B), \<br>
> +                                         (__v32hi)__W);<br>
> +}<br>
><br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_srai_epi16(__mma<wbr>sk32 __U, __m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_srai_epi16(__A<wbr>, __B), \<br>
> +<br>
> (__v32hi)_mm512_setzero_hi());<br>
> +}<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_srl_epi16 (__m512i __A, __m128i __B)<br>
> +_mm512_srl_epi16(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi)<br>
> -             _mm512_setzero_hi (),<br>
> -             (__mmask32) -1);<br>
> +  return (__m512i)__builtin_ia32_psrlw5<wbr>12((__v32hi) __A, (__v8hi)<br>
> __B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A,<br>
> -           __m128i __B)<br>
> +_mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi) __W,<br>
> -             (__mmask32) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_srl_epi16(__A, __B), \<br>
> +                                          (__v32hi)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_srl_epi16(__mmas<wbr>k32 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A,<br>
> -             (__v8hi) __B,<br>
> -             (__v32hi)<br>
> -             _mm512_setzero_hi (),<br>
> -             (__mmask32) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_srl_epi16(__A, __B), \<br>
> +<br>
> (__v32hi)_mm512_setzero_hi());<br>
>  }<br>
><br>
> -#define _mm512_srli_epi16(A, imm) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrlwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(imm), \<br>
> -                                         (__v32hi)_mm512_setzero_hi(),<br>
> \<br>
> -                                         (__mmask32)-1); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_srli_epi16(__m512i __A, int __B)<br>
> +{<br>
> +  (__m512i)__builtin_ia32_psrlwi<wbr>512((__v32hi)__A, __B);<br>
> +}<br>
><br>
> -#define _mm512_mask_srli_epi16(W, U, A, imm) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrlwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(imm), \<br>
> -                                         (__v32hi)(__m512i)(W), \<br>
> -                                         (__mmask32)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_srli_epi16(__m512<wbr>i __W, __mmask32 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_srli_epi16(__A<wbr>, __B), \<br>
> +                                         (__v32hi)__W);<br>
> +}<br>
><br>
> -#define _mm512_maskz_srli_epi16(U, A, imm) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrlwi<wbr>512_mask((__v32hi)(__m512i)(A)<wbr>,<br>
> (int)(imm), \<br>
> -                                         (__v32hi)_mm512_setzero_hi(),<br>
> \<br>
> -                                         (__mmask32)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_srli_epi16(__mma<wbr>sk32 __U, __m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>w_512((__mmask32)__U, \<br>
> +<br>
> (__v32hi)_mm512_srli_epi16(__A<wbr>, __B), \<br>
> +<br>
> (__v32hi)_mm512_setzero_hi());<br>
> +}<br>
><br>
>  #define _mm512_bsrli_epi128(a, imm) __extension__ ({ \<br>
>    (__m512i)__builtin_shufflevect<wbr>or(                     \<br>
><br>
> Modified: cfe/trunk/lib/Headers/avx512fi<wbr>ntrin.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/lib/Headers/<wbr>avx512fintrin.h?rev=286714&r1=<wbr>286713&r2=2<br>
> 86714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/lib/Headers/avx512fi<wbr>ntrin.h (original)<br>
> +++ cfe/trunk/lib/Headers/avx512fi<wbr>ntrin.h Sat Nov 12 01:16:59 2016<br>
> @@ -5457,67 +5457,91 @@ _mm512_maskz_rolv_epi64 (__mmask8 __U, _<br>
><br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
>                                          (__mmask8)(U)); })<br>
><br>
> -#define _mm512_slli_epi32(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_pslldi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -<br>
> (__v16si)_mm512_setzero_si512(<wbr>), \<br>
> -                                         (__mmask16)-1); })<br>
> -<br>
> -#define _mm512_mask_slli_epi32(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_pslldi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v16si)(__m512i)(W), \<br>
> -                                         (__mmask16)(U)); })<br>
> -<br>
> -#define _mm512_maskz_slli_epi32(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_pslldi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -<br>
> (__v16si)_mm512_setzero_si512(<wbr>), \<br>
> -                                         (__mmask16)(U)); })<br>
> -<br>
> -#define _mm512_slli_epi64(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psllqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -<br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
> -                                         (__mmask8)-1); })<br>
> -<br>
> -#define _mm512_mask_slli_epi64(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psllqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -                                         (__v8di)(__m512i)(W), \<br>
> -                                         (__mmask8)(U)); })<br>
> -<br>
> -#define _mm512_maskz_slli_epi64(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psllqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -<br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_slli_epi32(__m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_pslldi<wbr>512((__v16si)__A, __B);<br>
> +}<br>
><br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_slli_epi32(__m512<wbr>i __W, __mmask16 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_slli_epi32(__A<wbr>, __B), \<br>
> +                                         (__v16si)__W);<br>
> +}<br>
><br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_slli_epi32(__mma<wbr>sk16 __U, __m512i __A, int __B) {<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_slli_epi32(__A<wbr>, __B), \<br>
> +<br>
> (__v16si)_mm512_setzero_si512(<wbr>));<br>
> +}<br>
><br>
> -#define _mm512_srli_epi32(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrldi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -<br>
> (__v16si)_mm512_setzero_si512(<wbr>), \<br>
> -                                         (__mmask16)-1); })<br>
> -<br>
> -#define _mm512_mask_srli_epi32(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrldi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v16si)(__m512i)(W), \<br>
> -                                         (__mmask16)(U)); })<br>
> -<br>
> -#define _mm512_maskz_srli_epi32(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrldi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -<br>
> (__v16si)_mm512_setzero_si512(<wbr>), \<br>
> -                                         (__mmask16)(U)); })<br>
> -<br>
> -#define _mm512_srli_epi64(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrlqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -<br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
> -                                         (__mmask8)-1); })<br>
> -<br>
> -#define _mm512_mask_srli_epi64(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrlqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -                                         (__v8di)(__m512i)(W), \<br>
> -                                         (__mmask8)(U)); })<br>
> -<br>
> -#define _mm512_maskz_srli_epi64(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psrlqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -<br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_slli_epi64(__m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_psllqi<wbr>512((__v8di)__A, __B);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_slli_epi64(__m512<wbr>i __W, __mmask8 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_slli_epi64(__A, __B), \<br>
> +                                          (__v8di)__W);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_slli_epi64(__mma<wbr>sk8 __U, __m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_slli_epi64(__A, __B), \<br>
> +<br>
> (__v8di)_mm512_setzero_si512()<wbr>);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_srli_epi32(__m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_psrldi<wbr>512((__v16si)__A, __B);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_srli_epi32(__m512<wbr>i __W, __mmask16 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_srli_epi32(__A<wbr>, __B), \<br>
> +                                         (__v16si)__W);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_srli_epi32(__mma<wbr>sk16 __U, __m512i __A, int __B) {<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_srli_epi32(__A<wbr>, __B), \<br>
> +<br>
> (__v16si)_mm512_setzero_si512(<wbr>));<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_srli_epi64(__m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_psrlqi<wbr>512((__v8di)__A, __B);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_srli_epi64(__m512<wbr>i __W, __mmask8 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_srli_epi64(__A, __B), \<br>
> +                                          (__v8di)__W);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_srli_epi64(__mma<wbr>sk8 __U, __m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_srli_epi64(__A, __B), \<br>
> +<br>
> (__v8di)_mm512_setzero_si512()<wbr>);<br>
> +}<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
>  _mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P)<br>
> @@ -5992,61 +6016,47 @@ _mm512_mask2_permutex2var_epi3<wbr>2 (__m512i<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_sll_epi32 (__m512i __A, __m128i __B)<br>
> +_mm512_sll_epi32(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask16) -1);<br>
> +  return (__m512i)__builtin_ia32_pslld5<wbr>12((__v16si) __A, (__v4si)__B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A,<br>
> __m128i __B)<br>
> +_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si) __W,<br>
> -             (__mmask16) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_sll_epi32(__A, __B), \<br>
> +                                          (__v16si)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_sll_epi32(__mmas<wbr>k16 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask16) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_sll_epi32(__A, __B), \<br>
> +<br>
> (__v16si)_mm512_setzero_si512(<wbr>));<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_sll_epi64 (__m512i __A, __m128i __B)<br>
> +_mm512_sll_epi64(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask8) -1);<br>
> +  return (__m512i)__builtin_ia32_psllq5<wbr>12((__v8di)__A, (__v2di)__B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i<br>
> __B)<br>
> +_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di) __W,<br>
> -             (__mmask8) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_sll_epi64(__A, __B), \<br>
> +                                           (__v8di)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_sll_epi64(__mmas<wbr>k8 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask8) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_sll_epi64(__A, __B), \<br>
> +<br>
> (__v8di)_mm512_setzero_si512()<wbr>);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> @@ -6108,61 +6118,47 @@ _mm512_maskz_sllv_epi64 (__mmask8 __U, _<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_sra_epi32 (__m512i __A, __m128i __B)<br>
> +_mm512_sra_epi32(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask16) -1);<br>
> +  return (__m512i)__builtin_ia32_psrad5<wbr>12((__v16si) __A, (__v4si)__B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A,<br>
> __m128i __B)<br>
> +_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si) __W,<br>
> -             (__mmask16) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_sra_epi32(__A, __B), \<br>
> +                                          (__v16si)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_sra_epi32(__mmas<wbr>k16 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask16) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_sra_epi32(__A, __B), \<br>
> +<br>
> (__v16si)_mm512_setzero_si512(<wbr>));<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_sra_epi64 (__m512i __A, __m128i __B)<br>
> +_mm512_sra_epi64(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask8) -1);<br>
> +  return (__m512i)__builtin_ia32_psraq5<wbr>12((__v8di)__A, (__v2di)__B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i<br>
> __B)<br>
> +_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di) __W,<br>
> -             (__mmask8) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_sra_epi64(__A, __B), \<br>
> +                                           (__v8di)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_sra_epi64(__mmas<wbr>k8 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask8) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_sra_epi64(__A, __B), \<br>
> +<br>
> (__v8di)_mm512_setzero_si512()<wbr>);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> @@ -6224,61 +6220,47 @@ _mm512_maskz_srav_epi64 (__mmask8 __U, _<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_srl_epi32 (__m512i __A, __m128i __B)<br>
> +_mm512_srl_epi32(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask16) -1);<br>
> +  return (__m512i)__builtin_ia32_psrld5<wbr>12((__v16si) __A, (__v4si)__B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A,<br>
> __m128i __B)<br>
> +_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si) __W,<br>
> -             (__mmask16) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_srl_epi32(__A, __B), \<br>
> +                                          (__v16si)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_srl_epi32(__mmas<wbr>k16 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,<br>
> -             (__v4si) __B,<br>
> -             (__v16si)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask16) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_srl_epi32(__A, __B), \<br>
> +<br>
> (__v16si)_mm512_setzero_si512(<wbr>));<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_srl_epi64 (__m512i __A, __m128i __B)<br>
> +_mm512_srl_epi64(__m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask8) -1);<br>
> +  return (__m512i)__builtin_ia32_psrlq5<wbr>12((__v8di)__A, (__v2di)__B);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i<br>
> __B)<br>
> +_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di) __W,<br>
> -             (__mmask8) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_srl_epi64(__A, __B), \<br>
> +                                           (__v8di)__W);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> -_mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)<br>
> +_mm512_maskz_srl_epi64(__mmas<wbr>k8 __U, __m512i __A, __m128i __B)<br>
>  {<br>
> -  return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v8di)<br>
> -             _mm512_setzero_si512 (),<br>
> -             (__mmask8) __U);<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_srl_epi64(__A, __B), \<br>
> +<br>
> (__v8di)_mm512_setzero_si512()<wbr>);<br>
>  }<br>
><br>
>  static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> @@ -7110,35 +7092,48 @@ _mm_maskz_scalef_ss (__mmask8 __U, __m12<br>
>                                               (__mmask8)(U), \<br>
><br>
> _MM_FROUND_CUR_DIRECTION); })<br>
><br>
> -#define _mm512_srai_epi32(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psradi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -<br>
> (__v16si)_mm512_setzero_si512(<wbr>), \<br>
> -                                         (__mmask16)-1); })<br>
> -<br>
> -#define _mm512_mask_srai_epi32(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psradi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -                                         (__v16si)(__m512i)(W), \<br>
> -                                         (__mmask16)(U)); })<br>
> -<br>
> -#define _mm512_maskz_srai_epi32(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psradi<wbr>512_mask((__v16si)(__m512i)(A)<wbr>,<br>
> (int)(B), \<br>
> -<br>
> (__v16si)_mm512_setzero_si512(<wbr>), \<br>
> -                                         (__mmask16)(U)); })<br>
> -<br>
> -#define _mm512_srai_epi64(A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psraqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -<br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
> -                                         (__mmask8)-1); })<br>
> -<br>
> -#define _mm512_mask_srai_epi64(W, U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psraqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -                                         (__v8di)(__m512i)(W), \<br>
> -                                         (__mmask8)(U)); })<br>
> -<br>
> -#define _mm512_maskz_srai_epi64(U, A, B) __extension__ ({ \<br>
> -  (__m512i)__builtin_ia32_psraqi<wbr>512_mask((__v8di)(__m512i)(A),<br>
> (int)(B), \<br>
> -<br>
> (__v8di)_mm512_setzero_si512()<wbr>, \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_srai_epi32(__m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_psradi<wbr>512((__v16si)__A, __B);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_srai_epi32(__m512<wbr>i __W, __mmask16 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_srai_epi32(__A<wbr>, __B), \<br>
> +                                         (__v16si)__W);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_srai_epi32(__mma<wbr>sk16 __U, __m512i __A, int __B) {<br>
> +  return (__m512i)__builtin_ia32_select<wbr>d_512((__mmask16)__U, \<br>
> +<br>
> (__v16si)_mm512_srai_epi32(__A<wbr>, __B), \<br>
> +<br>
> (__v16si)_mm512_setzero_si512(<wbr>));<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_srai_epi64(__m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_psraqi<wbr>512((__v8di)__A, __B);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_mask_srai_epi64(__m512<wbr>i __W, __mmask8 __U, __m512i __A, int<br>
> __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_srai_epi64(__A, __B), \<br>
> +                                          (__v8di)__W);<br>
> +}<br>
> +<br>
> +static __inline__ __m512i __DEFAULT_FN_ATTRS<br>
> +_mm512_maskz_srai_epi64(__mma<wbr>sk8 __U, __m512i __A, int __B)<br>
> +{<br>
> +  return (__m512i)__builtin_ia32_select<wbr>q_512((__mmask8)__U, \<br>
> +<br>
> (__v8di)_mm512_srai_epi64(__A, __B), \<br>
> +<br>
> (__v8di)_mm512_setzero_si512()<wbr>);<br>
> +}<br>
><br>
>  #define _mm512_shuffle_f32x4(A, B, imm) __extension__ ({ \<br>
>    (__m512)__builtin_ia32_shuf_f3<wbr>2x4_mask((__v16sf)(__m512)(A), \<br>
><br>
> Modified: cfe/trunk/lib/Headers/avx512vl<wbr>intrin.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/lib/Headers/<wbr>avx512vlintrin.h?rev=286714&r1<wbr>=286713&r2=<br>
> 286714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/lib/Headers/avx512vl<wbr>intrin.h (original)<br>
> +++ cfe/trunk/lib/Headers/avx512vl<wbr>intrin.h Sat Nov 12 01:16:59 2016<br>
> @@ -6845,94 +6845,92 @@ _mm256_maskz_srai_epi32(__mmas<wbr>k8 __U, __<br>
>  }<br>
><br>
>  static __inline__ __m128i __DEFAULT_FN_ATTRS<br>
> -_mm_sra_epi64 (__m128i __A, __m128i __B)<br>
> +_mm_sra_epi64(__m128i __A, __m128i __B)<br>
>  {<br>
> -  return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v2di)<br>
> -             _mm_setzero_di (),<br>
> -             (__mmask8) -1);<br>
> +  return (__m128i)__builtin_ia32_psraq1<wbr>28((__v2di)__A, (__v2di)__B);<br>
>  }<br>
><br>
>  static __inline__ __m128i __DEFAULT_FN_ATTRS<br>
> -_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,<br>
> -        __m128i __B)<br>
> +_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v2di) __W,<br>
> -             (__mmask8) __U);<br>
> +  return (__m128i)__builtin_ia32_select<wbr>q_128((__mmask8)__U, \<br>
> +<br>
> (__v2di)_mm_sra_epi64(__A, __B), \<br>
> +                                             (__v2di)__W);<br>
>  }<br>
><br>
>  static __inline__ __m128i __DEFAULT_FN_ATTRS<br>
> -_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)<br>
> +_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B)<br>
>  {<br>
> -  return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v2di)<br>
> -             _mm_setzero_di (),<br>
> -             (__mmask8) __U);<br>
> +  return (__m128i)__builtin_ia32_select<wbr>q_128((__mmask8)__U, \<br>
> +<br>
> (__v2di)_mm_sra_epi64(__A, __B), \<br>
> +<br>
> (__v2di)_mm_setzero_di());<br>
>  }<br>
><br>
>  static __inline__ __m256i __DEFAULT_FN_ATTRS<br>
> -_mm256_sra_epi64 (__m256i __A, __m128i __B)<br>
> +_mm256_sra_epi64(__m256i __A, __m128i __B)<br>
>  {<br>
> -  return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v4di)<br>
> -             _mm256_setzero_si256 (),<br>
> -             (__mmask8) -1);<br>
> +  return (__m256i)__builtin_ia32_psraq2<wbr>56((__v4di) __A, (__v2di) __B);<br>
>  }<br>
><br>
>  static __inline__ __m256i __DEFAULT_FN_ATTRS<br>
> -_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,<br>
> -           __m128i __B)<br>
> +_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i<br>
> __B)<br>
>  {<br>
> -  return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v4di) __W,<br>
> -             (__mmask8) __U);<br>
> +  return (__m256i)__builtin_ia32_select<wbr>q_256((__mmask8)__U, \<br>
> +<br>
> (__v4di)_mm256_sra_epi64(__A, __B), \<br>
> +                                           (__v4di)__W);<br>
>  }<br>
><br>
>  static __inline__ __m256i __DEFAULT_FN_ATTRS<br>
> -_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)<br>
> +_mm256_maskz_sra_epi64(__mmas<wbr>k8 __U, __m256i __A, __m128i __B)<br>
>  {<br>
> -  return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,<br>
> -             (__v2di) __B,<br>
> -             (__v4di)<br>
> -             _mm256_setzero_si256 (),<br>
> -             (__mmask8) __U);<br>
> +  return (__m256i)__builtin_ia32_select<wbr>q_256((__mmask8)__U, \<br>
> +<br>
> (__v4di)_mm256_sra_epi64(__A, __B), \<br>
> +<br>
> (__v4di)_mm256_setzero_si256()<wbr>);<br>
>  }<br>
><br>
> -#define _mm_srai_epi64(A, imm) __extension__ ({ \<br>
> -  (__m128i)__builtin_ia32_psraqi<wbr>128_mask((__v2di)(__m128i)(A),<br>
> (int)(imm), \<br>
> -                                         (__v2di)_mm_setzero_di(), \<br>
> -                                         (__mmask8)-1); })<br>
> +static __inline__ __m128i __DEFAULT_FN_ATTRS<br>
> +_mm_srai_epi64(__m128i __A, int __imm)<br>
> +{<br>
> +  return (__m128i)__builtin_ia32_psraqi<wbr>128((__v2di)__A, __imm);<br>
> +}<br>
><br>
> -#define _mm_mask_srai_epi64(W, U, A, imm) __extension__ ({ \<br>
> -  (__m128i)__builtin_ia32_psraqi<wbr>128_mask((__v2di)(__m128i)(A),<br>
> (int)(imm), \<br>
> -                                         (__v2di)(__m128i)(W), \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m128i __DEFAULT_FN_ATTRS<br>
> +_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __imm)<br>
> +{<br>
> +  return (__m128i)__builtin_ia32_select<wbr>q_128((__mmask8)__U, \<br>
> +                                           (__v2di)_mm_srai_epi64(__A,<br>
> __imm), \<br>
> +                                           (__v2di)__W);<br>
> +}<br>
><br>
> -#define _mm_maskz_srai_epi64(U, A, imm) __extension__ ({ \<br>
> -  (__m128i)__builtin_ia32_psraqi<wbr>128_mask((__v2di)(__m128i)(A),<br>
> (int)(imm), \<br>
> -                                         (__v2di)_mm_setzero_si128(),<br>
> \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m128i __DEFAULT_FN_ATTRS<br>
> +_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A, int __imm)<br>
> +{<br>
> +  return (__m128i)__builtin_ia32_select<wbr>q_128((__mmask8)__U, \<br>
> +                                           (__v2di)_mm_srai_epi64(__A,<br>
> __imm), \<br>
> +                                           (__v2di)_mm_setzero_di());<br>
> +}<br>
><br>
> -#define _mm256_srai_epi64(A, imm) __extension__ ({ \<br>
> -  (__m256i)__builtin_ia32_psraqi<wbr>256_mask((__v4di)(__m256i)(A),<br>
> (int)(imm), \<br>
> -<br>
> (__v4di)_mm256_setzero_si256()<wbr>, \<br>
> -                                         (__mmask8)-1); })<br>
> +static __inline__ __m256i __DEFAULT_FN_ATTRS<br>
> +_mm256_srai_epi64(__m256i __A, int __imm)<br>
> +{<br>
> +  return (__m256i)__builtin_ia32_psraqi<wbr>256((__v4di)__A, __imm);<br>
> +}<br>
><br>
> -#define _mm256_mask_srai_epi64(W, U, A, imm) __extension__ ({ \<br>
> -  (__m256i)__builtin_ia32_psraqi<wbr>256_mask((__v4di)(__m256i)(A),<br>
> (int)(imm), \<br>
> -                                         (__v4di)(__m256i)(W), \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m256i __DEFAULT_FN_ATTRS<br>
> +_mm256_mask_srai_epi64(__m256<wbr>i __W, __mmask8 __U, __m256i __A, int<br>
> __imm)<br>
> +{<br>
> +  return (__m256i)__builtin_ia32_select<wbr>q_256((__mmask8)__U, \<br>
> +                                        (__v4di)_mm256_srai_epi64(__A,<br>
> __imm), \<br>
> +                                        (__v4di)__W);<br>
> +}<br>
><br>
> -#define _mm256_maskz_srai_epi64(U, A, imm) __extension__ ({ \<br>
> -  (__m256i)__builtin_ia32_psraqi<wbr>256_mask((__v4di)(__m256i)(A),<br>
> (int)(imm), \<br>
> -<br>
> (__v4di)_mm256_setzero_si256()<wbr>, \<br>
> -                                         (__mmask8)(U)); })<br>
> +static __inline__ __m256i __DEFAULT_FN_ATTRS<br>
> +_mm256_maskz_srai_epi64(__mma<wbr>sk8 __U, __m256i __A, int __imm)<br>
> +{<br>
> +  return (__m256i)__builtin_ia32_select<wbr>q_256((__mmask8)__U, \<br>
> +                                        (__v4di)_mm256_srai_epi64(__A,<br>
> __imm), \<br>
> +<br>
> (__v4di)_mm256_setzero_si256()<wbr>);<br>
> +}<br>
><br>
>  #define _mm_ternarylogic_epi32(A, B, C, imm) __extension__ ({ \<br>
>    (__m128i)__builtin_ia32_pternl<wbr>ogd128_mask((__v4si)(__m128i)(<wbr>A), \<br>
><br>
> Modified: cfe/trunk/lib/Sema/SemaCheckin<wbr>g.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/lib/Sema/Sem<wbr>aChecking.cpp?rev=286714&r1=<wbr>286713&r2=286<br>
> 714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/lib/Sema/SemaCheckin<wbr>g.cpp (original)<br>
> +++ cfe/trunk/lib/Sema/SemaCheckin<wbr>g.cpp Sat Nov 12 01:16:59 2016<br>
> @@ -2107,17 +2107,6 @@ bool Sema::CheckX86BuiltinFunctionC<wbr>all(u<br>
>    case X86::BI__builtin_ia32_prord256<wbr>_mask:<br>
>    case X86::BI__builtin_ia32_prorq128<wbr>_mask:<br>
>    case X86::BI__builtin_ia32_prorq256<wbr>_mask:<br>
> -  case X86::BI__builtin_ia32_psllwi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psrldi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psrlqi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psrawi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psrlwi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psradi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psraqi12<wbr>8_mask:<br>
> -  case X86::BI__builtin_ia32_psraqi25<wbr>6_mask:<br>
> -  case X86::BI__builtin_ia32_psraqi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_pslldi51<wbr>2_mask:<br>
> -  case X86::BI__builtin_ia32_psllqi51<wbr>2_mask:<br>
>    case X86::BI__builtin_ia32_fpclassp<wbr>d128_mask:<br>
>    case X86::BI__builtin_ia32_fpclassp<wbr>d256_mask:<br>
>    case X86::BI__builtin_ia32_fpclassp<wbr>s128_mask:<br>
><br>
> Modified: cfe/trunk/test/CodeGen/avx512b<wbr>w-builtins.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/test/CodeGen<wbr>/avx512bw-<br>
> builtins.c?rev=286714&r1=28671<wbr>3&r2=286714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/test/CodeGen/avx512b<wbr>w-builtins.c (original)<br>
> +++ cfe/trunk/test/CodeGen/avx512b<wbr>w-builtins.c Sat Nov 12 01:16:59 2016<br>
> @@ -1225,37 +1225,41 @@ __m512i test_mm512_maskz_sllv_epi16(__<wbr>mm<br>
><br>
>  __m512i test_mm512_sll_epi16(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_sll_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psll.w.512<br>
>    return _mm512_sll_epi16(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_sll_epi16(__m5<wbr>12i __W, __mmask32 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_sll_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psll.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_mask_sll_epi16(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_sll_epi16(__m<wbr>mask32 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_sll_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psll.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_maskz_sll_epi16(__U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_slli_epi16(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_slli_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.w.512<br>
>    return _mm512_slli_epi16(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_slli_epi16(__m<wbr>512i __W, __mmask32 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_slli_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_mask_slli_epi16(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_slli_epi16(__<wbr>mmask32 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_slli_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_maskz_slli_epi16(__U, __A, 5);<br>
>  }<br>
><br>
> @@ -1303,73 +1307,81 @@ __m512i test_mm512_maskz_srav_epi16(__<wbr>mm<br>
><br>
>  __m512i test_mm512_sra_epi16(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_sra_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psra.w.512<br>
>    return _mm512_sra_epi16(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_sra_epi16(__m5<wbr>12i __W, __mmask32 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_sra_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psra.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_mask_sra_epi16(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_sra_epi16(__m<wbr>mask32 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_sra_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psra.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_maskz_sra_epi16(__U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_srai_epi16(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_srai_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.w.512<br>
>    return _mm512_srai_epi16(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srai_epi16(__m<wbr>512i __W, __mmask32 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srai_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_mask_srai_epi16(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srai_epi16(__<wbr>mmask32 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srai_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_maskz_srai_epi16(__U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_srl_epi16(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_srl_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psrl.w.512<br>
>    return _mm512_srl_epi16(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srl_epi16(__m5<wbr>12i __W, __mmask32 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srl_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psrl.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_mask_srl_epi16(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srl_epi16(__m<wbr>mask32 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srl_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.w.5<wbr>12<br>
> +  // CHECK: @llvm.x86.avx512.psrl.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_maskz_srl_epi16(__U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_srli_epi16(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_srli_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.w.512<br>
>    return _mm512_srli_epi16(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srli_epi16(__m<wbr>512i __W, __mmask32 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srli_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_mask_srli_epi16(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srli_epi16(__<wbr>mmask32 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srli_epi16<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.wi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.w.512<br>
> +  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16><br>
> %{{.*}}<br>
>    return _mm512_maskz_srli_epi16(__U, __A, 5);<br>
>  }<br>
><br>
><br>
> Modified: cfe/trunk/test/CodeGen/avx512f<wbr>-builtins.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/test/CodeGen<wbr>/avx512f-<br>
> builtins.c?rev=286714&r1=28671<wbr>3&r2=286714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/test/CodeGen/avx512f<wbr>-builtins.c (original)<br>
> +++ cfe/trunk/test/CodeGen/avx512f<wbr>-builtins.c Sat Nov 12 01:16:59 2016<br>
> @@ -2808,73 +2808,80 @@ __m512i test_mm512_maskz_rorv_epi64(__<wbr>mm<br>
><br>
>  __m512i test_mm512_slli_epi32(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_slli_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.d.512<br>
>    return _mm512_slli_epi32(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_slli_epi32(__m<wbr>512i __W, __mmask16 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_slli_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_mask_slli_epi32(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_slli_epi32(__<wbr>mmask16 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_slli_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_maskz_slli_epi32(__U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_slli_epi64(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_slli_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.q.512<br>
>    return _mm512_slli_epi64(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_slli_epi64(__m<wbr>512i __W, __mmask8 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_slli_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.pslli.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_mask_slli_epi64(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_slli_epi64(__<wbr>mmask8 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_slli_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.qi.<wbr>512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_maskz_slli_epi64(__U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_srli_epi32(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_srli_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.d.512<br>
>    return _mm512_srli_epi32(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srli_epi32(__m<wbr>512i __W, __mmask16 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srli_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_mask_srli_epi32(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srli_epi32(__<wbr>mmask16 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srli_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_maskz_srli_epi32(__U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_srli_epi64(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_srli_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.q.512<br>
>    return _mm512_srli_epi64(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srli_epi64(__m<wbr>512i __W, __mmask8 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srli_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_mask_srli_epi64(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srli_epi64(__<wbr>mmask8 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srli_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrli.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_maskz_srli_epi64(__U, __A, 5);<br>
>  }<br>
><br>
> @@ -4138,73 +4145,81 @@ __m128 test_mm_maskz_scalef_round_ss(<wbr>__m<br>
><br>
>  __m512i test_mm512_srai_epi32(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_srai_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.d.512<br>
>    return _mm512_srai_epi32(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srai_epi32(__m<wbr>512i __W, __mmask16 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srai_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_mask_srai_epi32(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srai_epi32(__<wbr>mmask16 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srai_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.di.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_maskz_srai_epi32(__U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_srai_epi64(__m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.512<br>
>    return _mm512_srai_epi64(__A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srai_epi64(__m<wbr>512i __W, __mmask8 __U, __m512i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_mask_srai_epi64(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srai_epi64(__<wbr>mmask8 __U, __m512i __A) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>512<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_maskz_srai_epi64(__U, __A, 5);<br>
>  }<br>
><br>
>  __m512i test_mm512_sll_epi32(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_sll_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.d<br>
> +  // CHECK: @llvm.x86.avx512.psll.d.512<br>
>    return _mm512_sll_epi32(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_sll_epi32(__m5<wbr>12i __W, __mmask16 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_sll_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.d<br>
> +  // CHECK: @llvm.x86.avx512.psll.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_mask_sll_epi32(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_sll_epi32(__m<wbr>mask16 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_sll_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.d<br>
> +  // CHECK: @llvm.x86.avx512.psll.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_maskz_sll_epi32(__U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_sll_epi64(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_sll_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.q<br>
> +  // CHECK: @llvm.x86.avx512.psll.q.512<br>
>    return _mm512_sll_epi64(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_sll_epi64(__m5<wbr>12i __W, __mmask8 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_sll_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.q<br>
> +  // CHECK: @llvm.x86.avx512.psll.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_mask_sll_epi64(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_sll_epi64(__m<wbr>mask8 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_sll_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psll.q<br>
> +  // CHECK: @llvm.x86.avx512.psll.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_maskz_sll_epi64(__U, __A, __B);<br>
>  }<br>
><br>
> @@ -4246,37 +4261,41 @@ __m512i test_mm512_maskz_sllv_epi64(__<wbr>mm<br>
><br>
>  __m512i test_mm512_sra_epi32(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_sra_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.d<br>
> +  // CHECK: @llvm.x86.avx512.psra.d.512<br>
>    return _mm512_sra_epi32(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_sra_epi32(__m5<wbr>12i __W, __mmask16 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_sra_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.d<br>
> +  // CHECK: @llvm.x86.avx512.psra.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_mask_sra_epi32(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_sra_epi32(__m<wbr>mask16 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_sra_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.d<br>
> +  // CHECK: @llvm.x86.avx512.psra.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_maskz_sra_epi32(__U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_sra_epi64(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.512<br>
>    return _mm512_sra_epi64(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_sra_epi64(__m5<wbr>12i __W, __mmask8 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_mask_sra_epi64(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_sra_epi64(__m<wbr>mask8 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_maskz_sra_epi64(__U, __A, __B);<br>
>  }<br>
><br>
> @@ -4318,37 +4337,41 @@ __m512i test_mm512_maskz_srav_epi64(__<wbr>mm<br>
><br>
>  __m512i test_mm512_srl_epi32(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_srl_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.d<br>
> +  // CHECK: @llvm.x86.avx512.psrl.d.512<br>
>    return _mm512_srl_epi32(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srl_epi32(__m5<wbr>12i __W, __mmask16 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srl_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.d<br>
> +  // CHECK: @llvm.x86.avx512.psrl.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_mask_srl_epi32(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srl_epi32(__m<wbr>mask16 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srl_epi32<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.d<br>
> +  // CHECK: @llvm.x86.avx512.psrl.d.512<br>
> +  // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32><br>
> %{{.*}}<br>
>    return _mm512_maskz_srl_epi32(__U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_srl_epi64(__m512i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_srl_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.q<br>
> +  // CHECK: @llvm.x86.avx512.psrl.q.512<br>
>    return _mm512_srl_epi64(__A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_mask_srl_epi64(__m5<wbr>12i __W, __mmask8 __U, __m512i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm512_mask_srl_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.q<br>
> +  // CHECK: @llvm.x86.avx512.psrl.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_mask_srl_epi64(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m512i test_mm512_maskz_srl_epi64(__m<wbr>mask8 __U, __m512i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm512_maskz_srl_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psrl.q<br>
> +  // CHECK: @llvm.x86.avx512.psrl.q.512<br>
> +  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64><br>
> %{{.*}}<br>
>    return _mm512_maskz_srl_epi64(__U, __A, __B);<br>
>  }<br>
><br>
><br>
> Modified: cfe/trunk/test/CodeGen/avx512v<wbr>l-builtins.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/cfe/trunk/test/CodeGen<wbr>/avx512vl-<br>
> builtins.c?rev=286714&r1=28671<wbr>3&r2=286714&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- cfe/trunk/test/CodeGen/avx512v<wbr>l-builtins.c (original)<br>
> +++ cfe/trunk/test/CodeGen/avx512v<wbr>l-builtins.c Sat Nov 12 01:16:59 2016<br>
> @@ -5358,73 +5358,81 @@ __m256i test_mm256_maskz_srai_epi32(__<wbr>mm<br>
><br>
>  __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q.1<wbr>28<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.128<br>
>    return _mm_sra_epi64(__A, __B);<br>
>  }<br>
><br>
>  __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A,<br>
> __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm_mask_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q.1<wbr>28<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.128<br>
> +  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64><br>
> %{{.*}}<br>
>    return _mm_mask_sra_epi64(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m128i test_mm_maskz_sra_epi64(__mmas<wbr>k8 __U, __m128i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm_maskz_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q.1<wbr>28<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.128<br>
> +  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64><br>
> %{{.*}}<br>
>    return _mm_maskz_sra_epi64(__U, __A, __B);<br>
>  }<br>
><br>
>  __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm256_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q.2<wbr>56<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.256<br>
>    return _mm256_sra_epi64(__A, __B);<br>
>  }<br>
><br>
>  __m256i test_mm256_mask_sra_epi64(__m2<wbr>56i __W, __mmask8 __U, __m256i<br>
> __A, __m128i __B) {<br>
>    // CHECK-LABEL: @test_mm256_mask_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q.2<wbr>56<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.256<br>
> +  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64><br>
> %{{.*}}<br>
>    return _mm256_mask_sra_epi64(__W, __U, __A, __B);<br>
>  }<br>
><br>
>  __m256i test_mm256_maskz_sra_epi64(__m<wbr>mask8 __U, __m256i __A, __m128i<br>
> __B) {<br>
>    // CHECK-LABEL: @test_mm256_maskz_sra_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.q.2<wbr>56<br>
> +  // CHECK: @llvm.x86.avx512.psra.q.256<br>
> +  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64><br>
> %{{.*}}<br>
>    return _mm256_maskz_sra_epi64(__U, __A, __B);<br>
>  }<br>
><br>
>  __m128i test_mm_srai_epi64(__m128i __A) {<br>
>    // CHECK-LABEL: @test_mm_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>128<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.128<br>
>    return _mm_srai_epi64(__A, 5);<br>
>  }<br>
><br>
>  __m128i test_mm_mask_srai_epi64(__m128<wbr>i __W, __mmask8 __U, __m128i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm_mask_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>128<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.128<br>
> +  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64><br>
> %{{.*}}<br>
>    return _mm_mask_srai_epi64(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m128i test_mm_maskz_srai_epi64(__mma<wbr>sk8 __U, __m128i __A) {<br>
>    // CHECK-LABEL: @test_mm_maskz_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>128<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.128<br>
> +  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64><br>
> %{{.*}}<br>
>    return _mm_maskz_srai_epi64(__U, __A, 5);<br>
>  }<br>
><br>
>  __m256i test_mm256_srai_epi64(__m256i __A) {<br>
>    // CHECK-LABEL: @test_mm256_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>256<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.256<br>
>    return _mm256_srai_epi64(__A, 5);<br>
>  }<br>
><br>
>  __m256i test_mm256_mask_srai_epi64(__m<wbr>256i __W, __mmask8 __U, __m256i<br>
> __A) {<br>
>    // CHECK-LABEL: @test_mm256_mask_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>256<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.256<br>
> +  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64><br>
> %{{.*}}<br>
>    return _mm256_mask_srai_epi64(__W, __U, __A, 5);<br>
>  }<br>
><br>
>  __m256i test_mm256_maskz_srai_epi64(__<wbr>mmask8 __U, __m256i __A) {<br>
>    // CHECK-LABEL: @test_mm256_maskz_srai_epi64<br>
> -  // CHECK: @llvm.x86.avx512.mask.psra.qi.<wbr>256<br>
> +  // CHECK: @llvm.x86.avx512.psrai.q.256<br>
> +  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64><br>
> %{{.*}}<br>
>    return _mm256_maskz_srai_epi64(__U, __A, 5);<br>
>  }<br>
><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div>