; This testcase ensures that redundant loads are preserved when they are not ; allowed to be eliminated. ; RUN: as < %s | dis > Output/%s.before ; RUN: as < %s | opt -gcse | dis > Output/%s.after ; RUN: diff Output/%s.before Output/%s.after ; int "test1"(int* %P) { %A = load int* %P store int 1, int * %P %B = load int* %P %C = add 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 = add int %A, %B ret int %C }