1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2014-2015 - Scilab Enterprises - Calixte DENIZET
4 *
5 * Copyright (C) 2012 - 2016 - Scilab Enterprises
6 *
7 * This file is hereby licensed under the terms of the GNU GPL v2.0,
8 * pursuant to article 5.3.4 of the CeCILL v.2.1.
9 * This file was originally licensed under the terms of the CeCILL v2.1,
10 * and continues to be available under such terms.
11 * For more information, see the COPYING file which you should have received
12 * along with this program.
13 *
14 */
15
16 // This file has been generated, so don't modify it by hand !!
17
18 #include "checkers/Checkers.hxx"
19
20 namespace analysis
21 {
check_____lt____(GVN & gvn,const TIType & in0,const TIType & in1)22 TIType Checkers::check_____lt____(GVN & gvn, const TIType & in0, const TIType & in1)
23 {
24 switch (in0.type)
25 {
26 case TIType::EMPTY :
27 {
28 switch (in1.type)
29 {
30 case TIType::EMPTY :
31 {
32 return TIType(gvn, TIType::BOOLEAN, 1, 1);
33 }
34 case TIType::DOUBLE :
35 {
36 if (in1.rows == 1 && in1.cols == 1)
37 {
38 return TIType(gvn, TIType::BOOLEAN, 1, 1);
39 }
40 return TIType(gvn);
41 }
42 case TIType::INT16 :
43 {
44 if (in1.rows == 1 && in1.cols == 1)
45 {
46 return TIType(gvn, TIType::BOOLEAN, 1, 1);
47 }
48 return TIType(gvn);
49 }
50 case TIType::INT32 :
51 {
52 if (in1.rows == 1 && in1.cols == 1)
53 {
54 return TIType(gvn, TIType::BOOLEAN, 1, 1);
55 }
56 return TIType(gvn);
57 }
58 case TIType::INT64 :
59 {
60 if (in1.rows == 1 && in1.cols == 1)
61 {
62 return TIType(gvn, TIType::BOOLEAN, 1, 1);
63 }
64 return TIType(gvn);
65 }
66 case TIType::INT8 :
67 {
68 if (in1.rows == 1 && in1.cols == 1)
69 {
70 return TIType(gvn, TIType::BOOLEAN, 1, 1);
71 }
72 return TIType(gvn);
73 }
74 case TIType::UINT16 :
75 {
76 if (in1.rows == 1 && in1.cols == 1)
77 {
78 return TIType(gvn, TIType::BOOLEAN, 1, 1);
79 }
80 return TIType(gvn);
81 }
82 case TIType::UINT32 :
83 {
84 if (in1.rows == 1 && in1.cols == 1)
85 {
86 return TIType(gvn, TIType::BOOLEAN, 1, 1);
87 }
88 return TIType(gvn);
89 }
90 case TIType::UINT64 :
91 {
92 if (in1.rows == 1 && in1.cols == 1)
93 {
94 return TIType(gvn, TIType::BOOLEAN, 1, 1);
95 }
96 return TIType(gvn);
97 }
98 case TIType::UINT8 :
99 {
100 if (in1.rows == 1 && in1.cols == 1)
101 {
102 return TIType(gvn, TIType::BOOLEAN, 1, 1);
103 }
104 return TIType(gvn);
105 }
106 default :
107 return TIType(gvn);
108 }
109 }
110 case TIType::DOUBLE :
111 {
112 switch (in1.type)
113 {
114 case TIType::EMPTY :
115 {
116 if (in0.rows == 1 && in0.cols == 1)
117 {
118 return TIType(gvn, TIType::BOOLEAN, 1, 1);
119 }
120 return TIType(gvn);
121 }
122 case TIType::DOUBLE :
123 {
124 if (in0.rows == 1 && in0.cols == 1)
125 {
126 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
127 }
128 if (in1.rows == 1 && in1.cols == 1)
129 {
130 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
131 }
132 if (in1.rows == in0.rows && in1.cols == in0.cols)
133 {
134 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
135 }
136 return TIType(gvn, TIType::BOOLEAN, -2, -2);
137 }
138 case TIType::INT16 :
139 {
140 if (in0.rows == 1 && in0.cols == 1)
141 {
142 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
143 }
144 if (in1.rows == 1 && in1.cols == 1)
145 {
146 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
147 }
148 if (in1.rows == in0.rows && in1.cols == in0.cols)
149 {
150 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
151 }
152 return TIType(gvn, TIType::BOOLEAN, -2, -2);
153 }
154 case TIType::INT32 :
155 {
156 if (in0.rows == 1 && in0.cols == 1)
157 {
158 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
159 }
160 if (in1.rows == 1 && in1.cols == 1)
161 {
162 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
163 }
164 if (in1.rows == in0.rows && in1.cols == in0.cols)
165 {
166 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
167 }
168 return TIType(gvn, TIType::BOOLEAN, -2, -2);
169 }
170 case TIType::INT64 :
171 {
172 if (in0.rows == 1 && in0.cols == 1)
173 {
174 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
175 }
176 if (in1.rows == 1 && in1.cols == 1)
177 {
178 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
179 }
180 if (in1.rows == in0.rows && in1.cols == in0.cols)
181 {
182 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
183 }
184 return TIType(gvn, TIType::BOOLEAN, -2, -2);
185 }
186 case TIType::INT8 :
187 {
188 if (in0.rows == 1 && in0.cols == 1)
189 {
190 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
191 }
192 if (in1.rows == 1 && in1.cols == 1)
193 {
194 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
195 }
196 if (in1.rows == in0.rows && in1.cols == in0.cols)
197 {
198 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
199 }
200 return TIType(gvn, TIType::BOOLEAN, -2, -2);
201 }
202 case TIType::UINT16 :
203 {
204 if (in0.rows == 1 && in0.cols == 1)
205 {
206 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
207 }
208 if (in1.rows == 1 && in1.cols == 1)
209 {
210 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
211 }
212 if (in1.rows == in0.rows && in1.cols == in0.cols)
213 {
214 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
215 }
216 return TIType(gvn, TIType::BOOLEAN, -2, -2);
217 }
218 case TIType::UINT32 :
219 {
220 if (in0.rows == 1 && in0.cols == 1)
221 {
222 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
223 }
224 if (in1.rows == 1 && in1.cols == 1)
225 {
226 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
227 }
228 if (in1.rows == in0.rows && in1.cols == in0.cols)
229 {
230 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
231 }
232 return TIType(gvn, TIType::BOOLEAN, -2, -2);
233 }
234 case TIType::UINT64 :
235 {
236 if (in0.rows == 1 && in0.cols == 1)
237 {
238 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
239 }
240 if (in1.rows == 1 && in1.cols == 1)
241 {
242 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
243 }
244 if (in1.rows == in0.rows && in1.cols == in0.cols)
245 {
246 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
247 }
248 return TIType(gvn, TIType::BOOLEAN, -2, -2);
249 }
250 case TIType::UINT8 :
251 {
252 if (in0.rows == 1 && in0.cols == 1)
253 {
254 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
255 }
256 if (in1.rows == 1 && in1.cols == 1)
257 {
258 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
259 }
260 if (in1.rows == in0.rows && in1.cols == in0.cols)
261 {
262 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
263 }
264 return TIType(gvn, TIType::BOOLEAN, -2, -2);
265 }
266 default :
267 return TIType(gvn);
268 }
269 }
270 case TIType::INT16 :
271 {
272 switch (in1.type)
273 {
274 case TIType::EMPTY :
275 {
276 if (in0.rows == 1 && in0.cols == 1)
277 {
278 return TIType(gvn, TIType::BOOLEAN, 1, 1);
279 }
280 return TIType(gvn);
281 }
282 case TIType::DOUBLE :
283 {
284 if (in0.rows == 1 && in0.cols == 1)
285 {
286 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
287 }
288 if (in1.rows == 1 && in1.cols == 1)
289 {
290 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
291 }
292 if (in1.rows == in0.rows && in1.cols == in0.cols)
293 {
294 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
295 }
296 return TIType(gvn, TIType::BOOLEAN, -2, -2);
297 }
298 case TIType::INT16 :
299 {
300 if (in0.rows == 1 && in0.cols == 1)
301 {
302 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
303 }
304 if (in1.rows == 1 && in1.cols == 1)
305 {
306 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
307 }
308 if (in1.rows == in0.rows && in1.cols == in0.cols)
309 {
310 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
311 }
312 return TIType(gvn, TIType::BOOLEAN, -2, -2);
313 }
314 case TIType::INT32 :
315 {
316 if (in0.rows == 1 && in0.cols == 1)
317 {
318 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
319 }
320 if (in1.rows == 1 && in1.cols == 1)
321 {
322 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
323 }
324 if (in1.rows == in0.rows && in1.cols == in0.cols)
325 {
326 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
327 }
328 return TIType(gvn, TIType::BOOLEAN, -2, -2);
329 }
330 case TIType::INT64 :
331 {
332 if (in0.rows == 1 && in0.cols == 1)
333 {
334 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
335 }
336 if (in1.rows == 1 && in1.cols == 1)
337 {
338 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
339 }
340 if (in1.rows == in0.rows && in1.cols == in0.cols)
341 {
342 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
343 }
344 return TIType(gvn, TIType::BOOLEAN, -2, -2);
345 }
346 case TIType::INT8 :
347 {
348 if (in0.rows == 1 && in0.cols == 1)
349 {
350 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
351 }
352 if (in1.rows == 1 && in1.cols == 1)
353 {
354 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
355 }
356 if (in1.rows == in0.rows && in1.cols == in0.cols)
357 {
358 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
359 }
360 return TIType(gvn, TIType::BOOLEAN, -2, -2);
361 }
362 case TIType::UINT16 :
363 {
364 if (in0.rows == 1 && in0.cols == 1)
365 {
366 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
367 }
368 if (in1.rows == 1 && in1.cols == 1)
369 {
370 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
371 }
372 if (in1.rows == in0.rows && in1.cols == in0.cols)
373 {
374 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
375 }
376 return TIType(gvn, TIType::BOOLEAN, -2, -2);
377 }
378 case TIType::UINT32 :
379 {
380 if (in0.rows == 1 && in0.cols == 1)
381 {
382 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
383 }
384 if (in1.rows == 1 && in1.cols == 1)
385 {
386 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
387 }
388 if (in1.rows == in0.rows && in1.cols == in0.cols)
389 {
390 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
391 }
392 return TIType(gvn, TIType::BOOLEAN, -2, -2);
393 }
394 case TIType::UINT64 :
395 {
396 if (in0.rows == 1 && in0.cols == 1)
397 {
398 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
399 }
400 if (in1.rows == 1 && in1.cols == 1)
401 {
402 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
403 }
404 if (in1.rows == in0.rows && in1.cols == in0.cols)
405 {
406 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
407 }
408 return TIType(gvn, TIType::BOOLEAN, -2, -2);
409 }
410 case TIType::UINT8 :
411 {
412 if (in0.rows == 1 && in0.cols == 1)
413 {
414 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
415 }
416 if (in1.rows == 1 && in1.cols == 1)
417 {
418 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
419 }
420 if (in1.rows == in0.rows && in1.cols == in0.cols)
421 {
422 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
423 }
424 return TIType(gvn, TIType::BOOLEAN, -2, -2);
425 }
426 default :
427 return TIType(gvn);
428 }
429 }
430 case TIType::INT32 :
431 {
432 switch (in1.type)
433 {
434 case TIType::EMPTY :
435 {
436 if (in0.rows == 1 && in0.cols == 1)
437 {
438 return TIType(gvn, TIType::BOOLEAN, 1, 1);
439 }
440 return TIType(gvn);
441 }
442 case TIType::DOUBLE :
443 {
444 if (in0.rows == 1 && in0.cols == 1)
445 {
446 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
447 }
448 if (in1.rows == 1 && in1.cols == 1)
449 {
450 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
451 }
452 if (in1.rows == in0.rows && in1.cols == in0.cols)
453 {
454 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
455 }
456 return TIType(gvn, TIType::BOOLEAN, -2, -2);
457 }
458 case TIType::INT16 :
459 {
460 if (in0.rows == 1 && in0.cols == 1)
461 {
462 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
463 }
464 if (in1.rows == 1 && in1.cols == 1)
465 {
466 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
467 }
468 if (in1.rows == in0.rows && in1.cols == in0.cols)
469 {
470 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
471 }
472 return TIType(gvn, TIType::BOOLEAN, -2, -2);
473 }
474 case TIType::INT32 :
475 {
476 if (in0.rows == 1 && in0.cols == 1)
477 {
478 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
479 }
480 if (in1.rows == 1 && in1.cols == 1)
481 {
482 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
483 }
484 if (in1.rows == in0.rows && in1.cols == in0.cols)
485 {
486 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
487 }
488 return TIType(gvn, TIType::BOOLEAN, -2, -2);
489 }
490 case TIType::INT64 :
491 {
492 if (in0.rows == 1 && in0.cols == 1)
493 {
494 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
495 }
496 if (in1.rows == 1 && in1.cols == 1)
497 {
498 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
499 }
500 if (in1.rows == in0.rows && in1.cols == in0.cols)
501 {
502 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
503 }
504 return TIType(gvn, TIType::BOOLEAN, -2, -2);
505 }
506 case TIType::INT8 :
507 {
508 if (in0.rows == 1 && in0.cols == 1)
509 {
510 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
511 }
512 if (in1.rows == 1 && in1.cols == 1)
513 {
514 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
515 }
516 if (in1.rows == in0.rows && in1.cols == in0.cols)
517 {
518 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
519 }
520 return TIType(gvn, TIType::BOOLEAN, -2, -2);
521 }
522 case TIType::UINT16 :
523 {
524 if (in0.rows == 1 && in0.cols == 1)
525 {
526 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
527 }
528 if (in1.rows == 1 && in1.cols == 1)
529 {
530 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
531 }
532 if (in1.rows == in0.rows && in1.cols == in0.cols)
533 {
534 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
535 }
536 return TIType(gvn, TIType::BOOLEAN, -2, -2);
537 }
538 case TIType::UINT32 :
539 {
540 if (in0.rows == 1 && in0.cols == 1)
541 {
542 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
543 }
544 if (in1.rows == 1 && in1.cols == 1)
545 {
546 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
547 }
548 if (in1.rows == in0.rows && in1.cols == in0.cols)
549 {
550 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
551 }
552 return TIType(gvn, TIType::BOOLEAN, -2, -2);
553 }
554 case TIType::UINT64 :
555 {
556 if (in0.rows == 1 && in0.cols == 1)
557 {
558 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
559 }
560 if (in1.rows == 1 && in1.cols == 1)
561 {
562 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
563 }
564 if (in1.rows == in0.rows && in1.cols == in0.cols)
565 {
566 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
567 }
568 return TIType(gvn, TIType::BOOLEAN, -2, -2);
569 }
570 case TIType::UINT8 :
571 {
572 if (in0.rows == 1 && in0.cols == 1)
573 {
574 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
575 }
576 if (in1.rows == 1 && in1.cols == 1)
577 {
578 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
579 }
580 if (in1.rows == in0.rows && in1.cols == in0.cols)
581 {
582 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
583 }
584 return TIType(gvn, TIType::BOOLEAN, -2, -2);
585 }
586 default :
587 return TIType(gvn);
588 }
589 }
590 case TIType::INT64 :
591 {
592 switch (in1.type)
593 {
594 case TIType::EMPTY :
595 {
596 if (in0.rows == 1 && in0.cols == 1)
597 {
598 return TIType(gvn, TIType::BOOLEAN, 1, 1);
599 }
600 return TIType(gvn);
601 }
602 case TIType::DOUBLE :
603 {
604 if (in0.rows == 1 && in0.cols == 1)
605 {
606 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
607 }
608 if (in1.rows == 1 && in1.cols == 1)
609 {
610 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
611 }
612 if (in1.rows == in0.rows && in1.cols == in0.cols)
613 {
614 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
615 }
616 return TIType(gvn, TIType::BOOLEAN, -2, -2);
617 }
618 case TIType::INT16 :
619 {
620 if (in0.rows == 1 && in0.cols == 1)
621 {
622 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
623 }
624 if (in1.rows == 1 && in1.cols == 1)
625 {
626 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
627 }
628 if (in1.rows == in0.rows && in1.cols == in0.cols)
629 {
630 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
631 }
632 return TIType(gvn, TIType::BOOLEAN, -2, -2);
633 }
634 case TIType::INT32 :
635 {
636 if (in0.rows == 1 && in0.cols == 1)
637 {
638 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
639 }
640 if (in1.rows == 1 && in1.cols == 1)
641 {
642 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
643 }
644 if (in1.rows == in0.rows && in1.cols == in0.cols)
645 {
646 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
647 }
648 return TIType(gvn, TIType::BOOLEAN, -2, -2);
649 }
650 case TIType::INT64 :
651 {
652 if (in0.rows == 1 && in0.cols == 1)
653 {
654 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
655 }
656 if (in1.rows == 1 && in1.cols == 1)
657 {
658 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
659 }
660 if (in1.rows == in0.rows && in1.cols == in0.cols)
661 {
662 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
663 }
664 return TIType(gvn, TIType::BOOLEAN, -2, -2);
665 }
666 case TIType::INT8 :
667 {
668 if (in0.rows == 1 && in0.cols == 1)
669 {
670 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
671 }
672 if (in1.rows == 1 && in1.cols == 1)
673 {
674 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
675 }
676 if (in1.rows == in0.rows && in1.cols == in0.cols)
677 {
678 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
679 }
680 return TIType(gvn, TIType::BOOLEAN, -2, -2);
681 }
682 case TIType::UINT16 :
683 {
684 if (in0.rows == 1 && in0.cols == 1)
685 {
686 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
687 }
688 if (in1.rows == 1 && in1.cols == 1)
689 {
690 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
691 }
692 if (in1.rows == in0.rows && in1.cols == in0.cols)
693 {
694 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
695 }
696 return TIType(gvn, TIType::BOOLEAN, -2, -2);
697 }
698 case TIType::UINT32 :
699 {
700 if (in0.rows == 1 && in0.cols == 1)
701 {
702 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
703 }
704 if (in1.rows == 1 && in1.cols == 1)
705 {
706 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
707 }
708 if (in1.rows == in0.rows && in1.cols == in0.cols)
709 {
710 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
711 }
712 return TIType(gvn, TIType::BOOLEAN, -2, -2);
713 }
714 case TIType::UINT64 :
715 {
716 if (in0.rows == 1 && in0.cols == 1)
717 {
718 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
719 }
720 if (in1.rows == 1 && in1.cols == 1)
721 {
722 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
723 }
724 if (in1.rows == in0.rows && in1.cols == in0.cols)
725 {
726 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
727 }
728 return TIType(gvn, TIType::BOOLEAN, -2, -2);
729 }
730 case TIType::UINT8 :
731 {
732 if (in0.rows == 1 && in0.cols == 1)
733 {
734 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
735 }
736 if (in1.rows == 1 && in1.cols == 1)
737 {
738 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
739 }
740 if (in1.rows == in0.rows && in1.cols == in0.cols)
741 {
742 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
743 }
744 return TIType(gvn, TIType::BOOLEAN, -2, -2);
745 }
746 default :
747 return TIType(gvn);
748 }
749 }
750 case TIType::INT8 :
751 {
752 switch (in1.type)
753 {
754 case TIType::EMPTY :
755 {
756 if (in0.rows == 1 && in0.cols == 1)
757 {
758 return TIType(gvn, TIType::BOOLEAN, 1, 1);
759 }
760 return TIType(gvn);
761 }
762 case TIType::DOUBLE :
763 {
764 if (in0.rows == 1 && in0.cols == 1)
765 {
766 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
767 }
768 if (in1.rows == 1 && in1.cols == 1)
769 {
770 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
771 }
772 if (in1.rows == in0.rows && in1.cols == in0.cols)
773 {
774 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
775 }
776 return TIType(gvn, TIType::BOOLEAN, -2, -2);
777 }
778 case TIType::INT16 :
779 {
780 if (in0.rows == 1 && in0.cols == 1)
781 {
782 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
783 }
784 if (in1.rows == 1 && in1.cols == 1)
785 {
786 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
787 }
788 if (in1.rows == in0.rows && in1.cols == in0.cols)
789 {
790 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
791 }
792 return TIType(gvn, TIType::BOOLEAN, -2, -2);
793 }
794 case TIType::INT32 :
795 {
796 if (in0.rows == 1 && in0.cols == 1)
797 {
798 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
799 }
800 if (in1.rows == 1 && in1.cols == 1)
801 {
802 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
803 }
804 if (in1.rows == in0.rows && in1.cols == in0.cols)
805 {
806 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
807 }
808 return TIType(gvn, TIType::BOOLEAN, -2, -2);
809 }
810 case TIType::INT64 :
811 {
812 if (in0.rows == 1 && in0.cols == 1)
813 {
814 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
815 }
816 if (in1.rows == 1 && in1.cols == 1)
817 {
818 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
819 }
820 if (in1.rows == in0.rows && in1.cols == in0.cols)
821 {
822 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
823 }
824 return TIType(gvn, TIType::BOOLEAN, -2, -2);
825 }
826 case TIType::INT8 :
827 {
828 if (in0.rows == 1 && in0.cols == 1)
829 {
830 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
831 }
832 if (in1.rows == 1 && in1.cols == 1)
833 {
834 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
835 }
836 if (in1.rows == in0.rows && in1.cols == in0.cols)
837 {
838 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
839 }
840 return TIType(gvn, TIType::BOOLEAN, -2, -2);
841 }
842 case TIType::UINT16 :
843 {
844 if (in0.rows == 1 && in0.cols == 1)
845 {
846 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
847 }
848 if (in1.rows == 1 && in1.cols == 1)
849 {
850 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
851 }
852 if (in1.rows == in0.rows && in1.cols == in0.cols)
853 {
854 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
855 }
856 return TIType(gvn, TIType::BOOLEAN, -2, -2);
857 }
858 case TIType::UINT32 :
859 {
860 if (in0.rows == 1 && in0.cols == 1)
861 {
862 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
863 }
864 if (in1.rows == 1 && in1.cols == 1)
865 {
866 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
867 }
868 if (in1.rows == in0.rows && in1.cols == in0.cols)
869 {
870 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
871 }
872 return TIType(gvn, TIType::BOOLEAN, -2, -2);
873 }
874 case TIType::UINT64 :
875 {
876 if (in0.rows == 1 && in0.cols == 1)
877 {
878 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
879 }
880 if (in1.rows == 1 && in1.cols == 1)
881 {
882 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
883 }
884 if (in1.rows == in0.rows && in1.cols == in0.cols)
885 {
886 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
887 }
888 return TIType(gvn, TIType::BOOLEAN, -2, -2);
889 }
890 case TIType::UINT8 :
891 {
892 if (in0.rows == 1 && in0.cols == 1)
893 {
894 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
895 }
896 if (in1.rows == 1 && in1.cols == 1)
897 {
898 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
899 }
900 if (in1.rows == in0.rows && in1.cols == in0.cols)
901 {
902 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
903 }
904 return TIType(gvn, TIType::BOOLEAN, -2, -2);
905 }
906 default :
907 return TIType(gvn);
908 }
909 }
910 case TIType::UINT16 :
911 {
912 switch (in1.type)
913 {
914 case TIType::EMPTY :
915 {
916 if (in0.rows == 1 && in0.cols == 1)
917 {
918 return TIType(gvn, TIType::BOOLEAN, 1, 1);
919 }
920 return TIType(gvn);
921 }
922 case TIType::DOUBLE :
923 {
924 if (in0.rows == 1 && in0.cols == 1)
925 {
926 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
927 }
928 if (in1.rows == 1 && in1.cols == 1)
929 {
930 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
931 }
932 if (in1.rows == in0.rows && in1.cols == in0.cols)
933 {
934 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
935 }
936 return TIType(gvn, TIType::BOOLEAN, -2, -2);
937 }
938 case TIType::INT16 :
939 {
940 if (in0.rows == 1 && in0.cols == 1)
941 {
942 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
943 }
944 if (in1.rows == 1 && in1.cols == 1)
945 {
946 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
947 }
948 if (in1.rows == in0.rows && in1.cols == in0.cols)
949 {
950 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
951 }
952 return TIType(gvn, TIType::BOOLEAN, -2, -2);
953 }
954 case TIType::INT32 :
955 {
956 if (in0.rows == 1 && in0.cols == 1)
957 {
958 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
959 }
960 if (in1.rows == 1 && in1.cols == 1)
961 {
962 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
963 }
964 if (in1.rows == in0.rows && in1.cols == in0.cols)
965 {
966 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
967 }
968 return TIType(gvn, TIType::BOOLEAN, -2, -2);
969 }
970 case TIType::INT64 :
971 {
972 if (in0.rows == 1 && in0.cols == 1)
973 {
974 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
975 }
976 if (in1.rows == 1 && in1.cols == 1)
977 {
978 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
979 }
980 if (in1.rows == in0.rows && in1.cols == in0.cols)
981 {
982 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
983 }
984 return TIType(gvn, TIType::BOOLEAN, -2, -2);
985 }
986 case TIType::INT8 :
987 {
988 if (in0.rows == 1 && in0.cols == 1)
989 {
990 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
991 }
992 if (in1.rows == 1 && in1.cols == 1)
993 {
994 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
995 }
996 if (in1.rows == in0.rows && in1.cols == in0.cols)
997 {
998 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
999 }
1000 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1001 }
1002 case TIType::UINT16 :
1003 {
1004 if (in0.rows == 1 && in0.cols == 1)
1005 {
1006 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1007 }
1008 if (in1.rows == 1 && in1.cols == 1)
1009 {
1010 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1011 }
1012 if (in1.rows == in0.rows && in1.cols == in0.cols)
1013 {
1014 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1015 }
1016 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1017 }
1018 case TIType::UINT32 :
1019 {
1020 if (in0.rows == 1 && in0.cols == 1)
1021 {
1022 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1023 }
1024 if (in1.rows == 1 && in1.cols == 1)
1025 {
1026 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1027 }
1028 if (in1.rows == in0.rows && in1.cols == in0.cols)
1029 {
1030 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1031 }
1032 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1033 }
1034 case TIType::UINT64 :
1035 {
1036 if (in0.rows == 1 && in0.cols == 1)
1037 {
1038 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1039 }
1040 if (in1.rows == 1 && in1.cols == 1)
1041 {
1042 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1043 }
1044 if (in1.rows == in0.rows && in1.cols == in0.cols)
1045 {
1046 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1047 }
1048 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1049 }
1050 case TIType::UINT8 :
1051 {
1052 if (in0.rows == 1 && in0.cols == 1)
1053 {
1054 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1055 }
1056 if (in1.rows == 1 && in1.cols == 1)
1057 {
1058 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1059 }
1060 if (in1.rows == in0.rows && in1.cols == in0.cols)
1061 {
1062 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1063 }
1064 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1065 }
1066 default :
1067 return TIType(gvn);
1068 }
1069 }
1070 case TIType::UINT32 :
1071 {
1072 switch (in1.type)
1073 {
1074 case TIType::EMPTY :
1075 {
1076 if (in0.rows == 1 && in0.cols == 1)
1077 {
1078 return TIType(gvn, TIType::BOOLEAN, 1, 1);
1079 }
1080 return TIType(gvn);
1081 }
1082 case TIType::DOUBLE :
1083 {
1084 if (in0.rows == 1 && in0.cols == 1)
1085 {
1086 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1087 }
1088 if (in1.rows == 1 && in1.cols == 1)
1089 {
1090 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1091 }
1092 if (in1.rows == in0.rows && in1.cols == in0.cols)
1093 {
1094 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1095 }
1096 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1097 }
1098 case TIType::INT16 :
1099 {
1100 if (in0.rows == 1 && in0.cols == 1)
1101 {
1102 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1103 }
1104 if (in1.rows == 1 && in1.cols == 1)
1105 {
1106 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1107 }
1108 if (in1.rows == in0.rows && in1.cols == in0.cols)
1109 {
1110 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1111 }
1112 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1113 }
1114 case TIType::INT32 :
1115 {
1116 if (in0.rows == 1 && in0.cols == 1)
1117 {
1118 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1119 }
1120 if (in1.rows == 1 && in1.cols == 1)
1121 {
1122 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1123 }
1124 if (in1.rows == in0.rows && in1.cols == in0.cols)
1125 {
1126 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1127 }
1128 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1129 }
1130 case TIType::INT64 :
1131 {
1132 if (in0.rows == 1 && in0.cols == 1)
1133 {
1134 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1135 }
1136 if (in1.rows == 1 && in1.cols == 1)
1137 {
1138 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1139 }
1140 if (in1.rows == in0.rows && in1.cols == in0.cols)
1141 {
1142 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1143 }
1144 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1145 }
1146 case TIType::INT8 :
1147 {
1148 if (in0.rows == 1 && in0.cols == 1)
1149 {
1150 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1151 }
1152 if (in1.rows == 1 && in1.cols == 1)
1153 {
1154 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1155 }
1156 if (in1.rows == in0.rows && in1.cols == in0.cols)
1157 {
1158 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1159 }
1160 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1161 }
1162 case TIType::UINT16 :
1163 {
1164 if (in0.rows == 1 && in0.cols == 1)
1165 {
1166 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1167 }
1168 if (in1.rows == 1 && in1.cols == 1)
1169 {
1170 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1171 }
1172 if (in1.rows == in0.rows && in1.cols == in0.cols)
1173 {
1174 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1175 }
1176 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1177 }
1178 case TIType::UINT32 :
1179 {
1180 if (in0.rows == 1 && in0.cols == 1)
1181 {
1182 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1183 }
1184 if (in1.rows == 1 && in1.cols == 1)
1185 {
1186 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1187 }
1188 if (in1.rows == in0.rows && in1.cols == in0.cols)
1189 {
1190 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1191 }
1192 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1193 }
1194 case TIType::UINT64 :
1195 {
1196 if (in0.rows == 1 && in0.cols == 1)
1197 {
1198 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1199 }
1200 if (in1.rows == 1 && in1.cols == 1)
1201 {
1202 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1203 }
1204 if (in1.rows == in0.rows && in1.cols == in0.cols)
1205 {
1206 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1207 }
1208 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1209 }
1210 case TIType::UINT8 :
1211 {
1212 if (in0.rows == 1 && in0.cols == 1)
1213 {
1214 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1215 }
1216 if (in1.rows == 1 && in1.cols == 1)
1217 {
1218 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1219 }
1220 if (in1.rows == in0.rows && in1.cols == in0.cols)
1221 {
1222 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1223 }
1224 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1225 }
1226 default :
1227 return TIType(gvn);
1228 }
1229 }
1230 case TIType::UINT64 :
1231 {
1232 switch (in1.type)
1233 {
1234 case TIType::EMPTY :
1235 {
1236 if (in0.rows == 1 && in0.cols == 1)
1237 {
1238 return TIType(gvn, TIType::BOOLEAN, 1, 1);
1239 }
1240 return TIType(gvn);
1241 }
1242 case TIType::DOUBLE :
1243 {
1244 if (in0.rows == 1 && in0.cols == 1)
1245 {
1246 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1247 }
1248 if (in1.rows == 1 && in1.cols == 1)
1249 {
1250 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1251 }
1252 if (in1.rows == in0.rows && in1.cols == in0.cols)
1253 {
1254 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1255 }
1256 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1257 }
1258 case TIType::INT16 :
1259 {
1260 if (in0.rows == 1 && in0.cols == 1)
1261 {
1262 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1263 }
1264 if (in1.rows == 1 && in1.cols == 1)
1265 {
1266 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1267 }
1268 if (in1.rows == in0.rows && in1.cols == in0.cols)
1269 {
1270 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1271 }
1272 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1273 }
1274 case TIType::INT32 :
1275 {
1276 if (in0.rows == 1 && in0.cols == 1)
1277 {
1278 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1279 }
1280 if (in1.rows == 1 && in1.cols == 1)
1281 {
1282 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1283 }
1284 if (in1.rows == in0.rows && in1.cols == in0.cols)
1285 {
1286 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1287 }
1288 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1289 }
1290 case TIType::INT64 :
1291 {
1292 if (in0.rows == 1 && in0.cols == 1)
1293 {
1294 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1295 }
1296 if (in1.rows == 1 && in1.cols == 1)
1297 {
1298 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1299 }
1300 if (in1.rows == in0.rows && in1.cols == in0.cols)
1301 {
1302 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1303 }
1304 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1305 }
1306 case TIType::INT8 :
1307 {
1308 if (in0.rows == 1 && in0.cols == 1)
1309 {
1310 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1311 }
1312 if (in1.rows == 1 && in1.cols == 1)
1313 {
1314 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1315 }
1316 if (in1.rows == in0.rows && in1.cols == in0.cols)
1317 {
1318 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1319 }
1320 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1321 }
1322 case TIType::UINT16 :
1323 {
1324 if (in0.rows == 1 && in0.cols == 1)
1325 {
1326 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1327 }
1328 if (in1.rows == 1 && in1.cols == 1)
1329 {
1330 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1331 }
1332 if (in1.rows == in0.rows && in1.cols == in0.cols)
1333 {
1334 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1335 }
1336 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1337 }
1338 case TIType::UINT32 :
1339 {
1340 if (in0.rows == 1 && in0.cols == 1)
1341 {
1342 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1343 }
1344 if (in1.rows == 1 && in1.cols == 1)
1345 {
1346 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1347 }
1348 if (in1.rows == in0.rows && in1.cols == in0.cols)
1349 {
1350 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1351 }
1352 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1353 }
1354 case TIType::UINT64 :
1355 {
1356 if (in0.rows == 1 && in0.cols == 1)
1357 {
1358 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1359 }
1360 if (in1.rows == 1 && in1.cols == 1)
1361 {
1362 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1363 }
1364 if (in1.rows == in0.rows && in1.cols == in0.cols)
1365 {
1366 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1367 }
1368 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1369 }
1370 case TIType::UINT8 :
1371 {
1372 if (in0.rows == 1 && in0.cols == 1)
1373 {
1374 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1375 }
1376 if (in1.rows == 1 && in1.cols == 1)
1377 {
1378 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1379 }
1380 if (in1.rows == in0.rows && in1.cols == in0.cols)
1381 {
1382 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1383 }
1384 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1385 }
1386 default :
1387 return TIType(gvn);
1388 }
1389 }
1390 case TIType::UINT8 :
1391 {
1392 switch (in1.type)
1393 {
1394 case TIType::EMPTY :
1395 {
1396 if (in0.rows == 1 && in0.cols == 1)
1397 {
1398 return TIType(gvn, TIType::BOOLEAN, 1, 1);
1399 }
1400 return TIType(gvn);
1401 }
1402 case TIType::DOUBLE :
1403 {
1404 if (in0.rows == 1 && in0.cols == 1)
1405 {
1406 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1407 }
1408 if (in1.rows == 1 && in1.cols == 1)
1409 {
1410 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1411 }
1412 if (in1.rows == in0.rows && in1.cols == in0.cols)
1413 {
1414 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1415 }
1416 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1417 }
1418 case TIType::INT16 :
1419 {
1420 if (in0.rows == 1 && in0.cols == 1)
1421 {
1422 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1423 }
1424 if (in1.rows == 1 && in1.cols == 1)
1425 {
1426 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1427 }
1428 if (in1.rows == in0.rows && in1.cols == in0.cols)
1429 {
1430 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1431 }
1432 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1433 }
1434 case TIType::INT32 :
1435 {
1436 if (in0.rows == 1 && in0.cols == 1)
1437 {
1438 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1439 }
1440 if (in1.rows == 1 && in1.cols == 1)
1441 {
1442 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1443 }
1444 if (in1.rows == in0.rows && in1.cols == in0.cols)
1445 {
1446 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1447 }
1448 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1449 }
1450 case TIType::INT64 :
1451 {
1452 if (in0.rows == 1 && in0.cols == 1)
1453 {
1454 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1455 }
1456 if (in1.rows == 1 && in1.cols == 1)
1457 {
1458 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1459 }
1460 if (in1.rows == in0.rows && in1.cols == in0.cols)
1461 {
1462 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1463 }
1464 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1465 }
1466 case TIType::INT8 :
1467 {
1468 if (in0.rows == 1 && in0.cols == 1)
1469 {
1470 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1471 }
1472 if (in1.rows == 1 && in1.cols == 1)
1473 {
1474 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1475 }
1476 if (in1.rows == in0.rows && in1.cols == in0.cols)
1477 {
1478 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1479 }
1480 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1481 }
1482 case TIType::UINT16 :
1483 {
1484 if (in0.rows == 1 && in0.cols == 1)
1485 {
1486 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1487 }
1488 if (in1.rows == 1 && in1.cols == 1)
1489 {
1490 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1491 }
1492 if (in1.rows == in0.rows && in1.cols == in0.cols)
1493 {
1494 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1495 }
1496 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1497 }
1498 case TIType::UINT32 :
1499 {
1500 if (in0.rows == 1 && in0.cols == 1)
1501 {
1502 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1503 }
1504 if (in1.rows == 1 && in1.cols == 1)
1505 {
1506 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1507 }
1508 if (in1.rows == in0.rows && in1.cols == in0.cols)
1509 {
1510 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1511 }
1512 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1513 }
1514 case TIType::UINT64 :
1515 {
1516 if (in0.rows == 1 && in0.cols == 1)
1517 {
1518 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1519 }
1520 if (in1.rows == 1 && in1.cols == 1)
1521 {
1522 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1523 }
1524 if (in1.rows == in0.rows && in1.cols == in0.cols)
1525 {
1526 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1527 }
1528 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1529 }
1530 case TIType::UINT8 :
1531 {
1532 if (in0.rows == 1 && in0.cols == 1)
1533 {
1534 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
1535 }
1536 if (in1.rows == 1 && in1.cols == 1)
1537 {
1538 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1539 }
1540 if (in1.rows == in0.rows && in1.cols == in0.cols)
1541 {
1542 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
1543 }
1544 return TIType(gvn, TIType::BOOLEAN, -2, -2);
1545 }
1546 default :
1547 return TIType(gvn);
1548 }
1549 }
1550 default :
1551 return TIType(gvn);
1552 }
1553 }
1554
1555 } // namespace analysis