[LoopDistribute] Add LAA invalidation test for #50940.
authorFlorian Hahn <flo@fhahn.com>
Mon, 26 Sep 2022 11:21:13 +0000 (12:21 +0100)
committerFlorian Hahn <flo@fhahn.com>
Mon, 26 Sep 2022 11:21:14 +0000 (12:21 +0100)
Test case for #50940, to be fixed by D134606.

llvm/test/Transforms/LoopDistribute/laa-invalidation.ll [new file with mode: 0644]

diff --git a/llvm/test/Transforms/LoopDistribute/laa-invalidation.ll b/llvm/test/Transforms/LoopDistribute/laa-invalidation.ll
new file mode 100644 (file)
index 0000000..2bf507b
--- /dev/null
@@ -0,0 +1,34 @@
+; RUN: opt  -passes='loop-load-elim,indvars,loop-distribute' -enable-loop-distribute %s
+
+; REQUIRES: asserts
+; XFAIL: *
+
+define void @test_pr50940(ptr %A, ptr %B) {
+entry:
+  %gep.A.1 = getelementptr inbounds i16, ptr %A, i64 1
+  br label %outer.header
+
+outer.header:
+  %gep.A.2 = getelementptr inbounds i16, ptr %gep.A.1, i64 1
+  br i1 false, label %outer.latch, label %inner.ph
+
+inner.ph:                             ; preds = %for.body5
+  %lcssa.gep = phi ptr [ %gep.A.2, %outer.header ]
+  %gep.A.3 = getelementptr inbounds i16, ptr %A, i64 3
+  br label %inner
+
+inner:
+  %iv = phi i16 [ 0, %inner.ph ], [ %iv.next, %inner ]
+  %l = load <2 x i16>, ptr %lcssa.gep, align 1
+  store i16 0, ptr %gep.A.3, align 1
+  store i16 1, ptr %B, align 1
+  %iv.next = add nuw nsw i16 %iv, 1
+  %c.1 = icmp ult i16 %iv, 38
+  br i1 %c.1, label %inner, label %exit
+
+outer.latch:
+  br label %outer.header
+
+exit:
+  ret void
+}