blob: 7dfbf900604b8d6f987d9d2217c4bacde809227b [file] [log] [blame]
Chris Lattnerd03de902002-08-19 19:08:52 +00001; Test that: extern int X[] and int X[] = { 1, 2, 3, 4 } are resolved correctly.
2;
3; RUN: if as < %s | opt -gcse -instcombine -constprop -dce | dis | grep getelementptr
4; RUN: then exit 1
5; RUN: else exit 0
6; RUN: fi
7;
8
9%X = uninitialized global int ; <int*> [#uses=1]
10%X = global [4 x int] [ int 1, int 2, int 3, int 4 ] ; <[4 x int]*> [#uses=1]
11
12implementation ; Functions:
13
14int %foo(int %x) {
15bb1: ;[#uses=0]
16 %reg107-idxcast = cast int %x to uint ; <uint> [#uses=2]
17 %reg113 = getelementptr int* %X, uint %reg107-idxcast ; <int*> [#uses=1]
18 %reg120 = getelementptr [4 x int]* %X, uint 0, uint %reg107-idxcast ; <int*> [#uses=1]
19 %reg123 = sub int* %reg113, %reg120 ; <int*> [#uses=1]
20 %cast232 = cast int* %reg123 to long ; <long> [#uses=1]
21 %reg234 = div long %cast232, 4 ; <long> [#uses=1]
22 %cast108 = cast long %reg234 to int ; <int> [#uses=1]
23 ret int %cast108
24}
25