This is pulled out of D75069, where I somewhat accidentally removed some unneeded block masks when we don't have any reductions. This is the same thing as a separate patch, and shouldn't have any effect on codegen.
Quick question on terminology and "inside" and "outside".
Ideally this would go with D75069, where inloop vs outside loop reductions are introduced. Until then this might not be the best language on it's own, but I was planning to commit the two close together in any case.
Outside loop reductions are what you would expect from reductions right now:
loop: l = load a = add a, l vecreduce(a)
Inside loop reductions put the reduction into the loop:
loop: l = load a = a + vecreduce(l)
So in the short term, this should probably be called "hasReductions()". But with D75069 should make more sense.
Thanks for clarifying. I got it, and yes, together with D75069 it makes sense.