diff options
-rw-r--r-- | test/Transforms/LICM/no-preheader-test.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/Transforms/LICM/no-preheader-test.ll b/test/Transforms/LICM/no-preheader-test.ll new file mode 100644 index 0000000000..eb0773f7e1 --- /dev/null +++ b/test/Transforms/LICM/no-preheader-test.ll @@ -0,0 +1,21 @@ +; Test that LICM works when there is not a loop-preheader +; RUN: as < %s | opt -licm | dis + +void "testfunc"(int %i, bool %ifcond) { + br bool %ifcond, label %Then, label %Else +Then: + br label %Loop +Else: + br label %Loop + +Loop: + %j = phi uint [0, %Then], [12, %Else], [%Next, %Loop] + %i = cast int %i to uint + %i2 = mul uint %i, 17 + %Next = add uint %j, %i2 + %cond = seteq uint %Next, 0 + br bool %cond, label %Out, label %Loop + +Out: + ret void +} |