aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/a-zchhan.adb
diff options
context:
space:
mode:
authorAustin Law <austinklaw@gmail.com>2025-09-03 10:41:17 -0600
committerJeff Law <jlaw@ventanamicro.com>2025-09-03 10:41:17 -0600
commitb790606e492d33e0cdb8159e38cb148d3526071b (patch)
treeb4056d00dee70caa06ceb8e9a961079163419ff3 /gcc/ada/libgnat/a-zchhan.adb
parentbda76b479dc8492183dbf73236ff30805674f6f5 (diff)
downloadgcc-master.zip
gcc-master.tar.gz
gcc-master.tar.bz2
[RISC-V][PR target/121213] Avoid unnecessary sign extension in amoswap sequenceHEADtrunkmaster
This is Austin's work to remove the redundant sign extension seen in pr121213. -- The .w form of amoswap will sign extend its result from 32 to 64 bits, thus any explicit sign extension insn doing the same is redundant. This uses Jivan's approach of allocating a DI temporary for an extended result and using a promoted subreg extraction to get that result into the final destination. Tested with no regressions on riscv32-elf and riscv64-elf and bootstrapped on the BPI and pioneer systems. PR target/121213 gcc/ * config/riscv/sync.md (amo_atomic_exchange_extended<mode>): Separate insn with sign extension for 64 bit targets. gcc/testsuite * gcc.target/riscv/amo/pr121213.c: Remove xfail.
Diffstat (limited to 'gcc/ada/libgnat/a-zchhan.adb')
0 files changed, 0 insertions, 0 deletions