summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit3217b6c66195ba593c9caa428c1c911f85998f00 (patch)
treeb8d79e9e2c10cd82414cfe7dc2b5251b797c0c12 /llvm/lib/Transforms/InstCombine/InstCombine.h
parent6ae079ee4ae0b33c393de1b2a16e70d2ae57a35a (diff)
downloadbcm5719-llvm-3217b6c66195ba593c9caa428c1c911f85998f00.tar.gz
bcm5719-llvm-3217b6c66195ba593c9caa428c1c911f85998f00.zip
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 llvm-svn: 210312
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombine.h')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombine.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombine.h b/llvm/lib/Transforms/InstCombine/InstCombine.h
index e04b1be53df..ea1839c3bcf 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombine.h
+++ b/llvm/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...
OpenPOWER on IntegriCloud