------- 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

Reply via email to