diff options
Diffstat (limited to 'llvm/test/Transforms/GCSE/gcsetests.ll')
-rw-r--r-- | llvm/test/Transforms/GCSE/gcsetests.ll | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GCSE/gcsetests.ll b/llvm/test/Transforms/GCSE/gcsetests.ll new file mode 100644 index 00000000000..b866bb7eda7 --- /dev/null +++ b/llvm/test/Transforms/GCSE/gcsetests.ll @@ -0,0 +1,57 @@ +; 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 + + +; 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 + |