Do NOT touch FP ops with LSR. This fixes a testcase Nate sent me from an
authorChris Lattner <sabre@nondot.org>
Thu, 20 Oct 2005 04:47:10 +0000 (04:47 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 20 Oct 2005 04:47:10 +0000 (04:47 +0000)
commit1e9f3af561932b324c45c05ff9a8728143e90753
treec3e0125fd3de427caae84267d430d5ad4a7226eb
parentae4be981b1cfe5b254c58420f705bd2985db2944
Do NOT touch FP ops with LSR.  This fixes a testcase Nate sent me from an
inner loop like this:

LBB_RateConvertMono8AltiVec_2:  ; no_exit
        lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
        lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
        fmr f3, f3
        fadd f0, f2, f0
        fadd f3, f0, f3
        fcmpu cr0, f3, f1
        bge cr0, LBB_RateConvertMono8AltiVec_2  ; no_exit

to an inner loop like this:

LBB_RateConvertMono8AltiVec_1:  ; no_exit
        fsub f2, f2, f1
        fcmpu cr0, f2, f1
        fmr f0, f2
        bge cr0, LBB_RateConvertMono8AltiVec_1  ; no_exit

Doh! good catch!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23838 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/LoopStrengthReduce.cpp