public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu
@ 2021-06-17 3:44 qrzhang at gatech dot edu
2021-06-17 3:46 ` [Bug tree-optimization/101105] " qrzhang at gatech dot edu
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: qrzhang at gatech dot edu @ 2021-06-17 3:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Bug ID: 101105
Summary: wrong code at -O3 on x86_64-linux-gnu
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: qrzhang at gatech dot edu
Target Milestone: ---
It appears to be a regression in 11.
$ gcc-trunk -v
Configured with: ../gcc/configure --prefix=/nethome/qzhang414/trunk/root-gcc
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210616 (experimental) [master revision
041f7417707:a530c589490:3155d51bfd1de8b6c4645dcb2292248a8d7cc3c9] (GCC)
$ gcc-trunk abc.c ; ./a.out
2
$ gcc-trunk -O3 abc.c ; ./a.out
Segmentation fault
$ cat abc.c
short a;
int b[5][4] = {2, 2};
long *c;
int d;
short(e)(f) { return f == 0 || a && f == 1 ? 0 : a; }
int main() {
int g, h;
g = 3;
for (; g >= 0; g--) {
h = 3;
for (; h >= 0; h--)
b[g][h] = b[0][1] && e(1);
}
d = b[0][1];
if (d)
*c = 4073709551611;
printf("%d\n", 2);
}
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
@ 2021-06-17 3:46 ` qrzhang at gatech dot edu
2021-06-17 4:40 ` [Bug tree-optimization/101105] [11/12 Regression] " pinskia at gcc dot gnu.org
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: qrzhang at gatech dot edu @ 2021-06-17 3:46 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #1 from Qirun Zhang <qrzhang at gatech dot edu> ---
My bisection points to g:f75211822f8d84bb706421
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11/12 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
2021-06-17 3:46 ` [Bug tree-optimization/101105] " qrzhang at gatech dot edu
@ 2021-06-17 4:40 ` pinskia at gcc dot gnu.org
2021-06-17 7:06 ` rguenth at gcc dot gnu.org
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-06-17 4:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Version|unknown |11.0
Target| |x86_64-linux-gnu
Summary|wrong code at -O3 on |[11/12 Regression] wrong
|x86_64-linux-gnu |code at -O3 on
| |x86_64-linux-gnu
Target Milestone|--- |11.2
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11/12 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
2021-06-17 3:46 ` [Bug tree-optimization/101105] " qrzhang at gatech dot edu
2021-06-17 4:40 ` [Bug tree-optimization/101105] [11/12 Regression] " pinskia at gcc dot gnu.org
@ 2021-06-17 7:06 ` rguenth at gcc dot gnu.org
2021-06-23 9:37 ` rguenth at gcc dot gnu.org
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-17 7:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|rguenther at suse dot de |rguenth at gcc dot gnu.org,
| |rsandifo at gcc dot gnu.org
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Last reconfirmed| |2021-06-17
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.
short a;
int b[5][4] = {2, 2};
int d;
short e(int f) { return f == 0 || a && f == 1 ? 0 : a; }
int main() {
int g, h;
g = 3;
for (; g >= 0; g--) {
h = 3;
for (; h >= 0; h--)
b[g][h] = b[0][1] && e(1);
}
d = b[0][1];
if (d != 0)
__builtin_abort ();
return 0;
}
after if-conversion we have
<bb 3> [local count: 214748368]:
# g_40 = PHI <g_11(7), 3(2)>
# ivtmp_2 = PHI <ivtmp_27(7), 4(2)>
b[g_40][2] = 0;
b[g_40][3] = 0;
b[g_40][1] = 0;
_42 = b[0][1];
b[g_40][0] = 0;
g_11 = g_40 + -1;
ivtmp_27 = ivtmp_2 - 1;
if (ivtmp_27 != 0)
goto <bb 7>; [75.00%]
else
goto <bb 4>; [25.00%]
<bb 7> [local count: 161061274]:
goto <bb 3>; [100.00%]
<bb 4> [local count: 53687093]:
# _18 = PHI <_42(3)>
d = _18;
if (_18 != 0)
and vect produces
<bb 3> [local count: 214748368]:
# g_40 = PHI <g_11(7), 3(2)>
# ivtmp_2 = PHI <ivtmp_27(7), 4(2)>
# ivtmp_48 = PHI <ivtmp_26(7), _19(2)>
# ivtmp_32 = PHI <ivtmp_12(7), 0(2)>
_42 = b[0][1];
MEM <vector(4) int> [(int *)ivtmp_48] = { 0, 0, 0, 0 };
ivtmp_31 = ivtmp_48 + 18446744073709551600(OVF);
g_11 = g_40 + -1;
ivtmp_27 = ivtmp_2 - 1;
ivtmp_26 = ivtmp_48 + 18446744073709551600(OVF);
ivtmp_12 = ivtmp_32 + 1;
if (ivtmp_12 < 4)
goto <bb 7>; [75.00%]
else
goto <bb 4>; [25.00%]
<bb 7> [local count: 161061274]:
goto <bb 3>; [100.00%]
<bb 4> [local count: 53687093]:
# _18 = PHI <_42(3)>
We have
(Data Dep:
#(Data Ref:
# bb: 3
# stmt: b[g_40][1] = 0;
# ref: b[g_40][1];
# base_object: b;
# Access function 0: 1
# Access function 1: {3, +, -1}_1
#)
#(Data Ref:
# bb: 3
# stmt: _42 = b[0][1];
# ref: b[0][1];
# base_object: b;
# Access function 0: 1
# Access function 1: 0
#)
access_fn_A: 1
access_fn_B: 1
(subscript
iterations_that_access_an_element_twice_in_A: [0]
last_conflict: scev_not_known
iterations_that_access_an_element_twice_in_B: [0]
last_conflict: scev_not_known
(Subscript distance: 0 ))
access_fn_A: {3, +, -1}_1
access_fn_B: 0
(subscript
iterations_that_access_an_element_twice_in_A: [-3]
last_conflict: 1
iterations_that_access_an_element_twice_in_B: [0]
last_conflict: 1
(Subscript distance: -3 ))
loop nest: (1 )
)
and mark the DR for a runtime alias test. But then
t3.c:8:12: note: === vect_prune_runtime_alias_test_list ===
t3.c:8:12: note: can tell at compile time that b[g_40][0] and b[0][1] do not
alias
t3.c:8:12: note: improved number of alias checks from 1 to 0
as vect_compile_time_alias gets segment_lengths of zero (huh), since
/* Step values are irrelevant for aliasing if the number of vector
iterations is equal to the number of scalar iterations (which can
happen for fully-SLP loops). */
bool ignore_step_p = known_eq (LOOP_VINFO_VECT_FACTOR (loop_vinfo), 1U);
...
if (ignore_step_p)
{
segment_length_a = size_zero_node;
segment_length_b = size_zero_node;
}
but I'm not sure if a segment length of zero will do good in any case where
the alias check is needed? Richard - that's your code, can you have a look?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11/12 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (2 preceding siblings ...)
2021-06-17 7:06 ` rguenth at gcc dot gnu.org
@ 2021-06-23 9:37 ` rguenth at gcc dot gnu.org
2021-06-23 9:45 ` rsandifo at gcc dot gnu.org
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-23 9:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
So what happens is that vect_compile_time_alias fails to perform the offset
adjustment for the negative step DR
#(Data Ref:
# bb: 3
# stmt: b[g_40][0] = 0;
# ref: b[g_40][0];
# base_object: b;
# Access function 0: 0
# Access function 1: {3, +, -1}_1
which is done via
/* For negative step, we need to adjust address range by TYPE_SIZE_UNIT
bytes, e.g., int a[3] -> a[1] range is [a+4, a+16) instead of
[a, a+12) */
if (tree_int_cst_compare (DR_STEP (a->dr), size_zero_node) < 0)
{
const_length_a = (-wi::to_poly_wide (segment_length_a)).force_uhwi ();
offset_a -= const_length_a;
}
since we zero segment_length_a because of ignore_step_p. But that adjustment
cannot be ignored. I suppose we need to track a separate "offset segment
length"
for this purpose?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11/12 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (3 preceding siblings ...)
2021-06-23 9:37 ` rguenth at gcc dot gnu.org
@ 2021-06-23 9:45 ` rsandifo at gcc dot gnu.org
2021-06-23 9:52 ` rguenth at gcc dot gnu.org
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2021-06-23 9:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rsandifo at gcc dot gnu.org
--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Mine.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11/12 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (4 preceding siblings ...)
2021-06-23 9:45 ` rsandifo at gcc dot gnu.org
@ 2021-06-23 9:52 ` rguenth at gcc dot gnu.org
2021-06-24 7:07 ` cvs-commit at gcc dot gnu.org
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-23 9:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 51055
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51055&action=edit
patch
So like this.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11/12 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (5 preceding siblings ...)
2021-06-23 9:52 ` rguenth at gcc dot gnu.org
@ 2021-06-24 7:07 ` cvs-commit at gcc dot gnu.org
2021-06-24 7:09 ` [Bug tree-optimization/101105] [11 " rguenth at gcc dot gnu.org
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-24 7:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:50374fdacbd121bc4a61b073e559208ff61bee06
commit r12-1765-g50374fdacbd121bc4a61b073e559208ff61bee06
Author: Richard Biener <rguenther@suse.de>
Date: Wed Jun 23 12:43:03 2021 +0200
tree-optimization/101105 - fix runtime alias test optimization
We were ignoring DR_STEP for VF == 1 which is OK only in case
the scalar order is preserved or both DR steps are the same.
2021-06-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/101105
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Only ignore steps when they are equal or scalar order is preserved.
* gcc.dg/torture/pr101105.c: New testcase.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (6 preceding siblings ...)
2021-06-24 7:07 ` cvs-commit at gcc dot gnu.org
@ 2021-06-24 7:09 ` rguenth at gcc dot gnu.org
2021-06-24 7:15 ` rguenth at gcc dot gnu.org
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-24 7:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Summary|[11/12 Regression] wrong |[11 Regression] wrong code
|code at -O3 on |at -O3 on x86_64-linux-gnu
|x86_64-linux-gnu |
Assignee|rsandifo at gcc dot gnu.org |rguenth at gcc dot gnu.org
Known to work| |12.0
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed on trunk sofar.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (7 preceding siblings ...)
2021-06-24 7:09 ` [Bug tree-optimization/101105] [11 " rguenth at gcc dot gnu.org
@ 2021-06-24 7:15 ` rguenth at gcc dot gnu.org
2021-06-25 9:06 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-24 7:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work| |7.5.0
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
Note the same problematic code exists on the 8, 9 and 10 branches, too, only
the 7 branch has sufficiently different code.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [11 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (8 preceding siblings ...)
2021-06-24 7:15 ` rguenth at gcc dot gnu.org
@ 2021-06-25 9:06 ` cvs-commit at gcc dot gnu.org
2021-06-25 9:06 ` [Bug tree-optimization/101105] [9/10 " rguenth at gcc dot gnu.org
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-25 9:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:00ab8e994b87693b9e56fa68c3b3ede01425a2c0
commit r11-8653-g00ab8e994b87693b9e56fa68c3b3ede01425a2c0
Author: Richard Biener <rguenther@suse.de>
Date: Wed Jun 23 12:43:03 2021 +0200
tree-optimization/101105 - fix runtime alias test optimization
We were ignoring DR_STEP for VF == 1 which is OK only in case
the scalar order is preserved or both DR steps are the same.
2021-06-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/101105
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Only ignore steps when they are equal or scalar order is preserved.
* gcc.dg/torture/pr101105.c: New testcase.
(cherry picked from commit 50374fdacbd121bc4a61b073e559208ff61bee06)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [9/10 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (9 preceding siblings ...)
2021-06-25 9:06 ` cvs-commit at gcc dot gnu.org
@ 2021-06-25 9:06 ` rguenth at gcc dot gnu.org
2021-09-06 10:18 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-25 9:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |11.1.0
Target Milestone|11.2 |9.5
Summary|[11 Regression] wrong code |[9/10 Regression] wrong
|at -O3 on x86_64-linux-gnu |code at -O3 on
| |x86_64-linux-gnu
Known to work| |11.1.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [9/10 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (10 preceding siblings ...)
2021-06-25 9:06 ` [Bug tree-optimization/101105] [9/10 " rguenth at gcc dot gnu.org
@ 2021-09-06 10:18 ` cvs-commit at gcc dot gnu.org
2021-10-13 10:09 ` [Bug tree-optimization/101105] [9 " cvs-commit at gcc dot gnu.org
2021-10-13 10:11 ` rguenth at gcc dot gnu.org
13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-09-06 10:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:aed52ca415b635463116486865a2a55f947cf8c1
commit r10-10096-gaed52ca415b635463116486865a2a55f947cf8c1
Author: Richard Biener <rguenther@suse.de>
Date: Wed Jun 23 12:43:03 2021 +0200
tree-optimization/101105 - fix runtime alias test optimization
We were ignoring DR_STEP for VF == 1 which is OK only in case
the scalar order is preserved or both DR steps are the same.
2021-06-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/101105
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Only ignore steps when they are equal or scalar order is preserved.
* gcc.dg/torture/pr101105.c: New testcase.
(cherry picked from commit 50374fdacbd121bc4a61b073e559208ff61bee06)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [9 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (11 preceding siblings ...)
2021-09-06 10:18 ` cvs-commit at gcc dot gnu.org
@ 2021-10-13 10:09 ` cvs-commit at gcc dot gnu.org
2021-10-13 10:11 ` rguenth at gcc dot gnu.org
13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-10-13 10:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:641bea75ab2b3567dfa66370dea8b810b504d3cc
commit r9-9770-g641bea75ab2b3567dfa66370dea8b810b504d3cc
Author: Richard Biener <rguenther@suse.de>
Date: Wed Jun 23 12:43:03 2021 +0200
tree-optimization/101105 - fix runtime alias test optimization
We were ignoring DR_STEP for VF == 1 which is OK only in case
the scalar order is preserved or both DR steps are the same.
2021-06-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/101105
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Only ignore steps when they are equal or scalar order is preserved.
* gcc.dg/torture/pr101105.c: New testcase.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug tree-optimization/101105] [9 Regression] wrong code at -O3 on x86_64-linux-gnu
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
` (12 preceding siblings ...)
2021-10-13 10:09 ` [Bug tree-optimization/101105] [9 " cvs-commit at gcc dot gnu.org
@ 2021-10-13 10:11 ` rguenth at gcc dot gnu.org
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-10-13 10:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101105
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
Known to fail| |9.4.0
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-10-13 10:11 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-17 3:44 [Bug tree-optimization/101105] New: wrong code at -O3 on x86_64-linux-gnu qrzhang at gatech dot edu
2021-06-17 3:46 ` [Bug tree-optimization/101105] " qrzhang at gatech dot edu
2021-06-17 4:40 ` [Bug tree-optimization/101105] [11/12 Regression] " pinskia at gcc dot gnu.org
2021-06-17 7:06 ` rguenth at gcc dot gnu.org
2021-06-23 9:37 ` rguenth at gcc dot gnu.org
2021-06-23 9:45 ` rsandifo at gcc dot gnu.org
2021-06-23 9:52 ` rguenth at gcc dot gnu.org
2021-06-24 7:07 ` cvs-commit at gcc dot gnu.org
2021-06-24 7:09 ` [Bug tree-optimization/101105] [11 " rguenth at gcc dot gnu.org
2021-06-24 7:15 ` rguenth at gcc dot gnu.org
2021-06-25 9:06 ` cvs-commit at gcc dot gnu.org
2021-06-25 9:06 ` [Bug tree-optimization/101105] [9/10 " rguenth at gcc dot gnu.org
2021-09-06 10:18 ` cvs-commit at gcc dot gnu.org
2021-10-13 10:09 ` [Bug tree-optimization/101105] [9 " cvs-commit at gcc dot gnu.org
2021-10-13 10:11 ` 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).