diff options
Diffstat (limited to 'test/Transforms/GCSE/gcsetests.ll')
-rw-r--r-- | test/Transforms/GCSE/gcsetests.ll | 93 |
1 files changed, 41 insertions, 52 deletions
diff --git a/test/Transforms/GCSE/gcsetests.ll b/test/Transforms/GCSE/gcsetests.ll index b866bb7..6fb3057 100644 --- a/test/Transforms/GCSE/gcsetests.ll +++ b/test/Transforms/GCSE/gcsetests.ll @@ -1,57 +1,46 @@ ; Various test cases to ensure basic functionality is working for GCSE -; RUN: llvm-upgrade < %s | llvm-as | opt -gcse - -implementation - -void "testinsts"(int %i, int %j, int* %p) -begin - %A = cast int %i to uint - %B = cast int %i to uint - - %C = shl int %i, ubyte 1 - %D = shl int %i, ubyte 1 - - %E = getelementptr int* %p, long 12 - %F = getelementptr int* %p, long 12 - %G = getelementptr int* %p, long 13 - ret void -end - +; RUN: llvm-as < %s | opt -gcse + +define void @testinsts(i32 %i, i32 %j, i32* %p) { + %A = bitcast i32 %i to i32 ; <i32> [#uses=0] + %B = bitcast i32 %i to i32 ; <i32> [#uses=0] + %C = shl i32 %i, 1 ; <i32> [#uses=0] + %D = shl i32 %i, 1 ; <i32> [#uses=0] + %E = getelementptr i32* %p, i64 12 ; <i32*> [#uses=0] + %F = getelementptr i32* %p, i64 12 ; <i32*> [#uses=0] + %G = getelementptr i32* %p, i64 13 ; <i32*> [#uses=0] + ret void +} ; Test different combinations of domination properties... -void "sameBBtest"(int %i, int %j) -begin - %A = add int %i, %j - %B = add int %i, %j - - %C = xor int %A, -1 - %D = xor int %B, -1 - %E = xor int %j, -1 - - ret void -end - -int "dominates"(int %i, int %j) -begin - %A = add int %i, %j - br label %BB2 - -BB2: - %B = add int %i, %j - ret int %B -end - -int "hascommondominator"(int %i, int %j) -begin - br bool true, label %BB1, label %BB2 - -BB1: - %A = add int %i, %j - ret int %A - -BB2: - %B = add int %i, %j - ret int %B -end +define void @sameBBtest(i32 %i, i32 %j) { + %A = add i32 %i, %j ; <i32> [#uses=1] + %B = add i32 %i, %j ; <i32> [#uses=1] + %C = xor i32 %A, -1 ; <i32> [#uses=0] + %D = xor i32 %B, -1 ; <i32> [#uses=0] + %E = xor i32 %j, -1 ; <i32> [#uses=0] + ret void +} + +define i32 @dominates(i32 %i, i32 %j) { + %A = add i32 %i, %j ; <i32> [#uses=0] + br label %BB2 + +BB2: ; preds = %0 + %B = add i32 %i, %j ; <i32> [#uses=1] + ret i32 %B +} + +define i32 @hascommondominator(i32 %i, i32 %j) { + br i1 true, label %BB1, label %BB2 + +BB1: ; preds = %0 + %A = add i32 %i, %j ; <i32> [#uses=1] + ret i32 %A + +BB2: ; preds = %0 + %B = add i32 %i, %j ; <i32> [#uses=1] + ret i32 %B +} |