; This testcase ensures that redundant loads are preserved when they are not | |
; allowed to be eliminated. | |
; RUN: llvm-as < %s | opt -load-vn -gcse | llvm-dis | grep sub | |
; | |
int %test1(int* %P) { | |
%A = load int* %P | |
store int 1, int* %P | |
%B = load int* %P | |
%C = sub int %A, %B | |
ret int %C | |
} | |
int %test2(int* %P) { | |
%A = load int* %P | |
br label %BB2 | |
BB2: | |
store int 5, int* %P | |
br label %BB3 | |
BB3: | |
%B = load int* %P | |
%C = sub int %A, %B | |
ret int %C | |
} | |