Tidy up this test more:

1) Make the checked assertions a bit more precise. We really want the
   canonical forms coming out of reassociate to be exactly what is
   expected.
2) Remove other passes, and switch the test to actually directly check
   that reassociate makes the important transforms and
   canonicalizations.
3) Fold in a related test case now that we're using FileCheck. Make the
   same tidying changes to it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155311 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth 2012-04-22 10:11:26 +00:00
parent 71f8bc37f2
commit a3e3481c57
2 changed files with 23 additions and 22 deletions

View File

@ -1,11 +1,13 @@
; RUN: opt < %s -reassociate -instcombine -S | FileCheck %s
; RUN: opt < %s -reassociate -S | FileCheck %s
define i32 @f(i32 %a, i32 %b) {
; CHECK: @f
; CHECK: mul
; CHECK: mul
; CHECK-NOT: mul
; CHECK: ret
define i32 @test1(i32 %a, i32 %b) {
; CHECK: @test1
; CHECK: mul i32 %a, %a
; CHECK-NEXT: mul i32 %a, 2
; CHECK-NEXT: add
; CHECK-NEXT: mul
; CHECK-NEXT: add
; CHECK-NEXT: ret
entry:
%tmp.2 = mul i32 %a, %a
@ -17,3 +19,17 @@ entry:
ret i32 %tmp.11
}
define i32 @test2(i32 %t) {
; CHECK: @test2
; CHECK: mul
; CHECK-NEXT: add
; CHECK-NEXT: ret
entry:
%a = mul i32 %t, 6
%b = mul i32 %t, 36
%c = add i32 %b, 15
%d = add i32 %c, %a
ret i32 %d
}

View File

@ -1,15 +0,0 @@
; This should turn into one multiply and one add.
; RUN: opt < %s -instcombine -reassociate -instcombine -S > %t
; RUN: grep mul %t | count 1
; RUN: grep add %t | count 1
define i32 @main(i32 %t) {
%tmp.3 = mul i32 %t, 12 ; <i32> [#uses=1]
%tmp.4 = add i32 %tmp.3, 5 ; <i32> [#uses=1]
%tmp.6 = mul i32 %t, 6 ; <i32> [#uses=1]
%tmp.8 = mul i32 %tmp.4, 3 ; <i32> [#uses=1]
%tmp.9 = add i32 %tmp.8, %tmp.6 ; <i32> [#uses=1]
ret i32 %tmp.9
}