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

           Summary: Inaccurate comments for processor_costs
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: hjl.to...@gmail.com
                CC: ubiz...@gmail.com
            Target: x86


i386.h has

struct processor_costs {
...
  const int sse_load[3];        /* cost of loading SSE register
                                   in SImode, DImode and TImode*/
  const int sse_store[3];       /* cost of storing SSE register
                                   in SImode, DImode and TImode*/

But i386.c has
 if (SSE_CLASS_P (regclass))
    {
      int index;
      switch (GET_MODE_SIZE (mode))
        {     
          case 4:
            index = 0;
            break;
          case 8:
            index = 1;
            break;
          case 16:
            index = 2;
            break;
          default:
            return 100;
        }     
      if (in == 2) 
        return MAX (ix86_cost->sse_load [index], ix86_cost->sse_store [index]);
      return in ? ix86_cost->sse_load [index] : ix86_cost->sse_store [index];
    }

SImode, DImode nor TImode aren't used to compute costs.

Reply via email to