--- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-15
11:50 ---
Yes /2 in signed does not equal >> 1 but "(+ signbit)>>1 ".
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072
--- Additional Comments From falk at debian dot org 2005-06-15 11:43
---
(In reply to comment #0)
> Why are the two instructions after the imull emitted? Shouldn't this become
> simply imull and sarl?
No. A signed division by two is not a shift.
The complaint about $2 not propagating
--- Additional Comments From felix-gcc at fefe dot de 2005-06-15 06:12
---
by the way, -Os generates an unnecessary register move:
pushl %ebp
movl$2, %edx
movl%esp, %ebp
movl12(%ebp), %eax
movl%edx, %ecx
imull 8(%ebp),