The transform is:
authorBill Wendling <isanbard@gmail.com>
Sat, 16 Feb 2013 23:41:36 +0000 (23:41 +0000)
committerBill Wendling <isanbard@gmail.com>
Sat, 16 Feb 2013 23:41:36 +0000 (23:41 +0000)
commitcc54889cd58322b8766525f43cc1f7cb52e4692e
tree5ba9b3526a38ff6196352d2f5b19a65ccc8de4cc
parent5be5fa468acc4948b8f4d7f5e945d77a53e40bb8
The transform is:

    (or (bool?A:B),(bool?C:D)) --> (bool?(or A,C):(or B,D))

By the time the OR is visited, both the SELECTs have been visited and not
optimized and the OR itself hasn't been transformed so we do this transform in
the hopes that the new ORs will be optimized.

The transform is explicitly disabled for vector-selects until "codegen matures
to handle them better".

Patch by Muhammad Tauqir!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175380 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
test/Transforms/InstCombine/logical-select.ll
test/Transforms/InstCombine/or.ll