]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-vect-slp-patterns.cc
middle-end: Update the Arm complex numbers auto-vec detection to the new format of...
authorTamar Christina <tamar.christina@arm.com>
Fri, 29 Oct 2021 11:45:41 +0000 (12:45 +0100)
committerTamar Christina <tamar.christina@arm.com>
Fri, 29 Oct 2021 11:45:41 +0000 (12:45 +0100)
commited3de62ac949c92ad41ef6de7cc926fbb2a510ce
tree40140a219dc8aa15d6b0f6fc5ffb21b5b68dfb7d
parentf1ba6a819de6f4aacf9d69725f64496d20edd5a1
middle-end: Update the Arm complex numbers auto-vec detection to the new format of the SLP tree.

The layout of the SLP tree has changed in GCC 12 which
broke the detection of complex FMA and FMS.

This patch updates the detection to the new tree shape
and by necessity merges the complex MUL and FMA detection
into one.

This does not yet address the wrong code-gen PR which I
will fix in a different patch as that needs backporting.

gcc/ChangeLog:

PR tree-optimization/102977
* tree-vect-slp-patterns.c (vect_match_call_p): Remove.
(vect_detect_pair_op): Add crosslane check.
(vect_match_call_complex_mla): Remove.
(class complex_mul_pattern): Update comment.
(complex_mul_pattern::matches): Update detection.
(class complex_fma_pattern): Remove.
(complex_fma_pattern::matches): Remove.
(complex_fma_pattern::recognize): Remove.
(complex_fma_pattern::build): Remove.
(class complex_fms_pattern):  Update comment.
(complex_fms_pattern::matches): Remove.
(complex_operations_pattern::recognize): Remove complex_fma_pattern
gcc/tree-vect-slp-patterns.c