diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-11-11 14:09:30 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-11-11 14:09:30 +0000 |
commit | 74d500fb012b4ad68acf531784a756dbe271a6d2 (patch) | |
tree | c09f91af0c54de0985d5a415cf2c88fc2d1c1afd /gcc/cp/g++spec.c | |
parent | 13b8babff2d06ff16e262df8a96efd78ac6154f8 (diff) | |
download | gcc-74d500fb012b4ad68acf531784a756dbe271a6d2.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230164 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/g++spec.c')
0 files changed, 0 insertions, 0 deletions