The index vector is hardened by broadcasting the predicate state
into a vector register and then or-ing. We don't even have to worry
about EFLAGS here.
I've added a test for all of the gather intrinsics to make sure that we
don't miss one. A particularly interesting creation is the gather
prefetch, which needs to be marked as potentially "loading" to get the
correct behavior. It's a memory access in many ways, and is actually
relevant for SLH. However, if marking as mayLoad seems to
heavy-handed, I can change how I find loads to specifically look for
prefetches.
I wonder if this should be mayLoad=1, mayStore =1, hasSideEffects = 0. That's what we use for other prefetch instructions.