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