yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Anders LeinoUncomment a previously failing test case (#6303)f5551eb94

master
26.7 KiB951 linesraw
1//TEST(compute):COMPARE_COMPUTE:-shaderobj
2
3//TEST_INPUT:ubuffer(data=[3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8 7 3 8], stride=4):name=input
4RWStructuredBuffer<uint> input;
5
6//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=output
7RWStructuredBuffer<uint> output;
8
9[numthreads(1,1,1)]
10void computeMain()
11{
12
13    uint na; // 3
14    uint nb; // 7
15    uint nc; // 8
16    bool ba; // true
17    bool bb; // false
18    bool bc; // true
19
20    // The following test cases are generated by this Python program:
21    // def pairs(a, b):
22    //     for x in a:
23    //         for y in b:
24    //             yield (x, y)
25    //
26    // nn = ['^', '|', '&', '*', '/', '%', '+', '-', '<<', '>>'];
27    // xb = ['<', '>', '<=', '>=', '==', '!=']
28    // bb = ['&&', '||', '==', '!=']
29    // rl = ['<', '>', '<=', '>=']
30    // eq = ['==', '!=']
31    // lg = ['&&', '||']
32    //
33    // iidx = 0
34    // oidx = 0
35    //
36    // for (l, r) in pairs(nn, nn):
37    //     print("na = input[{}];".format(iidx + 0))
38    //     print("nb = input[{}];".format(iidx + 1))
39    //     print("nc = input[{}];".format(iidx + 2))
40    //     print("output[{}] = na {} nb {} nc;".format(oidx, l, r))
41    //     oidx += 1
42    //     iidx += 3
43    //
44    // for (l, r) in pairs(nn, xb):
45    //     print("na = input[{}];".format(iidx + 0))
46    //     print("nb = input[{}];".format(iidx + 1))
47    //     print("nc = input[{}];".format(iidx + 2))
48    //     print("output[{}] = uint(na {} nb {} nc);".format(oidx, l, r))
49    //     oidx += 1
50    //     print("output[{}] = uint(na {} nb {} nc);".format(oidx, r, l))
51    //     oidx += 1
52    //     iidx += 3
53    //
54    // for (l, r) in pairs(bb, bb):
55    //     print("ba = bool(input[{}] & 1);".format(iidx + 0))
56    //     print("bb = bool(input[{}] & 16);".format(iidx + 1))
57    //     print("bc = bool(input[{}] & 8);".format(iidx + 2))
58    //     print("output[{}] = uint(ba {} bb {} bc);".format(oidx, l, r))
59    //     oidx += 1
60    //     iidx += 3
61    //
62    // for (l, r) in pairs(eq + lg, rl):
63    //     print("na = input[{}];".format(iidx + 0))
64    //     print("nb = input[{}];".format(iidx + 1))
65    //     print("nc = input[{}];".format(iidx + 2))
66    //     print("ba = bool(input[{}] & 1);".format(iidx + 3))
67    //     print("bc = bool(input[{}] & 8);".format(iidx + 4))
68    //     print("output[{}] = uint(ba {} nb {} nc);".format(oidx, l, r))
69    //     oidx += 1
70    //     print("output[{}] = uint(na {} nb {} bc);".format(oidx, r, l))
71    //     oidx += 1
72    //     iidx += 5
73
74    na = input[0];
75    nb = input[1];
76    nc = input[2];
77    output[0] = na ^ nb ^ nc;
78    na = input[3];
79    nb = input[4];
80    nc = input[5];
81    output[1] = na ^ nb | nc;
82    na = input[6];
83    nb = input[7];
84    nc = input[8];
85    output[2] = na ^ nb & nc;
86    na = input[9];
87    nb = input[10];
88    nc = input[11];
89    output[3] = na ^ nb * nc;
90    na = input[12];
91    nb = input[13];
92    nc = input[14];
93    output[4] = na ^ nb / nc;
94    na = input[15];
95    nb = input[16];
96    nc = input[17];
97    output[5] = na ^ nb % nc;
98    na = input[18];
99    nb = input[19];
100    nc = input[20];
101    output[6] = na ^ nb + nc;
102    na = input[21];
103    nb = input[22];
104    nc = input[23];
105    output[7] = na ^ nb - nc;
106    na = input[24];
107    nb = input[25];
108    nc = input[26];
109    output[8] = na ^ nb << nc;
110    na = input[27];
111    nb = input[28];
112    nc = input[29];
113    output[9] = na ^ nb >> nc;
114    na = input[30];
115    nb = input[31];
116    nc = input[32];
117    output[10] = na | nb ^ nc;
118    na = input[33];
119    nb = input[34];
120    nc = input[35];
121    output[11] = na | nb | nc;
122    na = input[36];
123    nb = input[37];
124    nc = input[38];
125    output[12] = na | nb & nc;
126    na = input[39];
127    nb = input[40];
128    nc = input[41];
129    output[13] = na | nb * nc;
130    na = input[42];
131    nb = input[43];
132    nc = input[44];
133    output[14] = na | nb / nc;
134    na = input[45];
135    nb = input[46];
136    nc = input[47];
137    output[15] = na | nb % nc;
138    na = input[48];
139    nb = input[49];
140    nc = input[50];
141    output[16] = na | nb + nc;
142    na = input[51];
143    nb = input[52];
144    nc = input[53];
145    output[17] = na | nb - nc;
146    na = input[54];
147    nb = input[55];
148    nc = input[56];
149    output[18] = na | nb << nc;
150    na = input[57];
151    nb = input[58];
152    nc = input[59];
153    output[19] = na | nb >> nc;
154    na = input[60];
155    nb = input[61];
156    nc = input[62];
157    output[20] = na & nb ^ nc;
158    na = input[63];
159    nb = input[64];
160    nc = input[65];
161    output[21] = na & nb | nc;
162    na = input[66];
163    nb = input[67];
164    nc = input[68];
165    output[22] = na & nb & nc;
166    na = input[69];
167    nb = input[70];
168    nc = input[71];
169    output[23] = na & nb * nc;
170    na = input[72];
171    nb = input[73];
172    nc = input[74];
173    output[24] = na & nb / nc;
174    na = input[75];
175    nb = input[76];
176    nc = input[77];
177    output[25] = na & nb % nc;
178    na = input[78];
179    nb = input[79];
180    nc = input[80];
181    output[26] = na & nb + nc;
182    na = input[81];
183    nb = input[82];
184    nc = input[83];
185    output[27] = na & nb - nc;
186    na = input[84];
187    nb = input[85];
188    nc = input[86];
189    output[28] = na & nb << nc;
190    na = input[87];
191    nb = input[88];
192    nc = input[89];
193    output[29] = na & nb >> nc;
194    na = input[90];
195    nb = input[91];
196    nc = input[92];
197    output[30] = na * nb ^ nc;
198    na = input[93];
199    nb = input[94];
200    nc = input[95];
201    output[31] = na * nb | nc;
202    na = input[96];
203    nb = input[97];
204    nc = input[98];
205    output[32] = na * nb & nc;
206    na = input[99];
207    nb = input[100];
208    nc = input[101];
209    output[33] = na * nb * nc;
210    na = input[102];
211    nb = input[103];
212    nc = input[104];
213    output[34] = na * nb / nc;
214    na = input[105];
215    nb = input[106];
216    nc = input[107];
217    output[35] = na * nb % nc;
218    na = input[108];
219    nb = input[109];
220    nc = input[110];
221    output[36] = na * nb + nc;
222    na = input[111];
223    nb = input[112];
224    nc = input[113];
225    output[37] = na * nb - nc;
226    na = input[114];
227    nb = input[115];
228    nc = input[116];
229    output[38] = na * nb << nc;
230    na = input[117];
231    nb = input[118];
232    nc = input[119];
233    output[39] = na * nb >> nc;
234    na = input[120];
235    nb = input[121];
236    nc = input[122];
237    output[40] = na / nb ^ nc;
238    na = input[123];
239    nb = input[124];
240    nc = input[125];
241    output[41] = na / nb | nc;
242    na = input[126];
243    nb = input[127];
244    nc = input[128];
245    output[42] = na / nb & nc;
246    na = input[129];
247    nb = input[130];
248    nc = input[131];
249    output[43] = na / nb * nc;
250    na = input[132];
251    nb = input[133];
252    nc = input[134];
253    output[44] = na / nb / nc;
254    na = input[135];
255    nb = input[136];
256    nc = input[137];
257    output[45] = na / nb % nc;
258    na = input[138];
259    nb = input[139];
260    nc = input[140];
261    output[46] = na / nb + nc;
262    na = input[141];
263    nb = input[142];
264    nc = input[143];
265    output[47] = na / nb - nc;
266    na = input[144];
267    nb = input[145];
268    nc = input[146];
269    output[48] = na / nb << nc;
270    na = input[147];
271    nb = input[148];
272    nc = input[149];
273    output[49] = na / nb >> nc;
274    na = input[150];
275    nb = input[151];
276    nc = input[152];
277    output[50] = na % nb ^ nc;
278    na = input[153];
279    nb = input[154];
280    nc = input[155];
281    output[51] = na % nb | nc;
282    na = input[156];
283    nb = input[157];
284    nc = input[158];
285    output[52] = na % nb & nc;
286    na = input[159];
287    nb = input[160];
288    nc = input[161];
289    output[53] = na % nb * nc;
290    na = input[162];
291    nb = input[163];
292    nc = input[164];
293    output[54] = na % nb / nc;
294    na = input[165];
295    nb = input[166];
296    nc = input[167];
297    output[55] = na % nb % nc;
298    na = input[168];
299    nb = input[169];
300    nc = input[170];
301    output[56] = na % nb + nc;
302    na = input[171];
303    nb = input[172];
304    nc = input[173];
305    output[57] = na % nb - nc;
306    na = input[174];
307    nb = input[175];
308    nc = input[176];
309    output[58] = na % nb << nc;
310    na = input[177];
311    nb = input[178];
312    nc = input[179];
313    output[59] = na % nb >> nc;
314    na = input[180];
315    nb = input[181];
316    nc = input[182];
317    output[60] = na + nb ^ nc;
318    na = input[183];
319    nb = input[184];
320    nc = input[185];
321    output[61] = na + nb | nc;
322    na = input[186];
323    nb = input[187];
324    nc = input[188];
325    output[62] = na + nb & nc;
326    na = input[189];
327    nb = input[190];
328    nc = input[191];
329    output[63] = na + nb * nc;
330    na = input[192];
331    nb = input[193];
332    nc = input[194];
333    output[64] = na + nb / nc;
334    na = input[195];
335    nb = input[196];
336    nc = input[197];
337    output[65] = na + nb % nc;
338    na = input[198];
339    nb = input[199];
340    nc = input[200];
341    output[66] = na + nb + nc;
342    na = input[201];
343    nb = input[202];
344    nc = input[203];
345    output[67] = na + nb - nc;
346    na = input[204];
347    nb = input[205];
348    nc = input[206];
349    output[68] = na + nb << nc;
350    na = input[207];
351    nb = input[208];
352    nc = input[209];
353    output[69] = na + nb >> nc;
354    na = input[210];
355    nb = input[211];
356    nc = input[212];
357    output[70] = na - nb ^ nc;
358    na = input[213];
359    nb = input[214];
360    nc = input[215];
361    output[71] = na - nb | nc;
362    na = input[216];
363    nb = input[217];
364    nc = input[218];
365    output[72] = na - nb & nc;
366    na = input[219];
367    nb = input[220];
368    nc = input[221];
369    output[73] = na - nb * nc;
370    na = input[222];
371    nb = input[223];
372    nc = input[224];
373    output[74] = na - nb / nc;
374    na = input[225];
375    nb = input[226];
376    nc = input[227];
377    output[75] = na - nb % nc;
378    na = input[228];
379    nb = input[229];
380    nc = input[230];
381    output[76] = na - nb + nc;
382    na = input[231];
383    nb = input[232];
384    nc = input[233];
385    output[77] = na - nb - nc;
386    na = input[234];
387    nb = input[235];
388    nc = input[236];
389    output[78] = na - nb << nc;
390    na = input[237];
391    nb = input[238];
392    nc = input[239];
393    output[79] = na - nb >> nc;
394    na = input[240];
395    nb = input[241];
396    nc = input[242];
397    output[80] = na << nb ^ nc;
398    na = input[243];
399    nb = input[244];
400    nc = input[245];
401    output[81] = na << nb | nc;
402    na = input[246];
403    nb = input[247];
404    nc = input[248];
405    output[82] = na << nb & nc;
406    na = input[249];
407    nb = input[250];
408    nc = input[251];
409    output[83] = na << nb * nc;
410    na = input[252];
411    nb = input[253];
412    nc = input[254];
413    output[84] = na << nb / nc;
414    na = input[255];
415    nb = input[256];
416    nc = input[257];
417    output[85] = na << nb % nc;
418    na = input[258];
419    nb = input[259];
420    nc = input[260];
421    output[86] = na << nb + nc;
422    na = input[261];
423    nb = input[262];
424    nc = input[263];
425    output[87] = na << nb - nc;
426    na = input[264];
427    nb = input[265];
428    nc = input[266];
429    output[88] = na << nb << nc;
430    na = input[267];
431    nb = input[268];
432    nc = input[269];
433    output[89] = na << nb >> nc;
434    na = input[270];
435    nb = input[271];
436    nc = input[272];
437    output[90] = na >> nb ^ nc;
438    na = input[273];
439    nb = input[274];
440    nc = input[275];
441    output[91] = na >> nb | nc;
442    na = input[276];
443    nb = input[277];
444    nc = input[278];
445    output[92] = na >> nb & nc;
446    na = input[279];
447    nb = input[280];
448    nc = input[281];
449    output[93] = na >> nb * nc;
450    na = input[282];
451    nb = input[283];
452    nc = input[284];
453    output[94] = na >> nb / nc;
454    na = input[285];
455    nb = input[286];
456    nc = input[287];
457    output[95] = na >> nb % nc;
458    na = input[288];
459    nb = input[289];
460    nc = input[290];
461    output[96] = na >> nb + nc;
462    na = input[291];
463    nb = input[292];
464    nc = input[293];
465    output[97] = na >> nb - nc;
466    na = input[294];
467    nb = input[295];
468    nc = input[296];
469    output[98] = na >> nb << nc;
470    na = input[297];
471    nb = input[298];
472    nc = input[299];
473    output[99] = na >> nb >> nc;
474    na = input[300];
475    nb = input[301];
476    nc = input[302];
477    output[100] = uint(na ^ nb < nc);
478    output[101] = uint(na < nb ^ nc);
479    na = input[303];
480    nb = input[304];
481    nc = input[305];
482    output[102] = uint(na ^ nb > nc);
483    output[103] = uint(na > nb ^ nc);
484    na = input[306];
485    nb = input[307];
486    nc = input[308];
487    output[104] = uint(na ^ nb <= nc);
488    output[105] = uint(na <= nb ^ nc);
489    na = input[309];
490    nb = input[310];
491    nc = input[311];
492    output[106] = uint(na ^ nb >= nc);
493    output[107] = uint(na >= nb ^ nc);
494    na = input[312];
495    nb = input[313];
496    nc = input[314];
497    output[108] = uint(na ^ nb == nc);
498    output[109] = uint(na == nb ^ nc);
499    na = input[315];
500    nb = input[316];
501    nc = input[317];
502    output[110] = uint(na ^ nb != nc);
503    output[111] = uint(na != nb ^ nc);
504    na = input[318];
505    nb = input[319];
506    nc = input[320];
507    output[112] = uint(na | nb < nc);
508    output[113] = uint(na < nb | nc);
509    na = input[321];
510    nb = input[322];
511    nc = input[323];
512    output[114] = uint(na | nb > nc);
513    output[115] = uint(na > nb | nc);
514    na = input[324];
515    nb = input[325];
516    nc = input[326];
517    output[116] = uint(na | nb <= nc);
518    output[117] = uint(na <= nb | nc);
519    na = input[327];
520    nb = input[328];
521    nc = input[329];
522    output[118] = uint(na | nb >= nc);
523    output[119] = uint(na >= nb | nc);
524    na = input[330];
525    nb = input[331];
526    nc = input[332];
527    output[120] = uint(na | nb == nc);
528    output[121] = uint(na == nb | nc);
529    na = input[333];
530    nb = input[334];
531    nc = input[335];
532    output[122] = uint(na | nb != nc);
533    output[123] = uint(na != nb | nc);
534    na = input[336];
535    nb = input[337];
536    nc = input[338];
537    output[124] = uint(na & nb < nc);
538    output[125] = uint(na < nb & nc);
539    na = input[339];
540    nb = input[340];
541    nc = input[341];
542    output[126] = uint(na & nb > nc);
543    output[127] = uint(na > nb & nc);
544    na = input[342];
545    nb = input[343];
546    nc = input[344];
547    output[128] = uint(na & nb <= nc);
548    output[129] = uint(na <= nb & nc);
549    na = input[345];
550    nb = input[346];
551    nc = input[347];
552    output[130] = uint(na & nb >= nc);
553    output[131] = uint(na >= nb & nc);
554    na = input[348];
555    nb = input[349];
556    nc = input[350];
557    output[132] = uint(na & nb == nc);
558    output[133] = uint(na == nb & nc);
559    na = input[351];
560    nb = input[352];
561    nc = input[353];
562    output[134] = uint(na & nb != nc);
563    output[135] = uint(na != nb & nc);
564    na = input[354];
565    nb = input[355];
566    nc = input[356];
567    output[136] = uint(na * nb < nc);
568    output[137] = uint(na < nb * nc);
569    na = input[357];
570    nb = input[358];
571    nc = input[359];
572    output[138] = uint(na * nb > nc);
573    output[139] = uint(na > nb * nc);
574    na = input[360];
575    nb = input[361];
576    nc = input[362];
577    output[140] = uint(na * nb <= nc);
578    output[141] = uint(na <= nb * nc);
579    na = input[363];
580    nb = input[364];
581    nc = input[365];
582    output[142] = uint(na * nb >= nc);
583    output[143] = uint(na >= nb * nc);
584    na = input[366];
585    nb = input[367];
586    nc = input[368];
587    output[144] = uint(na * nb == nc);
588    output[145] = uint(na == nb * nc);
589    na = input[369];
590    nb = input[370];
591    nc = input[371];
592    output[146] = uint(na * nb != nc);
593    output[147] = uint(na != nb * nc);
594    na = input[372];
595    nb = input[373];
596    nc = input[374];
597    output[148] = uint(na / nb < nc);
598    output[149] = uint(na < nb / nc);
599    na = input[375];
600    nb = input[376];
601    nc = input[377];
602    output[150] = uint(na / nb > nc);
603    output[151] = uint(na > nb / nc);
604    na = input[378];
605    nb = input[379];
606    nc = input[380];
607    output[152] = uint(na / nb <= nc);
608    output[153] = uint(na <= nb / nc);
609    na = input[381];
610    nb = input[382];
611    nc = input[383];
612    output[154] = uint(na / nb >= nc);
613    output[155] = uint(na >= nb / nc);
614    na = input[384];
615    nb = input[385];
616    nc = input[386];
617    output[156] = uint(na / nb == nc);
618    output[157] = uint(na == nb / nc);
619    na = input[387];
620    nb = input[388];
621    nc = input[389];
622    output[158] = uint(na / nb != nc);
623    output[159] = uint(na != nb / nc);
624    na = input[390];
625    nb = input[391];
626    nc = input[392];
627    output[160] = uint(na % nb < nc);
628    output[161] = uint(na < nb % nc);
629    na = input[393];
630    nb = input[394];
631    nc = input[395];
632    output[162] = uint(na % nb > nc);
633    output[163] = uint(na > nb % nc);
634    na = input[396];
635    nb = input[397];
636    nc = input[398];
637    output[164] = uint(na % nb <= nc);
638    output[165] = uint(na <= nb % nc);
639    na = input[399];
640    nb = input[400];
641    nc = input[401];
642    output[166] = uint(na % nb >= nc);
643    output[167] = uint(na >= nb % nc);
644    na = input[402];
645    nb = input[403];
646    nc = input[404];
647    output[168] = uint(na % nb == nc);
648    output[169] = uint(na == nb % nc);
649    na = input[405];
650    nb = input[406];
651    nc = input[407];
652    output[170] = uint(na % nb != nc);
653    output[171] = uint(na != nb % nc);
654    na = input[408];
655    nb = input[409];
656    nc = input[410];
657    output[172] = uint(na + nb < nc);
658    output[173] = uint(na < nb + nc);
659    na = input[411];
660    nb = input[412];
661    nc = input[413];
662    output[174] = uint(na + nb > nc);
663    output[175] = uint(na > nb + nc);
664    na = input[414];
665    nb = input[415];
666    nc = input[416];
667    output[176] = uint(na + nb <= nc);
668    output[177] = uint(na <= nb + nc);
669    na = input[417];
670    nb = input[418];
671    nc = input[419];
672    output[178] = uint(na + nb >= nc);
673    output[179] = uint(na >= nb + nc);
674    na = input[420];
675    nb = input[421];
676    nc = input[422];
677    output[180] = uint(na + nb == nc);
678    output[181] = uint(na == nb + nc);
679    na = input[423];
680    nb = input[424];
681    nc = input[425];
682    output[182] = uint(na + nb != nc);
683    output[183] = uint(na != nb + nc);
684    na = input[426];
685    nb = input[427];
686    nc = input[428];
687    output[184] = uint(na - nb < nc);
688    output[185] = uint(na < nb - nc);
689    na = input[429];
690    nb = input[430];
691    nc = input[431];
692    output[186] = uint(na - nb > nc);
693    output[187] = uint(na > nb - nc);
694    na = input[432];
695    nb = input[433];
696    nc = input[434];
697    output[188] = uint(na - nb <= nc);
698    output[189] = uint(na <= nb - nc);
699    na = input[435];
700    nb = input[436];
701    nc = input[437];
702    output[190] = uint(na - nb >= nc);
703    output[191] = uint(na >= nb - nc);
704    na = input[438];
705    nb = input[439];
706    nc = input[440];
707    output[192] = uint(na - nb == nc);
708    output[193] = uint(na == nb - nc);
709    na = input[441];
710    nb = input[442];
711    nc = input[443];
712    output[194] = uint(na - nb != nc);
713    output[195] = uint(na != nb - nc);
714    na = input[444];
715    nb = input[445];
716    nc = input[446];
717    output[196] = uint(na << nb < nc);
718    output[197] = uint(na < nb << nc);
719    na = input[447];
720    nb = input[448];
721    nc = input[449];
722    output[198] = uint(na << nb > nc);
723    output[199] = uint(na > nb << nc);
724    na = input[450];
725    nb = input[451];
726    nc = input[452];
727    output[200] = uint(na << nb <= nc);
728    output[201] = uint(na <= nb << nc);
729    na = input[453];
730    nb = input[454];
731    nc = input[455];
732    output[202] = uint(na << nb >= nc);
733    output[203] = uint(na >= nb << nc);
734    na = input[456];
735    nb = input[457];
736    nc = input[458];
737    output[204] = uint(na << nb == nc);
738    output[205] = uint(na == nb << nc);
739    na = input[459];
740    nb = input[460];
741    nc = input[461];
742    output[206] = uint(na << nb != nc);
743    output[207] = uint(na != nb << nc);
744    na = input[462];
745    nb = input[463];
746    nc = input[464];
747    output[208] = uint(na >> nb < nc);
748    output[209] = uint(na < nb >> nc);
749    na = input[465];
750    nb = input[466];
751    nc = input[467];
752    output[210] = uint(na >> nb > nc);
753    output[211] = uint(na > nb >> nc);
754    na = input[468];
755    nb = input[469];
756    nc = input[470];
757    output[212] = uint(na >> nb <= nc);
758    output[213] = uint(na <= nb >> nc);
759    na = input[471];
760    nb = input[472];
761    nc = input[473];
762    output[214] = uint(na >> nb >= nc);
763    output[215] = uint(na >= nb >> nc);
764    na = input[474];
765    nb = input[475];
766    nc = input[476];
767    output[216] = uint(na >> nb == nc);
768    output[217] = uint(na == nb >> nc);
769    na = input[477];
770    nb = input[478];
771    nc = input[479];
772    output[218] = uint(na >> nb != nc);
773    output[219] = uint(na != nb >> nc);
774    ba = bool(input[480] & 1);
775    bb = bool(input[481] & 16);
776    bc = bool(input[482] & 8);
777    output[220] = uint(ba && bb && bc);
778    ba = bool(input[483] & 1);
779    bb = bool(input[484] & 16);
780    bc = bool(input[485] & 8);
781    output[221] = uint(ba && bb || bc);
782    ba = bool(input[486] & 1);
783    bb = bool(input[487] & 16);
784    bc = bool(input[488] & 8);
785    output[222] = uint(ba && bb == bc);
786    ba = bool(input[489] & 1);
787    bb = bool(input[490] & 16);
788    bc = bool(input[491] & 8);
789    output[223] = uint(ba && bb != bc);
790    ba = bool(input[492] & 1);
791    bb = bool(input[493] & 16);
792    bc = bool(input[494] & 8);
793    output[224] = uint(ba || bb && bc);
794    ba = bool(input[495] & 1);
795    bb = bool(input[496] & 16);
796    bc = bool(input[497] & 8);
797    output[225] = uint(ba || bb || bc);
798    ba = bool(input[498] & 1);
799    bb = bool(input[499] & 16);
800    bc = bool(input[500] & 8);
801    output[226] = uint(ba || bb == bc);
802    ba = bool(input[501] & 1);
803    bb = bool(input[502] & 16);
804    bc = bool(input[503] & 8);
805    output[227] = uint(ba || bb != bc);
806    ba = bool(input[504] & 1);
807    bb = bool(input[505] & 16);
808    bc = bool(input[506] & 8);
809    output[228] = uint(ba == bb && bc);
810    ba = bool(input[507] & 1);
811    bb = bool(input[508] & 16);
812    bc = bool(input[509] & 8);
813    output[229] = uint(ba == bb || bc);
814    ba = bool(input[510] & 1);
815    bb = bool(input[511] & 16);
816    bc = bool(input[512] & 8);
817    output[230] = uint(ba == bb == bc);
818    ba = bool(input[513] & 1);
819    bb = bool(input[514] & 16);
820    bc = bool(input[515] & 8);
821    output[231] = uint(ba == bb != bc);
822    ba = bool(input[516] & 1);
823    bb = bool(input[517] & 16);
824    bc = bool(input[518] & 8);
825    output[232] = uint(ba != bb && bc);
826    ba = bool(input[519] & 1);
827    bb = bool(input[520] & 16);
828    bc = bool(input[521] & 8);
829    output[233] = uint(ba != bb || bc);
830    ba = bool(input[522] & 1);
831    bb = bool(input[523] & 16);
832    bc = bool(input[524] & 8);
833    output[234] = uint(ba != bb == bc);
834    ba = bool(input[525] & 1);
835    bb = bool(input[526] & 16);
836    bc = bool(input[527] & 8);
837    output[235] = uint(ba != bb != bc);
838    na = input[528];
839    nb = input[529];
840    nc = input[530];
841    ba = bool(input[531] & 1);
842    bc = bool(input[532] & 8);
843    output[236] = uint(ba == nb < nc);
844    output[237] = uint(na < nb == bc);
845    na = input[533];
846    nb = input[534];
847    nc = input[535];
848    ba = bool(input[536] & 1);
849    bc = bool(input[537] & 8);
850    output[238] = uint(ba == nb > nc);
851    output[239] = uint(na > nb == bc);
852    na = input[538];
853    nb = input[539];
854    nc = input[540];
855    ba = bool(input[541] & 1);
856    bc = bool(input[542] & 8);
857    output[240] = uint(ba == nb <= nc);
858    output[241] = uint(na <= nb == bc);
859    na = input[543];
860    nb = input[544];
861    nc = input[545];
862    ba = bool(input[546] & 1);
863    bc = bool(input[547] & 8);
864    output[242] = uint(ba == nb >= nc);
865    output[243] = uint(na >= nb == bc);
866    na = input[548];
867    nb = input[549];
868    nc = input[550];
869    ba = bool(input[551] & 1);
870    bc = bool(input[552] & 8);
871    output[244] = uint(ba != nb < nc);
872    output[245] = uint(na < nb != bc);
873    na = input[553];
874    nb = input[554];
875    nc = input[555];
876    ba = bool(input[556] & 1);
877    bc = bool(input[557] & 8);
878    output[246] = uint(ba != nb > nc);
879    output[247] = uint(na > nb != bc);
880    na = input[558];
881    nb = input[559];
882    nc = input[560];
883    ba = bool(input[561] & 1);
884    bc = bool(input[562] & 8);
885    output[248] = uint(ba != nb <= nc);
886    output[249] = uint(na <= nb != bc);
887    na = input[563];
888    nb = input[564];
889    nc = input[565];
890    ba = bool(input[566] & 1);
891    bc = bool(input[567] & 8);
892    output[250] = uint(ba != nb >= nc);
893    output[251] = uint(na >= nb != bc);
894    na = input[568];
895    nb = input[569];
896    nc = input[570];
897    ba = bool(input[571] & 1);
898    bc = bool(input[572] & 8);
899    output[252] = uint(ba && nb < nc);
900    output[253] = uint(na < nb && bc);
901    na = input[573];
902    nb = input[574];
903    nc = input[575];
904    ba = bool(input[576] & 1);
905    bc = bool(input[577] & 8);
906    output[254] = uint(ba && nb > nc);
907    output[255] = uint(na > nb && bc);
908    na = input[578];
909    nb = input[579];
910    nc = input[580];
911    ba = bool(input[581] & 1);
912    bc = bool(input[582] & 8);
913    output[256] = uint(ba && nb <= nc);
914    output[257] = uint(na <= nb && bc);
915    na = input[583];
916    nb = input[584];
917    nc = input[585];
918    ba = bool(input[586] & 1);
919    bc = bool(input[587] & 8);
920    output[258] = uint(ba && nb >= nc);
921    output[259] = uint(na >= nb && bc);
922    na = input[588];
923    nb = input[589];
924    nc = input[590];
925    ba = bool(input[591] & 1);
926    bc = bool(input[592] & 8);
927    output[260] = uint(ba || nb < nc);
928    output[261] = uint(na < nb || bc);
929    na = input[593];
930    nb = input[594];
931    nc = input[595];
932    ba = bool(input[596] & 1);
933    bc = bool(input[597] & 8);
934    output[262] = uint(ba || nb > nc);
935    output[263] = uint(na > nb || bc);
936    na = input[598];
937    nb = input[599];
938    nc = input[600];
939    ba = bool(input[601] & 1);
940    bc = bool(input[602] & 8);
941    output[264] = uint(ba || nb <= nc);
942    output[265] = uint(na <= nb || bc);
943    na = input[603];
944    nb = input[604];
945    nc = input[605];
946    ba = bool(input[606] & 1);
947    bc = bool(input[607] & 8);
948    output[266] = uint(ba || nb >= nc);
949    output[267] = uint(na >= nb || bc);
950
951}