diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2024-12-02 12:31:18 +0100 |
---|---|---|
committer | Georg-Johann Lay <avr@gjlay.de> | 2024-12-03 12:21:57 +0100 |
commit | d203f4cb968a1dc45c7fcd1bf5d7cd485ca6f510 (patch) | |
tree | c77548e48242a5cffcf84f13787ab562d6d25286 /libstdc++-v3/include/std/numeric | |
parent | d777d66cc168a5019dad8e60b075c82b6207f199 (diff) | |
download | gcc-d203f4cb968a1dc45c7fcd1bf5d7cd485ca6f510.zip gcc-d203f4cb968a1dc45c7fcd1bf5d7cd485ca6f510.tar.gz gcc-d203f4cb968a1dc45c7fcd1bf5d7cd485ca6f510.tar.bz2 |
AVR: Tweak uin8_t << 6 and uint8_t >> 6 shifts.
Logic 8-bit shifts with an offset of 6 can be improved by
supporting them as 3-operand operations.
PR target/117726
gcc/
* config/avr/avr-passes.cc (avr_emit_shift): All 8-bit shifts with
an offset of 6 have 3-operand alternatives.
* config/avr/avr.cc (ashlqi3_out, lshrqi3_out) [case 6]:
Implement as 3-operand insn.
(avr_rtx_costs_1) [QImode, ASHIFT + LSHIFTRT]: Adjust
costs for offset of 6.
* config/avr/avr.md (*ashlqi3_split, *ashlqi3)
(*lshrqi3_split, *lshrqi3): Add "r,r,C06" alternative.
Diffstat (limited to 'libstdc++-v3/include/std/numeric')
0 files changed, 0 insertions, 0 deletions