https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110182
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[11/12/13/14 Regression] |[11/12 Regression]
|Vector(2) cast from double |Vector(2) cast from double
|to float and back and |to float and back and
|subtraction seems to |subtraction seems to
|produce incorrect results |produce incorrect results
Known to work| |13.1.1, 14.0
Known to fail| |13.1.0
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed on trunk and GCC 13 branch sofar. Not my day writing commit logs though
...
commit b6118b8155a679ced926e8ff900e0ed969cd23a7 (HEAD -> gcc-13,
origin/releases/gcc-13)
Author: Richard Biener <rguenther@suse.de>
Date: Fri Jun 9 09:29:09 2023 +0200
middle-end/110182 - TYPE_PRECISION on VECTOR_TYPE causes wrong-code
When folding two conversions in a row we use TYPE_PRECISION but
that's invalid for VECTOR_TYPE. The following fixes this by
using element_precision instead.
middle-end/110182
* match.pd (two conversions in a row): Use element_precision
to DTRT for VECTOR_TYPE.
(cherry picked from commit 3e12669a0eb968cfcbe9242b382fd8020935edf8)