| ; This test was failing because the globals X and Y are marked incomplete | |
| ; in the TD graph for %test | |
| ; XFAIL: * | |
| ; RUN: llvm-as < %s | opt -no-aa -ds-aa -load-vn -gcse -instcombine | llvm-dis | not grep seteq | |
| %X = internal global int 20 | |
| %Y = internal global int* null | |
| implementation | |
| internal bool %test(int** %P) { | |
| %A = load int** %P ;; We know P == Y! | |
| %B = load int** %Y ;; B = A | |
| %c = seteq int* %A, %B ;; Always true | |
| ret bool %c | |
| } | |
| int %main() { | |
| store int* %X, int** %Y | |
| call bool %test(int** %Y) | |
| ret int 0 | |
| } | |