public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4)
@ 2021-11-10 11:39 asolokha at gmx dot com
2021-11-10 13:22 ` [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce marxin at gcc dot gnu.org
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: asolokha at gmx dot com @ 2021-11-10 11:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Bug ID: 103169
Summary: [12 Regression] ICE: verify_ssa failed (error:
definition in block 3 does not dominate use in block
4)
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: aarch64-linux-gnu
gcc-12.0.0-alpha20211107 snapshot (g:962ff7d2849e1fa6a1fe0535aa2dec5c2b9a32a6)
ICEs when compiling the following testcase, reduced from
gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c, w/
-march=armv8.3-a -O2 -fvect-cost-model=unlimited -c jj4al0hq.c:
_Complex double b_0, c_0;
void
mul270snd (void)
{
c_0 = b_0 * 1.0iF * 1.0iF;
}
% aarch64-linux-gnu-gcc-12.0.0 -march=armv8.3-a -O2 -fvect-cost-model=unlimited
-c jj4al0hq.c
jj4al0hq.c: In function 'mul270snd':
jj4al0hq.c:4:1: error: definition in block 3 does not dominate use in block 4
4 | mul270snd (void)
| ^~~~~~~~~
for SSA_NAME: _37 in statement:
_38 = VEC_PERM_EXPR <vect__15.9_34, _37, { 0, 3 }>;
during GIMPLE pass: slp
jj4al0hq.c:4:1: internal compiler error: verify_ssa failed
0x118eb78 verify_ssa(bool, bool)
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211107/work/gcc-12-20211107/gcc/tree-ssa.c:1212
0xe49eb8 execute_function_todo
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211107/work/gcc-12-20211107/gcc/passes.c:2049
0xe4a37b execute_todo
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211107/work/gcc-12-20211107/gcc/passes.c:2096
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
@ 2021-11-10 13:22 ` marxin at gcc dot gnu.org
2021-11-10 13:50 ` pinskia at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-11-10 13:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-11-10
Summary|[12 Regression] ICE: |[12 Regression] ICE:
|verify_ssa failed (error: |verify_ssa failed (error:
|definition in block 3 does |definition in block 3 does
|not dominate use in block |not dominate use in block
|4) |4) since
| |r12-4785-ged3de62ac949c92ad
| |41ef6de7cc926fbb2a510ce
CC| |marxin at gcc dot gnu.org,
| |tnfchris at gcc dot gnu.org
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
2021-11-10 13:22 ` [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce marxin at gcc dot gnu.org
@ 2021-11-10 13:50 ` pinskia at gcc dot gnu.org
2021-11-11 9:13 ` rguenth at gcc dot gnu.org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-10 13:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu.org
Target Milestone|--- |12.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
2021-11-10 13:22 ` [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce marxin at gcc dot gnu.org
2021-11-10 13:50 ` pinskia at gcc dot gnu.org
@ 2021-11-11 9:13 ` rguenth at gcc dot gnu.org
2021-11-11 10:16 ` tnfchris at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-11-11 9:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (2 preceding siblings ...)
2021-11-11 9:13 ` rguenth at gcc dot gnu.org
@ 2021-11-11 10:16 ` tnfchris at gcc dot gnu.org
2021-11-16 11:43 ` tnfchris at gcc dot gnu.org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: tnfchris at gcc dot gnu.org @ 2021-11-11 10:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Tamar Christina <tnfchris at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |tnfchris at gcc dot gnu.org
--- Comment #2 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
looking at the tree it looks like with the new SLP layout the complex MUL is
detected but complex MUL re-arranges the nodes. The nodes are
/app/example.c:6:7: note: op: VEC_PERM_EXPR
/app/example.c:6:7: note: { }
/app/example.c:6:7: note: lane permutation { 0[0] 1[1] }
/app/example.c:6:7: note: children 0x32b1ce0 0x32b2820
/app/example.c:6:7: note: node 0x32b1ce0 (max_nunits=2, refcnt=1)
/app/example.c:6:7: note: op template: _15 = PHI <_10(7), _13(3)>
/app/example.c:6:7: note: stmt 0 _15 = PHI <_10(7), _13(3)>
/app/example.c:6:7: note: stmt 1 _16 = PHI <_11(7), _14(3)>
/app/example.c:6:7: note: children 0x32b1d70 0x32b2280
where 0x32b2820 is some externals. By only selecting one of the phi nodes as
it re-orders it breaks the dominance. So I guess this transformation should
happen when any of the operands to the MUL is a phi node.
This I think happens because is_linear_load is punting for this node and we
return PERM_TOP where I think PERM_UNKNOWN is better here.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (3 preceding siblings ...)
2021-11-11 10:16 ` tnfchris at gcc dot gnu.org
@ 2021-11-16 11:43 ` tnfchris at gcc dot gnu.org
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: tnfchris at gcc dot gnu.org @ 2021-11-16 11:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Tamar Christina <tnfchris at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=102819
--- Comment #3 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
Will be fixed with patch to PR102819
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (4 preceding siblings ...)
2021-11-16 11:43 ` tnfchris at gcc dot gnu.org
@ 2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-02 10:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:
https://gcc.gnu.org/g:55d83cdf23b5f284b4e0bd0a6d1af3d947b2e7c3
commit r12-6993-g55d83cdf23b5f284b4e0bd0a6d1af3d947b2e7c3
Author: Tamar Christina <tamar.christina@arm.com>
Date: Wed Feb 2 10:39:03 2022 +0000
vect: Simplify and extend the complex numbers validation routines.
This patch boosts the analysis for complex mul,fma and fms in order to
ensure
that it doesn't create an incorrect output.
Essentially it adds an extra verification to check that the two nodes it's
going
to combine do the same operations on compatible values. The reason it
needs to
do this is that if one computation differs from the other then with the
current
implementation we have no way to deal with it since we have to remove the
permute.
When we can keep the permute around we can probably handle these by
unrolling.
While implementing this since I have to do the traversal anyway I took
advantage
of it by simplifying the code a bit. Previously we would determine whether
something is a conjugate and then try to figure out which conjugate it is
and
then try to see if the permutes match what we expect.
Now the code that does the traversal will detect this in one go and return
to us
whether the operation is something that can be combined and whether a
conjugate
is present.
Secondly because it does this I can now simplify the checking code itself
to
essentially just try to apply fixed patterns to each operation.
The patterns represent the order operations should appear in. For instance
a
complex MUL operation combines :
Left 1 + Right 1
Left 2 + Right 2
with a permute on the nodes consisting of:
{ Even, Even } + { Odd, Odd }
{ Even, Odd } + { Odd, Even }
By abstracting over these patterns the checking code becomes quite simple.
As part of this I was checking the order of the operands which was left in
"slp" order. as in, the same order they showed up in during SLP, which
means
that the accumulator is first. However it looks like I didn't document
this
and the x86 optab was implemented assuming the same order as FMA, i.e. that
the accumulator is last.
I have this changed the order to match that of FMA and FMS which corrects
the
x86 codegen and will update the Arm targets. This has now also been
documented.
gcc/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* doc/md.texi: Update docs for cfms, cfma.
* tree-data-ref.h (same_data_refs): Accept optional offset.
* tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with
repeating
patterns.
(vect_normalize_conj_loc): Remove.
(is_eq_or_top): Change to take two nodes.
(enum _conj_status, compatible_complex_nodes_p,
vect_validate_multiplication): New.
(class complex_add_pattern, complex_add_pattern::matches,
complex_add_pattern::recognize, class complex_mul_pattern,
complex_mul_pattern::recognize, class complex_fms_pattern,
complex_fms_pattern::recognize, class complex_operations_pattern,
complex_operations_pattern::recognize, addsub_pattern::recognize):
Pass
new cache.
(complex_fms_pattern::matches, complex_mul_pattern::matches): Pass
new
cache and use new validation code.
* tree-vect-slp.cc (vect_match_slp_patterns_2,
vect_match_slp_patterns,
vect_analyze_slp): Pass along cache.
(compatible_calls_p): Expose.
* tree-vectorizer.h (compatible_calls_p, slp_node_hash,
slp_compat_nodes_map_t): New.
(class vect_pattern): Update signatures include new cache.
gcc/testsuite/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* g++.dg/vect/pr99149.cc: xfail for now.
* gcc.dg/vect/complex/pr102819-1.c: New test.
* gcc.dg/vect/complex/pr102819-2.c: New test.
* gcc.dg/vect/complex/pr102819-3.c: New test.
* gcc.dg/vect/complex/pr102819-4.c: New test.
* gcc.dg/vect/complex/pr102819-5.c: New test.
* gcc.dg/vect/complex/pr102819-6.c: New test.
* gcc.dg/vect/complex/pr102819-7.c: New test.
* gcc.dg/vect/complex/pr102819-8.c: New test.
* gcc.dg/vect/complex/pr102819-9.c: New test.
* gcc.dg/vect/complex/pr103169.c: New test.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (5 preceding siblings ...)
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
@ 2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-02 10:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:
https://gcc.gnu.org/g:ab95fe61fea38fbac7f4e00abd32c2530532351a
commit r12-6994-gab95fe61fea38fbac7f4e00abd32c2530532351a
Author: Tamar Christina <tamar.christina@arm.com>
Date: Wed Feb 2 10:51:38 2022 +0000
AArch64: use canonical ordering for complex mul, fma and fms
After the first patch in the series this updates the optabs to expect the
canonical sequence.
gcc/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
canonical order.
* config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4):
Likewise.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (6 preceding siblings ...)
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
@ 2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
2022-02-02 10:55 ` tnfchris at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-02 10:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:
https://gcc.gnu.org/g:9f6f411f63f3aceddd846e4b0d27202a6e13d42c
commit r12-6995-g9f6f411f63f3aceddd846e4b0d27202a6e13d42c
Author: Tamar Christina <tamar.christina@arm.com>
Date: Wed Feb 2 10:52:17 2022 +0000
AArch32: use canonical ordering for complex mul, fma and fms
After the first patch in the series this updates the optabs to expect the
canonical sequence.
gcc/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
canonical order.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (7 preceding siblings ...)
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
@ 2022-02-02 10:55 ` tnfchris at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: tnfchris at gcc dot gnu.org @ 2022-02-02 10:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
Tamar Christina <tnfchris at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #7 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
fixed
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (8 preceding siblings ...)
2022-02-02 10:55 ` tnfchris at gcc dot gnu.org
@ 2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-25 12:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Tamar Christina
<tnfchris@gcc.gnu.org>:
https://gcc.gnu.org/g:876e7c7f0fe47bae7c1922e2683ccb5e6e3ec9fe
commit r11-9621-g876e7c7f0fe47bae7c1922e2683ccb5e6e3ec9fe
Author: Tamar Christina <tamar.christina@arm.com>
Date: Fri Feb 25 11:59:32 2022 +0000
vect: Simplify and extend the complex numbers validation routines. (GCC-11
Backport)
This is a backport of the GCC 12 patch backporting only the correctness
part of
the fix. This also backports two small helper functions and documentation
update on the optabs.
The patch boosts the analysis for complex mul,fma and fms in order to
ensure
that it doesn't create an incorrect output.
Essentially it adds an extra verification to check that the two nodes it's
going
to combine do the same operations on compatible values. The reason it
needs to
do this is that if one computation differs from the other then with the
current
implementation we have no way to deal with it since we have to remove the
permute.
When we can keep the permute around we can probably handle these by
unrolling.
While implementing this since I have to do the traversal anyway I took
advantage
of it by simplifying the code a bit. Previously we would determine whether
something is a conjugate and then try to figure out which conjugate it is
and
then try to see if the permutes match what we expect.
Now the code that does the traversal will detect this in one go and return
to us
whether the operation is something that can be combined and whether a
conjugate
is present.
Secondly because it does this I can now simplify the checking code itself
to
essentially just try to apply fixed patterns to each operation.
The patterns represent the order operations should appear in. For instance
a
complex MUL operation combines :
Left 1 + Right 1
Left 2 + Right 2
with a permute on the nodes consisting of:
{ Even, Even } + { Odd, Odd }
{ Even, Odd } + { Odd, Even }
By abstracting over these patterns the checking code becomes quite simple.
As part of this I was checking the order of the operands which was left in
"slp" order. as in, the same order they showed up in during SLP, which
means
that the accumulator is first. However it looks like I didn't document
this.
gcc/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* gimple.h (gimple_num_args, gimple_arg): New.
* doc/md.texi: Update docs for cfms, cfma.
* tree-data-ref.h (same_data_refs): Accept optional offset.
* tree-vect-slp-patterns.c (is_linear_load_p): Fix issue with
repeating
patterns.
(vect_normalize_conj_loc): Remove.
(is_eq_or_top): Change to take two nodes.
(enum _conj_status, compatible_complex_nodes_p,
vect_validate_multiplication): New.
(class complex_add_pattern, complex_add_pattern::matches,
complex_add_pattern::recognize, class complex_mul_pattern,
complex_mul_pattern::recognize, class complex_fms_pattern,
complex_fms_pattern::recognize,, class complex_fma_pattern,
complex_fma_pattern::recognize, class complex_operations_pattern,
complex_operations_pattern::recognize, addsub_pattern::recognize):
Pass
new cache.
(complex_fms_pattern::matches, complex_fma_pattern::matches,
complex_mul_pattern::matches): Pass new cache and use new
validation
code.
* tree-vect-slp.c (vect_match_slp_patterns_2,
vect_match_slp_patterns,
vect_analyze_slp): Pass along cache.
(compatible_calls_p): Expose.
* tree-vectorizer.h (compatible_calls_p, slp_node_hash,
slp_compat_nodes_map_t): New.
(class vect_pattern): Update signatures include new cache.
gcc/testsuite/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* g++.dg/vect/pr99149.cc: xfail for now.
* gcc.dg/vect/complex/pr102819-1.c: New test.
* gcc.dg/vect/complex/pr102819-2.c: New test.
* gcc.dg/vect/complex/pr102819-3.c: New test.
* gcc.dg/vect/complex/pr102819-4.c: New test.
* gcc.dg/vect/complex/pr102819-5.c: New test.
* gcc.dg/vect/complex/pr102819-6.c: New test.
* gcc.dg/vect/complex/pr102819-7.c: New test.
* gcc.dg/vect/complex/pr102819-8.c: New test.
* gcc.dg/vect/complex/pr102819-9.c: New test.
* gcc.dg/vect/complex/pr103169.c: New test.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (9 preceding siblings ...)
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
@ 2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-25 12:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Tamar Christina
<tnfchris@gcc.gnu.org>:
https://gcc.gnu.org/g:6bb338eab3debf7742b1455146dd556b3ce3737c
commit r11-9622-g6bb338eab3debf7742b1455146dd556b3ce3737c
Author: Tamar Christina <tamar.christina@arm.com>
Date: Fri Feb 25 12:00:11 2022 +0000
AArch64: use canonical ordering for complex mul, fma and fms
After the first patch in the series this updates the optabs to expect the
canonical sequence.
gcc/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
canonical order.
* config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4):
Likewise.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
` (10 preceding siblings ...)
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
@ 2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-02-25 12:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103169
--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Tamar Christina
<tnfchris@gcc.gnu.org>:
https://gcc.gnu.org/g:7d713d56ec32b8c7101066619b4852b797955e24
commit r11-9623-g7d713d56ec32b8c7101066619b4852b797955e24
Author: Tamar Christina <tamar.christina@arm.com>
Date: Fri Feb 25 12:00:46 2022 +0000
AArch32: use canonical ordering for complex mul, fma and fms
After the first patch in the series this updates the optabs to expect the
canonical sequence.
gcc/ChangeLog:
PR tree-optimization/102819
PR tree-optimization/103169
* config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
canonical order.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-02-25 12:13 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-10 11:39 [Bug tree-optimization/103169] New: [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) asolokha at gmx dot com
2021-11-10 13:22 ` [Bug tree-optimization/103169] [12 Regression] ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4) since r12-4785-ged3de62ac949c92ad41ef6de7cc926fbb2a510ce marxin at gcc dot gnu.org
2021-11-10 13:50 ` pinskia at gcc dot gnu.org
2021-11-11 9:13 ` rguenth at gcc dot gnu.org
2021-11-11 10:16 ` tnfchris at gcc dot gnu.org
2021-11-16 11:43 ` tnfchris at gcc dot gnu.org
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
2022-02-02 10:54 ` cvs-commit at gcc dot gnu.org
2022-02-02 10:55 ` tnfchris at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit at gcc dot gnu.org
2022-02-25 12:13 ` cvs-commit 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).