BigMing001 / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

clangcl fail on compare_win.cc #484

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. change ifdefs so compare_win.cc is used for clangcl.  See attached

2. compile with clangcl

setlocal
::set LLVM_REPO_URL=svn://svn.chromium.org/llvm-project

set GYP_DEFINES=buildtype=Official clang=1 target_arch=ia32 libyuv_enable_svn=1
call python tools\clang\scripts\update.py
if not exist out\Release\build.ninja call python gyp_libyuv -fninja 
-Gconfig=Release libyuv_test.gyp

set GYP_DEFINES=buildtype=Dev clang=1 target_arch=ia32 libyuv_enable_svn=1
if not exist out\Debug\build.ninja call python gyp_libyuv -fninja 
-Gconfig=Debug libyuv_test.gyp

ninja -d keeprsp -v -C out\Release
ninja -C out\Debug

What is the expected output?
Should compile and produce same code as Visual C

What do you see instead?

d:\src\libyuv\libyuv>ninja -C out\Debug
ninja: Entering directory `out\Debug'
[1/7] CXX obj\source\libyuv.compare_win.obj
..\..\source\compare_win.cc(58,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(6,2) :  note(clang): instantiated into assembly here
        movdqa xmm6, dword ptr kHash16x33
        ^
..\..\source\compare_win.cc(58,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(15,2) :  note(clang): instantiated into assembly here
        movdqa xmm5, dword ptr kHashMul0
        ^
..\..\source\compare_win.cc(58,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(25,2) :  note(clang): instantiated into assembly here
        movdqa xmm5, dword ptr kHashMul1
        ^
..\..\source\compare_win.cc(58,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(33,2) :  note(clang): instantiated into assembly here
        movdqa xmm5, dword ptr kHashMul2
        ^
..\..\source\compare_win.cc(58,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(42,2) :  note(clang): instantiated into assembly here
        movdqa xmm5, dword ptr kHashMul3
        ^
..\..\source\compare_win.cc(109,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(5,2) :  note(clang): instantiated into assembly here
        movdqa xmm6, dword ptr kHash16x33
        ^
..\..\source\compare_win.cc(109,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(10,2) :  note(clang): instantiated into assembly here
        pmulld xmm3, dword ptr kHashMul0
        ^
..\..\source\compare_win.cc(109,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(12,2) :  note(clang): instantiated into assembly here
        pmulld xmm4, dword ptr kHashMul1
        ^
..\..\source\compare_win.cc(109,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(14,2) :  note(clang): instantiated into assembly here
        pmulld xmm2, dword ptr kHashMul2
        ^
..\..\source\compare_win.cc(109,3) :  error(clang): invalid operand for 
instruction
  __asm {
  ^
<inline asm>(16,2) :  note(clang): instantiated into assembly here
        pmulld xmm1, dword ptr kHashMul3
        ^
10 errors generated.
clang-cl.exe: warning: falling back to 
c:\src\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\bin\amd64_x86
\cl.exe
[7/7] LINK_EMBED libyuv_unittest.exe

Please use labels and text to provide additional information.

Original issue reported on code.google.com by fbarch...@chromium.org on 14 Aug 2015 at 11:20

Attachments:

GoogleCodeExporter commented 8 years ago
fixed in r1466

Original comment by fbarch...@chromium.org on 18 Aug 2015 at 6:23