[Bug target/95632] New: Redundant zero extension
bina2374 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Jun 11 04:06:40 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95632
Bug ID: 95632
Summary: Redundant zero extension
Product: gcc
Version: 10.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: bina2374 at gmail dot com
CC: kito at gcc dot gnu.org, wilson at gcc dot gnu.org
Target Milestone: ---
Target: riscv32-unknown-elf
Command line: bin/riscv64-unknown-elf-gcc -march=rv32imafc -mabi=ilp32f -O2
foo.c -S
==========
C Source
==========
unsigned short foo(unsigned short crc) {
crc ^= 0x4002;
crc >>= 1;
crc |= 0x8000;
return crc;
}
=========
GCC asm
=========
foo:
li a5,-24576 #
addi a5,a5,1 # a5 = 0xffffa001
srli a0,a0,1
xor a0,a0,a5
slli a0,a0,16 #
srli a0,a0,16 # redundant zero-extension
ret
=======================
Ideal Code Generation
=======================
foo:
li a5,40960 #
addi a5,a5,1 # a5 = 0x0000a001
srli a0,a0,1
xor a0,a0,a5
ret
More information about the Gcc-bugs
mailing list