Extend the idea in D150851 to introduce RecurKinds [I|F]FindFirstIV
corresponding to [I|F]FirstLastIV. D150851 enabled vectorization of the
following example:
long src[20000] = {4, 5, 2};
long r = 331;
for (long i = 0; i < 20000; i++) {
if (src[i] > 3)
r = i;
}
return r;This patch extends the above idea to also vectorize:
long src[20000] = {4, 5, 2};
long r = 331;
for (long i = 20000 - 1; i >= 0; i--) {
if (src[i] > 3)
r = i;
}
return r;
I prefer FindLastIncIV and FindLastDecIV. The term 'Last' should refer to the last iteration in the loop, and 'first' should refer to the first iteration in the loop.