https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113441
Richard Sandiford <rsandifo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #57602|0 |1 is obsolete| | --- Comment #42 from Richard Sandiford <rsandifo at gcc dot gnu.org> --- Created attachment 57605 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57605&action=edit proof-of-concept patch to suppress peeling for gaps How about the attached? It records whether all accesses that require peeling for gaps could instead have used gathers, and only retries when that's true. It means that we retry for only 0.034% of calls to vect_analyze_loop_1 in a build of SPEC2017 with -mcpu=neoverse-v1 -Ofast -fomit-frame-pointer. The figures exclude wrf, which failed for me with: module_mp_gsfcgce.fppized.f90:852:23: 852 | REAL FUNCTION ggamma(X) | ^ Error: definition in block 18 does not dominate use in block 13 for SSA_NAME: stmp_pf_6.5657_140 in statement: pf_81 = PHI <stmp_pf_6.5657_140(13), stmp_pf_6.5657_140(18)> PHI argument stmp_pf_6.5657_140 for PHI node pf_81 = PHI <stmp_pf_6.5657_140(13), stmp_pf_6.5657_140(18)> during GIMPLE pass: vect module_mp_gsfcgce.fppized.f90:852:23: internal compiler error: verify_ssa failed Will look at that tomorrow.