From 1790b516174f8c0316edc65b0fc003a5bc156d94 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Mon, 1 Feb 2016 23:44:38 +0000 Subject: [PATCH] [LVI] Missing test case from 259432 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259437 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../CorrelatedValuePropagation/select.ll | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/Transforms/CorrelatedValuePropagation/select.ll b/test/Transforms/CorrelatedValuePropagation/select.ll index bad8e6b74f5..cab88766113 100644 --- a/test/Transforms/CorrelatedValuePropagation/select.ll +++ b/test/Transforms/CorrelatedValuePropagation/select.ll @@ -142,3 +142,28 @@ exit: ret i1 true } +; Conflicting constants (i.e. isOverdefined result) +; NOTE: Using doubles in this version is a bit of a hack. This +; is to get around the fact that all integers (including constants +; and non-constants) are actually represented as constant-ranges. +define i1 @test4(i32* %p, i32 %qval, i1 %unknown) { +; CHECK-LABEL: test4 + %pval = load i32, i32* %p + %cmp1 = icmp slt i32 %pval, 255 + br i1 %cmp1, label %next, label %exit + +next: + %min = select i1 %unknown, double 1.0, double 0.0 + ;; TODO: This pointless branch shouldn't be neccessary + br label %next2 +next2: +; CHECK-LABEL: next2 +; CHECK: ret i1 %res + %res = fcmp oeq double %min, 300.0 + ret i1 %res + +exit: +; CHECK-LABEL: exit: +; CHECK: ret i1 true + ret i1 true +} -- 2.11.0