------- Comment #3 from schwab at suse dot de 2008-10-21 08:36 -------
Reduced testcase:
double y, z;
void foo (long x)
{
y = *(double *) ((long *) (x - 1) + 1);
z = *(double *) ((long *) (x - 1) + 1);
}
$ gcc -m64 -O -c ldu.c
/tmp/ccYujYhd.s: Assembler messages:
/tmp/ccYujYhd.s:20: Error: operand out of domain (7 is not a multiple of 4)
The insn is generated during auto-inc-dec.
(insn 9 8 10 2 ldu.c:4 (set (reg:DF 122)
(mem:DF (pre_modify:DI (reg/f:DI 119 [ D.1253 ])
(plus:DI (reg/f:DI 119 [ D.1253 ])
(const_int 7 [0x7]))) [0 S8 A64])) 345 {*movdf_hardfloat64}
(expr_list:REG_INC (reg/f:DI 119 [ D.1253 ])
(nil)))
--
schwab at suse dot de changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2008-10-21 08:36:02
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37878