craig.topper added a comment.

In D97764#2685841 <https://reviews.llvm.org/D97764#2685841>, @mibintc wrote:

> In D97764#2685742 <https://reviews.llvm.org/D97764#2685742>, @craig.topper 
> wrote:
>
>> In D97764#2685655 <https://reviews.llvm.org/D97764#2685655>, @mibintc wrote:
>>
>>> I received a bug report that this patch creates error diagnostics for calls 
>>> to a builtin, like calling 'abort', 'exit' or one of the target builtins 
>>> like __builtin_ia32_packssw then that call should be allowed without remark 
>>> but this patch causes the compilation to fail.  We could require that all 
>>> builtin's be declared with "no caller saved reg" but that's a big 
>>> modification. I'm planning to make a change which igores builtin calls, but 
>>> continue to error on any implicitly declared or user declared functions 
>>> without the "no caller saved reg" attribute.
>>
>> Builtins like __builtin_ia32_packssw aren't usually called directly. The 
>> user should be calling the always_inline wrapper functions in x86intrin.h. 
>> Would that also fail?
>
> Thanks for the suggestion Craig!  I could change the check to look for 
> "always_inline" [that means they're always inlined and the call would never 
> be created even with optimization disabled right? ] However, I don't see 
> _builtin_ia32_packssw declared in <immintrin.h>.  In immintrin it is declared 
> implicitly when the usage is seen for example 
> _mm_packs_pi16(__m64 __m1, __m64 __m2)
> {
>
>   return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
>
> }
>
> Is it a bug that __builtin_ia32_packsswb is omitted from the x86intrin 
> declarations? Is there some tricky reason it's not declared?

__builtin_ia32* are always defined for the X86 target as they are part of the 
compiler. They are defined in clang/include/clang/Basic/BuiltinsX86.def and 
clang/include/clang/Basic/BuiltinsX86_64.def


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97764/new/

https://reviews.llvm.org/D97764

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to