From 070e88f5d3075b73b164dda652955e06e4727901 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Fri, 25 Mar 2016 18:03:17 +0000 Subject: [PATCH] [InstCombine] use FileCheck for better checking (testing script for autogeneration of check lines) llvm-svn: 264437 --- test/Transforms/InstCombine/and-or.ll | 65 +++++++++++++++++---------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/test/Transforms/InstCombine/and-or.ll b/test/Transforms/InstCombine/and-or.ll index 0ae12a36c2b..3999c3d8ddf 100644 --- a/test/Transforms/InstCombine/and-or.ll +++ b/test/Transforms/InstCombine/and-or.ll @@ -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 ; [#uses=1] - %1 = and i32 %0, 1 ; [#uses=1] - %2 = and i32 %b, -2 ; [#uses=1] - %3 = or i32 %1, %2 ; [#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 ; [#uses=1] - %1 = and i32 1, %0 ; [#uses=1] - %2 = and i32 -2, %b ; [#uses=1] - %3 = or i32 %1, %2 ; [#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 ; [#uses=1] - %1 = and i32 %0, 1 ; [#uses=1] - %2 = and i32 %b, -2 ; [#uses=1] - %3 = or i32 %2, %1 ; [#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 ; [#uses=1] - %1 = and i32 1, %0 ; [#uses=1] - %2 = and i32 -2, %b ; [#uses=1] - %3 = or i32 %2, %1 ; [#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 }