blob: e08c41ceeb8b2b22b029ce56706cae54aa20e711 [file] [log] [blame]
Chris Lattner3557bd02002-05-16 01:03:12 +00001; This testcase ensures that redundant loads are preserved when they are not
2; allowed to be eliminated.
Reid Spencerd0e30dc2006-12-02 04:23:10 +00003; RUN: llvm-upgrade < %s | llvm-as | opt -load-vn -gcse | llvm-dis | grep sub
Chris Lattner3557bd02002-05-16 01:03:12 +00004;
Chris Lattner5a4237c2003-06-16 11:59:34 +00005int %test1(int* %P) {
Chris Lattner3557bd02002-05-16 01:03:12 +00006 %A = load int* %P
Chris Lattner5a4237c2003-06-16 11:59:34 +00007 store int 1, int* %P
Chris Lattner3557bd02002-05-16 01:03:12 +00008 %B = load int* %P
Chris Lattner5a4237c2003-06-16 11:59:34 +00009 %C = sub int %A, %B
Chris Lattner3557bd02002-05-16 01:03:12 +000010 ret int %C
11}
12
Chris Lattner5a4237c2003-06-16 11:59:34 +000013int %test2(int* %P) {
Chris Lattner3557bd02002-05-16 01:03:12 +000014 %A = load int* %P
15 br label %BB2
16BB2:
Chris Lattner5a4237c2003-06-16 11:59:34 +000017 store int 5, int* %P
Chris Lattner3557bd02002-05-16 01:03:12 +000018 br label %BB3
19BB3:
20 %B = load int* %P
Chris Lattner5a4237c2003-06-16 11:59:34 +000021 %C = sub int %A, %B
Chris Lattner3557bd02002-05-16 01:03:12 +000022 ret int %C
23}
24
25