http://llvm.org/bugs/show_bug.cgi?id=12329

             Bug #: 12329
           Summary: movq rax mmx not supported: suffix or operands invalid
                    for `movq'
           Product: clang
           Version: unspecified
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: -New Bugs
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]
    Classification: Unclassified


Created attachment 8251
  --> http://llvm.org/bugs/attachment.cgi?id=8251
code derived from spandsp/srv/gsm0610_rpe.c

When compiling the attached code with  gcc -std=gnu99 -m64 -c -o testmovq.o
~/Downloads/movqtest.c

I get the following error:
/var/folders/7l/nf67_yxd1_lb845mrbs8rr640000gn/T//ccnaerIG.s:24:suffix or
operands invalid for `movq'

I'm using the newest llvm-clang that came with Xcode. Background, I changed a
compiler constraint from "X" to "m" for a vector and I'm not sure if this is
correct, but don't think it has an impact on the issue and silences an similar
error on leaq line above.

The offending line: movq %%rax,%%mm5;

If I change this line to be movd %%eax, %%mm5 it seems to work, at least the
compiler doesn't complain.

The movq should be supported per intel spec, but it's not totally clear as in
some descriptions they talk about movd being the only way to read registers,
but clearly in Vol. 2B 4-61 of
http://download.intel.com/products/processor/manual/325462.pdf in the
instruction list it states:
REX.W + 0F 6E /r
MOVQ mm, r/m64
MMX Move quadword from r/m64
to mm.

-- 
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to