Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / torture / pr115785.C
blob498dfc9cb28a56710f9465f1b9a0fce512498e0f
1 // { dg-do compile { target { x86_64-*-* i?86-*-* }  } }
2 // { dg-require-effective-target c++11 }
3 // { dg-additional-options "-fno-vect-cost-model -fno-strict-overflow -fno-delete-null-pointer-checks -fwrapv -fsigned-char -w -mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2" }
5 void *operator new(__SIZE_TYPE__, void *);
6 struct a {
7   a(int, int);
8 };
9 typedef float b __attribute__((__vector_size__(16)));
10 b ad, d, f;
11 b e(b h, b m) { return __builtin_ia32_maxps(h, m); }
12 typedef int g __attribute__((__vector_size__(16)));
13 typedef long long aa __attribute__((__vector_size__(16)));
14 aa af(b h) { return aa(h); }
15 aa ae;
16 struct ah {
17   template <typename ag> ah(ag, int);
19 template <typename aj> aj ai(aj h, aj m, aj p) { return an(ak(h, p), m); }
20 struct q {
21   b j;
22   q(b h) : j(h) {}
23   operator b() { return j; }
25 struct t {
26   aa j;
27   t(aa h) : j(h) {}
28   operator aa() { return j; }
29   t(int) : j() {}
30   t(b h) : j(af(h)) {}
32 template <int> struct M {
33   b j;
34   M(b h) : j(h) {}
35   operator b() { return j; }
36   M(int);
38 template <int ao> struct ap {
39   using aq = M<ao>;
40   using ar = M<ao>;
41   using as = t;
42   using at = q;
44 template <int ao> using aq = typename ap<ao>::aq;
45 template <int ao> using ar = typename ap<ao>::ar;
46 template <int ao> using as = typename ap<ao>::as;
47 template <int ao> using at = typename ap<ao>::at;
48 typedef at<4> au;
49 ar<4> operator&(ar<4> h, ar<4>) {
50   b av, aw = h;
51   av = __builtin_ia32_andps(aw, d);
52   return av;
54 int ax, ay = 0, az, ba, bb, bc;
55 bool any(ar<4> h) {
56   __attribute__((__vector_size__(4 * sizeof(float)))) float bd = h;
57   ax = __builtin_ia32_movmskps(bd);
58   return ax;
60 ar<4> operator<(as<4> h, as<4>) {
61   aa be, bf = h, ac;
62   be = bf < ac;
63   return b(be);
65 as<4> ak(as<4> h, as<4>) {
66   aa bg, bh = h;
67   bg = (aa)__builtin_ia32_pminsd128((g)bh, (g)ae);
68   return bg;
70 as<4> an(as<4> h, as<4> m) {
71   aa bi, bj = h, bk = m;
72   bi = (aa)__builtin_ia32_pmaxsd128((g)bj, (g)bk);
73   return bi;
75 au operator-(au h, au) {
76   b bl, bm = h;
77   bl = bm - ad;
78   return bl;
80 au operator*(au h, au m) {
81   b bn, bo = h, k = m;
82   bn = bo * k;
83   return bn;
84   __attribute__(()) float bp;
85   ;
86   ;
88 struct br {
89   b bs;
90   br() {}
91   br(b h) : bs(h) {}
92   br(const br &h) { bs = h.bs; }
93   operator au() { return bs; }
95 br ak(br &h, br &m) {
96   b bq;
97   {
98     b ab = h.bs;
99     b ac = m.bs;
100     bq = __builtin_ia32_minps(ab, ac);
101   }
102   return bq;
104 br an(br h, br m) {
105   { f = __builtin_ia32_maxps(h.bs, m.bs); }
106   return f;
108 struct bt {
109   b bs;
110   unsigned n;
111   operator br() const { return bs; }
113 template <typename> struct bu {
114   br al, am;
115   bu() {}
116   bu(br h, br m) : al(h), am(m) {}
117   void ca(bu &h) {
118     al = ak(al, h.al);
119     am = an(am, h.am);
120   }
121   void ca(br h) {
122     br bv;
123     al = ak(al, h);
124     bv = e(am.bs, h.bs);
125     am = bv;
126   }
127   br bw() {
128     b bx;
129     br by, cf;
130     bx = al.bs + am.bs;
131     by = bx;
132     br cg = by;
133     cf = cg;
134     return cf;
135   }
136   br cb() {
137     br cc = al.bs + am.bs;
138     return cc;
139   }
141 typedef bu<br> cd;
142 template <typename> using ce = ah;
143 struct ci {
144   cd bounds() { return cd(al, am); }
145   bt al;
146   bt am;
147 } o;
148 template <typename bz> struct cm {
149   void ch(ci &h) {
150     cd bounds = h.bounds();
151     cj.ca(bounds);
152     br ck = bounds.cb();
153     cl.ca(ck);
154   }
155   bz cj;
156   cd cl;
158 template <typename bz> struct cn : cm<bz> {
159   void co(ci &h, int m) {
160     cm<bz>::ch(h);
161     cp += m;
162   }
163   int cp;
165 struct cq {
166   struct cu {
167     cu(cq *);
168   };
170 template <typename cr, typename cs>
171 __attribute__((always_inline)) void ct(cn<bu<br>> &h, cn<bu<br>> &m, cr p,
172                                        const cs cv) {
173   ci *l = &o, *r;
174   while (1) {
175     while (__builtin_expect(l <= r && p(*l), true)) {
176       cv(h, *l);
177       ++l;
178     }
179     while (__builtin_expect(l <= r && p(*r), true)) {
180       cv(m, *r);
181       --r;
182     }
183     if (r < l)
184       break;
185     cv(h, *r);
186     cv(m, *l);
187   }
189 struct cw {
190   as<4> bin(br h) {
191     q s = h, cx = s - cy, cz = cx * da;
192     as<4> i(cz);
193     return ai(i, as<4>(0), as<4>(1));
194   }
195   au cy, da;
197 struct db {
198   cw dc;
200 struct dd : cm<cd> {
201   dd();
202   dd(cm h) : cm(h) {}
203 } de;
204 template <int> struct df {
205   typedef db dg;
206   typedef int u;
207   df(void(), ci *, cm<cd>);
208   u dh;
209   void di(u, dd, dd, dd) { dj(); }
210   dg &v;
211   dd w;
212   dd x;
213   a dj() {
214     cn<cd> y, z;
215     int dk;
216     as<4> dl(0);
217     aq<4> dm(dk);
218     ct(
219         y, z,
220         [&](ci &dn) {
221           br __trans_tmp_1293 = dn.bounds().bw(),
222              __trans_tmp_1292 = __trans_tmp_1293,
223              __trans_tmp_1291 = __trans_tmp_1292,
224              __trans_tmp_1290 = __trans_tmp_1291,
225              __trans_tmp_1289 = __trans_tmp_1290,
226              __trans_tmp_1288 = __trans_tmp_1289,
227              __trans_tmp_1287 = __trans_tmp_1288,
228              __trans_tmp_1286 = __trans_tmp_1287,
229              __trans_tmp_1285 = __trans_tmp_1286,
230              __trans_tmp_1284 = __trans_tmp_1285,
231              __trans_tmp_1283 = __trans_tmp_1284,
232              __trans_tmp_1282 = __trans_tmp_1283,
233              __trans_tmp_1281 = __trans_tmp_1282,
234              __trans_tmp_1280 = __trans_tmp_1281,
235              __trans_tmp_1279 = __trans_tmp_1280,
236              __trans_tmp_1278 = __trans_tmp_1279,
237              __trans_tmp_1277 = __trans_tmp_1278,
238              __trans_tmp_1276 = __trans_tmp_1277,
239              __trans_tmp_1275 = __trans_tmp_1276,
240              __trans_tmp_1274 = __trans_tmp_1275,
241              __trans_tmp_1273 = __trans_tmp_1274,
242              __trans_tmp_1272 = __trans_tmp_1273,
243              __trans_tmp_1271 = __trans_tmp_1272,
244              __trans_tmp_1270 = __trans_tmp_1271,
245              __trans_tmp_1269 = __trans_tmp_1270,
246              __trans_tmp_1268 = __trans_tmp_1269,
247              __trans_tmp_1267 = __trans_tmp_1268,
248              __trans_tmp_1266 = __trans_tmp_1267,
249              __trans_tmp_1265 = __trans_tmp_1266,
250              __trans_tmp_1264 = __trans_tmp_1265,
251              __trans_tmp_1263 = __trans_tmp_1264,
252              __trans_tmp_1262 = __trans_tmp_1263,
253              __trans_tmp_1261 = __trans_tmp_1262,
254              __trans_tmp_1260 = __trans_tmp_1261,
255              __trans_tmp_1259 = __trans_tmp_1260,
256              __trans_tmp_1258 = __trans_tmp_1259,
257              __trans_tmp_1257 = __trans_tmp_1258,
258              __trans_tmp_1256 = __trans_tmp_1257,
259              __trans_tmp_1255 = __trans_tmp_1256,
260              __trans_tmp_1254 = __trans_tmp_1255,
261              __trans_tmp_1253 = __trans_tmp_1254,
262              __trans_tmp_1252 = __trans_tmp_1253,
263              __trans_tmp_1251 = __trans_tmp_1252,
264              __trans_tmp_1250 = __trans_tmp_1251,
265              __trans_tmp_1249 = __trans_tmp_1250,
266              __trans_tmp_1248 = __trans_tmp_1249,
267              __trans_tmp_1247 = __trans_tmp_1248,
268              __trans_tmp_1246 = __trans_tmp_1247,
269              __trans_tmp_1245 = __trans_tmp_1246,
270              __trans_tmp_1244 = __trans_tmp_1245,
271              __trans_tmp_1243 = __trans_tmp_1244,
272              __trans_tmp_1242 = __trans_tmp_1243,
273              __trans_tmp_1241 = __trans_tmp_1242,
274              __trans_tmp_1240 = __trans_tmp_1241,
275              __trans_tmp_1239 = __trans_tmp_1240,
276              __trans_tmp_1238 = __trans_tmp_1239,
277              __trans_tmp_1237 = __trans_tmp_1238,
278              __trans_tmp_1236 = __trans_tmp_1237,
279              __trans_tmp_1235 = __trans_tmp_1236,
280              __trans_tmp_1234 = __trans_tmp_1235,
281              __trans_tmp_1233 = __trans_tmp_1234,
282              __trans_tmp_1232 = __trans_tmp_1233,
283              __trans_tmp_1231 = __trans_tmp_1232,
284              __trans_tmp_1230 = __trans_tmp_1231,
285              __trans_tmp_1229 = __trans_tmp_1230,
286              __trans_tmp_1228 = __trans_tmp_1229,
287              __trans_tmp_1227 = __trans_tmp_1228,
288              __trans_tmp_1226 = __trans_tmp_1227,
289              __trans_tmp_1225 = __trans_tmp_1226,
290              __trans_tmp_1224 = __trans_tmp_1225,
291              __trans_tmp_1223 = __trans_tmp_1224,
292              __trans_tmp_1222 = __trans_tmp_1223,
293              __trans_tmp_1221 = __trans_tmp_1222,
294              __trans_tmp_1220 = __trans_tmp_1221,
295              __trans_tmp_1219 = __trans_tmp_1220,
296              __trans_tmp_1218 = __trans_tmp_1219,
297              __trans_tmp_1217 = __trans_tmp_1218,
298              __trans_tmp_1216 = __trans_tmp_1217,
299              __trans_tmp_1215 = __trans_tmp_1216,
300              __trans_tmp_1214 = __trans_tmp_1215,
301              __trans_tmp_1213 = __trans_tmp_1214,
302              __trans_tmp_1212 = __trans_tmp_1213,
303              __trans_tmp_1211 = __trans_tmp_1212,
304              __trans_tmp_1210 = __trans_tmp_1211,
305              __trans_tmp_1209 = __trans_tmp_1210,
306              __trans_tmp_1208 = __trans_tmp_1209,
307              __trans_tmp_1207 = __trans_tmp_1208,
308              __trans_tmp_1206 = __trans_tmp_1207,
309              __trans_tmp_1205 = __trans_tmp_1206,
310              __trans_tmp_1204 = __trans_tmp_1205,
311              __trans_tmp_1203 = __trans_tmp_1204,
312              __trans_tmp_1202 = __trans_tmp_1203,
313              __trans_tmp_1201 = __trans_tmp_1202,
314              __trans_tmp_1200 = __trans_tmp_1201,
315              __trans_tmp_1199 = __trans_tmp_1200,
316              __trans_tmp_1198 = __trans_tmp_1199,
317              __trans_tmp_1197 = __trans_tmp_1198,
318              __trans_tmp_1196 = __trans_tmp_1197,
319              __trans_tmp_1195 = __trans_tmp_1196,
320              __trans_tmp_1194 = __trans_tmp_1195,
321              __trans_tmp_1193 = __trans_tmp_1194,
322              __trans_tmp_1192 = __trans_tmp_1193,
323              __trans_tmp_1191 = __trans_tmp_1192,
324              __trans_tmp_1190 = __trans_tmp_1191,
325              __trans_tmp_1189 = __trans_tmp_1190,
326              __trans_tmp_1188 = __trans_tmp_1189,
327              __trans_tmp_1187 = __trans_tmp_1188,
328              __trans_tmp_1186 = __trans_tmp_1187,
329              __trans_tmp_1185 = __trans_tmp_1186,
330              __trans_tmp_1184 = __trans_tmp_1185,
331              __trans_tmp_1183 = __trans_tmp_1184,
332              __trans_tmp_1182 = __trans_tmp_1183,
333              __trans_tmp_1181 = __trans_tmp_1182,
334              __trans_tmp_1180 = __trans_tmp_1181,
335              __trans_tmp_1179 = __trans_tmp_1180,
336              __trans_tmp_1178 = __trans_tmp_1179,
337              __trans_tmp_1177 = __trans_tmp_1178,
338              __trans_tmp_1176 = __trans_tmp_1177,
339              __trans_tmp_1175 = __trans_tmp_1176,
340              __trans_tmp_1174 = __trans_tmp_1175,
341              __trans_tmp_1173 = __trans_tmp_1174,
342              __trans_tmp_1172 = __trans_tmp_1173,
343              __trans_tmp_1171 = __trans_tmp_1172,
344              __trans_tmp_1170 = __trans_tmp_1171,
345              __trans_tmp_1169 = __trans_tmp_1170,
346              __trans_tmp_1168 = __trans_tmp_1169,
347              __trans_tmp_1167 = __trans_tmp_1168,
348              __trans_tmp_1166 = __trans_tmp_1167,
349              __trans_tmp_1165 = __trans_tmp_1166,
350              __trans_tmp_1164 = __trans_tmp_1165,
351              __trans_tmp_1163 = __trans_tmp_1164,
352              __trans_tmp_1162 = __trans_tmp_1163,
353              __trans_tmp_1161 = __trans_tmp_1162,
354              __trans_tmp_1160 = __trans_tmp_1161,
355              __trans_tmp_1159 = __trans_tmp_1160,
356              __trans_tmp_1158 = __trans_tmp_1159,
357              __trans_tmp_1157 = __trans_tmp_1158,
358              __trans_tmp_1156 = __trans_tmp_1157,
359              __trans_tmp_1155 = __trans_tmp_1156,
360              __trans_tmp_1154 = __trans_tmp_1155,
361              __trans_tmp_1153 = __trans_tmp_1154,
362              __trans_tmp_1152 = __trans_tmp_1153,
363              __trans_tmp_1151 = __trans_tmp_1152,
364              __trans_tmp_1150 = __trans_tmp_1151,
365              __trans_tmp_1149 = __trans_tmp_1150,
366              __trans_tmp_1148 = __trans_tmp_1149,
367              __trans_tmp_1147 = __trans_tmp_1148,
368              __trans_tmp_1146 = __trans_tmp_1147,
369              __trans_tmp_1145 = __trans_tmp_1146,
370              __trans_tmp_1144 = __trans_tmp_1145,
371              __trans_tmp_1143 = __trans_tmp_1144,
372              __trans_tmp_1142 = __trans_tmp_1143,
373              __trans_tmp_1141 = __trans_tmp_1142,
374              __trans_tmp_1140 = __trans_tmp_1141,
375              __trans_tmp_1139 = __trans_tmp_1140,
376              __trans_tmp_1138 = __trans_tmp_1139,
377              __trans_tmp_1137 = __trans_tmp_1138,
378              __trans_tmp_1136 = __trans_tmp_1137,
379              __trans_tmp_1135 = __trans_tmp_1136,
380              __trans_tmp_1134 = __trans_tmp_1135,
381              __trans_tmp_1133 = __trans_tmp_1134,
382              __trans_tmp_1132 = __trans_tmp_1133,
383              __trans_tmp_1131 = __trans_tmp_1132,
384              __trans_tmp_1130 = __trans_tmp_1131,
385              __trans_tmp_1129 = __trans_tmp_1130,
386              __trans_tmp_1128 = __trans_tmp_1129,
387              __trans_tmp_1127 = __trans_tmp_1128,
388              __trans_tmp_1126 = __trans_tmp_1127,
389              __trans_tmp_1125 = __trans_tmp_1126,
390              __trans_tmp_1124 = __trans_tmp_1125,
391              __trans_tmp_1123 = __trans_tmp_1124,
392              __trans_tmp_1122 = __trans_tmp_1123,
393              __trans_tmp_1121 = __trans_tmp_1122,
394              __trans_tmp_1120 = __trans_tmp_1121,
395              __trans_tmp_1119 = __trans_tmp_1120,
396              __trans_tmp_1118 = __trans_tmp_1119,
397              __trans_tmp_1117 = __trans_tmp_1118,
398              __trans_tmp_1116 = __trans_tmp_1117,
399              __trans_tmp_1115 = __trans_tmp_1116,
400              __trans_tmp_1114 = __trans_tmp_1115,
401              __trans_tmp_1113 = __trans_tmp_1114,
402              __trans_tmp_1112 = __trans_tmp_1113,
403              __trans_tmp_1111 = __trans_tmp_1112,
404              __trans_tmp_1110 = __trans_tmp_1111,
405              __trans_tmp_1109 = __trans_tmp_1110,
406              __trans_tmp_1108 = __trans_tmp_1109,
407              __trans_tmp_1107 = __trans_tmp_1108,
408              __trans_tmp_1106 = __trans_tmp_1107,
409              __trans_tmp_1105 = __trans_tmp_1106,
410              __trans_tmp_1104 = __trans_tmp_1105,
411              __trans_tmp_1103 = __trans_tmp_1104,
412              __trans_tmp_1102 = __trans_tmp_1103,
413              __trans_tmp_1101 = __trans_tmp_1102,
414              __trans_tmp_1100 = __trans_tmp_1101,
415              __trans_tmp_1099 = __trans_tmp_1100,
416              __trans_tmp_1098 = __trans_tmp_1099,
417              __trans_tmp_1097 = __trans_tmp_1098,
418              __trans_tmp_1096 = __trans_tmp_1097,
419              __trans_tmp_1095 = __trans_tmp_1096,
420              __trans_tmp_1094 = __trans_tmp_1095,
421              __trans_tmp_1093 = __trans_tmp_1094,
422              __trans_tmp_1092 = __trans_tmp_1093,
423              __trans_tmp_1091 = __trans_tmp_1092,
424              __trans_tmp_1090 = __trans_tmp_1091,
425              __trans_tmp_1089 = __trans_tmp_1090,
426              __trans_tmp_1088 = __trans_tmp_1089,
427              __trans_tmp_1087 = __trans_tmp_1088,
428              __trans_tmp_1086 = __trans_tmp_1087,
429              __trans_tmp_1085 = __trans_tmp_1086,
430              __trans_tmp_1084 = __trans_tmp_1085,
431              __trans_tmp_1083 = __trans_tmp_1084,
432              __trans_tmp_1082 = __trans_tmp_1083,
433              __trans_tmp_1081 = __trans_tmp_1082,
434              __trans_tmp_1080 = __trans_tmp_1081,
435              __trans_tmp_1079 = __trans_tmp_1080,
436              __trans_tmp_1078 = __trans_tmp_1079,
437              __trans_tmp_1077 = __trans_tmp_1078,
438              __trans_tmp_1076 = __trans_tmp_1077,
439              __trans_tmp_1075 = __trans_tmp_1076,
440              __trans_tmp_1074 = __trans_tmp_1075,
441              __trans_tmp_1073 = __trans_tmp_1074,
442              __trans_tmp_1072 = __trans_tmp_1073,
443              __trans_tmp_1071 = __trans_tmp_1072,
444              __trans_tmp_1070 = __trans_tmp_1071,
445              __trans_tmp_1069 = __trans_tmp_1070,
446              __trans_tmp_1068 = __trans_tmp_1069,
447              __trans_tmp_1067 = __trans_tmp_1068,
448              __trans_tmp_1066 = __trans_tmp_1067,
449              __trans_tmp_1065 = __trans_tmp_1066,
450              __trans_tmp_1064 = __trans_tmp_1065,
451              __trans_tmp_1063 = __trans_tmp_1064,
452              __trans_tmp_1062 = __trans_tmp_1063,
453              __trans_tmp_1061 = __trans_tmp_1062,
454              __trans_tmp_1060 = __trans_tmp_1061,
455              __trans_tmp_1059 = __trans_tmp_1060,
456              __trans_tmp_1058 = __trans_tmp_1059,
457              __trans_tmp_1057 = __trans_tmp_1058,
458              __trans_tmp_1056 = __trans_tmp_1057,
459              __trans_tmp_1055 = __trans_tmp_1056,
460              __trans_tmp_1054 = __trans_tmp_1055,
461              __trans_tmp_1053 = __trans_tmp_1054,
462              __trans_tmp_1052 = __trans_tmp_1053,
463              __trans_tmp_1051 = __trans_tmp_1052,
464              __trans_tmp_1050 = __trans_tmp_1051,
465              __trans_tmp_1049 = __trans_tmp_1050,
466              __trans_tmp_1048 = __trans_tmp_1049,
467              __trans_tmp_1047 = __trans_tmp_1048,
468              __trans_tmp_1046 = __trans_tmp_1047,
469              __trans_tmp_1045 = __trans_tmp_1046,
470              __trans_tmp_1044 = __trans_tmp_1045,
471              __trans_tmp_1043 = __trans_tmp_1044,
472              __trans_tmp_1042 = __trans_tmp_1043,
473              __trans_tmp_1041 = __trans_tmp_1042,
474              __trans_tmp_1040 = __trans_tmp_1041,
475              __trans_tmp_1039 = __trans_tmp_1040,
476              __trans_tmp_1038 = __trans_tmp_1039,
477              __trans_tmp_1037 = __trans_tmp_1038,
478              __trans_tmp_1036 = __trans_tmp_1037,
479              __trans_tmp_1035 = __trans_tmp_1036,
480              __trans_tmp_1034 = __trans_tmp_1035,
481              __trans_tmp_1033 = __trans_tmp_1034,
482              __trans_tmp_1032 = __trans_tmp_1033,
483              __trans_tmp_1031 = __trans_tmp_1032,
484              __trans_tmp_1030 = __trans_tmp_1031,
485              __trans_tmp_1029 = __trans_tmp_1030,
486              __trans_tmp_1028 = __trans_tmp_1029,
487              __trans_tmp_1027 = __trans_tmp_1028,
488              __trans_tmp_1026 = __trans_tmp_1027,
489              __trans_tmp_1025 = __trans_tmp_1026,
490              __trans_tmp_1024 = __trans_tmp_1025,
491              __trans_tmp_1023 = __trans_tmp_1024,
492              __trans_tmp_1022 = __trans_tmp_1023,
493              __trans_tmp_1021 = __trans_tmp_1022,
494              __trans_tmp_1020 = __trans_tmp_1021,
495              __trans_tmp_1019 = __trans_tmp_1020,
496              __trans_tmp_1018 = __trans_tmp_1019,
497              __trans_tmp_1017 = __trans_tmp_1018,
498              __trans_tmp_1016 = __trans_tmp_1017,
499              __trans_tmp_1015 = __trans_tmp_1016,
500              __trans_tmp_1014 = __trans_tmp_1015,
501              __trans_tmp_1013 = __trans_tmp_1014,
502              __trans_tmp_1012 = __trans_tmp_1013,
503              __trans_tmp_1011 = __trans_tmp_1012,
504              __trans_tmp_1010 = __trans_tmp_1011,
505              __trans_tmp_1009 = __trans_tmp_1010,
506              __trans_tmp_1008 = __trans_tmp_1009,
507              __trans_tmp_1007 = __trans_tmp_1008,
508              __trans_tmp_1006 = __trans_tmp_1007,
509              __trans_tmp_1005 = __trans_tmp_1006,
510              __trans_tmp_1004 = __trans_tmp_1005,
511              __trans_tmp_1003 = __trans_tmp_1004,
512              __trans_tmp_1002 = __trans_tmp_1003,
513              __trans_tmp_1001 = __trans_tmp_1002,
514              __trans_tmp_1000 = __trans_tmp_1001,
515              __trans_tmp_999 = __trans_tmp_1000,
516              __trans_tmp_998 = __trans_tmp_999,
517              __trans_tmp_997 = __trans_tmp_998,
518              __trans_tmp_996 = __trans_tmp_997,
519              __trans_tmp_995 = __trans_tmp_996,
520              __trans_tmp_994 = __trans_tmp_995,
521              __trans_tmp_993 = __trans_tmp_994,
522              __trans_tmp_992 = __trans_tmp_993,
523              __trans_tmp_991 = __trans_tmp_992,
524              __trans_tmp_990 = __trans_tmp_991,
525              __trans_tmp_989 = __trans_tmp_990,
526              __trans_tmp_988 = __trans_tmp_989,
527              __trans_tmp_987 = __trans_tmp_988,
528              __trans_tmp_986 = __trans_tmp_987,
529              __trans_tmp_985 = __trans_tmp_986,
530              __trans_tmp_984 = __trans_tmp_985,
531              __trans_tmp_983 = __trans_tmp_984,
532              __trans_tmp_982 = __trans_tmp_983,
533              __trans_tmp_981 = __trans_tmp_982,
534              __trans_tmp_980 = __trans_tmp_981,
535              __trans_tmp_979 = __trans_tmp_980,
536              __trans_tmp_978 = __trans_tmp_979,
537              __trans_tmp_977 = __trans_tmp_978,
538              __trans_tmp_976 = __trans_tmp_977,
539              __trans_tmp_975 = __trans_tmp_976,
540              __trans_tmp_974 = __trans_tmp_975,
541              __trans_tmp_973 = __trans_tmp_974,
542              __trans_tmp_972 = __trans_tmp_973,
543              __trans_tmp_971 = __trans_tmp_972,
544              __trans_tmp_970 = __trans_tmp_971,
545              __trans_tmp_969 = __trans_tmp_970,
546              __trans_tmp_968 = __trans_tmp_969,
547              __trans_tmp_967 = __trans_tmp_968,
548              __trans_tmp_966 = __trans_tmp_967,
549              __trans_tmp_965 = __trans_tmp_966,
550              __trans_tmp_964 = __trans_tmp_965,
551              __trans_tmp_963 = __trans_tmp_964,
552              __trans_tmp_962 = __trans_tmp_963,
553              __trans_tmp_961 = __trans_tmp_962,
554              __trans_tmp_960 = __trans_tmp_961,
555              __trans_tmp_959 = __trans_tmp_960,
556              __trans_tmp_958 = __trans_tmp_959,
557              __trans_tmp_957 = __trans_tmp_958,
558              __trans_tmp_956 = __trans_tmp_957,
559              __trans_tmp_955 = __trans_tmp_956,
560              __trans_tmp_954 = __trans_tmp_955,
561              __trans_tmp_953 = __trans_tmp_954,
562              __trans_tmp_952 = __trans_tmp_953,
563              __trans_tmp_951 = __trans_tmp_952,
564              __trans_tmp_950 = __trans_tmp_951,
565              __trans_tmp_949 = __trans_tmp_950,
566              __trans_tmp_948 = __trans_tmp_949,
567              __trans_tmp_947 = __trans_tmp_948,
568              __trans_tmp_946 = __trans_tmp_947,
569              __trans_tmp_945 = __trans_tmp_946,
570              __trans_tmp_944 = __trans_tmp_945,
571              __trans_tmp_943 = __trans_tmp_944,
572              __trans_tmp_942 = __trans_tmp_943,
573              __trans_tmp_941 = __trans_tmp_942,
574              __trans_tmp_940 = __trans_tmp_941,
575              __trans_tmp_939 = __trans_tmp_940,
576              __trans_tmp_938 = __trans_tmp_939,
577              __trans_tmp_937 = __trans_tmp_938,
578              __trans_tmp_936 = __trans_tmp_937,
579              __trans_tmp_935 = __trans_tmp_936,
580              __trans_tmp_934 = __trans_tmp_935,
581              __trans_tmp_933 = __trans_tmp_934,
582              __trans_tmp_932 = __trans_tmp_933,
583              __trans_tmp_931 = __trans_tmp_932,
584              __trans_tmp_930 = __trans_tmp_931,
585              __trans_tmp_929 = __trans_tmp_930,
586              __trans_tmp_928 = __trans_tmp_929,
587              __trans_tmp_927 = __trans_tmp_928,
588              __trans_tmp_926 = __trans_tmp_927,
589              __trans_tmp_925 = __trans_tmp_926,
590              __trans_tmp_924 = __trans_tmp_925,
591              __trans_tmp_923 = __trans_tmp_924,
592              __trans_tmp_922 = __trans_tmp_923,
593              __trans_tmp_921 = __trans_tmp_922,
594              __trans_tmp_920 = __trans_tmp_921,
595              __trans_tmp_919 = __trans_tmp_920,
596              __trans_tmp_918 = __trans_tmp_919,
597              __trans_tmp_917 = __trans_tmp_918,
598              __trans_tmp_916 = __trans_tmp_917,
599              __trans_tmp_915 = __trans_tmp_916,
600              __trans_tmp_914 = __trans_tmp_915,
601              __trans_tmp_913 = __trans_tmp_914,
602              __trans_tmp_912 = __trans_tmp_913,
603              __trans_tmp_911 = __trans_tmp_912,
604              __trans_tmp_910 = __trans_tmp_911,
605              __trans_tmp_909 = __trans_tmp_910,
606              __trans_tmp_908 = __trans_tmp_909,
607              __trans_tmp_907 = __trans_tmp_908,
608              __trans_tmp_906 = __trans_tmp_907,
609              __trans_tmp_905 = __trans_tmp_906,
610              __trans_tmp_904 = __trans_tmp_905,
611              __trans_tmp_903 = __trans_tmp_904,
612              __trans_tmp_902 = __trans_tmp_903,
613              __trans_tmp_901 = __trans_tmp_902,
614              __trans_tmp_900 = __trans_tmp_901,
615              __trans_tmp_899 = __trans_tmp_900,
616              __trans_tmp_898 = __trans_tmp_899,
617              __trans_tmp_897 = __trans_tmp_898,
618              __trans_tmp_896 = __trans_tmp_897,
619              __trans_tmp_895 = __trans_tmp_896,
620              __trans_tmp_894 = __trans_tmp_895,
621              __trans_tmp_893 = __trans_tmp_894,
622              __trans_tmp_892 = __trans_tmp_893,
623              __trans_tmp_891 = __trans_tmp_892,
624              __trans_tmp_890 = __trans_tmp_891,
625              __trans_tmp_889 = __trans_tmp_890,
626              __trans_tmp_888 = __trans_tmp_889,
627              __trans_tmp_887 = __trans_tmp_888,
628              __trans_tmp_886 = __trans_tmp_887,
629              __trans_tmp_885 = __trans_tmp_886,
630              __trans_tmp_884 = __trans_tmp_885,
631              __trans_tmp_883 = __trans_tmp_884,
632              __trans_tmp_882 = __trans_tmp_883,
633              __trans_tmp_881 = __trans_tmp_882,
634              __trans_tmp_880 = __trans_tmp_881,
635              __trans_tmp_879 = __trans_tmp_880,
636              __trans_tmp_878 = __trans_tmp_879,
637              __trans_tmp_877 = __trans_tmp_878,
638              __trans_tmp_876 = __trans_tmp_877,
639              __trans_tmp_875 = __trans_tmp_876,
640              __trans_tmp_874 = __trans_tmp_875,
641              __trans_tmp_873 = __trans_tmp_874,
642              __trans_tmp_872 = __trans_tmp_873,
643              __trans_tmp_871 = __trans_tmp_872,
644              __trans_tmp_870 = __trans_tmp_871,
645              __trans_tmp_869 = __trans_tmp_870,
646              __trans_tmp_868 = __trans_tmp_869,
647              __trans_tmp_867 = __trans_tmp_868,
648              __trans_tmp_866 = __trans_tmp_867,
649              __trans_tmp_865 = __trans_tmp_866,
650              __trans_tmp_864 = __trans_tmp_865,
651              __trans_tmp_863 = __trans_tmp_864, c = __trans_tmp_863;
652           bool __trans_tmp_861 = any(v.dc.bin(c) < dl & dm);
653           return __trans_tmp_861;
654         },
655         [](cn<cd> &pinfo, ci &dn) { pinfo.co(dn, dn.al.n); });
656     int left_weight = y.cp;
657     new (&w) dd(y);
658     new (&x) dd(z);
659     a(left_weight, z.cp);
660   }
662 struct G {};
663 struct J {
664   J(int, df<16>, cq::cu, int, int, cq *, int, int, int, int);
665   void recurse(G h, cq::cu, bool) { heuristic.di(ay, de, de, de); }
666   df<6> heuristic;
668 struct I {
669   template <typename, typename Heuristic, typename, typename>
670   static void build(Heuristic h, cq::cu m, cq *p) {
671     J builder(0, h, m, bc, bb, p, int(), int(), ba, az);
672     G record;
673     builder.recurse(record, nullptr, true);
674   }
676 struct BVHBuilderBinnedFastSpatialSAH {
677   template <typename SplitPrimitiveFunc>
678   static void build(cq::cu h, int, int, cq *cv, SplitPrimitiveFunc p5, int,
679                     cn<cd> p7, int) {
680     ci de;
681     typedef df<16> Heuristic;
682     Heuristic heuristic(p5, &de, p7);
683     I::build<int, Heuristic, dd, ci>(heuristic, h, cv);
684   }
685 } BVHNBuilderFastSpatialSAH_scene;
686 struct BVHNBuilderFastSpatialSAH {
687   cq bvh;
688   ce<ci> prims0;
689   int settings;
690   BVHNBuilderFastSpatialSAH() : prims0(BVHNBuilderFastSpatialSAH_scene, 0) {
691     cn<cd> pinfo;
692     void splitter();
693     BVHBuilderBinnedFastSpatialSAH::build(&bvh, int(), int(), &bvh, splitter, 0,
694                                           pinfo, settings);
695   }
696 } BVH4Triangle4SceneBuilderFastSpatialSAH_bvh;