From e1f5460f787f190522058653388a3ecc3c8ec4fa Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 31 Dec 2009 08:29:56 +0000 Subject: [PATCH] filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92352 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/Reassociate/basictest.ll | 105 +++++++++++++++++++++- test/Transforms/Reassociate/basictest2.ll | 11 --- test/Transforms/Reassociate/basictest3.ll | 54 ----------- test/Transforms/Reassociate/basictest4.ll | 23 ----- 4 files changed, 101 insertions(+), 92 deletions(-) delete mode 100644 test/Transforms/Reassociate/basictest2.ll delete mode 100644 test/Transforms/Reassociate/basictest3.ll delete mode 100644 test/Transforms/Reassociate/basictest4.ll diff --git a/test/Transforms/Reassociate/basictest.ll b/test/Transforms/Reassociate/basictest.ll index eca2d6310d3..445aaaa7f57 100644 --- a/test/Transforms/Reassociate/basictest.ll +++ b/test/Transforms/Reassociate/basictest.ll @@ -1,10 +1,107 @@ ; With reassociation, constant folding can eliminate the 12 and -12 constants. ; -; RUN: opt < %s -reassociate -constprop -instcombine -die -S | not grep add +; RUN: opt < %s -reassociate -gvn -instcombine -S | FileCheck %s -define i32 @test(i32 %arg) { - %tmp1 = sub i32 -12, %arg ; [#uses=1] - %tmp2 = add i32 %tmp1, 12 ; [#uses=1] +define i32 @test1(i32 %arg) { + %tmp1 = sub i32 -12, %arg + %tmp2 = add i32 %tmp1, 12 ret i32 %tmp2 +; CHECK: @test1 +; CHECK-NEXT: sub i32 0, %arg +; CHECK-NEXT: ret i32 } +define i32 @test2(i32 %reg109, i32 %reg1111) { + %reg115 = add i32 %reg109, -30 ; [#uses=1] + %reg116 = add i32 %reg115, %reg1111 ; [#uses=1] + %reg117 = add i32 %reg116, 30 ; [#uses=1] + ret i32 %reg117 +; CHECK: @test2 +; CHECK-NEXT: add i32 %reg1111, %reg109 +; CHECK-NEXT: ret i32 +} + +@e = external global i32 ; [#uses=3] +@a = external global i32 ; [#uses=3] +@b = external global i32 ; [#uses=3] +@c = external global i32 ; [#uses=3] +@f = external global i32 ; [#uses=3] + +define void @test3() { + %A = load i32* @a ; [#uses=2] + %B = load i32* @b ; [#uses=2] + %C = load i32* @c ; [#uses=2] + %t1 = add i32 %A, %B ; [#uses=1] + %t2 = add i32 %t1, %C ; [#uses=1] + %t3 = add i32 %C, %A ; [#uses=1] + %t4 = add i32 %t3, %B ; [#uses=1] + ; e = (a+b)+c; + store i32 %t2, i32* @e + ; f = (a+c)+b + store i32 %t4, i32* @f + ret void +; CHECK: @test3 +; CHECK: add i32 +; CHECK: add i32 +; CHECK-NOT: add i32 +; CHECK: ret void +} + +define void @test4() { + %A = load i32* @a ; [#uses=2] + %B = load i32* @b ; [#uses=2] + %C = load i32* @c ; [#uses=2] + %t1 = add i32 %A, %B ; [#uses=1] + %t2 = add i32 %t1, %C ; [#uses=1] + %t3 = add i32 %C, %A ; [#uses=1] + %t4 = add i32 %t3, %B ; [#uses=1] + ; e = c+(a+b) + store i32 %t2, i32* @e + ; f = (c+a)+b + store i32 %t4, i32* @f + ret void +; CHECK: @test4 +; CHECK: add i32 +; CHECK: add i32 +; CHECK-NOT: add i32 +; CHECK: ret void +} + +define void @test5() { + %A = load i32* @a ; [#uses=2] + %B = load i32* @b ; [#uses=2] + %C = load i32* @c ; [#uses=2] + %t1 = add i32 %B, %A ; [#uses=1] + %t2 = add i32 %t1, %C ; [#uses=1] + %t3 = add i32 %C, %A ; [#uses=1] + %t4 = add i32 %t3, %B ; [#uses=1] + ; e = c+(b+a) + store i32 %t2, i32* @e + ; f = (c+a)+b + store i32 %t4, i32* @f + ret void +; CHECK: @test5 +; CHECK: add i32 +; CHECK: add i32 +; CHECK-NOT: add i32 +; CHECK: ret void +} + +define i32 @test6() { + %tmp.0 = load i32* @a ; [#uses=2] + %tmp.1 = load i32* @b ; [#uses=2] + ; (a+b) + %tmp.2 = add i32 %tmp.0, %tmp.1 ; [#uses=1] + %tmp.4 = load i32* @c ; [#uses=2] + ; (a+b)+c + %tmp.5 = add i32 %tmp.2, %tmp.4 ; [#uses=1] + ; (a+c) + %tmp.8 = add i32 %tmp.0, %tmp.4 ; [#uses=1] + ; (a+c)+b + %tmp.11 = add i32 %tmp.8, %tmp.1 ; [#uses=1] + ; X ^ X = 0 + %RV = xor i32 %tmp.5, %tmp.11 ; [#uses=1] + ret i32 %RV +; CHECK: @test6 +; CHECK: ret i32 0 +} diff --git a/test/Transforms/Reassociate/basictest2.ll b/test/Transforms/Reassociate/basictest2.ll deleted file mode 100644 index ba1ff9ec73f..00000000000 --- a/test/Transforms/Reassociate/basictest2.ll +++ /dev/null @@ -1,11 +0,0 @@ -; With reassociation, constant folding can eliminate the +/- 30 constants. -; -; RUN: opt < %s -reassociate -constprop -instcombine -die -S | not grep 30 - -define i32 @test(i32 %reg109, i32 %reg1111) { - %reg115 = add i32 %reg109, -30 ; [#uses=1] - %reg116 = add i32 %reg115, %reg1111 ; [#uses=1] - %reg117 = add i32 %reg116, 30 ; [#uses=1] - ret i32 %reg117 -} - diff --git a/test/Transforms/Reassociate/basictest3.ll b/test/Transforms/Reassociate/basictest3.ll deleted file mode 100644 index 92285fbbb63..00000000000 --- a/test/Transforms/Reassociate/basictest3.ll +++ /dev/null @@ -1,54 +0,0 @@ -; RUN: opt < %s -reassociate -gvn -S | grep add | count 6 -; Each of these functions should turn into two adds each. - -@e = external global i32 ; [#uses=3] -@a = external global i32 ; [#uses=3] -@b = external global i32 ; [#uses=3] -@c = external global i32 ; [#uses=3] -@f = external global i32 ; [#uses=3] - -define void @test1() { - %A = load i32* @a ; [#uses=2] - %B = load i32* @b ; [#uses=2] - %C = load i32* @c ; [#uses=2] - %t1 = add i32 %A, %B ; [#uses=1] - %t2 = add i32 %t1, %C ; [#uses=1] - %t3 = add i32 %C, %A ; [#uses=1] - %t4 = add i32 %t3, %B ; [#uses=1] - ; e = (a+b)+c; - store i32 %t2, i32* @e - ; f = (a+c)+b - store i32 %t4, i32* @f - ret void -} - -define void @test2() { - %A = load i32* @a ; [#uses=2] - %B = load i32* @b ; [#uses=2] - %C = load i32* @c ; [#uses=2] - %t1 = add i32 %A, %B ; [#uses=1] - %t2 = add i32 %t1, %C ; [#uses=1] - %t3 = add i32 %C, %A ; [#uses=1] - %t4 = add i32 %t3, %B ; [#uses=1] - ; e = c+(a+b) - store i32 %t2, i32* @e - ; f = (c+a)+b - store i32 %t4, i32* @f - ret void -} - -define void @test3() { - %A = load i32* @a ; [#uses=2] - %B = load i32* @b ; [#uses=2] - %C = load i32* @c ; [#uses=2] - %t1 = add i32 %B, %A ; [#uses=1] - %t2 = add i32 %t1, %C ; [#uses=1] - %t3 = add i32 %C, %A ; [#uses=1] - %t4 = add i32 %t3, %B ; [#uses=1] - ; e = c+(b+a) - store i32 %t2, i32* @e - ; f = (c+a)+b - store i32 %t4, i32* @f - ret void -} - diff --git a/test/Transforms/Reassociate/basictest4.ll b/test/Transforms/Reassociate/basictest4.ll deleted file mode 100644 index 88dbdf78150..00000000000 --- a/test/Transforms/Reassociate/basictest4.ll +++ /dev/null @@ -1,23 +0,0 @@ -; RUN: opt < %s -reassociate -gvn -instcombine -S | not grep add - -@a = weak global i32 0 ; [#uses=1] -@b = weak global i32 0 ; [#uses=1] -@c = weak global i32 0 ; [#uses=1] -@d = weak global i32 0 ; [#uses=0] - -define i32 @foo() { - %tmp.0 = load i32* @a ; [#uses=2] - %tmp.1 = load i32* @b ; [#uses=2] - ; (a+b) - %tmp.2 = add i32 %tmp.0, %tmp.1 ; [#uses=1] - %tmp.4 = load i32* @c ; [#uses=2] - ; (a+b)+c - %tmp.5 = add i32 %tmp.2, %tmp.4 ; [#uses=1] - ; (a+c) - %tmp.8 = add i32 %tmp.0, %tmp.4 ; [#uses=1] - ; (a+c)+b - %tmp.11 = add i32 %tmp.8, %tmp.1 ; [#uses=1] - ; X ^ X = 0 - %RV = xor i32 %tmp.5, %tmp.11 ; [#uses=1] - ret i32 %RV -} -- 2.34.1