public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
@ 2021-08-26  8:39 clyon at gcc dot gnu.org
  2021-08-26  9:58 ` [Bug tree-optimization/102072] " rguenth at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: clyon at gcc dot gnu.org @ 2021-08-26  8:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

            Bug ID: 102072
           Summary: New test case gcc.dg/vect/pr101145_3.c in r12-3136
                    fails on armeb
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: clyon at gcc dot gnu.org
  Target Milestone: ---

The newly introduced test causes an ICE on armeb (arm big-endian, little-endian
is fine).

For instance --target armeb-none-linux-gnueabihf --with-cpu cortex-a9
--with-fpu neon-fp16:
FAIL: gcc.dg/vect/pr101145.c (internal compiler error)
FAIL: gcc.dg/vect/pr101145.c (test for excess errors)
Excess errors:
during GIMPLE pass: aprefetch
/gcc/testsuite/gcc.dg/vect/pr101145.c:6:1: internal compiler error: in
determine_exit_conditions, at tree-ssa-loop-manip.c:1049
0xf343cd determine_exit_conditions
        /gcc/tree-ssa-loop-manip.c:1049
0xf343cd tree_transform_and_unroll_loop(loop*, unsigned int, edge_def*,
tree_niter_desc*, void (*)(loop*, void*), void*)
        /gcc/tree-ssa-loop-manip.c:1255
0xf4a51b loop_prefetch_arrays
        /gcc/tree-ssa-loop-prefetch.c:1966
0xf4a51b tree_ssa_prefetch_arrays()
        /gcc/tree-ssa-loop-prefetch.c:2032

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
@ 2021-08-26  9:58 ` rguenth at gcc dot gnu.org
  2021-08-26 11:20 ` rearnsha at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-08-26  9:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
dup for power

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
  2021-08-26  9:58 ` [Bug tree-optimization/102072] " rguenth at gcc dot gnu.org
@ 2021-08-26 11:20 ` rearnsha at gcc dot gnu.org
  2021-08-26 12:47 ` clyon at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rearnsha at gcc dot gnu.org @ 2021-08-26 11:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

Richard Earnshaw <rearnsha at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|DUPLICATE                   |---
                 CC|                            |guojiufu at gcc dot gnu.org
             Status|RESOLVED                    |UNCONFIRMED

--- Comment #2 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
Unlike PR102069, this is an ICE on ARM when targetting big-endian.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
  2021-08-26  9:58 ` [Bug tree-optimization/102072] " rguenth at gcc dot gnu.org
  2021-08-26 11:20 ` rearnsha at gcc dot gnu.org
@ 2021-08-26 12:47 ` clyon at gcc dot gnu.org
  2021-08-26 14:27 ` guojiufu at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: clyon at gcc dot gnu.org @ 2021-08-26 12:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

--- Comment #3 from Christophe Lyon <clyon at gcc dot gnu.org> ---
Indeed, so I don't think this is a dup

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-08-26 12:47 ` clyon at gcc dot gnu.org
@ 2021-08-26 14:27 ` guojiufu at gcc dot gnu.org
  2021-08-26 14:39 ` rearnsha at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-26 14:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

--- Comment #4 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
Code around tree-ssa-loop-manip.c:1049 (in determine_exit_conditions) is:
  else if (cmp == GT_EXPR)
    {
      gcc_assert (tree_int_cst_sign_bit (step));
    }

which seems checking: 'step' should be negative if 'cmp' is ">"

code around pr101145.c:6 :
  5unsigned __attribute__ ((noinline))
  6foo (int *__restrict__ a, int *__restrict__ b, unsigned l, unsigned n)
  7{
  8  while (n < ++l)
  9    *a++ = *b++ + 1;
 10  return l;
 11}

------------
I did not find arm big-endian yet, I'm trying to reproduce this issue on other
targets...

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-08-26 14:27 ` guojiufu at gcc dot gnu.org
@ 2021-08-26 14:39 ` rearnsha at gcc dot gnu.org
  2021-08-27  6:44 ` guojiufu at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rearnsha at gcc dot gnu.org @ 2021-08-26 14:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

