diff options
author | Chris Lattner <sabre@nondot.org> | 2011-02-16 19:16:34 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-02-16 19:16:34 +0000 |
commit | 5653f1f9046c6c954e6f74869ca927611c050938 (patch) | |
tree | 2bd29083613782995df439a200ec70f331f05035 /lib/Target/README.txt | |
parent | a901129169194881a78b7fd8953e09f55b846d10 (diff) | |
download | llvm-5653f1f9046c6c954e6f74869ca927611c050938.tar.gz llvm-5653f1f9046c6c954e6f74869ca927611c050938.tar.bz2 llvm-5653f1f9046c6c954e6f74869ca927611c050938.tar.xz |
Add a few missed xforms from GCC PR14753
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125681 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/README.txt')
-rw-r--r-- | lib/Target/README.txt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 5aa29782af..c6f384cd6e 100644 --- a/lib/Target/README.txt +++ b/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 (); +} + +//===---------------------------------------------------------------------===// + |