https://llvm.org/bugs/show_bug.cgi?id=26558
Bug ID: 26558 Summary: Inconsistency with ADX intrinsics and builtins requirements Product: clang Version: trunk Hardware: PC OS: Windows NT Status: NEW Severity: normal Priority: P Component: -New Bugs Assignee: unassignedclangb...@nondot.org Reporter: douglas_y...@playstation.sony.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified The change r243908 added an ADX target requirement for the following 4 adx-related functions: __builtin_ia32_addcarry_u32 __builtin_ia32_addcarry_u64 __builtin_ia32_subborrow_u32 __builtin_ia32_subborrow_u64 However, if you look at adxintrin.h, the four functions which use these builtins are preceeded by the following comment: /* Intrinsics that are also available if __ADX__ undefined */ >From this, it would seem that either the marking of the four previously mentioned functions as requiring ADX may have been a mistake, or the comment in adxintrin.h is incorrect and the 4 functions in there that reference the above builtins also need to be annotated with an ADX target requirement and the comment removed. We discovered this in our testing by compiling the following test: //-------------- #include <x86intrin.h> //-------------- Compile it with the command "clang -c repro.cpp -femit-all-decls". With a compiler built from r250498, it produces the following error: In file included from repro.cpp:1: In file included from 260210\Checking\bin\..\lib\clang\3.9.0\include\x86intrin.h:29: In file included from 260210\Checking\bin\..\lib\clang\3.9.0\include\immintrin.h:172: 260210\Checking\bin\..\lib\clang\3.9.0\include\adxintrin.h:56:10: error: '__builtin_ia32_addcarry_u32' needs target feature adx return __builtin_ia32_addcarry_u32(__cf, __x, __y, __p); ^ 1 error generated. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs