diff options
author | Dinesh Dwivedi <dinesh.d@samsung.com> | 2014-06-06 06:54:45 +0000 |
---|---|---|
committer | Dinesh Dwivedi <dinesh.d@samsung.com> | 2014-06-06 06:54:45 +0000 |
commit | 2c3e3b491eb60d61e0780c34fcf0b20355d2e431 (patch) | |
tree | 9cb6894fd056136ec94df5b630ba06e9438f4a75 /lib/Transforms/InstCombine/InstCombine.h | |
parent | 7a0e6972ce2e43fc006acd87a0f7b9cc5eb136bf (diff) | |
download | llvm-2c3e3b491eb60d61e0780c34fcf0b20355d2e431.tar.gz llvm-2c3e3b491eb60d61e0780c34fcf0b20355d2e431.tar.bz2 llvm-2c3e3b491eb60d61e0780c34fcf0b20355d2e431.tar.xz |
Added select flavour for ABS and NEG(ABS)
This patch can identify
ABS(X) ==> (X >s 0) ? X : -X and (X >s -1) ? X : -X
ABS(X) ==> (X <s 0) ? -X : X and (X <s 1) ? -X : X
NABS(X) ==> (X >s 0) ? -X : X and (X >s -1) ? -X : X
NABS(X) ==> (X <s 0) ? X : -X and (X <s 1) ? X : -X
and can transform
ABS(ABS(X)) -> ABS(X)
NABS(NABS(X)) -> NABS(X)
Differential Revision: http://reviews.llvm.org/D3658
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210312 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/InstCombine/InstCombine.h')
-rw-r--r-- | lib/Transforms/InstCombine/InstCombine.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Transforms/InstCombine/InstCombine.h b/lib/Transforms/InstCombine/InstCombine.h index e04b1be53d..ea1839c3bc 100644 --- a/lib/Transforms/InstCombine/InstCombine.h +++ b/lib/Transforms/InstCombine/InstCombine.h @@ -37,8 +37,9 @@ enum SelectPatternFlavor { SPF_SMIN, SPF_UMIN, SPF_SMAX, - SPF_UMAX - // SPF_ABS - TODO. + SPF_UMAX, + SPF_ABS, + SPF_NABS }; /// getComplexity: Assign a complexity or rank value to LLVM Values... |