summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-10-25 14:51:31 -0400
committerSanjay Patel <spatel@rotateright.com>2019-10-25 15:01:57 -0400
commit3c7c3717932aba864c23edd2e48f1b28a6d532d5 (patch)
treef7830a41976eb2822da405ad8473960e02416287
parent2724d9e12960cc1d93eeabbfc9aa1bffffa041cc (diff)
downloadbcm5719-llvm-3c7c3717932aba864c23edd2e48f1b28a6d532d5.tar.gz
bcm5719-llvm-3c7c3717932aba864c23edd2e48f1b28a6d532d5.zip
[CVP] add test for poison propagation bug (PR43802); NFC
-rw-r--r--llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll b/llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
index b761fff0031..814dcba1586 100644
--- a/llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
+++ b/llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
@@ -123,3 +123,30 @@ return:
ret i8* %r
}
+; FIXME:
+; The sub has 'nsw', so it is not safe to propagate that value along
+; the bb2 edge because that would propagate poison to the return.
+
+define i32 @PR43802(i32 %arg) {
+; CHECK-LABEL: @PR43802(
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[SUB:%.*]] = sub nsw i32 0, [[ARG:%.*]]
+; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[ARG]], -2147483648
+; CHECK-NEXT: br i1 [[CMP]], label [[BB2:%.*]], label [[BB3:%.*]]
+; CHECK: bb2:
+; CHECK-NEXT: br label [[BB3]]
+; CHECK: bb3:
+; CHECK-NEXT: ret i32 [[SUB]]
+;
+entry:
+ %sub = sub nsw i32 0, %arg
+ %cmp = icmp eq i32 %arg, -2147483648
+ br i1 %cmp, label %bb2, label %bb3
+
+bb2:
+ br label %bb3
+
+bb3:
+ %r = phi i32 [ -2147483648, %bb2 ], [ %sub, %entry ]
+ ret i32 %r
+}
OpenPOWER on IntegriCloud