[Bug rtl-optimization/47866] New: gcc.dg/torture/vector-2.c fails on IA64

sje at cup dot hp.com gcc-bugzilla@gcc.gnu.org
Wed Feb 23 23:29:00 GMT 2011


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

           Summary: gcc.dg/torture/vector-2.c fails on IA64
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: sje@cup.hp.com


gcc.dg/torture/vector-2.c is failing on Linux and HP-UX IA64 platforms since
r165240 which is Richard Henderson's fix for PR rtl-opt/33721.  This may be a
target specific bug but the change that caused the failure to show up is not
target specific.

gcc.dg/torture/vector-2.c fails at -O2, but passes at -O0 or -O1.  With the
latest sources I can use this cutdown test case to see the difference:

#define vector __attribute__((vector_size(16) ))

vector int f0(vector int t, int a)
{
 ((int*)&t)[0] = a;
 return t;
}
vector int f1(vector int t, int a)
{
 ((int*)&t)[1] = a;
 return t;
}
int main(void)
{
  vector int a = {0, 0, 0, 0};
  vector int a0;
  a0 = f0(a, 1);
  printf("%d %d %d %d\n", a0[0], a0[1], a0[2], a0[3]);
  a0 = f1(a, 1);
  printf("%d %d %d %d\n", a0[0], a0[1], a0[2], a0[3]);
  return 0;
}


At -O0 or -O1 it prints:

1 0 0 0
0 1 0 0

At -O2 it prints:

1 0 0 0
0 0 0 0



More information about the Gcc-bugs mailing list