[InstCombine] use FileCheck for better checking
authorSanjay Patel <spatel@rotateright.com>
Fri, 25 Mar 2016 18:03:17 +0000 (18:03 +0000)
committerSanjay Patel <spatel@rotateright.com>
Fri, 25 Mar 2016 18:03:17 +0000 (18:03 +0000)
(testing script for autogeneration of check lines)

llvm-svn: 264437

llvm/test/Transforms/InstCombine/and-or.ll

index 0ae12a3..3999c3d 100644 (file)
@@ -1,39 +1,58 @@
-; RUN: opt < %s -instcombine -S | grep "and i32 %a, 1" | count 4
-; RUN: opt < %s -instcombine -S | grep "or i32 %0, %b" | count 4
+; NOTE: Assertions have been autogenerated by update_test_checks.py
+; RUN: opt < %s -instcombine -S | FileCheck %s
 
-
-define i32 @func1(i32 %a, i32 %b) nounwind readnone {
+define i32 @func1(i32 %a, i32 %b) {
+; CHECK-LABEL: @func1(
+; CHECK:         [[TMP0:%.*]] = and i32 %a, 1
+; CHECK-NEXT:    [[TMP1:%.*]] = or i32 [[TMP0]], %b
+; CHECK-NEXT:    ret i32 [[TMP1]]
+;
 entry:
-       %0 = or i32 %b, %a              ; <i32> [#uses=1]
-       %1 = and i32 %0, 1              ; <i32> [#uses=1]
-       %2 = and i32 %b, -2             ; <i32> [#uses=1]
-       %3 = or i32 %1, %2              ; <i32> [#uses=1]
+       %0 = or i32 %b, %a
+       %1 = and i32 %0, 1
+       %2 = and i32 %b, -2
+       %3 = or i32 %1, %2
        ret i32 %3
 }
 
-define i32 @func2(i32 %a, i32 %b) nounwind readnone {
+define i32 @func2(i32 %a, i32 %b) {
+; CHECK-LABEL: @func2(
+; CHECK:         [[TMP0:%.*]] = and i32 %a, 1
+; CHECK-NEXT:    [[TMP1:%.*]] = or i32 [[TMP0]], %b
+; CHECK-NEXT:    ret i32 [[TMP1]]
+;
 entry:
-       %0 = or i32 %a, %b              ; <i32> [#uses=1]
-       %1 = and i32 1, %0              ; <i32> [#uses=1]
-       %2 = and i32 -2, %b             ; <i32> [#uses=1]
-       %3 = or i32 %1, %2              ; <i32> [#uses=1]
+       %0 = or i32 %a, %b
+       %1 = and i32 1, %0
+       %2 = and i32 -2, %b
+       %3 = or i32 %1, %2
        ret i32 %3
 }
 
-define i32 @func3(i32 %a, i32 %b) nounwind readnone {
+define i32 @func3(i32 %a, i32 %b) {
+; CHECK-LABEL: @func3(
+; CHECK:         [[TMP0:%.*]] = and i32 %a, 1
+; CHECK-NEXT:    [[TMP1:%.*]] = or i32 [[TMP0]], %b
+; CHECK-NEXT:    ret i32 [[TMP1]]
+;
 entry:
-       %0 = or i32 %b, %a              ; <i32> [#uses=1]
-       %1 = and i32 %0, 1              ; <i32> [#uses=1]
-       %2 = and i32 %b, -2             ; <i32> [#uses=1]
-       %3 = or i32 %2, %1              ; <i32> [#uses=1]
+       %0 = or i32 %b, %a
+       %1 = and i32 %0, 1
+       %2 = and i32 %b, -2
+       %3 = or i32 %2, %1
        ret i32 %3
 }
 
-define i32 @func4(i32 %a, i32 %b) nounwind readnone {
+define i32 @func4(i32 %a, i32 %b) {
+; CHECK-LABEL: @func4(
+; CHECK:         [[TMP0:%.*]] = and i32 %a, 1
+; CHECK-NEXT:    [[TMP1:%.*]] = or i32 [[TMP0]], %b
+; CHECK-NEXT:    ret i32 [[TMP1]]
+;
 entry:
-       %0 = or i32 %a, %b              ; <i32> [#uses=1]
-       %1 = and i32 1, %0              ; <i32> [#uses=1]
-       %2 = and i32 -2, %b             ; <i32> [#uses=1]
-       %3 = or i32 %2, %1              ; <i32> [#uses=1]
+       %0 = or i32 %a, %b
+       %1 = and i32 1, %0
+       %2 = and i32 -2, %b
+       %3 = or i32 %2, %1
        ret i32 %3
 }