diff options
Diffstat (limited to 'llvm/test/Transforms/InstCombine/select-cmp-br.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/select-cmp-br.ll | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/llvm/test/Transforms/InstCombine/select-cmp-br.ll b/llvm/test/Transforms/InstCombine/select-cmp-br.ll deleted file mode 100644 index 2e999510b42..00000000000 --- a/llvm/test/Transforms/InstCombine/select-cmp-br.ll +++ /dev/null @@ -1,127 +0,0 @@ -; Replace a 'select' with 'or' in 'select - cmp [eq|ne] - br' sequence -; RUN: opt -instcombine -S < %s | FileCheck %s - -%C = type <{ %struct.S }> -%struct.S = type { i64*, i32, i32 } - -declare void @bar(%struct.S *) #1 - -define void @test1(%C*) { -entry: - %1 = getelementptr inbounds %C* %0, i64 0, i32 0, i32 0 - %m = load i64** %1, align 8 - %2 = getelementptr inbounds %C* %0, i64 1, i32 0, i32 0 - %n = load i64** %2, align 8 - %3 = getelementptr inbounds i64* %m, i64 9 - %4 = bitcast i64* %3 to i64 (%C*)** - %5 = load i64 (%C*)** %4, align 8 - %6 = icmp eq i64* %m, %n - %7 = select i1 %6, %C* %0, %C* null - %8 = icmp eq %C* %7, null - br i1 %8, label %12, label %10 - -; <label>:9 ; preds = %10, %12 - ret void - -; <label>:10 ; preds = %entry - %11 = getelementptr inbounds %C* %7, i64 0, i32 0 - tail call void @bar(%struct.S* %11) - br label %9 - -; <label>:12 ; preds = %entry - %13 = tail call i64 %5(%C* %0) - br label %9 -; CHECK-LABEL: @test1( -; CHECK-NOT: select -; CHECK: or -} - -define void @test2(%C*) { -entry: - %1 = getelementptr inbounds %C* %0, i64 0, i32 0, i32 0 - %m = load i64** %1, align 8 - %2 = getelementptr inbounds %C* %0, i64 1, i32 0, i32 0 - %n = load i64** %2, align 8 - %3 = getelementptr inbounds i64* %m, i64 9 - %4 = bitcast i64* %3 to i64 (%C*)** - %5 = load i64 (%C*)** %4, align 8 - %6 = icmp eq i64* %m, %n - %7 = select i1 %6, %C* null, %C* %0 - %8 = icmp eq %C* %7, null - br i1 %8, label %12, label %10 - -; <label>:9 ; preds = %10, %12 - ret void - -; <label>:10 ; preds = %entry - %11 = getelementptr inbounds %C* %7, i64 0, i32 0 - tail call void @bar(%struct.S* %11) - br label %9 - -; <label>:12 ; preds = %entry - %13 = tail call i64 %5(%C* %0) - br label %9 -; CHECK-LABEL: @test2( -; CHECK-NOT: select -; CHECK: or -} - -define void @test3(%C*) { -entry: - %1 = getelementptr inbounds %C* %0, i64 0, i32 0, i32 0 - %m = load i64** %1, align 8 - %2 = getelementptr inbounds %C* %0, i64 1, i32 0, i32 0 - %n = load i64** %2, align 8 - %3 = getelementptr inbounds i64* %m, i64 9 - %4 = bitcast i64* %3 to i64 (%C*)** - %5 = load i64 (%C*)** %4, align 8 - %6 = icmp eq i64* %m, %n - %7 = select i1 %6, %C* %0, %C* null - %8 = icmp ne %C* %7, null - br i1 %8, label %10, label %12 - -; <label>:9 ; preds = %10, %12 - ret void - -; <label>:10 ; preds = %entry - %11 = getelementptr inbounds %C* %7, i64 0, i32 0 - tail call void @bar(%struct.S* %11) - br label %9 - -; <label>:12 ; preds = %entry - %13 = tail call i64 %5(%C* %0) - br label %9 -; CHECK-LABEL: @test3( -; CHECK-NOT: select -; CHECK: or -} - -define void @test4(%C*) { -entry: - %1 = getelementptr inbounds %C* %0, i64 0, i32 0, i32 0 - %m = load i64** %1, align 8 - %2 = getelementptr inbounds %C* %0, i64 1, i32 0, i32 0 - %n = load i64** %2, align 8 - %3 = getelementptr inbounds i64* %m, i64 9 - %4 = bitcast i64* %3 to i64 (%C*)** - %5 = load i64 (%C*)** %4, align 8 - %6 = icmp eq i64* %m, %n - %7 = select i1 %6, %C* null, %C* %0 - %8 = icmp ne %C* %7, null - br i1 %8, label %10, label %12 - -; <label>:9 ; preds = %10, %12 - ret void - -; <label>:10 ; preds = %entry - %11 = getelementptr inbounds %C* %7, i64 0, i32 0 - tail call void @bar(%struct.S* %11) - br label %9 - -; <label>:12 ; preds = %entry - %13 = tail call i64 %5(%C* %0) - br label %9 -; CHECK-LABEL: @test4( -; CHECK-NOT: select -; CHECK: or -} |