https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109505
--- Comment #15 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #13) > (In reply to rsand...@gcc.gnu.org from comment #12) > > (In reply to Andrew Pinski from comment #11) > > > For bit_and/bit_ior, VECTOR_CST (I would assume). > > Ah, yeah. But then I don't think a top-level POLY_INT_CST_P > > cuts it. We'd have the same problem with VECTOR_CSTs containing > > POLY_INT_CSTs. > Do we really support that? Sure. At least AIUI, VECTOR_CST can contain whatever constants the associated scalar supports. A specific example is: #include <arm_sve.h> svint32_t f() { return svdup_s32(svcntw()); } which gives: return { POLY_INT_CST [4, 4], ... }; https://godbolt.org/z/T1s3n5Pfx