OSDN Git Service

PR tree-optimization/51246
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / 980408-1.c
1 typedef struct _RunlengthPacket
2 {
3   unsigned short
4     red,
5     green,
6     blue,
7     length;
8   unsigned short
9     index;
10 } RunlengthPacket;
11 typedef struct _Image
12 {
13   int
14     status,
15     temporary;
16   char
17     filename[1664 ];
18   long int
19     filesize;
20   int
21     pipe;
22   char
23     magick[1664 ],
24     *comments,
25     *label,
26     *text;
27   unsigned int
28     matte;
29   unsigned int
30     columns,
31     rows,
32     depth;
33   unsigned int
34     scene,
35     number_scenes;
36   char
37     *montage,
38     *directory;
39   unsigned int
40     colors;
41   double
42     gamma;
43   float
44     x_resolution,
45     y_resolution;
46   unsigned int
47     mean_error_per_pixel;
48   double
49     normalized_mean_error,
50     normalized_maximum_error;
51   unsigned long
52     total_colors;
53   char
54     *signature;
55   unsigned int
56     packets,
57     runlength,
58     packet_size;
59   unsigned char
60     *packed_pixels;
61   long int
62     magick_time;
63   char
64     magick_filename[1664 ];
65   unsigned int
66     magick_columns,
67     magick_rows;
68   char
69     *geometry,
70     *page;
71   unsigned int
72     dispose,
73     delay,
74     iterations;
75   unsigned int
76     orphan;
77   struct _Image
78     *previous,
79     *list,
80     *next;
81 } Image;
82   Image *MinifyImage(Image *image)
83 {
84   Image
85     *minified_image;
86   register RunlengthPacket
87     *q,
88     *s,
89     *s0,
90     *s1,
91     *s2,
92     *s3;
93   register unsigned int
94     x;
95   unsigned int
96     blue,
97     green,
98     red;
99   unsigned long
100     total_matte,
101     total_blue,
102     total_green,
103     total_red;
104   unsigned short
105     index;
106     for (x=0; x < (image->columns-1); x+=2)
107     {
108       total_red=0;
109       total_green=0;
110       total_blue=0;
111       total_matte=0;
112       s=s0;
113       total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;  total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;  total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ;
114       s=s1;
115       total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;
116       s=s2;
117       total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;
118       s=s3;
119       total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;  total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;  total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ;
120       red=(unsigned short) ((total_red+63) >> 7);
121       green=(unsigned short) ((total_green+63) >> 7);
122       blue=(unsigned short) ((total_blue+63) >> 7);
123       index=(unsigned short) ((total_matte+63) >> 7);
124       if ((red == q->red) && (green == q->green) && (blue == q->blue) &&
125           (index == q->index) && ((int) q->length < 65535L ))
126         q->length++;
127     }
128   return(minified_image);
129 }