]> granicus.if.org Git - llvm/commitdiff
Reduced test case for pr42279 in advance of the relevant re-commit + fix
authorPhilip Reames <listmail@philipreames.com>
Mon, 17 Jun 2019 19:27:45 +0000 (19:27 +0000)
committerPhilip Reames <listmail@philipreames.com>
Mon, 17 Jun 2019 19:27:45 +0000 (19:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363601 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/IndVarSimplify/lftr.ll

index 114e4ae8e8879331a0eced92feb2e1b09863c71b..8a510b91ff735010dd96dfb0be4076374156fbb6 100644 (file)
@@ -599,3 +599,34 @@ for.end:                                          ; preds = %for.end.loopexit, %
   %sum.0.lcssa = phi float [ 0.000000e+00, %entry ], [ %add1.lcssa, %for.end.loopexit ]
   ret float %sum.0.lcssa
 }
+
+define void @ptr_non_cmp_exit_test() {
+; CHECK-LABEL: @ptr_non_cmp_exit_test(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    br label [[FOR_BODY29:%.*]]
+; CHECK:       for.body29:
+; CHECK-NEXT:    [[IV:%.*]] = phi i8* [ null, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[FOR_BODY29]] ]
+; CHECK-NEXT:    [[TMP0:%.*]] = load volatile i8, i8* [[IV]], align 1
+; CHECK-NEXT:    [[IV_NEXT]] = getelementptr inbounds i8, i8* [[IV]], i64 1
+; CHECK-NEXT:    [[EXITCOND:%.*]] = icmp ne i8* [[IV_NEXT]], inttoptr (i64 11 to i8*)
+; CHECK-NEXT:    br i1 [[EXITCOND]], label [[FOR_BODY29]], label [[EXIT:%.*]]
+; CHECK:       exit:
+; CHECK-NEXT:    ret void
+;
+entry:
+  br label %for.body29
+
+for.body29:
+  %iv = phi i8* [ null, %entry ], [ %iv.next, %for.body29 ]
+  load volatile i8, i8* %iv, align 1
+  %iv.next = getelementptr inbounds i8, i8* %iv, i64 1
+  %cmp = icmp ne i8* %iv.next, inttoptr (i64 11 to i8*)
+  %and = and i1 %cmp, %cmp
+  br i1 %and, label %for.body29, label %exit
+
+exit:
+  ret void
+}
+
+
+