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 | 28bf91f78e6f1489cdb2c0131376dfe48b520a05 (patch) | |
tree | 80f5c2c53a190dc3549a7da851e51d4eae6bd107 /llvm/lib | |
parent | d766be689d5a78634c4f3daf670d3348de11146c (diff) | |
download | bcm5719-llvm-28bf91f78e6f1489cdb2c0131376dfe48b520a05.tar.gz bcm5719-llvm-28bf91f78e6f1489cdb2c0131376dfe48b520a05.zip |
Add a few missed xforms from GCC PR14753
llvm-svn: 125681
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/README.txt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt index 5aa29782afd..c6f384cd6ea 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 (); +} + +//===---------------------------------------------------------------------===// + |