public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails
@ 2023-02-13 16:23 seurer at gcc dot gnu.org
2023-05-11 7:13 ` [Bug testsuite/108776] " rguenth at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: seurer at gcc dot gnu.org @ 2023-02-13 16:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108776
Bug ID: 108776
Summary: new test case c-c++-common/rotate-11.c from
r12-9158-ga015ebe382cd6d fails
Product: gcc
Version: 12.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: testsuite
Assignee: unassigned at gcc dot gnu.org
Reporter: seurer at gcc dot gnu.org
Target Milestone: ---
g:a015ebe382cd6d0beab9db4ad33fbd252b7e2339, r12-9158-ga015ebe382cd6d
make -k check-gcc RUNTESTFLAGS="dg.exp=c-c++-common/rotate-11.c"
FAIL: c-c++-common/rotate-11.c -Wc++-compat scan-tree-dump-times optimized "
r<< " 5
FAIL: c-c++-common/rotate-11.c -std=gnu++98 scan-tree-dump-times optimized "
r<< " 5
FAIL: c-c++-common/rotate-11.c -std=gnu++14 scan-tree-dump-times optimized "
r<< " 5
FAIL: c-c++-common/rotate-11.c -std=gnu++17 scan-tree-dump-times optimized "
r<< " 5
FAIL: c-c++-common/rotate-11.c -std=gnu++20 scan-tree-dump-times optimized "
r<< " 5
# of expected passes 2
# of expected passes 8
# of unexpected failures 1
# of unexpected failures 4
commit a015ebe382cd6d0beab9db4ad33fbd252b7e2339 (HEAD, refs/bisect/bad)
Author: Jakub Jelinek <jakub@redhat.com>
Date: Thu Jan 19 10:00:51 2023 +0100
forwprop: Further fixes for simplify_rotate [PR108440]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug testsuite/108776] new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails
2023-02-13 16:23 [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails seurer at gcc dot gnu.org
@ 2023-05-11 7:13 ` rguenth at gcc dot gnu.org
2023-05-11 7:21 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-05-11 7:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108776
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|powerpc64le-linux-gnu |powerpc64le-linux-gnu
| |s390x-linux-gnu
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
CC| |rguenth at gcc dot gnu.org
Last reconfirmed| |2023-05-11
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Also fails on s390x.
On ppc64le we only have four r<<, baz() and qux() are not handled (why
do we have 6 functions but expect 5 rotates only without checking exactly
which function we expect not to transform?). On trunk we handle
baz() fine but still do not handle qux().
The IL into forwprop1 is the same so it's likely differences in ranger
behavior triggering here.
branch:
;; Function baz (baz, funcdef_no=2, decl_uid=3331, cgraph_uid=3,
symbol_order=2)
326 range_of_expr(y_11(D)) at stmt _2 = _1 << y_11(D);
327 range_on_entry (y_11(D)) to BB 5
328 range_of_stmt (y_11(D)) at stmt GIMPLE_NOP
GLOBAL : UPDATE cache for y_11(D) in BB 0 : successors : : No updates!
TRUE : (328) range_of_stmt (y_11(D)) unsigned int VARYING
y_11(D) : CACHE: BB 5 DOM query, found unsigned int VARYING at BB0
CACHE: Range for DOM returns : unsigned int VARYING
Filled from dominator! : unsigned int VARYING
TRUE : (327) range_on_entry (y_11(D)) unsigned int VARYING
TRUE : (326) range_of_expr (y_11(D)) unsigned int VARYING
unsigned char baz (unsigned char x, unsigned int y)
trunk:
;; Function baz (baz, funcdef_no=2, decl_uid=3954, cgraph_uid=3,
symbol_order=2)
299 range_of_expr(y_11(D)) at stmt _2 = _1 << y_11(D);
300 range_on_entry (y_11(D)) to BB 5
301 range_of_stmt (y_11(D)) at stmt GIMPLE_NOP
GLOBAL : UPDATE cache for y_11(D) in BB 0 : successors : : No updates!
TRUE : (301) range_of_stmt (y_11(D)) [irange] unsigned int VARYING
y_11(D) : CACHE: BB 5 DOM query for y_11(D), found [irange] unsigned int
VARYING at BB0
302 GORI outgoing_edge for y_11(D) on edge 2->5
303 GORI compute op 1 (y_11(D)) at if (y_11(D) > 8)
GORI LHS =[irange] _Bool [0, 0] NONZERO 0x0
GORI Computes y_11(D) = [irange] unsigned int [0, 8] NONZERO 0xf
intersect Known range : [irange] unsigned int VARYING
GORI TRUE : (303) produces (y_11(D)) [irange] unsigned int [0, 8]
NONZERO 0xf
GORI TRUE : (302) outgoing_edge (y_11(D)) [irange] unsigned int [0, 8]
NONZERO 0xf
CACHE: BB 3 DOM query for y_11(D), found [irange] unsigned int VARYING at BB2
304 GORI outgoing_edge for y_11(D) on edge 2->3
305 GORI compute op 1 (y_11(D)) at if (y_11(D) > 8)
GORI LHS =[irange] _Bool [1, 1]
GORI Computes y_11(D) = [irange] unsigned int [9, +INF] intersect
Known range : [irange] unsigned int VARYING
GORI TRUE : (305) produces (y_11(D)) [irange] unsigned int [9,
+INF]
GORI TRUE : (304) outgoing_edge (y_11(D)) [irange] unsigned int [9,
+INF]
CACHE: Adjusted edge range for 2->3 : [irange] unsigned int [9, +INF]
CACHE: Range for DOM returns : [irange] unsigned int [9, +INF]
306 GORI outgoing_edge for y_11(D) on edge 3->5
307 GORI compute op 1 (y_11(D)) at if (y_11(D) != 16)
GORI LHS =[irange] _Bool [0, 0] NONZERO 0x0
GORI Computes y_11(D) = [irange] unsigned int [16, 16] NONZERO
0x10 intersect Known range : [irange] unsigned int VARYING
GORI TRUE : (307) produces (y_11(D)) [irange] unsigned int [16, 16]
NONZERO 0x10
GORI TRUE : (306) outgoing_edge (y_11(D)) [irange] unsigned int [16,
16] NONZERO 0x10
CACHE: Range for DOM returns : [irange] unsigned int [0, 8][16, 16] NONZERO
0x1f
Filled from dominator! : [irange] unsigned int [0, 8][16, 16] NONZERO 0x1f
TRUE : (300) range_on_entry (y_11(D)) [irange] unsigned int [0,
8][16, 16] NONZERO 0x1f
TRUE : (299) range_of_expr (y_11(D)) [irange] unsigned int [0, 8][16,
16] NONZERO 0x1f
gimple_simplified to _14 = _16;
Removing dead stmt _14 = _16;
unsigned char baz (unsigned char x, unsigned int y)
On x86_64 the IL into forwprop1 is different (logical-op-non-short-circuit):
ppc64le:
<bb 2> :
if (y_11(D) > 8)
goto <bb 3>; [INV]
else
goto <bb 5>; [INV]
<bb 3> :
if (y_11(D) != 16)
goto <bb 4>; [INV]
else
goto <bb 5>; [INV]
x86_64:
<bb 2> :
_1 = y_14(D) > 8;
_2 = y_14(D) != 16;
_3 = _1 & _2;
if (_3 != 0)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
Setting --param logical-op-non-short-circuit=1 fixes the testcase for ppc64le
on the branch, I suspect it will be the same for s390x.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug testsuite/108776] new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails
2023-02-13 16:23 [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails seurer at gcc dot gnu.org
2023-05-11 7:13 ` [Bug testsuite/108776] " rguenth at gcc dot gnu.org
@ 2023-05-11 7:21 ` jakub at gcc dot gnu.org
2023-05-11 7:31 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-11 7:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108776
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #1)
> Setting --param logical-op-non-short-circuit=1 fixes the testcase for ppc64le
> on the branch, I suspect it will be the same for s390x.
Then let's go with that.
The PR106523/PR108440 fixes are heavily dependent on the ranger so that while
fixing the wrong-code it doesn't regress much in rotate recognition. And the
ranger is increasingly less capable in older branches, that is why I chose not
to backport those
fixes at all to 10/11 branches.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug testsuite/108776] new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails
2023-02-13 16:23 [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails seurer at gcc dot gnu.org
2023-05-11 7:13 ` [Bug testsuite/108776] " rguenth at gcc dot gnu.org
2023-05-11 7:21 ` jakub at gcc dot gnu.org
@ 2023-05-11 7:31 ` rguenth at gcc dot gnu.org
2023-05-15 8:24 ` cvs-commit at gcc dot gnu.org
2023-05-15 8:24 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-05-11 7:31 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108776
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug testsuite/108776] new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails
2023-02-13 16:23 [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails seurer at gcc dot gnu.org
` (2 preceding siblings ...)
2023-05-11 7:31 ` rguenth at gcc dot gnu.org
@ 2023-05-15 8:24 ` cvs-commit at gcc dot gnu.org
2023-05-15 8:24 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-15 8:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108776
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:9410a52061ffe4a9e6ef8fd82f9c21d1874ff589
commit r12-9538-g9410a52061ffe4a9e6ef8fd82f9c21d1874ff589
Author: Richard Biener <rguenther@suse.de>
Date: Thu May 11 09:13:31 2023 +0200
testsuite/108776 - avoid c-c++-common/rotate-11.c FAIL
On the branch ranger isn't powerful enough to handle some cases
appearing with logical-op-non-short-circuit evaluating to false
causing FAILs of the testcase for ppc64le and s390x. The following
foces logical-op-non-short-circuit to true for this testcase
on the branch.
PR testsuite/108776
* c-c++-common/rotate-11.c: Add --param
logical-op-non-short-circuit=1.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug testsuite/108776] new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails
2023-02-13 16:23 [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails seurer at gcc dot gnu.org
` (3 preceding siblings ...)
2023-05-15 8:24 ` cvs-commit at gcc dot gnu.org
@ 2023-05-15 8:24 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-05-15 8:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108776
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-05-15 8:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-13 16:23 [Bug testsuite/108776] New: new test case c-c++-common/rotate-11.c from r12-9158-ga015ebe382cd6d fails seurer at gcc dot gnu.org
2023-05-11 7:13 ` [Bug testsuite/108776] " rguenth at gcc dot gnu.org
2023-05-11 7:21 ` jakub at gcc dot gnu.org
2023-05-11 7:31 ` rguenth at gcc dot gnu.org
2023-05-15 8:24 ` cvs-commit at gcc dot gnu.org
2023-05-15 8:24 ` rguenth at gcc dot gnu.org
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).