2 /* { dg-do compile } */
3 /* { dg-options "-O2 -Wall" } */
5 extern int *a
, b
, *c
, *d
;
8 foo (double _Complex
*x
, double _Complex
*y
, double _Complex
*z
, unsigned int l
, int w
)
10 unsigned int e
= (unsigned int) a
[3];
11 double _Complex (*v
)[l
][4][e
][l
][4] = (double _Complex (*)[l
][4][e
][l
][4]) z
;
12 double _Complex (*f
)[l
][b
][l
] = (double _Complex (*)[l
][b
][l
]) y
;
13 unsigned int g
= c
[0] * c
[1] * c
[2];
14 unsigned int h
= d
[0] + c
[0] * (d
[1] + c
[1] * d
[2]);
17 for (i
= 0; i
< e
; i
++)
21 unsigned int n0
, n1
, n2
, n3
, n4
, n5
, n6
, n7
, n8
, n9
, n10
, n11
;
22 float _Complex s
= 0.;
25 for (n0
= 0; n0
< l
; n0
++)
26 for (n1
= 0; n1
< l
; n1
++)
27 for (n2
= 0; n2
< l
; n2
++)
28 for (n3
= 0; n3
< l
; n3
++)
29 for (n4
= 0; n4
< l
; n4
++)
30 for (n5
= 0; n5
< l
; n5
++)
31 for (n6
= 0; n6
< l
; n6
++)
32 for (n7
= 0; n7
< l
; n7
++)
33 for (n8
= 0; n8
< l
; n8
++)
34 for (n9
= 0; n9
< l
; n9
++)
35 for (n10
= 0; n10
< l
; n10
++)
36 for (n11
= 0; n11
< l
; n11
++)
40 += f
[n0
][n4
][j
][n8
] * f
[n1
][n5
][j
][n9
] * ~(f
[n2
][n6
][w
][n10
]) * ~(f
[n3
][n7
][w
][n11
])
41 * (+0.25 * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n10
][0][i
][n4
][1]
42 * v
[0][n7
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
43 + 0.25 * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n10
][0][i
][n4
][1]
44 * v
[0][n11
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
45 - 0.5 * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n10
][0][i
][n4
][1]
46 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
47 + 0.25 * v
[0][n2
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
48 * v
[0][n7
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0]
49 - 0.5 * v
[0][n2
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
50 * v
[0][n11
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
51 + 0.25 * v
[0][n2
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
52 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
53 + 0.25 * v
[0][n3
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n10
][0][i
][n4
][1]
54 * v
[0][n6
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
55 - 0.5 * v
[0][n3
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n10
][0][i
][n4
][1]
56 * v
[0][n11
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
57 + 0.25 * v
[0][n3
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n10
][0][i
][n4
][1]
58 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
59 + 0.25 * v
[0][n3
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
60 * v
[0][n6
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0]
61 + 0.25 * v
[0][n3
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
62 * v
[0][n11
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
63 - 0.5 * v
[0][n3
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
64 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
65 + 0.25 * v
[0][n10
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
66 * v
[0][n6
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0]
67 - 0.5 * v
[0][n10
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
68 * v
[0][n6
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
69 - 0.5 * v
[0][n10
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
70 * v
[0][n7
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0]
71 + 0.25 * v
[0][n10
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
72 * v
[0][n7
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
73 + 1. * v
[0][n10
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
74 * v
[0][n11
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
75 - 0.5 * v
[0][n10
][0][i
][n9
][1] * v
[0][n2
][0][i
][n5
][1] * v
[0][n3
][0][i
][n4
][1]
76 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
77 - 0.5 * v
[0][n10
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
78 * v
[0][n6
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0]
79 + 0.25 * v
[0][n10
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
80 * v
[0][n6
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
81 + 0.25 * v
[0][n10
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
82 * v
[0][n7
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0]
83 - 0.5 * v
[0][n10
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
84 * v
[0][n7
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
85 - 0.5 * v
[0][n10
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
86 * v
[0][n11
][1][i
][n8
][0] * v
[0][n6
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0]
87 + 1. * v
[0][n10
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1] * v
[0][n2
][0][i
][n4
][1]
88 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n6
][1][i
][n0
][0]
89 + 0.5 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1]
90 * v
[0][n7
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0] * v
[0][n10
][0][i
][n8
][0]
91 - 0.25 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1]
92 * v
[0][n11
][1][i
][n1
][0] * v
[0][n7
][1][i
][n0
][0] * v
[0][n10
][0][i
][n8
][0]
93 - 0.25 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1]
94 * v
[0][n7
][1][i
][n8
][0] * v
[0][n11
][1][i
][n0
][0] * v
[0][n10
][0][i
][n1
][0]
95 + 0.25 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1]
96 * v
[0][n7
][1][i
][n8
][0] * v
[0][n11
][1][i
][n1
][0] * v
[0][n10
][0][i
][n0
][0]
97 + 0.25 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1]
98 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n0
][0] * v
[0][n10
][0][i
][n1
][0]
99 - 0.5 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n3
][0][i
][n5
][1]
100 * v
[0][n11
][1][i
][n8
][0] * v
[0][n7
][1][i
][n1
][0] * v
[0][n10
][0][i
][n0
][0]
101 - 0.25 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1]
102 * v
[0][n7
][1][i
][n1
][0] * v
[0][n11
][1][i
][n0
][0] * v
[0][n3
][0][i
][n8
][0]
103 - 0.25 * v
[0][n6
][1][i
][n4
][1] * v
[0][n2
][0][i
][n9
][1] * v
[0][n10
][0][i
][n5
][1]
104 * v
[0][n7
][1][i
][n8
][0] * v
[0][n11
][1][i
][n0
][0] * v
[0][n3
][0][i
][n1
][0]);
107 int u
= (j
- w
+ b
) % b
;
108 int q
= (j
>= w
? +1 : -1);