[llvm] r276147 - minimize tests and auto-generate checks
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 20 10:58:20 PDT 2016
Author: spatel
Date: Wed Jul 20 12:58:20 2016
New Revision: 276147
URL: http://llvm.org/viewvc/llvm-project?rev=276147&view=rev
Log:
minimize tests and auto-generate checks
Modified:
llvm/trunk/test/Transforms/InstCombine/sign-test-and-or.ll
Modified: llvm/trunk/test/Transforms/InstCombine/sign-test-and-or.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/sign-test-and-or.ll?rev=276147&r1=276146&r2=276147&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/sign-test-and-or.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/sign-test-and-or.ll Wed Jul 20 12:58:20 2016
@@ -1,94 +1,68 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -instcombine < %s | FileCheck %s
declare void @foo()
-define void @test1(i32 %a, i32 %b) nounwind {
+define i1 @test1(i32 %a, i32 %b) {
+; CHECK-LABEL: @test1(
+; CHECK-NEXT: [[TMP1:%.*]] = or i32 %a, %b
+; CHECK-NEXT: [[TMP2:%.*]] = icmp slt i32 [[TMP1]], 0
+; CHECK-NEXT: ret i1 [[TMP2]]
+;
%1 = icmp slt i32 %a, 0
%2 = icmp slt i32 %b, 0
%or.cond = or i1 %1, %2
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test1(
-; CHECK-NEXT: %1 = or i32 %a, %b
-; CHECK-NEXT: %2 = icmp slt i32 %1, 0
-; CHECK-NEXT: br
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
-define void @test2(i32 %a, i32 %b) nounwind {
+define i1 @test2(i32 %a, i32 %b) {
+; CHECK-LABEL: @test2(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, %b
+; CHECK-NEXT: [[TMP2:%.*]] = icmp sgt i32 [[TMP1]], -1
+; CHECK-NEXT: ret i1 [[TMP2]]
+;
%1 = icmp sgt i32 %a, -1
%2 = icmp sgt i32 %b, -1
%or.cond = or i1 %1, %2
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test2(
-; CHECK-NEXT: %1 = and i32 %a, %b
-; CHECK-NEXT: %2 = icmp sgt i32 %1, -1
-; CHECK-NEXT: br
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
-define void @test3(i32 %a, i32 %b) nounwind {
+define i1 @test3(i32 %a, i32 %b) {
+; CHECK-LABEL: @test3(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, %b
+; CHECK-NEXT: [[TMP2:%.*]] = icmp slt i32 [[TMP1]], 0
+; CHECK-NEXT: ret i1 [[TMP2]]
+;
%1 = icmp slt i32 %a, 0
%2 = icmp slt i32 %b, 0
%or.cond = and i1 %1, %2
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test3(
-; CHECK-NEXT: %1 = and i32 %a, %b
-; CHECK-NEXT: %2 = icmp slt i32 %1, 0
-; CHECK-NEXT: br
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
-define void @test4(i32 %a, i32 %b) nounwind {
+define i1 @test4(i32 %a, i32 %b) {
+; CHECK-LABEL: @test4(
+; CHECK-NEXT: [[TMP1:%.*]] = or i32 %a, %b
+; CHECK-NEXT: [[TMP2:%.*]] = icmp sgt i32 [[TMP1]], -1
+; CHECK-NEXT: ret i1 [[TMP2]]
+;
%1 = icmp sgt i32 %a, -1
%2 = icmp sgt i32 %b, -1
%or.cond = and i1 %1, %2
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test4(
-; CHECK-NEXT: %1 = or i32 %a, %b
-; CHECK-NEXT: %2 = icmp sgt i32 %1, -1
-; CHECK-NEXT: br
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
-define void @test5(i32 %a) nounwind {
+define void @test5(i32 %a) {
+; CHECK-LABEL: @test5(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, -2013265920
+; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP1]], 0
+; CHECK-NEXT: br i1 [[TMP2]], label %if.then, label %if.end
+;
%and = and i32 %a, 134217728
%1 = icmp eq i32 %and, 0
%2 = icmp sgt i32 %a, -1
%or.cond = and i1 %1, %2
br i1 %or.cond, label %if.then, label %if.end
-; CHECK-LABEL: @test5(
-; CHECK-NEXT: %1 = and i32 %a, -2013265920
-; CHECK-NEXT: %2 = icmp eq i32 %1, 0
-; CHECK-NEXT: br i1 %2, label %if.then, label %if.end
if.then:
tail call void @foo() nounwind
@@ -98,17 +72,18 @@ if.end:
ret void
}
-define void @test6(i32 %a) nounwind {
+define void @test6(i32 %a) {
+; CHECK-LABEL: @test6(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, -2013265920
+; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP1]], 0
+; CHECK-NEXT: br i1 [[TMP2]], label %if.then, label %if.end
+;
%1 = icmp sgt i32 %a, -1
%and = and i32 %a, 134217728
%2 = icmp eq i32 %and, 0
%or.cond = and i1 %1, %2
br i1 %or.cond, label %if.then, label %if.end
-; CHECK-LABEL: @test6(
-; CHECK-NEXT: %1 = and i32 %a, -2013265920
-; CHECK-NEXT: %2 = icmp eq i32 %1, 0
-; CHECK-NEXT: br i1 %2, label %if.then, label %if.end
if.then:
tail call void @foo() nounwind
@@ -118,17 +93,18 @@ if.end:
ret void
}
-define void @test7(i32 %a) nounwind {
+define void @test7(i32 %a) {
+; CHECK-LABEL: @test7(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, -2013265920
+; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP1]], 0
+; CHECK-NEXT: br i1 [[TMP2]], label %if.end, label %if.then
+;
%and = and i32 %a, 134217728
%1 = icmp ne i32 %and, 0
%2 = icmp slt i32 %a, 0
%or.cond = or i1 %1, %2
br i1 %or.cond, label %if.then, label %if.end
-; CHECK-LABEL: @test7(
-; CHECK-NEXT: %1 = and i32 %a, -2013265920
-; CHECK-NEXT: %2 = icmp eq i32 %1, 0
-; CHECK-NEXT: br i1 %2, label %if.end, label %if.the
if.then:
tail call void @foo() nounwind
@@ -138,80 +114,60 @@ if.end:
ret void
}
-define void @test8(i32 %a) nounwind {
+define void @test8(i32 %a) {
+; CHECK-LABEL: @test8(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, -2013265920
+; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP1]], 0
+; CHECK-NEXT: br i1 [[TMP2]], label %if.end, label %if.then
+;
%1 = icmp slt i32 %a, 0
%and = and i32 %a, 134217728
%2 = icmp ne i32 %and, 0
%or.cond = or i1 %1, %2
br i1 %or.cond, label %if.then, label %if.end
-; CHECK-LABEL: @test8(
-; CHECK-NEXT: %1 = and i32 %a, -2013265920
-; CHECK-NEXT: %2 = icmp eq i32 %1, 0
-; CHECK-NEXT: br i1 %2, label %if.end, label %if.the
if.then:
- tail call void @foo() nounwind
+ tail call void @foo()
ret void
if.end:
ret void
}
-define void @test9(i32 %a) nounwind {
+define i1 @test9(i32 %a) {
+; CHECK-LABEL: @test9(
+; CHECK-NEXT: [[TMP1:%.*]] = and i32 %a, -1073741824
+; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP1]], 1073741824
+; CHECK-NEXT: ret i1 [[TMP2]]
+;
%1 = and i32 %a, 1073741824
%2 = icmp ne i32 %1, 0
%3 = icmp sgt i32 %a, -1
%or.cond = and i1 %2, %3
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test9(
-; CHECK-NEXT: %1 = and i32 %a, -1073741824
-; CHECK-NEXT: %2 = icmp eq i32 %1, 1073741824
-; CHECK-NEXT: br i1 %2, label %if.then, label %if.end
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
-define void @test10(i32 %a) nounwind {
+define i1 @test10(i32 %a) {
+; CHECK-LABEL: @test10(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i32 %a, 2
+; CHECK-NEXT: ret i1 [[TMP1]]
+;
%1 = and i32 %a, 2
%2 = icmp eq i32 %1, 0
%3 = icmp ult i32 %a, 4
%or.cond = and i1 %2, %3
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test10(
-; CHECK-NEXT: %1 = icmp ult i32 %a, 2
-; CHECK-NEXT: br i1 %1, label %if.then, label %if.end
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
-define void @test11(i32 %a) nounwind {
+define i1 @test11(i32 %a) {
+; CHECK-LABEL: @test11(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i32 %a, 1
+; CHECK-NEXT: ret i1 [[TMP1]]
+;
%1 = and i32 %a, 2
%2 = icmp ne i32 %1, 0
%3 = icmp ugt i32 %a, 3
%or.cond = or i1 %2, %3
- br i1 %or.cond, label %if.then, label %if.end
-
-; CHECK-LABEL: @test11(
-; CHECK-NEXT: %1 = icmp ugt i32 %a, 1
-; CHECK-NEXT: br i1 %1, label %if.then, label %if.end
-
-if.then:
- tail call void @foo() nounwind
- ret void
-
-if.end:
- ret void
+ ret i1 %or.cond
}
More information about the llvm-commits
mailing list