diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2015-11-11 15:09:30 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2015-11-11 15:09:30 +0100 |
commit | 3b1da8bb77bb07285272f2ad9e516197f3fe0835 (patch) | |
tree | c09f91af0c54de0985d5a415cf2c88fc2d1c1afd /gcc/cp/semantics.c | |
parent | 7ad291c0e8e6a489d98741eb958736cc5f09d0b7 (diff) | |
download | gcc-3b1da8bb77bb07285272f2ad9e516197f3fe0835.zip gcc-3b1da8bb77bb07285272f2ad9e516197f3fe0835.tar.gz gcc-3b1da8bb77bb07285272f2ad9e516197f3fe0835.tar.bz2 |
simplify-rtx: Simplify trunc of and of shiftrt
If we have
(truncate:M1 (and:M2 (lshiftrt:M2 (x:M2) C) C2))
we can write it instead as
(and:M1 (lshiftrt:M1 (truncate:M1 (x:M2)) C) C2)
(if that is valid, of course), which has smaller modes for the
binary ops, and the truncate can often simplify further (if "x"
is a register, for example).
* gcc/simplify-rtx.c (simplify_truncation): Simplify TRUNCATE
of AND of [LA]SHIFTRT.
From-SVN: r230164
Diffstat (limited to 'gcc/cp/semantics.c')
0 files changed, 0 insertions, 0 deletions