[PATCH] DAGCombiner: fold (or (and X, M), (and X, N)) -> (and X, (or M, N))
Tim Northover
t.p.northover at gmail.com
Mon Jan 19 19:24:58 PST 2015
Hi arsenm,
Hi all,
I'm mostly worried about the R600 changes here. I scratched my head trying to understand just what the assembly meant, but still only have the haziest notion.
Anyway, this DAG combine is very similar to the one above it, but has different enough requirements that I've put it in a separate block. It's particularly useful for tidying up some trivial manipulations (const-masking to reconstruct a value, as seen in the R600 test actually, if I'm reading it right), especially when they're unavoidably tied to parameter passing so IR-level optimisations can't do anything.
Does it look sane?
Cheers.
Tim.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D7063
Files:
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/AArch64/or-combine.ll
test/CodeGen/R600/extload.ll
test/CodeGen/X86/vselect.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7063.18411.patch
Type: text/x-patch
Size: 4977 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150120/e99b3647/attachment.bin>
More information about the llvm-commits
mailing list