summaryrefslogtreecommitdiff
path: root/lib/Transforms/InstCombine/InstCombine.h
diff options
context:
space:
mode:
authorDinesh Dwivedi <dinesh.d@samsung.com>2014-06-06 06:54:45 +0000
committerDinesh Dwivedi <dinesh.d@samsung.com>2014-06-06 06:54:45 +0000
commit2c3e3b491eb60d61e0780c34fcf0b20355d2e431 (patch)
tree9cb6894fd056136ec94df5b630ba06e9438f4a75 /lib/Transforms/InstCombine/InstCombine.h
parent7a0e6972ce2e43fc006acd87a0f7b9cc5eb136bf (diff)
downloadllvm-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.h5
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...