diff --git a/test/Transforms/LICM/scalar_promote.ll b/test/Transforms/LICM/scalar_promote.ll new file mode 100644 index 00000000000..817492e2d99 --- /dev/null +++ b/test/Transforms/LICM/scalar_promote.ll @@ -0,0 +1,21 @@ +; RUN: as < %s | opt -licm -stats 2>&1 | grep "memory locations promoted to register" + +%X = global int 7 + +void %testfunc(int %i) { + br label %Loop + +Loop: + %j = phi uint [0, %0], [%Next, %Loop] + + %x = load int* %X ; Should promote this to a register inside of loop! + %x2 = add int %x, 1 + store int %x2, int* %X + + %Next = add uint %j, 1 + %cond = seteq uint %Next, 0 + br bool %cond, label %Out, label %Loop + +Out: + ret void +}