1 /* { dg-do compile } */
2 /* { dg-additional-options "-ffast-math" } */
4 /* This testcase shouldn't consume much memory or produce a 1GB vectorizer
5 dump file due to SLP tree explosion. */
7 struct S
{ int f1
, f2
, f3
, f4
; } a
;
8 struct T
{ short f3
, f2
, f1
, f4
; };
13 foo (struct T
*p
, struct T
*q
, int x
, int w
)
23 r
= p
+ 2 * (c
+ 4) + 1;
28 i
= (r
->f2
+ j
.f2
) / 2;
44 i
= (r
->f2
+ j
.f2
) / 2;
60 i
= (r
->f3
+ j
.f3
) / 2;
62 i
= (r
->f4
+ j
.f4
) / 2;
63 if (b
* 65535UL / 25.0f
)
73 b
= 1 * 2.0 * i
* f
* f
;
87 if (b
* 65535UL / 25.0f
)
108 i
= (r
->f3
+ j
.f3
) / 2;
109 b
= 5 * (0.0 - i
) * f
* f
;
110 i
= (r
->f4
+ j
.f4
) / 2;
111 if (b
* 65535UL / 25.0f
)
113 h
.f1
+= 10.0 * r
->f1
;
114 h
.f2
+= 10.0 * r
->f2
;
115 h
.f3
+= 10.0 * r
->f3
;
116 h
.f4
+= 10.0 * r
->f4
;
122 i
= (r
->f2
+ j
.f2
) / 2;
124 b
= 5 * (0.0 - i
) * f
* f
;
126 if (b
* 65535UL / 25.0f
)
128 h
.f1
+= 40.0 * r
->f1
;
129 h
.f2
+= 40.0 * r
->f2
;
130 h
.f3
+= 40.0 * r
->f3
;
131 h
.f4
+= 40.0 * r
->f4
;
140 i
= (r
->f4
+ j
.f4
) / 2;
141 b
= 5 * (0.0 - i
) * f
* f
;
155 b
= 5 * (0.0 - i
) * f
* f
;
156 i
= (r
->f4
+ j
.f4
) / 2;
157 if (b
* 65535UL / 25.0f
)
174 q
->f1
= (h
.f1
+ g
/ 2 - 1) / g
;
175 q
->f2
= (h
.f2
+ g
/ 2 - 1) / g
;
176 q
->f3
= (h
.f3
+ g
/ 2 - 1) / g
;
177 q
->f4
= (h
.f4
+ g
/ 2 - 1) / g
;