https://gcc.gnu.org/bugzilla/show_bug.cgi?id=17935
Andrew Pinski changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
--- Comment #8 from pinskia at gcc dot gnu dot org 2006-01-18 05:07 ---
We get now:
movb(%eax), %al
andl$1, %eax
xorl$1, %eax
andl$1, %eax
ret
(insn 23 22 24 4 (parallel [
(set (reg:QI 63)
(and:QI (mem/s
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-29
03:47 ---
(In reply to comment #6)
> I think there is another optimization opportunity regarding movzbl following
> andl.
I think that is that the tracer pass runs late which causes the movzbl to be
there late.
--
--- Additional Comments From uros at kss-loka dot si 2005-05-13 10:07
---
I think there is another optimization opportunity regarding movzbl following
andl.
Consider this part:
movb(%eax), %alEAX = x...x
andl$1, %eax EAX = 0...
--
Bug 17935 depends on bug 21520, which changed state.
Bug 21520 Summary: missing PRE opportunity with operand after operand
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21520
What|Old Value |New Value
---
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-12
17:52 ---
With the patch for PR 21520, we will get better code.
Right now on the mainline we get:
bar:
movl4(%esp), %eax
testb $1, (%eax)
jne .L7
movl8(%esp), %eax
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-12
18:06 ---
This seems like someone should be calling fold (and fold should be changing the
types back of the
orginal tree):
(int) (_Bool) ((int) p->f0 == 0 && (int) q->f0 == 0)
--
http://gcc.gnu.org/bugzilla/show
--- Additional Comments From kazu at cs dot umass dot edu 2004-12-12 17:57
---
With today's mainline, I get
bar:
movl4(%esp), %eax
testb $1, (%eax)
jne .L2
movl8(%esp), %eax
testb $1, (%eax)
jne .L2
movl$1,
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-12 19:20
---
Note this is not a really a regression, the main issue I see here is that we are ifcvt
if(a) 1 else 0; to a and
then we copy the return part (the movzbl and ret) on the other branch but we don't
combine t