diff --git a/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll b/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll new file mode 100644 index 00000000000..a9b87fd1f47 --- /dev/null +++ b/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll @@ -0,0 +1,21 @@ +; Mem2reg should not insert dead PHI nodes! The naive algorithm inserts a PHI +; node in L3, even though there is no load of %A in anything dominated by L3. + +; RUN: llvm-as < %s | opt -mem2reg | llvm-dis | not grep phi + +void %test(int %B, bool %C) { + %A = alloca int + store int %B, int* %A + br bool %C, label %L1, label %L2 +L1: + store int %B, int* %A + %D = load int* %A + call void %test(int %D, bool false) + br label %L3 +L2: + %E = load int* %A + call void %test(int %E, bool true) + br label %L3 +L3: + ret void +}