[Bug target/43766] x86 prefetch doesn't use complex memory addressing

2010-04-19 Thread ubizjak at gmail dot com
--- Comment #6 from ubizjak at gmail dot com 2010-04-19 12:38 --- Fixed. -- ubizjak at gmail dot com changed: What|Removed |Added Status|ASSIGNED

[Bug target/43766] x86 prefetch doesn't use complex memory addressing

2010-04-19 Thread uros at gcc dot gnu dot org
--- Comment #5 from uros at gcc dot gnu dot org 2010-04-19 12:37 --- Subject: Bug 43766 Author: uros Date: Mon Apr 19 12:37:16 2010 New Revision: 158515 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158515 Log: PR target/43766 * config/i386/i386.c (ix86_decompos

[Bug target/43766] x86 prefetch doesn't use complex memory addressing

2010-04-17 Thread ubizjak at gmail dot com
--- Comment #4 from ubizjak at gmail dot com 2010-04-17 15:11 --- (In reply to comment #3) > Works with x86-64. > > Checking -m32, the same thing happens with or without the patch: This happens because combine pulls memory references into the combined address operand. Since ix86_decomp

[Bug target/43766] x86 prefetch doesn't use complex memory addressing

2010-04-16 Thread astrange at ithinksw dot com
--- Comment #3 from astrange at ithinksw dot com 2010-04-16 21:19 --- Works with x86-64. Checking -m32, the same thing happens with or without the patch: _p: subl$12, %esp movl20(%esp), %eax sall$2, %eax addl16(%esp), %eax addl

[Bug target/43766] x86 prefetch doesn't use complex memory addressing

2010-04-16 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2010-04-16 18:06 --- Created an attachment (id=20402) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20402&action=view) Proposed patch. Proposed patch generates: p: movslq %esi, %rsi prefetcht0 (%rdi,%rsi,4)

[Bug target/43766] x86 prefetch doesn't use complex memory addressing

2010-04-16 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2010-04-16 11:37 --- Currently we fail to recognize address_operand in the form of: (prefetch (plus:DI (ashift:DI (reg:DI 60 [ i ]) (const_int 2 [0x2])) (reg/v/f:DI 58 [ a ])) (const_int 0 [0x0]) (const_int 3 [0x3]