annotate gcc/testsuite/gcc.dg/tree-ssa/split-path-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do run } */
kono
parents:
diff changeset
2 /* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details --param max-jump-thread-duplication-stmts=20" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #include <stdio.h>
kono
parents:
diff changeset
5 #include <stdlib.h>
kono
parents:
diff changeset
6 #include <ctype.h>
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 #define RGBMAX 255
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 unsigned char
kono
parents:
diff changeset
11 test()
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 int i, Pels;
kono
parents:
diff changeset
14 int sum = 0;
kono
parents:
diff changeset
15 unsigned char xr, xg, xb;
kono
parents:
diff changeset
16 unsigned char xc, xm, xy, xk = 0;
kono
parents:
diff changeset
17 unsigned char *ReadPtr, *EritePtr;
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 ReadPtr = ( unsigned char *) malloc (sizeof (unsigned char) * 100);
kono
parents:
diff changeset
20 EritePtr = ( unsigned char *) malloc (sizeof (unsigned char) * 100);
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 for (i = 0; i < 100;i++)
kono
parents:
diff changeset
23 {
kono
parents:
diff changeset
24 ReadPtr[i] = 100 - i;
kono
parents:
diff changeset
25 }
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 for (i = 0; i < 24; i++)
kono
parents:
diff changeset
28 {
kono
parents:
diff changeset
29 xr = *ReadPtr++;
kono
parents:
diff changeset
30 xg = *ReadPtr++;
kono
parents:
diff changeset
31 xb = *ReadPtr++;
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 xc = (unsigned char) (RGBMAX - xr);
kono
parents:
diff changeset
34 xm = (unsigned char) (RGBMAX - xg);
kono
parents:
diff changeset
35 xy = (unsigned char) (RGBMAX - xb);
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 if (xc < xm)
kono
parents:
diff changeset
38 {
kono
parents:
diff changeset
39 xk = (unsigned char) (xc < xy ? xc : xy);
kono
parents:
diff changeset
40 }
kono
parents:
diff changeset
41 else
kono
parents:
diff changeset
42 {
kono
parents:
diff changeset
43 xk = (unsigned char) (xm < xy ? xm : xy);
kono
parents:
diff changeset
44 }
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 xc = (unsigned char) (xc - xk);
kono
parents:
diff changeset
47 xm = (unsigned char) (xm - xk);
kono
parents:
diff changeset
48 xy = (unsigned char) (xy - xk);
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 *EritePtr++ = xc;
kono
parents:
diff changeset
51 *EritePtr++ = xm;
kono
parents:
diff changeset
52 *EritePtr++ = xy;
kono
parents:
diff changeset
53 *EritePtr++ = xk;
kono
parents:
diff changeset
54 sum += *(--EritePtr);
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 }
kono
parents:
diff changeset
57 return sum;
kono
parents:
diff changeset
58 }
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 int
kono
parents:
diff changeset
61 main()
kono
parents:
diff changeset
62 {
kono
parents:
diff changeset
63 if (test() != 196)
kono
parents:
diff changeset
64 abort();
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 return 0;
kono
parents:
diff changeset
67 }
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 /* { dg-final { scan-tree-dump "Duplicating join block" "split-paths" } } */