<div dir="ltr">I guess that depends on if always_inline gets processed at O0 or not. If it does then the integer constant expression would probably still codegen out correctly.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 2, 2015 at 10:10 AM, Adam Nemet <span dir="ltr"><<a href="mailto:anemet@apple.com" target="_blank">anemet@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In order to catch these problems with immediate operands, wouldn’t it be better to rerun these tests with also going through codegen (I mean it in a separate RUN: line) ?  What do you think?<br>
<div class="HOEnZb"><div class="h5"><br>
> On Feb 2, 2015, at 10:05 AM, Adam Nemet <<a href="mailto:anemet@apple.com">anemet@apple.com</a>> wrote:<br>
><br>
> Wow, I had to two bugs in ten lines of code.  Thanks for the fixes, Craig!<br>
><br>
> Adam<br>
><br>
>> On Jan 31, 2015, at 11:35 PM, Craig Topper <<a href="mailto:craig.topper@gmail.com">craig.topper@gmail.com</a>> wrote:<br>
>><br>
>> Author: ctopper<br>
>> Date: Sun Feb  1 01:35:40 2015<br>
>> New Revision: 227713<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=227713&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=227713&view=rev</a><br>
>> Log:<br>
>> [X86] Rename _mm512_valign_epi64/32 intrinsics to _mm512_alignr_epi64/32 to match Intel docs. Make immediate argument to them an ICE. Fix mask size for the alignd version.<br>
>><br>
>> Modified:<br>
>>   cfe/trunk/include/clang/Basic/BuiltinsX86.def<br>
>>   cfe/trunk/lib/Headers/avx512fintrin.h<br>
>>   cfe/trunk/test/CodeGen/avx512f-builtins.c<br>
>><br>
>> Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=227713&r1=227712&r2=227713&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=227713&r1=227712&r2=227713&view=diff</a><br>
>> ==============================================================================<br>
>> --- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original)<br>
>> +++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Sun Feb  1 01:35:40 2015<br>
>> @@ -922,8 +922,8 @@ BUILTIN(__builtin_ia32_vpermt2vard512_ma<br>
>> BUILTIN(__builtin_ia32_vpermt2varq512_mask, "V8LLiV8LLiV8LLiV8LLiUc", "")<br>
>> BUILTIN(__builtin_ia32_vpermt2varps512_mask, "V16fV16iV16fV16fUs", "")<br>
>> BUILTIN(__builtin_ia32_vpermt2varpd512_mask, "V8dV8LLiV8dV8dUc", "")<br>
>> -BUILTIN(__builtin_ia32_alignq512_mask, "V8LLiV8LLiV8LLiUcV8LLiUc", "")<br>
>> -BUILTIN(__builtin_ia32_alignd512_mask, "V16iV16iV16iUcV16iUc", "")<br>
>> +BUILTIN(__builtin_ia32_alignq512_mask, "V8LLiV8LLiV8LLiIcV8LLiUc", "")<br>
>> +BUILTIN(__builtin_ia32_alignd512_mask, "V16iV16iV16iIcV16iUs", "")<br>
>> BUILTIN(__builtin_ia32_extractf64x4_mask, "V4dV8dIcV4dUc", "")<br>
>> BUILTIN(__builtin_ia32_extractf32x4_mask, "V4fV16fIcV4fUc", "")<br>
>> BUILTIN(__builtin_ia32_gathersiv8df, "V8dV8dvC*V8iUcIi", "")<br>
>><br>
>> Modified: cfe/trunk/lib/Headers/avx512fintrin.h<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintrin.h?rev=227713&r1=227712&r2=227713&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintrin.h?rev=227713&r1=227712&r2=227713&view=diff</a><br>
>> ==============================================================================<br>
>> --- cfe/trunk/lib/Headers/avx512fintrin.h (original)<br>
>> +++ cfe/trunk/lib/Headers/avx512fintrin.h Sun Feb  1 01:35:40 2015<br>
>> @@ -606,25 +606,17 @@ _mm512_permutex2var_ps(__m512 __A, __m51<br>
>>                                                       (__mmask16) -1);<br>
>> }<br>
>><br>
>> -static __inline __m512i __attribute__ ((__always_inline__, __nodebug__))<br>
>> -_mm512_valign_epi64(__m512i __A, __m512i __B, const int __I)<br>
>> -{<br>
>> -  return (__m512i) __builtin_ia32_alignq512_mask((__v8di)__A,<br>
>> -                                                 (__v8di)__B,<br>
>> -                                                 __I,<br>
>> -                                                 (__v8di)_mm512_setzero_si512(),<br>
>> -                                                 (__mmask8) -1);<br>
>> -}<br>
>> +#define _mm512_alignr_epi64(A, B, I) __extension__ ({ \<br>
>> +  (__m512i)__builtin_ia32_alignq512_mask((__v8di)(__m512i)(A), \<br>
>> +                                         (__v8di)(__m512i)(B), \<br>
>> +                                         (I), (__v8di)_mm512_setzero_si512(), \<br>
>> +                                         (__mmask8)-1); })<br>
>><br>
>> -static __inline __m512i __attribute__ ((__always_inline__, __nodebug__))<br>
>> -_mm512_valign_epi32(__m512i __A, __m512i __B, const int __I)<br>
>> -{<br>
>> -  return (__m512i)__builtin_ia32_alignd512_mask((__v16si)__A,<br>
>> -                                                (__v16si)__B,<br>
>> -                                                __I,<br>
>> -                                                (__v16si)_mm512_setzero_si512(),<br>
>> -                                                (__mmask16) -1);<br>
>> -}<br>
>> +#define _mm512_alignr_epi32(A, B, I) __extension__ ({ \<br>
>> +  (__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \<br>
>> +                                         (__v16si)(__m512i)(B), \<br>
>> +                                         (I), (__v16si)_mm512_setzero_si512(), \<br>
>> +                                         (__mmask16)-1); })<br>
>><br>
>> /* Vector Extract */<br>
>><br>
>><br>
>> Modified: cfe/trunk/test/CodeGen/avx512f-builtins.c<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-builtins.c?rev=227713&r1=227712&r2=227713&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-builtins.c?rev=227713&r1=227712&r2=227713&view=diff</a><br>
>> ==============================================================================<br>
>> --- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)<br>
>> +++ cfe/trunk/test/CodeGen/avx512f-builtins.c Sun Feb  1 01:35:40 2015<br>
>> @@ -173,11 +173,18 @@ __mmask16 test_mm512_knot(__mmask16 a)<br>
>>  return _mm512_knot(a);<br>
>> }<br>
>><br>
>> -__m512i test_mm512_valign_epi64(__m512i a, __m512i b)<br>
>> +__m512i test_mm512_alignr_epi32(__m512i a, __m512i b)<br>
>> {<br>
>> -  // CHECK-LABEL: @test_mm512_valign_epi64<br>
>> +  // CHECK-LABEL: @test_mm512_alignr_epi32<br>
>> +  // CHECK: @llvm.x86.avx512.mask.valign.d.512<br>
>> +  return _mm512_alignr_epi32(a, b, 2);<br>
>> +}<br>
>> +<br>
>> +__m512i test_mm512_alignr_epi64(__m512i a, __m512i b)<br>
>> +{<br>
>> +  // CHECK-LABEL: @test_mm512_alignr_epi64<br>
>>  // CHECK: @llvm.x86.avx512.mask.valign.q.512<br>
>> -  return _mm512_valign_epi64(a, b, 2);<br>
>> +  return _mm512_alignr_epi64(a, b, 2);<br>
>> }<br>
>><br>
>> __m512d test_mm512_broadcastsd_pd(__m128d a)<br>
>><br>
>><br>
>> _______________________________________________<br>
>> cfe-commits mailing list<br>
>> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">~Craig</div>
</div>