This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/53227] [4.8 Regression] FAIL: gcc.target/i386/movbe-2.c scan-assembler-times movbe[ \t] 4
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 04 May 2012 16:22:57 +0000
- Subject: [Bug rtl-optimization/53227] [4.8 Regression] FAIL: gcc.target/i386/movbe-2.c scan-assembler-times movbe[ \t] 4
- Auto-submitted: auto-generated
- References: <bug-53227-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53227
--- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2012-05-04 16:22:57 UTC ---
(In reply to comment #2)
> Why do you consider this a reload/RA problem? Code before ira looks like:
Indeed. The bar case works OK since access to memory is already expanded in a
split way:
(insn 5 4 6 3 (set (reg:SI 65)
(mem/c:SI (symbol_ref:SI ("x") [flags 0x40] <var_decl 0x7f56b41c2140
x>) [2 x+0 S4 A64])) movbe-2.c:15 -1
(nil))
(insn 6 5 7 3 (set (reg:SI 64)
(bswap:SI (reg:SI 65))) movbe-2.c:15 -1
(nil))
(insn 7 6 8 3 (set (reg:SI 67)
(mem/c:SI (const:SI (plus:SI (symbol_ref:SI ("x") [flags 0x40]
<var_decl 0x7f56b41c2140 x>)
(const_int 4 [0x4]))) [2 x+4 S4 A32])) movbe-2.c:15 -1
(nil))
(insn 8 7 9 3 (set (reg:SI 66)
(bswap:SI (reg:SI 67))) movbe-2.c:15 -1
(nil))
However, reload should notice that memory could be propagated into bswap. I'm
not sure this would fix the problem.