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



             Bug #: 56547

           Summary: [SH] missed opportunity for fmac with -ffast-math

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: enhancement

          Priority: P3

         Component: target

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: olege...@gcc.gnu.org

            Target: sh*-*-*





This one was mentioned in PR 55295:



float test (float a, float b)

{

  return a * b + a;

}



compiled with -m4-single -O2 -ffast-math results in:



        fldi1   fr0     ! 7     movsf_ie/4      [length = 2]

        fadd    fr5,fr0 ! 8     addsf3_i        [length = 2]

        rts             ! 27    *return_i       [length = 2]

        fmul    fr4,fr0 ! 9     mulsf3_i        [length = 2]



At least on SH using fmac in this case would be better than transforming

'a * b + a' into '(1 + b) * a'.  Not sure yet whether this is actually target

specific.

Reply via email to