I believe something wrong happened when you uploaded this patch.
It is not showing LoopVectorize.cpp file.
I can only see Context not available.
Is that happening for you too?
|2 ↗||(On Diff #351904)|
|3 ↗||(On Diff #351904)|
Can you make that a more generic test using the flag:
|5 ↗||(On Diff #351904)|
Remove that too.
|106 ↗||(On Diff #351904)|
I believe you don't need that.
This looks like the same code, just different formatting.
Did you diff with the correct commit? It also says that llvm/test/Transforms/LoopVectorize/AArch64/sve-trunc-min-bitwidth.ll was moved, but this file does not exist upstream.
For most of the other scalable tests added to LoopVectorize we've used -scalable-vectorization=on
This function doesn't have any attributes, so you can remove the #0
I think you can change this to %for.body and then remove the for.body.pre block below.
Just a few more nits on the test.
%dptr is not a pointer, but rather the number of loop iterations, e.g. %N.
sptr is also not a pointer, but rather some store value, e.g. %val.
if you make i16* %hptr into i16* noalias %hptr, then you avoid the memory checks because the compiler knows the data pointed to by %hptr doesn't alias with any other memory that's accessed in the function, so it won't have to actively check if there is a dependence between the load/store by adding the compares. See the LangRef.