Home | History | Annotate | Download | only in Test
      1 #version 310 es
      2 precision mediump float;
      3 flat in uvec2 t;
      4 in float f;
      5 in vec2 tc;
      6 
      7 flat in uvec4 v;
      8 flat in int i;
      9 bool b;
     10 
     11 out uvec4 c;
     12 
     13 uniform mediump usampler2D usampler;
     14 
     15 void main()
     16 {
     17     int count = 1;
     18 
     19     uint u = t.y + 3u;
     20     const uint cu1 = 0xFFFFFFFFU;
     21     const uint cu2 = -1u;              // 0xFFFFFFFF
     22     const uint cu3 = 1U;
     23     const uint cu4 = 1u;
     24 
     25     if (cu1 == cu2)
     26         count *= 2;  // 2
     27     if (cu3 == cu4)
     28         count *= 3;  // 6
     29     if (cu2 == cu3)
     30         count *= 5;  // not done
     31 
     32     const  int  cshiftedii      = 0xFFFFFFFF  >> 10;
     33     const uint cushiftedui      = 0xFFFFFFFFu >> 10;
     34     const  int  cshiftediu      = 0xFFFFFFFF  >> 10u;
     35     const uint cushifteduu      = 0xFFFFFFFFu >> 10u;
     36 
     37     if (cshiftedii == cshiftediu)
     38         count *= 7;  // 42
     39     if (cushiftedui == cushifteduu)
     40         count *= 11; // 462
     41     if (cshiftedii == int(cushiftedui))
     42         count *= 13; // not done
     43 
     44      int shiftedii      = 0xFFFFFFFF  >> 10;
     45     uint shiftedui      = 0xFFFFFFFFu >> 10;
     46      int shiftediu      = 0xFFFFFFFF  >> 10u;
     47     uint shifteduu      = 0xFFFFFFFFu >> 10u;
     48 
     49     if (shiftedii == shiftediu)
     50         c = texture(usampler, tc);
     51     if (shiftedui == shifteduu)
     52         c = texture(usampler, tc + float(1u));
     53     if (shiftedii == int(shiftedui))
     54         c = texture(usampler, tc - vec2(2u));
     55 
     56     if (t.x > 4u) {
     57         float af = float(u);
     58         bool ab = bool(u);
     59         int ai = int(u);
     60 
     61         c += uvec4(uint(af), uint(ab), uint(ai), count);
     62     }
     63 
     64     const uint cmask1 = 0x0A1u;
     65     const uint cmask2 = 0xA10u;
     66     const uint cmask3 = cmask1 << 4;
     67     const uint cmask4 = 0xAB1u;
     68 
     69     if (cmask3 == cmask2)
     70         count *= 17;  // 7854
     71 
     72     if ((cmask3 & cmask1) != 0u)
     73         count *= 19; // not done
     74 
     75     if ((cmask1 | cmask3) == cmask4)
     76         count *= 23; // 180642
     77 
     78     if ((cmask1 ^ cmask4) == 0xA10u)
     79         count *= 27; // 4877334
     80 
     81     uint mask1 = 0x0A1u;
     82     uint mask2 = 0xA10u;
     83     uint mask3 = mask1 << 4;
     84     uint mask4 = 0xAB1u;
     85 
     86     if (mask3 == mask2)
     87         count *= 2;  // 9754668
     88 
     89     if ((mask3 & mask1) != 0u)
     90         count *= 3;  // not done
     91 
     92     if ((mask1 | mask3) == mask4)
     93         count *= 5;  // 48773340
     94 
     95     if ((mask1 ^ mask4) == 0xA10u)
     96         count *= 7;  // 341413380
     97 
     98     c += uvec4(count);
     99 
    100     #define UINT_MAX  4294967295u
    101     c.x += UINT_MAX;
    102 }
    103