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)
commit23242098e7dc8b585f1a9e780f3932b40252ec62
treeb5a0d4191da2e97892ef3a175513ec31bdfeea6c
parent61b474f97d5cff5e26587e47ef61f0d92f307cdc
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!

llvm-svn: 175380
llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
llvm/test/Transforms/InstCombine/logical-select.ll
llvm/test/Transforms/InstCombine/or.ll