Skip to content

Commit 0590c70

Browse files
committed
[LAA] Add test for store size > dep dist
1 parent 540d6ab commit 0590c70

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

llvm/test/Analysis/LoopAccessAnalysis/depend_diff_types.ll

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,45 @@ exit:
344344
ret void
345345
}
346346

347+
; Variant of the above, where the store size exceeds the dependence
348+
; distance.
349+
define void @different_type_sizes_strided_accesses_store_size_exceeds_depdist(ptr %dst) {
350+
; CHECK-LABEL: 'different_type_sizes_strided_accesses_store_size_exceeds_depdist'
351+
; CHECK-NEXT: loop:
352+
; CHECK-NEXT: Report: unsafe dependent memory operations in loop. Use #pragma clang loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop
353+
; CHECK-NEXT: Unsafe indirect dependence.
354+
; CHECK-NEXT: Dependences:
355+
; CHECK-NEXT: IndirectUnsafe:
356+
; CHECK-NEXT: store i16 0, ptr %gep.iv, align 2 ->
357+
; CHECK-NEXT: store i128 1, ptr %gep.10.iv, align 4
358+
; CHECK-EMPTY:
359+
; CHECK-NEXT: Run-time memory checks:
360+
; CHECK-NEXT: Grouped accesses:
361+
; CHECK-EMPTY:
362+
; CHECK-NEXT: Non vectorizable stores to invariant address were not found in loop.
363+
; CHECK-NEXT: SCEV assumptions:
364+
; CHECK-EMPTY:
365+
; CHECK-NEXT: Expressions re-written:
366+
;
367+
entry:
368+
%gep.10 = getelementptr nuw i8, ptr %dst, i64 10
369+
br label %loop
370+
371+
loop:
372+
%iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
373+
%gep.iv = getelementptr i8, ptr %dst, i64 %iv
374+
store i16 0, ptr %gep.iv
375+
%gep.10.iv = getelementptr i8, ptr %gep.10, i64 %iv
376+
store i128 1, ptr %gep.10.iv
377+
%iv.next = add i64 %iv, 8
378+
%ec = icmp eq i64 %iv.next, 64
379+
br i1 %ec, label %exit, label %loop
380+
381+
exit:
382+
ret void
383+
}
384+
385+
347386
; Source type-size differs from that of the sink, but when
348387
; determining backward dependence, only the source size
349388
; is relevant.

0 commit comments

Comments
 (0)