diff options
author | Jim Wilson <jimw@sifive.com> | 2017-11-29 22:14:17 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2017-11-29 14:14:17 -0800 |
commit | 08539f3e949c37dcfe6e128d78c527db47cc609d (patch) | |
tree | 22848e6d4ce568310ad8c46274537a4ecda6728e /gcc/lra.c | |
parent | 591996bad79b7b109bb01fba69b1c7acc054e287 (diff) | |
download | gcc-08539f3e949c37dcfe6e128d78c527db47cc609d.zip gcc-08539f3e949c37dcfe6e128d78c527db47cc609d.tar.gz gcc-08539f3e949c37dcfe6e128d78c527db47cc609d.tar.bz2 |
Riscv patterns to optimize away some redundant zero/sign extends.
gcc/
* config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
(riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
SINGLE_SHIFT_COST. Case LT and ZERO_EXTEND, likewise. Case ASHIFT,
use SINGLE_SHIFT_COST.
* config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
(lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
gcc/testsuite/
* gcc.target/riscv/riscv.exp: New.
* gcc.target/riscv/zero-extend-1.c: New.
* gcc.target/riscv/zero-extend-2.c: New.
* gcc.target/riscv/zero-extend-3.c: New.
* gcc.target/riscv/zero-extend-4.c: New.
Co-Authored-By: Andrew Waterman <andrew@sifive.com>
From-SVN: r255257
Diffstat (limited to 'gcc/lra.c')
0 files changed, 0 insertions, 0 deletions