diff options
author | Dimitar Dimitrov <dimitar@dinux.eu> | 2022-09-22 23:08:43 +0300 |
---|---|---|
committer | Dimitar Dimitrov <dimitar@dinux.eu> | 2022-10-09 14:38:34 +0300 |
commit | 73137f365a01327ae245fa0a9f0b127cb06e0cb3 (patch) | |
tree | aa5f20dc7b5d3565ae5534a8fbe541c2f6f7f7c8 /gcc/value-range.h | |
parent | 66c48be23e0fa5ee7474b4b078e013f901c71eed (diff) | |
download | gcc-73137f365a01327ae245fa0a9f0b127cb06e0cb3.zip gcc-73137f365a01327ae245fa0a9f0b127cb06e0cb3.tar.gz gcc-73137f365a01327ae245fa0a9f0b127cb06e0cb3.tar.bz2 |
pru: Optimize DI shifts
If the number of shift positions is a constant, then the DI shift
operation is expanded to a sequence of 2 to 4 machine instructions.
That is more efficient than the default action to call libgcc.
gcc/ChangeLog:
* config/pru/pru.md (lshrdi3): New expand pattern.
(ashldi3): Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/pru/ashiftdi-1.c: New test.
* gcc.target/pru/lshiftrtdi-1.c: New test.
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions