1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/CodeGen
Duncan Sands 2e9661573f Teach LegalizeTypes how to expand and promote CTLZ,
CTTZ and CTPOP.  The expansion code differs from
that in LegalizeDAG in that it chooses to take the
CTLZ/CTTZ count from the Hi/Lo part depending on
whether the Hi/Lo value is zero, not on whether
CTLZ/CTTZ of Hi/Lo returned 32 (or whatever the
width of the type is) for it.  I made this change
because the optimizers may well know that Hi/Lo
is zero and exploit it.  The promotion code for
CTTZ also differs from that in LegalizeDAG: it
uses an "or" to get the right result when the
original value is zero, rather than using a compare
and select.  This also means the value doesn't
need to be zero extended.

llvm-svn: 47075
2008-02-13 18:01:53 +00:00
..
Alpha
ARM It's PR1925, not PR1609. 2008-02-06 22:07:17 +00:00
CBackend CBackend: Implement unaligned load/store. 2008-02-01 21:25:59 +00:00
CellSPU Overhaul Cell SPU's addressing mode internals so that there are now 2008-01-29 02:16:57 +00:00
Generic Teach LegalizeTypes how to expand and promote CTLZ, 2008-02-13 18:01:53 +00:00
IA64
PowerPC Add testcase for recent legalizer change 2008-02-13 06:48:40 +00:00
SPARC
X86 In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this 2008-02-13 07:39:09 +00:00