https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118151
ktkachov at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ktkachov at gcc dot gnu.org --- Comment #2 from ktkachov at gcc dot gnu.org --- We've also had reports for the use cases: #include <arm_sve.h> bool any(svuint64_t a, svuint64_t b) { const svbool_t p = svptrue_pat_b8(SV_VL16); const svbool_t c = svcmpeq_u64(p, a, b); return svptest_any(p, c); } bool first(svuint64_t a, svuint64_t b) { const svbool_t p = svptrue_pat_b8(SV_VL16); const svbool_t c = svcmpeq_u64(p, a, b); return svptest_first(p, c); } bool last(svuint64_t a, svuint64_t b) { const svbool_t p = svptrue_pat_b8(SV_VL16); const svbool_t c = svcmpeq_u64(p, a, b); return svptest_last(p, c); } I think these are the same issue here but I can file a separate PR if not. In this case the question is whether we can do away with the PTEST entirely and just use the CMP.