[LLVMbugs] [Bug 7846] New: Certain march flags don't enable expected instruction sets

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Aug 8 22:44:14 PDT 2010


           Summary: Certain march flags don't enable expected instruction
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: lloyd at randombit.net
                CC: llvmbugs at cs.uiuc.edu

As far as I can tell, all Nehalem/Westmere processors implement SSSE3, however
clang trunk (r110550) thinks that Nehalem does not have SSSE3:

$ cat ssse3.c 
#include <tmmintrin.h>

int main() {}

$ clang -march=nehalem ssse3.c -o ssse3
In file included from ssse3.c:1:
/usr/lib/clang/2.8/include/tmmintrin.h:28:2: error: #error "SSSE3 instruction
      set not enabled"
#error "SSSE3 instruction set not enabled"
1 error generated.

Similarly -march=westmere will not work. However using -march=core2 or
-march=corei7 will enable SSSE3. This is not just SSSE3 specific though;
-march=westmere should allow use of SSE 4.1/4.2 and AES, and all are rejected.
SSE 4.1 should also be allowed using -march=nehalem, but it is not.

I'd imagine there are other cases along these lines, these are just the ones
I've noticed that directly affected software I was trying to build.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list