http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49781

--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-03 16:18:45 
UTC ---
(In reply to comment #10)
> 
> This additional patch prevents zero_extend when we deal with
> wider-than-word-size moves.  These moves need offsetable_operand, which
> zero_extend (...) isn't.
> 
> Index: i386.c
> ===================================================================
> --- i386.c    (revision 177281)
> +++ i386.c    (working copy)
> @@ -11681,6 +11689,10 @@ ix86_legitimate_address_p (enum machine_
>    rtx base, index, disp;
>    HOST_WIDE_INT scale;
> 
> +  if (GET_CODE (addr) == ZERO_EXTEND
> +      && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
> +      return false;
> +
>    if (ix86_decompose_address (addr, &parts) <= 0)
>      /* Decomposition failed.  */
>      return false;


Doesn't work. I got

FAIL: gcc.dg/graphite/pr35356-2.c (internal compiler error)
FAIL: gcc.dg/graphite/pr35356-2.c (test for excess errors)
FAIL: libgomp.fortran/omp_parse4.f90  -Os  (internal compiler error)
FAIL: libgomp.fortran/omp_parse4.f90  -Os  (test for excess errors)
FAIL: gfortran.dg/gomp/crayptr5.f90  -O  (internal compiler error)
FAIL: gfortran.dg/gomp/crayptr5.f90  -O  (test for excess errors)

so far:

spawn -ignore SIGHUP /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/
/export/gnu/import/git/gcc-x32/gcc/testsuite/gcc.dg/graphite/pr35356-2.c -O2
-fgraphite-identity -fdump-tree-graphite-all -S -mx32 -o pr35356-2.s^M
/export/gnu/import/git/gcc-x32/gcc/testsuite/gcc.dg/graphite/pr35356-2.c: In
function 'foo':^M
/export/gnu/import/git/gcc-x32/gcc/testsuite/gcc.dg/graphite/pr35356-2.c:17:1:
internal compiler error: Segmentation fault^M
Please submit a full bug report,^M
with preprocessed source if appropriate.^M
See <http://gcc.gnu.org/bugs.html> for instructions.^M
compiler exited with status 1

Reply via email to