diff options
author | Jakub Jelinek <jakub@redhat.com> | 2023-04-22 10:24:29 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2023-04-22 10:24:29 +0200 |
commit | c58c0771b7a3dbd2a00cd4b6ca2301d74b6cd4e2 (patch) | |
tree | 8d6a668bd66c26aa493d7963b1d08d93d88807df /gcc/system.h | |
parent | cda246f8b421ba855a9e5f9d7bfcd0fc49b7bd4b (diff) | |
download | gcc-c58c0771b7a3dbd2a00cd4b6ca2301d74b6cd4e2.zip gcc-c58c0771b7a3dbd2a00cd4b6ca2301d74b6cd4e2.tar.gz gcc-c58c0771b7a3dbd2a00cd4b6ca2301d74b6cd4e2.tar.bz2 |
match.pd: Fix fneg/fadd optimization [PR109583]
The following testcase ICEs on x86, foo function since my r14-22
improvement, but bar already since r13-4122. The problem is the same,
in the if expression related_vector_mode is called and that starts with
gcc_assert (VECTOR_MODE_P (vector_mode));
but nothing in the fneg/fadd match.pd pattern actually checks if the
VEC_PERM type has VECTOR_MODE_P (vec_mode). In this case it has BLKmode
and so it ICEs.
The following patch makes sure we don't ICE on it.
2023-04-22 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/109583
* match.pd (fneg/fadd simplify): Don't call related_vector_mode
if vec_mode is not VECTOR_MODE_P.
* gcc.dg/pr109583.c: New test.
Diffstat (limited to 'gcc/system.h')
0 files changed, 0 insertions, 0 deletions