On Fri, 31 Jul 2020, Richard Biener wrote:

This adds a ! marker to result expressions that should simplify
(and if not fail the simplification).  This can for example be
used like

(simplify
 (plus (vec_cond:s @0 @1 @2) @3)
 (vec_cond @0 (plus! @1 @3) (plus! @2 @3)))

to make the simplification only apply in case both plus operations
in the result end up simplified to a simple operand.

Thanks.

The ! syntax seems fine. If we run out, we can always introduce an attribute-like syntax: (plus[force_leaf] @1 @2), but we aren't there yet. And either this feature will see a lot of use and deserve its short syntax, or it won't and it will be easy to reclaim '!' for something else.

I am wondering about GENERIC. IIUC, '!' is ignored for GENERIC. Should we protect some/most uses of this syntax with #if GIMPLE? In my case, I think resimplify might simply return non-0 because it swapped the operands, which should not be sufficient to enable the transformation.

--
Marc Glisse

Reply via email to