middle-end/104450 - ISEL and non-call EH
authorRichard Biener <rguenther@suse.de>
Wed, 9 Feb 2022 08:11:28 +0000 (09:11 +0100)
committerRichard Biener <rguenther@suse.de>
Wed, 9 Feb 2022 09:07:29 +0000 (10:07 +0100)
commit871afdc512be0510cbd4fa0928e5a1bd0681766e
tree59a1ab5c8095d6ab34799fc4b0e77f35653fbe65
parent1c827873ed283df282f2df11dfe0ff607e07dab3
middle-end/104450 - ISEL and non-call EH

The following avoids merging a vector compare with EH with a
VEC_COND_EXPR.  We should be able to do fallback expansion and if
we really are for the optimization we need quite some shuffling
to arrange for the proper EH redirection in all cases, IMHO not
worth it.

2022-02-09  Richard Biener  <rguenther@suse.de>

PR middle-end/104450
* gimple-isel.cc: Pass cfun around.
(+gimple_expand_vec_cond_expr): Do not combine a throwing
comparison with the select.

* g++.dg/torture/pr104450.C: New testcase.
gcc/gimple-isel.cc
gcc/testsuite/g++.dg/torture/pr104450.C [new file with mode: 0644]