]> git.ipfire.org Git - thirdparty/gcc.git/commit
middle-end: check for vector mode before calling get_mask_mode [PR116074]
authorTamar Christina <tamar.christina@arm.com>
Fri, 26 Jul 2024 12:02:53 +0000 (13:02 +0100)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 28 Jul 2024 17:05:59 +0000 (19:05 +0200)
commit7a9d8962288ae2ff991c56b507041cb75097a4bc
treeb7e7a28afada9255f17a759000c432710ac6023a
parent5a585d47ebe07180afae0c054a0580b78a78984e
middle-end: check for vector mode before calling get_mask_mode [PR116074]

For historical reasons AArch64 has TI mode vector types but does not consider
TImode a vector mode.

What's happening in the PR is that get_vectype_for_scalar_type is returning
vector(1) TImode for a TImode scalar.  This then fails when we call
targetm.vectorize.get_mask_mode (vecmode).exists (&) on the TYPE_MODE.

This checks for vector mode before using the results of
get_vectype_for_scalar_type.

gcc/ChangeLog:

PR target/116074
* tree-vect-patterns.cc (vect_recog_cond_store_pattern): Check vector mode.

gcc/testsuite/ChangeLog:

PR target/116074
* g++.target/aarch64/pr116074.C: New test.
gcc/testsuite/g++.target/aarch64/pr116074.C [new file with mode: 0644]
gcc/tree-vect-patterns.cc