OSDN Git Service

[LVI] Missing test case from 259432
authorPhilip Reames <listmail@philipreames.com>
Mon, 1 Feb 2016 23:44:38 +0000 (23:44 +0000)
committerPhilip Reames <listmail@philipreames.com>
Mon, 1 Feb 2016 23:44:38 +0000 (23:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259437 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/CorrelatedValuePropagation/select.ll

index bad8e6b..cab8876 100644 (file)
@@ -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
+}