--- Comment #5 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
(In reply to Jiu Fu Guo from comment #4)

> I did not find arm big-endian yet, I'm trying to reproduce this issue on
> other targets...

For testing purposes you should be able to build a standard arm-eabi config and
then compile the testcase with -mbig-endian.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-08-26 14:39 ` rearnsha at gcc dot gnu.org
@ 2021-08-27  6:44 ` guojiufu at gcc dot gnu.org
  2021-08-27  9:00 ` guojiufu at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-27  6:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

--- Comment #6 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
(In reply to Richard Earnshaw from comment #5)
> (In reply to Jiu Fu Guo from comment #4)
> 
> > I did not find arm big-endian yet, I'm trying to reproduce this issue on
> > other targets...
> 
> For testing purposes you should be able to build a standard arm-eabi config
> and then compile the testcase with -mbig-endian.

Thanks a lot!
config with --target=arm-none-eabi, I could reproduce the ice for
-mcpu=cortex-a9.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-08-27  6:44 ` guojiufu at gcc dot gnu.org
@ 2021-08-27  9:00 ` guojiufu at gcc dot gnu.org
  2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
  2021-08-27 12:53 ` hjl.tools at gmail dot com
  8 siblings, 0 replies; 10+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-27  9:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

--- Comment #7 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
For this case: it was generated as:
  l_12 = l_25 + 1;
  if (l_12 > n_13(D))

Here: cmp is ">", bound is "n_13", and "iv(base=l_xx, step=1)".
This hits the assert in determine_exit_conditions.

For members of tree_niter_desc, the comments(as below) align with the asserts
in determine_exit_conditions. 
------------
  /* The simplified shape of the exit condition.  The loop exits if             
     CONTROL CMP BOUND is false, where CMP is one of NE_EXPR,                   
     LT_EXPR, or GT_EXPR, and step of CONTROL is positive if CMP is             
     LE_EXPR and negative if CMP is GE_EXPR.  This information is used          
     by loop unrolling.  */
  affine_iv control;
  tree bound;
  enum tree_code cmp;


Current code the "control, bound and cmp" are set in number_of_iterations_lt:
    if (integer_nonzerop (iv0->step))
      {  
        niter->control = *iv0;
        niter->cmp = LT_EXPR;
        niter->bound = iv1->base;
      }
    else
      {
        niter->control = *iv1;
        niter->cmp = GT_EXPR;
        niter->bound = iv0->base;
      }
This code may need to refine for the case "step until wrap condition".

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-08-27  9:00 ` guojiufu at gcc dot gnu.org
@ 2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
  2021-08-27 12:53 ` hjl.tools at gmail dot com
  8 siblings, 0 replies; 10+ messages in thread
From: guojiufu at gcc dot gnu.org @ 2021-08-27 10:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

Jiu Fu Guo <guojiufu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zhendong.su at inf dot ethz.ch

--- Comment #8 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
*** Bug 102087 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/102072] New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb
  2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
@ 2021-08-27 12:53 ` hjl.tools at gmail dot com
  8 siblings, 0 replies; 10+ messages in thread
From: hjl.tools at gmail dot com @ 2021-08-27 12:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102072

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> ---
Dup.

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-08-27 12:53 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-26  8:39 [Bug target/102072] New: New test case gcc.dg/vect/pr101145_3.c in r12-3136 fails on armeb clyon at gcc dot gnu.org
2021-08-26  9:58 ` [Bug tree-optimization/102072] " rguenth at gcc dot gnu.org
2021-08-26 11:20 ` rearnsha at gcc dot gnu.org
2021-08-26 12:47 ` clyon at gcc dot gnu.org
2021-08-26 14:27 ` guojiufu at gcc dot gnu.org
2021-08-26 14:39 ` rearnsha at gcc dot gnu.org
2021-08-27  6:44 ` guojiufu at gcc dot gnu.org
2021-08-27  9:00 ` guojiufu at gcc dot gnu.org
2021-08-27 10:04 ` guojiufu at gcc dot gnu.org
2021-08-27 12:53 ` hjl.tools at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).