[LLVMbugs] [Bug 15131] New: Resolve the meaning of <N x i1>
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Jan 31 11:40:39 PST 2013
http://llvm.org/bugs/show_bug.cgi?id=15131
Bug #: 15131
Summary: Resolve the meaning of <N x i1>
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Common Code Generator Code
AssignedTo: unassignedbugs at nondot.org
ReportedBy: hfinkel at anl.gov
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
LLVM has supported <N x i1> types, and the code generator now has vNi1 types,
the meaning of these types is not clear.
Moreover, the current types code is inconsistent with the code generation.
Getting the storage size of v4i1 will return 1 byte (because the 4 bits are
rounded up to 1 byte), but if you run:
@X = global <4 x i1> <i1 0, i1 1, i1 2, i1 3>
through llc (for x86_64 or anything else), you'll get something which looks
like:
X:
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.size X, 4
This should probably be changed to pack the bits together (to more naturally
support mask registers on some targets).
FWIW, the default expansions of things like extract vector element in the DAG
legalizer are also broken for vNi1 types.
--
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