With some iterations of delta, manually removing unused functions, and
speculatively removing different arguments or calls I was able to get
a copy of SLPVectorizer.cpp down to 102 lines (though still
#include'ing 5 of the llvm headers) that gives the known-good result
with the good switch and segfaults with the bad, but it might also be
so small or full of UB that it isn't meaningful to determine what's
getting miscompiled. I'm not sure at this point.
Maybe if creduce had something like an in-place option to automate
this type of situation where there's an external build system that has
an absolute path to the file hard-coded, I would have gotten more
mileage out of it here.