Chris Lattner | dbb6cd1 | 2003-06-29 01:09:07 +0000 | [diff] [blame] | 1 | ; This test was failing because the globals X and Y are marked incomplete |
Chris Lattner | 4fe77cd | 2003-06-29 01:03:53 +0000 | [diff] [blame] | 2 | ; in the TD graph for %test |
Tanya Lattner | 12ff968 | 2004-11-06 20:38:27 +0000 | [diff] [blame] | 3 | ; XFAIL: * |
Misha Brukman | 14285c8 | 2003-09-15 20:02:53 +0000 | [diff] [blame] | 4 | ; RUN: llvm-as < %s | opt -no-aa -ds-aa -load-vn -gcse -instcombine | llvm-dis | not grep seteq |
Chris Lattner | 4fe77cd | 2003-06-29 01:03:53 +0000 | [diff] [blame] | 5 | |
| 6 | %X = internal global int 20 |
| 7 | %Y = internal global int* null |
| 8 | |
| 9 | implementation |
| 10 | |
Chris Lattner | dbb6cd1 | 2003-06-29 01:09:07 +0000 | [diff] [blame] | 11 | internal bool %test(int** %P) { |
Chris Lattner | 4fe77cd | 2003-06-29 01:03:53 +0000 | [diff] [blame] | 12 | %A = load int** %P ;; We know P == Y! |
| 13 | %B = load int** %Y ;; B = A |
| 14 | %c = seteq int* %A, %B ;; Always true |
| 15 | ret bool %c |
| 16 | } |
| 17 | |
| 18 | int %main() { |
| 19 | store int* %X, int** %Y |
| 20 | call bool %test(int** %Y) |
| 21 | ret int 0 |
| 22 | } |
| 23 | |