summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll')
-rw-r--r--llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll339
1 files changed, 0 insertions, 339 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll b/llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll
deleted file mode 100644
index 1d29813ecfa..00000000000
--- a/llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll
+++ /dev/null
@@ -1,339 +0,0 @@
-; RUN: opt %s -S -simplifycfg | FileCheck %s
-
-declare void @is(i1)
-
-; If A == B is false then A == B is implied false.
-; CHECK-LABEL: @test_eq_eq
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_eq_eq(i32 %a, i32 %b) {
- %cmp1 = icmp eq i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp eq i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A == B is false then A != B is implied true.
-; CHECK-LABEL: @test_eq_ne
-; CHECK: call void @is(i1 true)
-; CHECK-NOT: call void @is(i1 false)
-define void @test_eq_ne(i32 %a, i32 %b) {
- %cmp1 = icmp eq i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ne i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A != B is false then A != B is implied false.
-; CHECK-LABEL: @test_ne_ne
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_ne_ne(i32 %a, i32 %b) {
- %cmp1 = icmp ne i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ne i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A != B is false then A >u B is implied false.
-; CHECK-LABEL: @test_ne_ugt
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_ne_ugt(i32 %a, i32 %b) {
- %cmp1 = icmp ne i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ugt i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A != B is false then A >=u B is implied true.
-; CHECK-LABEL: @test_ne_uge
-; CHECK: call void @is(i1 true)
-; CHECK-NOT: call void @is(i1 false)
-define void @test_ne_uge(i32 %a, i32 %b) {
- %cmp1 = icmp ne i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp uge i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A != B is false then A <u B is implied false.
-; CHECK-LABEL: @test_ne_ult
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_ne_ult(i32 %a, i32 %b) {
- %cmp1 = icmp ne i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ult i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A != B is false then A <=u B is implied true.
-; CHECK-LABEL: @test_ne_ule
-; CHECK: call void @is(i1 true)
-; CHECK-NOT: call void @is(i1 false)
-define void @test_ne_ule(i32 %a, i32 %b) {
- %cmp1 = icmp ne i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ule i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A >u B is false then A >u B is implied false.
-; CHECK-LABEL: @test_ugt_ugt
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_ugt_ugt(i32 %a, i32 %b) {
- %cmp1 = icmp ugt i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ugt i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A >u B is false then A <=u B is implied true.
-; CHECK-LABEL: @test_ugt_ule
-; CHECK: call void @is(i1 true)
-; CHECK-NOT: call void @is(i1 false)
-define void @test_ugt_ule(i32 %a, i32 %b) {
- %cmp1 = icmp ugt i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ule i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A >=u B is false then A >=u B is implied false.
-; CHECK-LABEL: @test_uge_uge
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_uge_uge(i32 %a, i32 %b) {
- %cmp1 = icmp uge i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp uge i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A >=u B is false then A <u B is implied true.
-; CHECK-LABEL: @test_uge_ult
-; CHECK: call void @is(i1 true)
-; CHECK-NOT: call void @is(i1 false)
-define void @test_uge_ult(i32 %a, i32 %b) {
- %cmp1 = icmp uge i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ult i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A >=u B is false then A <=u B is implied true.
-; CHECK-LABEL: @test_uge_ule
-; CHECK: call void @is(i1 true)
-; CHECK-NOT: call void @is(i1 false)
-define void @test_uge_ule(i32 %a, i32 %b) {
- %cmp1 = icmp uge i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ule i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A <u B is false then A <u B is implied false.
-; CHECK-LABEL: @test_ult_ult
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_ult_ult(i32 %a, i32 %b) {
- %cmp1 = icmp ult i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ult i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
-
-; If A <=u B is false then A <=u B is implied false.
-; CHECK-LABEL: @test_ule_ule
-; CHECK-NOT: call void @is(i1 true)
-; CHECK: call void @is(i1 false)
-define void @test_ule_ule(i32 %a, i32 %b) {
- %cmp1 = icmp ule i32 %a, %b
- br i1 %cmp1, label %untaken, label %taken
-
-taken:
- %cmp2 = icmp ule i32 %a, %b
- br i1 %cmp2, label %istrue, label %isfalse
-
-istrue:
- call void @is(i1 true)
- ret void
-
-isfalse:
- call void @is(i1 false)
- ret void
-
-untaken:
- ret void
-}
OpenPOWER on IntegriCloud