diff options
Diffstat (limited to 'llvm/test/Transforms/InstCombine/icmp.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/icmp.ll | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/llvm/test/Transforms/InstCombine/icmp.ll b/llvm/test/Transforms/InstCombine/icmp.ll index 24a539be2b6..2937e46cb8a 100644 --- a/llvm/test/Transforms/InstCombine/icmp.ll +++ b/llvm/test/Transforms/InstCombine/icmp.ll @@ -1979,121 +1979,3 @@ define i1 @cmp_inverse_mask_bits_set_ne(i32 %x) { ret i1 %cmp } -; CHECK-LABEL: @idom_sign_bit_check_edge_dominates -define void @idom_sign_bit_check_edge_dominates(i64 %a) { -entry: - %cmp = icmp slt i64 %a, 0 - br i1 %cmp, label %land.lhs.true, label %lor.rhs - -land.lhs.true: ; preds = %entry - br label %lor.end - -; CHECK-LABEL: lor.rhs: -; CHECK-NOT: icmp sgt i64 %a, 0 -; CHECK: icmp eq i64 %a, 0 -lor.rhs: ; preds = %entry - %cmp2 = icmp sgt i64 %a, 0 - br i1 %cmp2, label %land.rhs, label %lor.end - -land.rhs: ; preds = %lor.rhs - br label %lor.end - -lor.end: ; preds = %land.rhs, %lor.rhs, %land.lhs.true - ret void -} - -; CHECK-LABEL: @idom_sign_bit_check_edge_not_dominates -define void @idom_sign_bit_check_edge_not_dominates(i64 %a) { -entry: - %cmp = icmp slt i64 %a, 0 - br i1 %cmp, label %land.lhs.true, label %lor.rhs - -land.lhs.true: ; preds = %entry - br i1 undef, label %lor.end, label %lor.rhs - -; CHECK-LABEL: lor.rhs: -; CHECK: icmp sgt i64 %a, 0 -; CHECK-NOT: icmp eq i64 %a, 0 -lor.rhs: ; preds = %land.lhs.true, %entry - %cmp2 = icmp sgt i64 %a, 0 - br i1 %cmp2, label %land.rhs, label %lor.end - -land.rhs: ; preds = %lor.rhs - br label %lor.end - -lor.end: ; preds = %land.rhs, %lor.rhs, %land.lhs.true - ret void -} - -; CHECK-LABEL: @idom_sign_bit_check_edge_dominates_select -define void @idom_sign_bit_check_edge_dominates_select(i64 %a, i64 %b) { -entry: - %cmp = icmp slt i64 %a, 5 - br i1 %cmp, label %land.lhs.true, label %lor.rhs - -land.lhs.true: ; preds = %entry - br label %lor.end - -; CHECK-LABEL: lor.rhs: -; CHECK-NOT: [[B:%.*]] = icmp sgt i64 %a, 5 -; CHECK: [[C:%.*]] = icmp eq i64 %a, %b -; CHECK-NOT: [[D:%.*]] = select i1 [[B]], i64 %a, i64 5 -; CHECK-NOT: icmp ne i64 [[D]], %b -; CHECK-NEXT: br i1 [[C]], label %lor.end, label %land.rhs -lor.rhs: ; preds = %entry - %cmp2 = icmp sgt i64 %a, 5 - %select = select i1 %cmp2, i64 %a, i64 5 - %cmp3 = icmp ne i64 %select, %b - br i1 %cmp3, label %land.rhs, label %lor.end - -land.rhs: ; preds = %lor.rhs - br label %lor.end - -lor.end: ; preds = %land.rhs, %lor.rhs, %land.lhs.true - ret void -} - -; CHECK-LABEL: @idom_zbranch -define void @idom_zbranch(i64 %a) { -entry: - %cmp = icmp sgt i64 %a, 0 - br i1 %cmp, label %lor.end, label %lor.rhs - -; CHECK-LABEL: lor.rhs: -; CHECK: icmp slt i64 %a, 0 -; CHECK-NOT: icmp eq i64 %a, 0 -lor.rhs: ; preds = %entry - %cmp2 = icmp slt i64 %a, 0 - br i1 %cmp2, label %land.rhs, label %lor.end - -land.rhs: ; preds = %lor.rhs - br label %lor.end - -lor.end: ; preds = %land.rhs, %lor.rhs - ret void -} - -; CHECK-LABEL: @idom_not_zbranch -define void @idom_not_zbranch(i32 %a, i32 %b) { -entry: - %cmp = icmp sgt i32 %a, 0 - br i1 %cmp, label %return, label %if.end - -; CHECK-LABEL: if.end: -; CHECK-NOT: [[B:%.*]] = icmp slt i32 %a, 0 -; CHECK: [[C:%.*]] = icmp eq i32 %a, %b -; CHECK-NOT: [[D:%.*]] = select i1 [[B]], i32 %a, i32 0 -; CHECK-NOT: icmp ne i32 [[D]], %b -; CHECK-NEXT: br i1 [[C]], label %return, label %if.then3 -if.end: ; preds = %entry - %cmp1 = icmp slt i32 %a, 0 - %a. = select i1 %cmp1, i32 %a, i32 0 - %cmp2 = icmp ne i32 %a., %b - br i1 %cmp2, label %if.then3, label %return - -if.then3: ; preds = %if.end - br label %return - -return: ; preds = %if.end, %entry, %if.then3 - ret void -} |