<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - clang-cl doesn't support SSSE3"
   href="http://llvm.org/bugs/show_bug.cgi?id=20213">20213</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang-cl doesn't support SSSE3
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>-New Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>ehsan@mozilla.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>tmmintrin.h has a guard over __SSSE3__ which bails out with an #error.  Even if
I remove that, the following program won't build:

$ cat test.cpp
#include <tmmintrin.h>

int main ()
{
    __m128i a, mask;

    __m128i res = _mm_shuffle_epi8(a, mask);

    return 0;
}

$ clang-cl test.cpp
fatal error: error in backend: Cannot select: 0x57ea760: v16i8 = X86ISD::PSHUFB
0x57ea640, 0x57ea880 [ORD=17] [ID=19]
  0x57ea640: v16i8 = bitcast 0x57ea250 [ORD=14] [ID=13]
    0x57ea250: v2i64,ch = load 0x57ea010, 0x57ea1c0, 0x57e9f80<LD16[%a]>
[ORD=10] [ID=11]
      0x57ea1c0: i32 = FrameIndex<3> [ID=5]
      0x57e9f80: i32 = undef [ID=3]
  0x57ea880: v16i8 = bitcast 0x57ea7f0 [ORD=16] [ID=18]
    0x57ea7f0: v2i64,ch = load 0x57ea520, 0x57ea2e0, 0x57e9f80<LD16[%1]>
[ORD=16] [ID=17]
      0x57ea2e0: i32 = FrameIndex<0> [ID=6]
      0x57e9f80: i32 = undef [ID=3]
In function: main
Stack dump:
0.      Program arguments: c:\moz\llvm-objdir\RelWithDebInfo\bin\clang-cl.exe
-cc1 -triple i686-pc-windows-msvc -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -main-file-name test.cpp -mrelocation-model static
-mdisable-fp-elim -relaxed-aliasing -fmath-errno -masm-verbose
-mconstructor-aliases -target-cpu pentium4 -D_MT --dependent-lib=libcmt
--dependent-lib=oldnames -fdiagnostics-format msvc -resource-dir
c:\moz\llvm-objdir\RelWithDebInfo\bin\..\lib\clang\3.5.0 -internal-isystem
c:\moz\llvm-objdir\RelWithDebInfo\bin\..\lib\clang\3.5.0\include
-internal-isystem C:\Program Files (x86)\Microsoft Visual Studio
11.0\VC\INCLUDE -internal-isystem C:\Program Files (x86)\Microsoft Visual
Studio 11.0\VC\ATLMFC\INCLUDE -internal-isystem C:\Program Files (x86)\Windows
Kits\8.0\include\shared -internal-isystem C:\Program Files (x86)\Windows
Kits\8.0\include\um -internal-isystem C:\Program Files (x86)\Windows
Kits\8.0\include\winrt -std=c++11 -fdeprecated-macro -fdebug-compilation-dir
c:\moz\src -ferror-limit 19 -fmessage-length 152 -mstackrealign -fms-extensions
-fms-compatibility -fmsc-version=1700 -fdelayed-template-parsing
-fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o
C:\Users\EHSANA~1\AppData\Local\Temp\test-f645ad.obj -x c++ test.cpp
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'test.cpp'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'
clang-cl.exe: error: clang frontend command failed with exit code 70 (use -v to
see invocation)
clang version 3.5.0
Target: i686-pc-windows-msvc
Thread model: posix
clang-cl.exe: note: diagnostic msg: PLEASE submit a bug report to
<a href="http://llvm.org/bugs/">http://llvm.org/bugs/</a> and include the crash backtrace, preprocessed source, and
associated run script.
clang-cl.exe: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-cl.exe: note: diagnostic msg:
C:\Users\EHSANA~1\AppData\Local\Temp\test-1480a5.cpp
clang-cl.exe: note: diagnostic msg:
C:\Users\EHSANA~1\AppData\Local\Temp\test-1480a5.sh
clang-cl.exe: note: diagnostic msg:

********************</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>