https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115597
--- Comment #3 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
>
> Can you check whether that fixes the issue?
>
> diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
> index 9465d94de1a..212d5f97f7d 100644
> --- a/gcc/tree-vect-slp.cc
> +++ b/gcc/tree-vect-slp.cc
> @@ -6085,7 +6085,6 @@ static void
> vect_cse_slp_nodes (scalar_stmts_to_slp_tree_map_t *bst_map, slp_tree& node)
> {
> if (SLP_TREE_DEF_TYPE (node) == vect_internal_def
> - && SLP_TREE_CODE (node) != VEC_PERM_EXPR
> /* Besides some VEC_PERM_EXPR, two-operator nodes also
> lack scalar stmts and thus CSE doesn't work via bst_map. Ideally
> we'd have sth that works for all internal and external nodes. */
Yeah that seems to do it, can compile SPECFP again.