LAA: Can't find bounds for ptr: %arrayidx13 = getelementptr inbounds [32000 x float], ptr %a.sink, i64 0, i64 %indvars.iv, !dbg !37
LAA: Found a runtime check ptr: %arrayidx15 = getelementptr inbounds [32000 x float], ptr @a, i64 0, i64 %indvars.iv, !dbg !32
LAA: We need to do 0 pointer comparisons.
LAA: We can't vectorize because we can't find the array bounds.
The direct factor is the missing ptr boundary.
Phi for selecting base address of store in "%a.sink" of "for.inc" block seems to be affected.
Clang cannot SVE vectorize TSVC s1161, but GCC13.2.0 can.
Option:
-Ofast -march=armv8.2-a+sve
See also (Clang vs GCC): https://godbolt.org/z/EEq8Mj5zs
GCC result:
Loop Body IR:
-mllvm -debug-only=loop-accesses
messages:The direct factor is the missing ptr boundary. Phi for selecting base address of store in "%a.sink" of "for.inc" block seems to be affected.