1 ; This testcase was extracted from the gzip SPEC benchmark
3 ; RUN: as < %s | opt -adce
5 %inptr = internal uninitialized global uint ; <uint*> [#uses=2]
6 %outcnt = internal uninitialized global uint ; <uint*> [#uses=1]
7 %bb = internal uninitialized global ulong ; <ulong*> [#uses=1]
8 %bk = internal uninitialized global uint ; <uint*> [#uses=5]
9 %hufts = internal uninitialized global uint ; <uint*> [#uses=2]
11 implementation ; Functions:
15 %e = alloca int ; <int*> [#uses=2]
19 store uint 0, uint* %outcnt
20 store uint 0, uint* %bk
21 store ulong 0, ulong* %bb
25 %reg128 = phi uint [ %reg130, %bb6 ], [ 0, %bb1 ] ; <uint> [#uses=2]
26 store uint 0, uint* %hufts
27 %reg236 = call int %inflate_block( int* %e ) ; <int> [#uses=2]
28 %cond237 = seteq int %reg236, 0 ; <bool> [#uses=1]
29 br bool %cond237, label %bb4, label %bb3
35 %reg117 = load uint* %hufts ; <uint> [#uses=2]
36 %cond241 = setle uint %reg117, %reg128 ; <bool> [#uses=1]
37 br bool %cond241, label %bb6, label %bb5
43 %reg130 = phi uint [ %reg117, %bb5 ], [ %reg128, %bb4 ] ; <uint> [#uses=1]
44 %reg118 = load int* %e, uint 0 ; <int> [#uses=1]
45 %cond244 = seteq int %reg118, 0 ; <bool> [#uses=1]
46 br bool %cond244, label %bb2, label %bb7
49 %reg126 = load uint* %bk ; <uint> [#uses=1]
50 %cond247 = setle uint %reg126, 7 ; <bool> [#uses=1]
51 br bool %cond247, label %bb9, label %bb8
54 %reg120 = load uint* %bk ; <uint> [#uses=1]
55 %reg121 = add uint %reg120, 4294967288 ; <uint> [#uses=1]
56 store uint %reg121, uint* %bk
57 %reg122 = load uint* %inptr ; <uint> [#uses=1]
58 %reg123 = add uint %reg122, 4294967295 ; <uint> [#uses=1]
59 store uint %reg123, uint* %inptr
60 %reg119 = load uint* %bk ; <uint> [#uses=1]
61 %cond256 = setgt uint %reg119, 7 ; <bool> [#uses=1]
62 br bool %cond256, label %bb8, label %bb9
65 call void %flush_window( )
72 declare void %flush_window()
74 declare int %inflate_block(int*)