; Various test cases to ensure basic functionality is working for GCSE ; RUN: as < %s | 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, uint 12 %F = getelementptr int* %p, uint 12 %G = getelementptr int* %p, uint 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