https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106365
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- What's the semantic of .LEN_STORE? I can't find documentation for this :/ There's docs for the len_store optab but how 'mask' and 'bias' relate to its operands isn't documented anywhere. If the cited .LEN_STORE is a full store then sure - folding to a plain MEM = value; is preferred. Otherwise I wouldn't split it up. Handling of partial stores in VN is possible, the "easiest" way is probably via vn_reference_lookup_3 and its support for partial defs (for constant masks a store may then be composed of multiple partial defs and "masked" parts that are required will be taken from earlier stores). Maybe handling of all partial store IFNs can be commonized somehow. Alias analysis in general (ref_maybe_used_by_stmt_p, call_may_clobber_ref_p, stmt_kills_ref_p) also miss handling of them - possibly some more general helpers can facilitate that.