[LLVMbugs] [Bug 8381] New: Incorrect x86/SSE code generation involving <<8 x i16>> vector

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Oct 14 15:47:53 PDT 2010


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

           Summary: Incorrect x86/SSE code generation involving <<8 x
                    i16>> vector
           Product: new-bugs
           Version: 2.8
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: brian.e.paul at gmail.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=5618)
 --> (http://llvm.org/bugs/attachment.cgi?id=5618)
bytecode which generates incorrect code

We found this issue with the Mesa/Gallium LLVMpipe driver.

At one point we're constructing a <<8 x i16>> vector.  All elements should have
the same value.  The value comes from a scalar floating point calculation.  The
float is converted to i32 and that's trunc'd to i16 before we build the vector.

This worked with LLVM 2.7 but fails with LLVM 2.8.  We can work around the bug
by inserting a special no-op shuffle which replicates the [0] and [2] elements
to the other elements in the vector.  This shouldn't be necessary, of course.

I'm attaching the defective bytecode file and a bytecode file with our
work-around.

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