[LLVMdev] how to disable sse and avx

Zhi Chen zhichen1986 at gmail.com
Thu May 14 11:03:47 PDT 2015


Thanks, Mats. Actually, it is able to generate the assembly now  if I use
the follow command: clang++ -O3 -S -mllvm --x86-asm-syntax=intel -mno-sse
-o test_nosee.s test.cpp
However, when I use g++ -O3 -o test_nosse test_nosse.s -lm to generate the
executable, if gives me the following errors:

 Error: too many memory references for `sub'
 Error: too many memory references for `mov'
 Error: too many memory references for `mov'
 Error: too many memory references for `mov'
 Error: too many memory references for `mov'
 Error: junk `ptr [rsp+112]' after expression
 Error: junk `ptr [rsp+128]' after expression
 Error: junk `(1)' after expression
 Error: operand size mismatch for `fsubrp'

Any idea? Thanks.

--
Zhi


On Thu, May 14, 2015 at 10:50 AM, mats petersson <mats at planetcatfish.com>
wrote:

> Sounds like a bug, as far as I can tell, -mno-sse should disable all use
> of SSE instructions (and thus all uses of xmm registers). Exactly what
> version of LLVM, and what instructions from what LLVM IR or C source?
>
> --
> Mats
>
> On 14 May 2015 at 18:12, zhi chen <zchenhn at gmail.com> wrote:
>
>> Hello,
>>
>> I want to disable LLVM to use any SIMD registers like sse and avx. I
>> tried -mno-sse and -mno-avx on my Core i7 machine. It seems that the
>> generated assembly still uses xmm registers. Is there any way for LLVM to
>> only use scalar registers?
>>
>> Thanks,
>> Zhi
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>


-- 
PhD Student
Department of Computer Science
University of California, Irvine
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150514/813d37c0/attachment.html>


More information about the llvm-dev mailing list