[InstCombine] Fold Select with binary op
authorDavid Bolvansky <david.bolvansky@gmail.com>
Mon, 30 Jul 2018 20:38:53 +0000 (20:38 +0000)
committerDavid Bolvansky <david.bolvansky@gmail.com>
Mon, 30 Jul 2018 20:38:53 +0000 (20:38 +0000)
commit6737b3a6a144048341985a1733dac6f18bc7ce39
tree4e6e6fbb255c536af1d1d3911e62e585840dbe7e
parent2b5cf04180e05f7e791eb35ee9d59562cbbc725e
[InstCombine] Fold Select with binary op

Summary:
Fold
  %A = icmp eq i8 %x, 0
  %B = xor i8 %x, %z
  %C = select i1 %A, i8 %B, i8 %y
To
  %C = select i1 %A, i8 %z, i8 %y

Fixes https://bugs.llvm.org/show_bug.cgi?id=38345
Proof: https://rise4fun.com/Alive/43J

Reviewers: lebedev.ri, spatel

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D49954

llvm-svn: 338300
llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
llvm/test/Transforms/InstCombine/select-binop-icmp.ll
llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll