[PATCH] D36384: [InstCombine] Support (X | C1) & C2 --> (X & C2^(C1&C2)) | (C1&C2) for vector splats
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 6 17:12:39 PDT 2017
craig.topper created this revision.
Note the original code I deleted incorrectly listed this as (X | C1) & C2 --> (X & C2^(C1&C2)) | C1 Which is only valid if C1 is a subset of C2. This relied on SimplifyDemandedBits to remove any extra bits from C1 before we got to that code.
My new implementation avoids relying on that behavior so that it can be naively verified with alive.
https://reviews.llvm.org/D36384
Files:
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
test/Transforms/InstCombine/or.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36384.109944.patch
Type: text/x-patch
Size: 4032 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170807/4c5cd97d/attachment.bin>
More information about the llvm-commits
mailing list