Disable the (A == (B-A)) -> 2*A == B xform when the sub has multiple uses (in
authorChris Lattner <sabre@nondot.org>
Sat, 19 May 2007 00:43:44 +0000 (00:43 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 19 May 2007 00:43:44 +0000 (00:43 +0000)
commit2ad913b3428b634f46d6606a150c5d180b528197
tree80981541884fb490f3b6b558e12f9b1b8c291952
parent35fbae2b6d47932126d1f9bfeaa76ce1a9dbd292
Disable the (A == (B-A)) -> 2*A == B xform when the sub has multiple uses (in
this case, the xform introduces an extra operation).  This compiles
PowerPC/compare-duplicate.ll into:

_test:
        subf r2, r3, r4
        cmplw cr0, r2, r3
        bne cr0, LBB1_2 ;F

instead of:

_test:
        slwi r2, r3, 1
        subf r3, r3, r4
        cmplw cr0, r4, r2
        bne cr0, LBB1_2 ;F

This is target independent of course.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37246 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/TargetLowering.cpp