[LLVMbugs] [Bug 3287] New: Vector of float with length 2 broken on x86

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Jan 6 12:46:00 PST 2009


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

           Summary: Vector of float with length 2 broken on x86
           Product: new-bugs
           Version: unspecified
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: lennart at augustsson.net
                CC: llvmbugs at cs.uiuc.edu


Vectors of float on the x86 use the MM registers and not the MMX registers
which wreaks havoc.  Here is a simple test program which prints nan instead of
1.
If you comment out the (pointless) store it prints 1.

This is with llvm-2.4.

foo.ll:

define double @foo(<2 x float>*) {
        store <2 x float> < float 1.000000e+00, float 2.000000e+00 >, <2 x
float>* %0
        ret double 1.000000e+00
}


c.c:

double foo(float *);

main()
{
  float fs[2];
  printf("%g\n", foo(fs));
}


-- 
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