[Bug other/85123] [8 regression] test case gcc.dg/pr63594-2.c begins failing with r254862

2018-04-03 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85123

Segher Boessenkool  changed:

   What|Removed |Added

 Status|CLOSED  |REOPENED
 Resolution|DUPLICATE   |---

--- Comment #5 from Segher Boessenkool  ---
Reopening this one for the regression.  Let's keep PR84762 just for what
it was reported for: GCC is not compliant with the SYSV ABI for some things
(and never has been).

[Bug other/85123] [8 regression] test case gcc.dg/pr63594-2.c begins failing with r254862

2018-03-30 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85123

Peter Bergner  changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED

--- Comment #4 from Peter Bergner  ---
Closing as a dup.  I will add the reduced test case found here over to PR84762.

[Bug other/85123] [8 regression] test case gcc.dg/pr63594-2.c begins failing with r254862

2018-03-30 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85123

Peter Bergner  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Peter Bergner  ---
This is a dup of PR84762.

*** This bug has been marked as a duplicate of bug 84762 ***

[Bug other/85123] [8 regression] test case gcc.dg/pr63594-2.c begins failing with r254862

2018-03-30 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85123

--- Comment #2 from Peter Bergner  ---
So the code on LE and 32-bit BE for test1float1() looks like:

1680:   f0 ff 21 d0 stfsf1,-16(r1)
1684:   00 00 42 60 ori r2,r2,0
1688:   f0 ff 61 80 lwz r3,-16(r1)
168c:   20 00 80 4e blr


while on 64-bit BE, we get:

16c0:   d0 21 ff f0 stfsf1,-16(r1)
16c4:   60 42 00 00 ori r2,r2,0
16c8:   e8 61 ff f0 ld  r3,-16(r1)
16cc:   78 63 07 c6 rldicr  r3,r3,32,31
16d0:   4e 80 00 20 blr

which is wrong.

[Bug other/85123] [8 regression] test case gcc.dg/pr63594-2.c begins failing with r254862

2018-03-30 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85123

Peter Bergner  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-03-30
 CC||bergner at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Peter Bergner  ---
Confirmed.  Here's a minimal test case.  It looks like the code for test1float1
is what is causing the problems.

typedef float vfloat1 __attribute__ ((__vector_size__ (1 * sizeof (float;
__attribute__ ((noinline, noclone))
 vfloat1 test1float1 (float c)
{
  vfloat1 v = { c };
  return v;
}

void
test3float1 (void)
{
  float c = 17;
  int i;
  vfloat1 a = test1float1 (c);
  for (i = 0; i < 1; i++)
if (a[i] != 17)
  __builtin_abort ();
}

int
main ()
{
  test3float1 ();
  return 0;
}