]> 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)
committerTamar Christina <tamar.christina@arm.com>
Fri, 26 Jul 2024 12:02:53 +0000 (13:02 +0100)
commit29e4e4bdb674118b898d50ce7751c183aa0a44ee
tree3af9b68d2e50229a8a9ac5df80a74266c7596bcc
parentf145f5411609dca5493a6709e8139609b584622f
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