https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79131
--- Comment #14 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- (In reply to Andreas Krebbel from comment #12) > Starting with that patch we see worse code being generated for: > > int __attribute__((noinline,noclone)) > all_eq_double (double __attribute__((vector_size(16))) a, > double __attribute__((vector_size(16))) b) > { > return __builtin_s390_vec_all_eq (a, b); > } > > gcc -O3 -march=z13 > before: > vfcedbs %v0,%v24,%v26 > lhi %r2,1 > lochine %r2,0 > lgfr %r2,%r2 > br %r14 > after: > vfcedbs %v0,%v24,%v26 > lhi %r2,1 > lr %r1,%r2 > lochine %r1,0 > lgfr %r2,%r1 > br %r14 > > Note: ideally it should be more like: > vfcedbs %v0,%v24,%v26 > lghi %r2,1 > locghine %r2,0 > br %r14 > ... but that's a different topic: I think you should open a new bug report. This one has been closed (and the ICE has been fixed), so this is a new issue.