[Bug c/22072] bizarre code for int*int/2

2005-06-15 Thread pinskia at gcc dot gnu dot org
--- 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

[Bug c/22072] bizarre code for int*int/2

2005-06-15 Thread falk at debian dot org
--- 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

[Bug c/22072] bizarre code for int*int/2

2005-06-14 Thread felix-gcc at fefe dot de
--- 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),