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 <rguent...@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)