[llvm-bugs] [Bug 26558] New: Inconsistency with ADX intrinsics and builtins requirements

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Feb 9 18:47:03 PST 2016


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: unassignedclangbugs at nondot.org
          Reporter: douglas_yung at playstation.sony.com
                CC: llvm-bugs at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160210/34bf931e/attachment.html>


More information about the llvm-bugs mailing list