This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch 4/N][rs6000, cft] -mfused-add cleanup

On 11/11/2010 12:06 PM, Michael Meissner wrote:
> gcc.dg/var-expand3.c is a function using Altivec fused multiply/add
> instructions, and the loop unroller would unroll loops with (plus (mult (..)))
> but not (fma ...).  The code is analyze_insn_to_expand_var in loop-unroll.c
> where it doesn't realize fma is a loop accumulator.  I imagine it is probably
> simple to fix this function.

Fixed by
as yet unreviewed.

>{2,4}.c are failing because they use
> -mno-fused-madd, and the compiler gives a new warning that isn't accounted
> for.  Obviously we just need to switch to use -ffp-contract=off for these two
> tests (or add the warning message).

Fixed here.

> gfortran.fortran-torture/execute/in-pack.f90 is getting an internal compiler
> error when -maltivec is used:
> /home/meissner/fsf-src/rth/gcc/testsuite/gfortran.fortran-torture/execute/in-pack.f90: In function 'csub4':
> /home/meissner/fsf-src/rth/gcc/testsuite/gfortran.fortran-torture/execute/in-pack.f90:59:0: error: unrecognizable insn:
> (insn 395 394 396 45 (set (reg:V4SF 592)
>         (fma:V4SF (reg:V4SF 363 [ vect_var_.731 ])
>             (reg:V4SF 593)
>             (reg:V4SI 594))) /home/meissner/fsf-src/rth/gcc/testsuite/gfortran.fortran-torture/execute/in-pack.f90:55 -1
>      (expr_list:REG_EQUAL (mult:V4SF (reg:V4SF 363 [ vect_var_.731 ])
>             (reg:V4SF 593))
>         (nil)))

Fixed here.  A silly mistake converting the altivec mulv4sf pattern.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]