Misha Brukman | 14285c8 | 2003-09-15 20:02:53 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | opt -no-aa -ds-aa -load-vn -gcse | llvm-dis | not grep load |
Chris Lattner | b260eb8 | 2003-06-29 17:18:59 +0000 | [diff] [blame] | 2 | %T = type { int*, int* } |
| 3 | |
| 4 | int %main() { |
| 5 | %A = alloca %T |
| 6 | %B = alloca { %T } |
| 7 | %C = alloca %T* |
| 8 | %Bp = getelementptr { %T }* %B, long 0, ubyte 0 |
| 9 | |
| 10 | %i0 = alloca int |
| 11 | %i1 = alloca int |
| 12 | %Ap0 = getelementptr %T* %A, long 0, ubyte 0 |
| 13 | %Ap1 = getelementptr %T* %A, long 0, ubyte 1 |
| 14 | store int* %i0, int** %Ap0 |
| 15 | store int* %i1, int** %Ap1 |
| 16 | |
| 17 | store int 0, int* %i0 |
| 18 | store int 1, int* %i1 |
| 19 | %RetVal = load int* %i0 ; This load should be deletable |
| 20 | |
| 21 | store %T* %A, %T** %C |
| 22 | store %T* %Bp, %T** %C ; This store was causing merging to happen! |
| 23 | ret int %RetVal |
| 24 | } |