From 28bf91f78e6f1489cdb2c0131376dfe48b520a05 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 16 Feb 2011 19:16:34 +0000 Subject: [PATCH] Add a few missed xforms from GCC PR14753 llvm-svn: 125681 --- llvm/lib/Target/README.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt index 5aa29782afde..c6f384cd6eac 100644 --- a/llvm/lib/Target/README.txt +++ b/llvm/lib/Target/README.txt @@ -2218,3 +2218,32 @@ llc time when it gets inlined, because we can use smaller transfers. This also avoids partial register stalls in some important cases. //===---------------------------------------------------------------------===// + +Some missed instcombine xforms (from GCC PR14753): + +void bar (void); + +void mask_gt (unsigned int a) { +/* This is equivalent to a > 15. */ +if ((a & ~7) > 8) +bar(); +} + +void neg_eq_cst(unsigned int a) { +if (-a == 123) +bar(); +} + +void minus_cst(unsigned int a) { +if (20 - a == 5) +bar(); +} + +void rotate_cst (unsigned a) { +a = (a << 10) | (a >> 22); +if (a == 123) +bar (); +} + +//===---------------------------------------------------------------------===// +