1 /* PR optimization/6475
2 Distilled from zlib sources. */
4 /* { dg-options "-O2" } */
5 /* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target i?86-*-* } } */
6 /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
7 /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
9 extern void exit (int);
26 foo (unsigned int *b
, unsigned int n
, unsigned int s
, const unsigned int *d
,
27 const unsigned int *e
, A
**t
, unsigned int *m
, A
*hp
, unsigned int *hn
,
30 unsigned int a
, c
[15 + 1], f
;
38 unsigned int x
[15 + 1], *xx
;
42 *p
++ = 0; *p
++ = 0; *p
++ = 0; *p
++ = 0;
43 *p
++ = 0; *p
++ = 0; *p
++ = 0; *p
++ = 0;
44 *p
++ = 0; *p
++ = 0; *p
++ = 0; *p
++ = 0;
45 *p
++ = 0; *p
++ = 0; *p
++ = 0; *p
++ = 0;
58 for (j
= 1; j
<= 15; j
++)
62 if ((unsigned int) l
< j
)
68 if ((unsigned int) l
> i
)
71 for (y
= 1 << j
; j
< i
; j
++, y
<<= 1)
106 z
= z
> (unsigned int) l
? l
: z
;
107 if ((f
= 1 << (j
= k
- w
)) > a
+ 1)
114 if ((f
<<= 1) <= *++xx
)
127 r
.a0
.a2
.a4
= (unsigned char) l
;
128 r
.a0
.a2
.a3
= (unsigned char) j
;
130 r
.a1
= (unsigned int) (q
- u
[h
- 1] - j
);
136 r
.a0
.a2
.a4
= (unsigned char) (k
- w
);
138 r
.a0
.a2
.a3
= 128 + 64;
141 r
.a0
.a2
.a3
= (unsigned char) (*p
< 256 ? 0 : 32 + 64);
146 r
.a0
.a2
.a3
= (unsigned char) (e
[*p
- s
] + 16 + 64);
150 for (j
= i
>> w
; j
< z
; j
+= f
)
152 for (j
= 1 << (k
- 1); i
& j
; j
>>= 1)
156 while ((i
& ee
) != x
[h
])
164 return y
!= 0 && g
!= 1 ? (-5) : 0;
167 unsigned int a
[19] = { 3, 4, 0, 2, 2, [17] = 3, 3 };
174 unsigned int b
= 0, c
= 0;
176 foo (a
, 19, 19, 0, 0, &e
, &b
, h
, &c
, d
);