diff options
author | Richard Biener <rguenther@suse.de> | 2018-07-24 13:29:07 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-07-24 13:29:07 +0000 |
commit | 6ec96dcb6b829b33c5d779fc19af7601c9ac1604 (patch) | |
tree | 0fcf481c40480176d00cc378cb1bad7a807b4d13 | |
parent | 4f3c75ba3a62d6f3794afd10d191807a68d7ba3b (diff) | |
download | gcc-6ec96dcb6b829b33c5d779fc19af7601c9ac1604.zip gcc-6ec96dcb6b829b33c5d779fc19af7601c9ac1604.tar.gz gcc-6ec96dcb6b829b33c5d779fc19af7601c9ac1604.tar.bz2 |
match.pd: Add BIT_FIELD_REF canonicalizations.
2018-07-24 Richard Biener <rguenther@suse.de>
* match.pd: Add BIT_FIELD_REF canonicalizations.
From-SVN: r262946
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/match.pd | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf93d5f..ff8ed78 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2018-07-24 Richard Biener <rguenther@suse.de> + + * match.pd: Add BIT_FIELD_REF canonicalizations. + 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c/86617 diff --git a/gcc/match.pd b/gcc/match.pd index 730bbab..0ae1af0c 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -4659,6 +4659,19 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) /* Canonicalizations of BIT_FIELD_REFs. */ (simplify + (BIT_FIELD_REF (BIT_FIELD_REF @0 @1 @2) @3 @4) + (BIT_FIELD_REF @0 @3 { const_binop (PLUS_EXPR, bitsizetype, @2, @4); })) + +(simplify + (BIT_FIELD_REF (view_convert @0) @1 @2) + (BIT_FIELD_REF @0 @1 @2)) + +(simplify + (BIT_FIELD_REF @0 @1 integer_zerop) + (if (tree_int_cst_equal (@1, TYPE_SIZE (TREE_TYPE (@0)))) + (view_convert @0))) + +(simplify (BIT_FIELD_REF @0 @1 @2) (switch (if (TREE_CODE (TREE_TYPE (@0)) == COMPLEX_TYPE |