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_____oror____(GVN & gvn,const TIType & in0,const TIType & in1)22 TIType Checkers::check_____oror____(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::BOOLEAN :
31 {
32 return TIType(gvn, TIType::BOOLEAN, 1, 1);
33 }
34 case TIType::COMPLEX :
35 {
36 return TIType(gvn, TIType::BOOLEAN, 1, 1);
37 }
38 case TIType::DOUBLE :
39 {
40 return TIType(gvn, TIType::BOOLEAN, 1, 1);
41 }
42 default :
43 return TIType(gvn);
44 }
45 }
46 case TIType::BOOLEAN :
47 {
48 switch (in1.type)
49 {
50 case TIType::EMPTY :
51 {
52 return TIType(gvn, TIType::BOOLEAN, 1, 1);
53 }
54 case TIType::BOOLEAN :
55 {
56 if (in0.rows == 1 && in0.cols == 1)
57 {
58 return in1;
59 }
60 if (in1.rows == 1 && in1.cols == 1)
61 {
62 return in0;
63 }
64 if (in1.rows == in0.rows && in1.cols == in0.cols)
65 {
66 return in0;
67 }
68 return TIType(gvn, TIType::BOOLEAN, -2, -2);
69 }
70 case TIType::COMPLEX :
71 {
72 if (in0.rows == 1 && in0.cols == 1)
73 {
74 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
75 }
76 if (in1.rows == 1 && in1.cols == 1)
77 {
78 return in0;
79 }
80 if (in1.rows == in0.rows && in1.cols == in0.cols)
81 {
82 return in0;
83 }
84 return TIType(gvn, TIType::BOOLEAN, -2, -2);
85 }
86 case TIType::DOUBLE :
87 {
88 if (in0.rows == 1 && in0.cols == 1)
89 {
90 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
91 }
92 if (in1.rows == 1 && in1.cols == 1)
93 {
94 return in0;
95 }
96 if (in1.rows == in0.rows && in1.cols == in0.cols)
97 {
98 return in0;
99 }
100 return TIType(gvn, TIType::BOOLEAN, -2, -2);
101 }
102 default :
103 return TIType(gvn);
104 }
105 }
106 case TIType::COMPLEX :
107 {
108 switch (in1.type)
109 {
110 case TIType::EMPTY :
111 {
112 return TIType(gvn, TIType::BOOLEAN, 1, 1);
113 }
114 case TIType::BOOLEAN :
115 {
116 if (in0.rows == 1 && in0.cols == 1)
117 {
118 return in1;
119 }
120 if (in1.rows == 1 && in1.cols == 1)
121 {
122 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
123 }
124 if (in1.rows == in0.rows && in1.cols == in0.cols)
125 {
126 return in1;
127 }
128 return TIType(gvn, TIType::BOOLEAN, -2, -2);
129 }
130 case TIType::COMPLEX :
131 {
132 if (in0.rows == 1 && in0.cols == 1)
133 {
134 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
135 }
136 if (in1.rows == 1 && in1.cols == 1)
137 {
138 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
139 }
140 if (in1.rows == in0.rows && in1.cols == in0.cols)
141 {
142 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
143 }
144 return TIType(gvn, TIType::BOOLEAN, -2, -2);
145 }
146 case TIType::DOUBLE :
147 {
148 if (in0.rows == 1 && in0.cols == 1)
149 {
150 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
151 }
152 if (in1.rows == 1 && in1.cols == 1)
153 {
154 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
155 }
156 if (in1.rows == in0.rows && in1.cols == in0.cols)
157 {
158 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
159 }
160 return TIType(gvn, TIType::BOOLEAN, -2, -2);
161 }
162 default :
163 return TIType(gvn);
164 }
165 }
166 case TIType::DOUBLE :
167 {
168 switch (in1.type)
169 {
170 case TIType::EMPTY :
171 {
172 return TIType(gvn, TIType::BOOLEAN, 1, 1);
173 }
174 case TIType::BOOLEAN :
175 {
176 if (in0.rows == 1 && in0.cols == 1)
177 {
178 return in1;
179 }
180 if (in1.rows == 1 && in1.cols == 1)
181 {
182 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
183 }
184 if (in1.rows == in0.rows && in1.cols == in0.cols)
185 {
186 return in1;
187 }
188 return TIType(gvn, TIType::BOOLEAN, -2, -2);
189 }
190 case TIType::COMPLEX :
191 {
192 if (in0.rows == 1 && in0.cols == 1)
193 {
194 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
195 }
196 if (in1.rows == 1 && in1.cols == 1)
197 {
198 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
199 }
200 if (in1.rows == in0.rows && in1.cols == in0.cols)
201 {
202 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
203 }
204 return TIType(gvn, TIType::BOOLEAN, -2, -2);
205 }
206 case TIType::DOUBLE :
207 {
208 if (in0.rows == 1 && in0.cols == 1)
209 {
210 return TIType(gvn, TIType::BOOLEAN, in1.rows, in1.cols);
211 }
212 if (in1.rows == 1 && in1.cols == 1)
213 {
214 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
215 }
216 if (in1.rows == in0.rows && in1.cols == in0.cols)
217 {
218 return TIType(gvn, TIType::BOOLEAN, in0.rows, in0.cols);
219 }
220 return TIType(gvn, TIType::BOOLEAN, -2, -2);
221 }
222 default :
223 return TIType(gvn);
224 }
225 }
226 case TIType::INT16 :
227 {
228 switch (in1.type)
229 {
230 case TIType::INT16 :
231 {
232 if (in0.rows == 1 && in0.cols == 1)
233 {
234 return in1;
235 }
236 if (in1.rows == 1 && in1.cols == 1)
237 {
238 return in0;
239 }
240 if (in1.rows == in0.rows && in1.cols == in0.cols)
241 {
242 return in0;
243 }
244 return TIType(gvn, TIType::INT16, -2, -2);
245 }
246 case TIType::INT32 :
247 {
248 if (in0.rows == 1 && in0.cols == 1)
249 {
250 return in1;
251 }
252 if (in1.rows == 1 && in1.cols == 1)
253 {
254 return TIType(gvn, TIType::INT32, in0.rows, in0.cols);
255 }
256 if (in1.rows == in0.rows && in1.cols == in0.cols)
257 {
258 return in1;
259 }
260 return TIType(gvn, TIType::INT32, -2, -2);
261 }
262 case TIType::INT64 :
263 {
264 if (in0.rows == 1 && in0.cols == 1)
265 {
266 return in1;
267 }
268 if (in1.rows == 1 && in1.cols == 1)
269 {
270 return TIType(gvn, TIType::INT64, in0.rows, in0.cols);
271 }
272 if (in1.rows == in0.rows && in1.cols == in0.cols)
273 {
274 return in1;
275 }
276 return TIType(gvn, TIType::INT64, -2, -2);
277 }
278 case TIType::INT8 :
279 {
280 if (in0.rows == 1 && in0.cols == 1)
281 {
282 return TIType(gvn, TIType::INT16, in1.rows, in1.cols);
283 }
284 if (in1.rows == 1 && in1.cols == 1)
285 {
286 return in0;
287 }
288 if (in1.rows == in0.rows && in1.cols == in0.cols)
289 {
290 return in0;
291 }
292 return TIType(gvn, TIType::INT16, -2, -2);
293 }
294 case TIType::UINT16 :
295 {
296 if (in0.rows == 1 && in0.cols == 1)
297 {
298 return in1;
299 }
300 if (in1.rows == 1 && in1.cols == 1)
301 {
302 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
303 }
304 if (in1.rows == in0.rows && in1.cols == in0.cols)
305 {
306 return in1;
307 }
308 return TIType(gvn, TIType::UINT16, -2, -2);
309 }
310 case TIType::UINT32 :
311 {
312 if (in0.rows == 1 && in0.cols == 1)
313 {
314 return in1;
315 }
316 if (in1.rows == 1 && in1.cols == 1)
317 {
318 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
319 }
320 if (in1.rows == in0.rows && in1.cols == in0.cols)
321 {
322 return in1;
323 }
324 return TIType(gvn, TIType::UINT32, -2, -2);
325 }
326 case TIType::UINT64 :
327 {
328 if (in0.rows == 1 && in0.cols == 1)
329 {
330 return in1;
331 }
332 if (in1.rows == 1 && in1.cols == 1)
333 {
334 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
335 }
336 if (in1.rows == in0.rows && in1.cols == in0.cols)
337 {
338 return in1;
339 }
340 return TIType(gvn, TIType::UINT64, -2, -2);
341 }
342 case TIType::UINT8 :
343 {
344 if (in0.rows == 1 && in0.cols == 1)
345 {
346 return TIType(gvn, TIType::UINT16, in1.rows, in1.cols);
347 }
348 if (in1.rows == 1 && in1.cols == 1)
349 {
350 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
351 }
352 if (in1.rows == in0.rows && in1.cols == in0.cols)
353 {
354 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
355 }
356 return TIType(gvn, TIType::UINT16, -2, -2);
357 }
358 default :
359 return TIType(gvn);
360 }
361 }
362 case TIType::INT32 :
363 {
364 switch (in1.type)
365 {
366 case TIType::INT16 :
367 {
368 if (in0.rows == 1 && in0.cols == 1)
369 {
370 return TIType(gvn, TIType::INT32, in1.rows, in1.cols);
371 }
372 if (in1.rows == 1 && in1.cols == 1)
373 {
374 return in0;
375 }
376 if (in1.rows == in0.rows && in1.cols == in0.cols)
377 {
378 return in0;
379 }
380 return TIType(gvn, TIType::INT32, -2, -2);
381 }
382 case TIType::INT32 :
383 {
384 if (in0.rows == 1 && in0.cols == 1)
385 {
386 return in1;
387 }
388 if (in1.rows == 1 && in1.cols == 1)
389 {
390 return in0;
391 }
392 if (in1.rows == in0.rows && in1.cols == in0.cols)
393 {
394 return in0;
395 }
396 return TIType(gvn, TIType::INT32, -2, -2);
397 }
398 case TIType::INT64 :
399 {
400 if (in0.rows == 1 && in0.cols == 1)
401 {
402 return in1;
403 }
404 if (in1.rows == 1 && in1.cols == 1)
405 {
406 return TIType(gvn, TIType::INT64, in0.rows, in0.cols);
407 }
408 if (in1.rows == in0.rows && in1.cols == in0.cols)
409 {
410 return in1;
411 }
412 return TIType(gvn, TIType::INT64, -2, -2);
413 }
414 case TIType::INT8 :
415 {
416 if (in0.rows == 1 && in0.cols == 1)
417 {
418 return TIType(gvn, TIType::INT32, in1.rows, in1.cols);
419 }
420 if (in1.rows == 1 && in1.cols == 1)
421 {
422 return in0;
423 }
424 if (in1.rows == in0.rows && in1.cols == in0.cols)
425 {
426 return in0;
427 }
428 return TIType(gvn, TIType::INT32, -2, -2);
429 }
430 case TIType::UINT16 :
431 {
432 if (in0.rows == 1 && in0.cols == 1)
433 {
434 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
435 }
436 if (in1.rows == 1 && in1.cols == 1)
437 {
438 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
439 }
440 if (in1.rows == in0.rows && in1.cols == in0.cols)
441 {
442 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
443 }
444 return TIType(gvn, TIType::UINT32, -2, -2);
445 }
446 case TIType::UINT32 :
447 {
448 if (in0.rows == 1 && in0.cols == 1)
449 {
450 return in1;
451 }
452 if (in1.rows == 1 && in1.cols == 1)
453 {
454 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
455 }
456 if (in1.rows == in0.rows && in1.cols == in0.cols)
457 {
458 return in1;
459 }
460 return TIType(gvn, TIType::UINT32, -2, -2);
461 }
462 case TIType::UINT64 :
463 {
464 if (in0.rows == 1 && in0.cols == 1)
465 {
466 return in1;
467 }
468 if (in1.rows == 1 && in1.cols == 1)
469 {
470 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
471 }
472 if (in1.rows == in0.rows && in1.cols == in0.cols)
473 {
474 return in1;
475 }
476 return TIType(gvn, TIType::UINT64, -2, -2);
477 }
478 case TIType::UINT8 :
479 {
480 if (in0.rows == 1 && in0.cols == 1)
481 {
482 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
483 }
484 if (in1.rows == 1 && in1.cols == 1)
485 {
486 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
487 }
488 if (in1.rows == in0.rows && in1.cols == in0.cols)
489 {
490 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
491 }
492 return TIType(gvn, TIType::UINT32, -2, -2);
493 }
494 default :
495 return TIType(gvn);
496 }
497 }
498 case TIType::INT64 :
499 {
500 switch (in1.type)
501 {
502 case TIType::INT16 :
503 {
504 if (in0.rows == 1 && in0.cols == 1)
505 {
506 return TIType(gvn, TIType::INT64, in1.rows, in1.cols);
507 }
508 if (in1.rows == 1 && in1.cols == 1)
509 {
510 return in0;
511 }
512 if (in1.rows == in0.rows && in1.cols == in0.cols)
513 {
514 return in0;
515 }
516 return TIType(gvn, TIType::INT64, -2, -2);
517 }
518 case TIType::INT32 :
519 {
520 if (in0.rows == 1 && in0.cols == 1)
521 {
522 return TIType(gvn, TIType::INT64, in1.rows, in1.cols);
523 }
524 if (in1.rows == 1 && in1.cols == 1)
525 {
526 return in0;
527 }
528 if (in1.rows == in0.rows && in1.cols == in0.cols)
529 {
530 return in0;
531 }
532 return TIType(gvn, TIType::INT64, -2, -2);
533 }
534 case TIType::INT64 :
535 {
536 if (in0.rows == 1 && in0.cols == 1)
537 {
538 return in1;
539 }
540 if (in1.rows == 1 && in1.cols == 1)
541 {
542 return in0;
543 }
544 if (in1.rows == in0.rows && in1.cols == in0.cols)
545 {
546 return in0;
547 }
548 return TIType(gvn, TIType::INT64, -2, -2);
549 }
550 case TIType::INT8 :
551 {
552 if (in0.rows == 1 && in0.cols == 1)
553 {
554 return TIType(gvn, TIType::INT64, in1.rows, in1.cols);
555 }
556 if (in1.rows == 1 && in1.cols == 1)
557 {
558 return in0;
559 }
560 if (in1.rows == in0.rows && in1.cols == in0.cols)
561 {
562 return in0;
563 }
564 return TIType(gvn, TIType::INT64, -2, -2);
565 }
566 case TIType::UINT16 :
567 {
568 if (in0.rows == 1 && in0.cols == 1)
569 {
570 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
571 }
572 if (in1.rows == 1 && in1.cols == 1)
573 {
574 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
575 }
576 if (in1.rows == in0.rows && in1.cols == in0.cols)
577 {
578 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
579 }
580 return TIType(gvn, TIType::UINT64, -2, -2);
581 }
582 case TIType::UINT32 :
583 {
584 if (in0.rows == 1 && in0.cols == 1)
585 {
586 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
587 }
588 if (in1.rows == 1 && in1.cols == 1)
589 {
590 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
591 }
592 if (in1.rows == in0.rows && in1.cols == in0.cols)
593 {
594 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
595 }
596 return TIType(gvn, TIType::UINT64, -2, -2);
597 }
598 case TIType::UINT64 :
599 {
600 if (in0.rows == 1 && in0.cols == 1)
601 {
602 return in1;
603 }
604 if (in1.rows == 1 && in1.cols == 1)
605 {
606 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
607 }
608 if (in1.rows == in0.rows && in1.cols == in0.cols)
609 {
610 return in1;
611 }
612 return TIType(gvn, TIType::UINT64, -2, -2);
613 }
614 case TIType::UINT8 :
615 {
616 if (in0.rows == 1 && in0.cols == 1)
617 {
618 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
619 }
620 if (in1.rows == 1 && in1.cols == 1)
621 {
622 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
623 }
624 if (in1.rows == in0.rows && in1.cols == in0.cols)
625 {
626 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
627 }
628 return TIType(gvn, TIType::UINT64, -2, -2);
629 }
630 default :
631 return TIType(gvn);
632 }
633 }
634 case TIType::INT8 :
635 {
636 switch (in1.type)
637 {
638 case TIType::INT16 :
639 {
640 if (in0.rows == 1 && in0.cols == 1)
641 {
642 return in1;
643 }
644 if (in1.rows == 1 && in1.cols == 1)
645 {
646 return TIType(gvn, TIType::INT16, in0.rows, in0.cols);
647 }
648 if (in1.rows == in0.rows && in1.cols == in0.cols)
649 {
650 return in1;
651 }
652 return TIType(gvn, TIType::INT16, -2, -2);
653 }
654 case TIType::INT32 :
655 {
656 if (in0.rows == 1 && in0.cols == 1)
657 {
658 return in1;
659 }
660 if (in1.rows == 1 && in1.cols == 1)
661 {
662 return TIType(gvn, TIType::INT32, in0.rows, in0.cols);
663 }
664 if (in1.rows == in0.rows && in1.cols == in0.cols)
665 {
666 return in1;
667 }
668 return TIType(gvn, TIType::INT32, -2, -2);
669 }
670 case TIType::INT64 :
671 {
672 if (in0.rows == 1 && in0.cols == 1)
673 {
674 return in1;
675 }
676 if (in1.rows == 1 && in1.cols == 1)
677 {
678 return TIType(gvn, TIType::INT64, in0.rows, in0.cols);
679 }
680 if (in1.rows == in0.rows && in1.cols == in0.cols)
681 {
682 return in1;
683 }
684 return TIType(gvn, TIType::INT64, -2, -2);
685 }
686 case TIType::INT8 :
687 {
688 if (in0.rows == 1 && in0.cols == 1)
689 {
690 return in1;
691 }
692 if (in1.rows == 1 && in1.cols == 1)
693 {
694 return in0;
695 }
696 if (in1.rows == in0.rows && in1.cols == in0.cols)
697 {
698 return in0;
699 }
700 return TIType(gvn, TIType::INT8, -2, -2);
701 }
702 case TIType::UINT16 :
703 {
704 if (in0.rows == 1 && in0.cols == 1)
705 {
706 return in1;
707 }
708 if (in1.rows == 1 && in1.cols == 1)
709 {
710 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
711 }
712 if (in1.rows == in0.rows && in1.cols == in0.cols)
713 {
714 return in1;
715 }
716 return TIType(gvn, TIType::UINT16, -2, -2);
717 }
718 case TIType::UINT32 :
719 {
720 if (in0.rows == 1 && in0.cols == 1)
721 {
722 return in1;
723 }
724 if (in1.rows == 1 && in1.cols == 1)
725 {
726 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
727 }
728 if (in1.rows == in0.rows && in1.cols == in0.cols)
729 {
730 return in1;
731 }
732 return TIType(gvn, TIType::UINT32, -2, -2);
733 }
734 case TIType::UINT64 :
735 {
736 if (in0.rows == 1 && in0.cols == 1)
737 {
738 return in1;
739 }
740 if (in1.rows == 1 && in1.cols == 1)
741 {
742 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
743 }
744 if (in1.rows == in0.rows && in1.cols == in0.cols)
745 {
746 return in1;
747 }
748 return TIType(gvn, TIType::UINT64, -2, -2);
749 }
750 case TIType::UINT8 :
751 {
752 if (in0.rows == 1 && in0.cols == 1)
753 {
754 return in1;
755 }
756 if (in1.rows == 1 && in1.cols == 1)
757 {
758 return TIType(gvn, TIType::UINT8, in0.rows, in0.cols);
759 }
760 if (in1.rows == in0.rows && in1.cols == in0.cols)
761 {
762 return in1;
763 }
764 return TIType(gvn, TIType::UINT8, -2, -2);
765 }
766 default :
767 return TIType(gvn);
768 }
769 }
770 case TIType::UINT16 :
771 {
772 switch (in1.type)
773 {
774 case TIType::INT16 :
775 {
776 if (in0.rows == 1 && in0.cols == 1)
777 {
778 return TIType(gvn, TIType::UINT16, in1.rows, in1.cols);
779 }
780 if (in1.rows == 1 && in1.cols == 1)
781 {
782 return in0;
783 }
784 if (in1.rows == in0.rows && in1.cols == in0.cols)
785 {
786 return in0;
787 }
788 return TIType(gvn, TIType::UINT16, -2, -2);
789 }
790 case TIType::INT32 :
791 {
792 if (in0.rows == 1 && in0.cols == 1)
793 {
794 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
795 }
796 if (in1.rows == 1 && in1.cols == 1)
797 {
798 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
799 }
800 if (in1.rows == in0.rows && in1.cols == in0.cols)
801 {
802 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
803 }
804 return TIType(gvn, TIType::UINT32, -2, -2);
805 }
806 case TIType::INT64 :
807 {
808 if (in0.rows == 1 && in0.cols == 1)
809 {
810 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
811 }
812 if (in1.rows == 1 && in1.cols == 1)
813 {
814 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
815 }
816 if (in1.rows == in0.rows && in1.cols == in0.cols)
817 {
818 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
819 }
820 return TIType(gvn, TIType::UINT64, -2, -2);
821 }
822 case TIType::INT8 :
823 {
824 if (in0.rows == 1 && in0.cols == 1)
825 {
826 return TIType(gvn, TIType::UINT16, in1.rows, in1.cols);
827 }
828 if (in1.rows == 1 && in1.cols == 1)
829 {
830 return in0;
831 }
832 if (in1.rows == in0.rows && in1.cols == in0.cols)
833 {
834 return in0;
835 }
836 return TIType(gvn, TIType::UINT16, -2, -2);
837 }
838 case TIType::UINT16 :
839 {
840 if (in0.rows == 1 && in0.cols == 1)
841 {
842 return in1;
843 }
844 if (in1.rows == 1 && in1.cols == 1)
845 {
846 return in0;
847 }
848 if (in1.rows == in0.rows && in1.cols == in0.cols)
849 {
850 return in0;
851 }
852 return TIType(gvn, TIType::UINT16, -2, -2);
853 }
854 case TIType::UINT32 :
855 {
856 if (in0.rows == 1 && in0.cols == 1)
857 {
858 return in1;
859 }
860 if (in1.rows == 1 && in1.cols == 1)
861 {
862 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
863 }
864 if (in1.rows == in0.rows && in1.cols == in0.cols)
865 {
866 return in1;
867 }
868 return TIType(gvn, TIType::UINT32, -2, -2);
869 }
870 case TIType::UINT64 :
871 {
872 if (in0.rows == 1 && in0.cols == 1)
873 {
874 return in1;
875 }
876 if (in1.rows == 1 && in1.cols == 1)
877 {
878 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
879 }
880 if (in1.rows == in0.rows && in1.cols == in0.cols)
881 {
882 return in1;
883 }
884 return TIType(gvn, TIType::UINT64, -2, -2);
885 }
886 case TIType::UINT8 :
887 {
888 if (in0.rows == 1 && in0.cols == 1)
889 {
890 return TIType(gvn, TIType::UINT16, in1.rows, in1.cols);
891 }
892 if (in1.rows == 1 && in1.cols == 1)
893 {
894 return in0;
895 }
896 if (in1.rows == in0.rows && in1.cols == in0.cols)
897 {
898 return in0;
899 }
900 return TIType(gvn, TIType::UINT16, -2, -2);
901 }
902 default :
903 return TIType(gvn);
904 }
905 }
906 case TIType::UINT32 :
907 {
908 switch (in1.type)
909 {
910 case TIType::INT16 :
911 {
912 if (in0.rows == 1 && in0.cols == 1)
913 {
914 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
915 }
916 if (in1.rows == 1 && in1.cols == 1)
917 {
918 return in0;
919 }
920 if (in1.rows == in0.rows && in1.cols == in0.cols)
921 {
922 return in0;
923 }
924 return TIType(gvn, TIType::UINT32, -2, -2);
925 }
926 case TIType::INT32 :
927 {
928 if (in0.rows == 1 && in0.cols == 1)
929 {
930 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
931 }
932 if (in1.rows == 1 && in1.cols == 1)
933 {
934 return in0;
935 }
936 if (in1.rows == in0.rows && in1.cols == in0.cols)
937 {
938 return in0;
939 }
940 return TIType(gvn, TIType::UINT32, -2, -2);
941 }
942 case TIType::INT64 :
943 {
944 if (in0.rows == 1 && in0.cols == 1)
945 {
946 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
947 }
948 if (in1.rows == 1 && in1.cols == 1)
949 {
950 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
951 }
952 if (in1.rows == in0.rows && in1.cols == in0.cols)
953 {
954 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
955 }
956 return TIType(gvn, TIType::UINT64, -2, -2);
957 }
958 case TIType::INT8 :
959 {
960 if (in0.rows == 1 && in0.cols == 1)
961 {
962 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
963 }
964 if (in1.rows == 1 && in1.cols == 1)
965 {
966 return in0;
967 }
968 if (in1.rows == in0.rows && in1.cols == in0.cols)
969 {
970 return in0;
971 }
972 return TIType(gvn, TIType::UINT32, -2, -2);
973 }
974 case TIType::UINT16 :
975 {
976 if (in0.rows == 1 && in0.cols == 1)
977 {
978 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
979 }
980 if (in1.rows == 1 && in1.cols == 1)
981 {
982 return in0;
983 }
984 if (in1.rows == in0.rows && in1.cols == in0.cols)
985 {
986 return in0;
987 }
988 return TIType(gvn, TIType::UINT32, -2, -2);
989 }
990 case TIType::UINT32 :
991 {
992 if (in0.rows == 1 && in0.cols == 1)
993 {
994 return in1;
995 }
996 if (in1.rows == 1 && in1.cols == 1)
997 {
998 return in0;
999 }
1000 if (in1.rows == in0.rows && in1.cols == in0.cols)
1001 {
1002 return in0;
1003 }
1004 return TIType(gvn, TIType::UINT32, -2, -2);
1005 }
1006 case TIType::UINT64 :
1007 {
1008 if (in0.rows == 1 && in0.cols == 1)
1009 {
1010 return in1;
1011 }
1012 if (in1.rows == 1 && in1.cols == 1)
1013 {
1014 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
1015 }
1016 if (in1.rows == in0.rows && in1.cols == in0.cols)
1017 {
1018 return in1;
1019 }
1020 return TIType(gvn, TIType::UINT64, -2, -2);
1021 }
1022 case TIType::UINT8 :
1023 {
1024 if (in0.rows == 1 && in0.cols == 1)
1025 {
1026 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
1027 }
1028 if (in1.rows == 1 && in1.cols == 1)
1029 {
1030 return in0;
1031 }
1032 if (in1.rows == in0.rows && in1.cols == in0.cols)
1033 {
1034 return in0;
1035 }
1036 return TIType(gvn, TIType::UINT32, -2, -2);
1037 }
1038 default :
1039 return TIType(gvn);
1040 }
1041 }
1042 case TIType::UINT64 :
1043 {
1044 switch (in1.type)
1045 {
1046 case TIType::INT16 :
1047 {
1048 if (in0.rows == 1 && in0.cols == 1)
1049 {
1050 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1051 }
1052 if (in1.rows == 1 && in1.cols == 1)
1053 {
1054 return in0;
1055 }
1056 if (in1.rows == in0.rows && in1.cols == in0.cols)
1057 {
1058 return in0;
1059 }
1060 return TIType(gvn, TIType::UINT64, -2, -2);
1061 }
1062 case TIType::INT32 :
1063 {
1064 if (in0.rows == 1 && in0.cols == 1)
1065 {
1066 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1067 }
1068 if (in1.rows == 1 && in1.cols == 1)
1069 {
1070 return in0;
1071 }
1072 if (in1.rows == in0.rows && in1.cols == in0.cols)
1073 {
1074 return in0;
1075 }
1076 return TIType(gvn, TIType::UINT64, -2, -2);
1077 }
1078 case TIType::INT64 :
1079 {
1080 if (in0.rows == 1 && in0.cols == 1)
1081 {
1082 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1083 }
1084 if (in1.rows == 1 && in1.cols == 1)
1085 {
1086 return in0;
1087 }
1088 if (in1.rows == in0.rows && in1.cols == in0.cols)
1089 {
1090 return in0;
1091 }
1092 return TIType(gvn, TIType::UINT64, -2, -2);
1093 }
1094 case TIType::INT8 :
1095 {
1096 if (in0.rows == 1 && in0.cols == 1)
1097 {
1098 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1099 }
1100 if (in1.rows == 1 && in1.cols == 1)
1101 {
1102 return in0;
1103 }
1104 if (in1.rows == in0.rows && in1.cols == in0.cols)
1105 {
1106 return in0;
1107 }
1108 return TIType(gvn, TIType::UINT64, -2, -2);
1109 }
1110 case TIType::UINT16 :
1111 {
1112 if (in0.rows == 1 && in0.cols == 1)
1113 {
1114 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1115 }
1116 if (in1.rows == 1 && in1.cols == 1)
1117 {
1118 return in0;
1119 }
1120 if (in1.rows == in0.rows && in1.cols == in0.cols)
1121 {
1122 return in0;
1123 }
1124 return TIType(gvn, TIType::UINT64, -2, -2);
1125 }
1126 case TIType::UINT32 :
1127 {
1128 if (in0.rows == 1 && in0.cols == 1)
1129 {
1130 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1131 }
1132 if (in1.rows == 1 && in1.cols == 1)
1133 {
1134 return in0;
1135 }
1136 if (in1.rows == in0.rows && in1.cols == in0.cols)
1137 {
1138 return in0;
1139 }
1140 return TIType(gvn, TIType::UINT64, -2, -2);
1141 }
1142 case TIType::UINT64 :
1143 {
1144 if (in0.rows == 1 && in0.cols == 1)
1145 {
1146 return in1;
1147 }
1148 if (in1.rows == 1 && in1.cols == 1)
1149 {
1150 return in0;
1151 }
1152 if (in1.rows == in0.rows && in1.cols == in0.cols)
1153 {
1154 return in0;
1155 }
1156 return TIType(gvn, TIType::UINT64, -2, -2);
1157 }
1158 case TIType::UINT8 :
1159 {
1160 if (in0.rows == 1 && in0.cols == 1)
1161 {
1162 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1163 }
1164 if (in1.rows == 1 && in1.cols == 1)
1165 {
1166 return in0;
1167 }
1168 if (in1.rows == in0.rows && in1.cols == in0.cols)
1169 {
1170 return in0;
1171 }
1172 return TIType(gvn, TIType::UINT64, -2, -2);
1173 }
1174 default :
1175 return TIType(gvn);
1176 }
1177 }
1178 case TIType::UINT8 :
1179 {
1180 switch (in1.type)
1181 {
1182 case TIType::INT16 :
1183 {
1184 if (in0.rows == 1 && in0.cols == 1)
1185 {
1186 return TIType(gvn, TIType::UINT16, in1.rows, in1.cols);
1187 }
1188 if (in1.rows == 1 && in1.cols == 1)
1189 {
1190 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
1191 }
1192 if (in1.rows == in0.rows && in1.cols == in0.cols)
1193 {
1194 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
1195 }
1196 return TIType(gvn, TIType::UINT16, -2, -2);
1197 }
1198 case TIType::INT32 :
1199 {
1200 if (in0.rows == 1 && in0.cols == 1)
1201 {
1202 return TIType(gvn, TIType::UINT32, in1.rows, in1.cols);
1203 }
1204 if (in1.rows == 1 && in1.cols == 1)
1205 {
1206 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
1207 }
1208 if (in1.rows == in0.rows && in1.cols == in0.cols)
1209 {
1210 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
1211 }
1212 return TIType(gvn, TIType::UINT32, -2, -2);
1213 }
1214 case TIType::INT64 :
1215 {
1216 if (in0.rows == 1 && in0.cols == 1)
1217 {
1218 return TIType(gvn, TIType::UINT64, in1.rows, in1.cols);
1219 }
1220 if (in1.rows == 1 && in1.cols == 1)
1221 {
1222 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
1223 }
1224 if (in1.rows == in0.rows && in1.cols == in0.cols)
1225 {
1226 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
1227 }
1228 return TIType(gvn, TIType::UINT64, -2, -2);
1229 }
1230 case TIType::INT8 :
1231 {
1232 if (in0.rows == 1 && in0.cols == 1)
1233 {
1234 return TIType(gvn, TIType::UINT8, in1.rows, in1.cols);
1235 }
1236 if (in1.rows == 1 && in1.cols == 1)
1237 {
1238 return in0;
1239 }
1240 if (in1.rows == in0.rows && in1.cols == in0.cols)
1241 {
1242 return in0;
1243 }
1244 return TIType(gvn, TIType::UINT8, -2, -2);
1245 }
1246 case TIType::UINT16 :
1247 {
1248 if (in0.rows == 1 && in0.cols == 1)
1249 {
1250 return in1;
1251 }
1252 if (in1.rows == 1 && in1.cols == 1)
1253 {
1254 return TIType(gvn, TIType::UINT16, in0.rows, in0.cols);
1255 }
1256 if (in1.rows == in0.rows && in1.cols == in0.cols)
1257 {
1258 return in1;
1259 }
1260 return TIType(gvn, TIType::UINT16, -2, -2);
1261 }
1262 case TIType::UINT32 :
1263 {
1264 if (in0.rows == 1 && in0.cols == 1)
1265 {
1266 return in1;
1267 }
1268 if (in1.rows == 1 && in1.cols == 1)
1269 {
1270 return TIType(gvn, TIType::UINT32, in0.rows, in0.cols);
1271 }
1272 if (in1.rows == in0.rows && in1.cols == in0.cols)
1273 {
1274 return in1;
1275 }
1276 return TIType(gvn, TIType::UINT32, -2, -2);
1277 }
1278 case TIType::UINT64 :
1279 {
1280 if (in0.rows == 1 && in0.cols == 1)
1281 {
1282 return in1;
1283 }
1284 if (in1.rows == 1 && in1.cols == 1)
1285 {
1286 return TIType(gvn, TIType::UINT64, in0.rows, in0.cols);
1287 }
1288 if (in1.rows == in0.rows && in1.cols == in0.cols)
1289 {
1290 return in1;
1291 }
1292 return TIType(gvn, TIType::UINT64, -2, -2);
1293 }
1294 case TIType::UINT8 :
1295 {
1296 if (in0.rows == 1 && in0.cols == 1)
1297 {
1298 return in1;
1299 }
1300 if (in1.rows == 1 && in1.cols == 1)
1301 {
1302 return in0;
1303 }
1304 if (in1.rows == in0.rows && in1.cols == in0.cols)
1305 {
1306 return in0;
1307 }
1308 return TIType(gvn, TIType::UINT8, -2, -2);
1309 }
1310 default :
1311 return TIType(gvn);
1312 }
1313 }
1314 default :
1315 return TIType(gvn);
1316 }
1317 }
1318
1319 } // namespace analysis