#pragma OPENCL EXTENSION cl_khr_fp16 : enable
__kernel void E_8192_4_6_4(write_only image2d_t data0_786432, __global uchar* data1_393216, __global uchar* data2_393216, __global half* data3_24, __global half* data4_24) {
const sampler_t smp = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST;
  int idx0 = get_global_id(0); /* 8192 */
  half4 val0 = (*((__global half4*)((data3_24+0))));
  half4 val1 = (*((__global half4*)((data3_24+4))));
  half4 val2 = (*((__global half4*)((data3_24+8))));
  half4 val3 = (*((__global half4*)((data3_24+12))));
  half4 val4 = (*((__global half4*)((data3_24+16))));
  half4 val5 = (*((__global half4*)((data3_24+20))));
  half4 val6 = (*((__global half4*)((data4_24+0))));
  half4 val7 = (*((__global half4*)((data4_24+4))));
  half4 val8 = (*((__global half4*)((data4_24+8))));
  half4 val9 = (*((__global half4*)((data4_24+12))));
  half4 val10 = (*((__global half4*)((data4_24+16))));
  half4 val11 = (*((__global half4*)((data4_24+20))));
  int alu0 = (idx0<<2);
  uchar val12 = (*(data1_393216+alu0));
  uchar val13 = (*(data2_393216+alu0));
  int alu1 = (alu0+1);
  uchar val14 = (*(data1_393216+alu1));
  uchar val15 = (*(data2_393216+alu1));
  int alu2 = (alu0+2);
  uchar val16 = (*(data1_393216+alu2));
  uchar val17 = (*(data2_393216+alu2));
  int alu3 = (alu0+3);
  uchar val18 = (*(data1_393216+alu3));
  uchar val19 = (*(data2_393216+alu3));
  int alu4 = (alu0+32768);
  uchar val20 = (*(data1_393216+alu4));
  uchar val21 = (*(data2_393216+alu4));
  int alu5 = (alu0+32769);
  uchar val22 = (*(data1_393216+alu5));
  uchar val23 = (*(data2_393216+alu5));
  int alu6 = (alu0+32770);
  uchar val24 = (*(data1_393216+alu6));
  uchar val25 = (*(data2_393216+alu6));
  int alu7 = (alu0+32771);
  uchar val26 = (*(data1_393216+alu7));
  uchar val27 = (*(data2_393216+alu7));
  int alu8 = (alu0+65536);
  uchar val28 = (*(data1_393216+alu8));
  uchar val29 = (*(data2_393216+alu8));
  int alu9 = (alu0+65537);
  uchar val30 = (*(data1_393216+alu9));
  uchar val31 = (*(data2_393216+alu9));
  int alu10 = (alu0+65538);
  uchar val32 = (*(data1_393216+alu10));
  uchar val33 = (*(data2_393216+alu10));
  int alu11 = (alu0+65539);
  uchar val34 = (*(data1_393216+alu11));
  uchar val35 = (*(data2_393216+alu11));
  int alu12 = (alu0+98304);
  uchar val36 = (*(data1_393216+alu12));
  uchar val37 = (*(data2_393216+alu12));
  int alu13 = (alu0+98305);
  uchar val38 = (*(data1_393216+alu13));
  uchar val39 = (*(data2_393216+alu13));
  int alu14 = (alu0+98306);
  uchar val40 = (*(data1_393216+alu14));
  uchar val41 = (*(data2_393216+alu14));
  int alu15 = (alu0+98307);
  uchar val42 = (*(data1_393216+alu15));
  uchar val43 = (*(data2_393216+alu15));
  int alu16 = (alu0+131072);
  uchar val44 = (*(data1_393216+alu16));
  uchar val45 = (*(data2_393216+alu16));
  int alu17 = (alu0+131073);
  uchar val46 = (*(data1_393216+alu17));
  uchar val47 = (*(data2_393216+alu17));
  int alu18 = (alu0+131074);
  uchar val48 = (*(data1_393216+alu18));
  uchar val49 = (*(data2_393216+alu18));
  int alu19 = (alu0+131075);
  uchar val50 = (*(data1_393216+alu19));
  uchar val51 = (*(data2_393216+alu19));
  int alu20 = (alu0+163840);
  uchar val52 = (*(data1_393216+alu20));
  uchar val53 = (*(data2_393216+alu20));
  int alu21 = (alu0+163841);
  uchar val54 = (*(data1_393216+alu21));
  uchar val55 = (*(data2_393216+alu21));
  int alu22 = (alu0+163842);
  uchar val56 = (*(data1_393216+alu22));
  uchar val57 = (*(data2_393216+alu22));
  int alu23 = (alu0+163843);
  uchar val58 = (*(data1_393216+alu23));
  uchar val59 = (*(data2_393216+alu23));
  int alu24 = (alu0+196608);
  uchar val60 = (*(data1_393216+alu24));
  uchar val61 = (*(data2_393216+alu24));
  int alu25 = (alu0+196609);
  uchar val62 = (*(data1_393216+alu25));
  uchar val63 = (*(data2_393216+alu25));
  int alu26 = (alu0+196610);
  uchar val64 = (*(data1_393216+alu26));
  uchar val65 = (*(data2_393216+alu26));
  int alu27 = (alu0+196611);
  uchar val66 = (*(data1_393216+alu27));
  uchar val67 = (*(data2_393216+alu27));
  int alu28 = (alu0+229376);
  uchar val68 = (*(data1_393216+alu28));
  uchar val69 = (*(data2_393216+alu28));
  int alu29 = (alu0+229377);
  uchar val70 = (*(data1_393216+alu29));
  uchar val71 = (*(data2_393216+alu29));
  int alu30 = (alu0+229378);
  uchar val72 = (*(data1_393216+alu30));
  uchar val73 = (*(data2_393216+alu30));
  int alu31 = (alu0+229379);
  uchar val74 = (*(data1_393216+alu31));
  uchar val75 = (*(data2_393216+alu31));
  int alu32 = (alu0+262144);
  uchar val76 = (*(data1_393216+alu32));
  uchar val77 = (*(data2_393216+alu32));
  int alu33 = (alu0+262145);
  uchar val78 = (*(data1_393216+alu33));
  uchar val79 = (*(data2_393216+alu33));
  int alu34 = (alu0+262146);
  uchar val80 = (*(data1_393216+alu34));
  uchar val81 = (*(data2_393216+alu34));
  int alu35 = (alu0+262147);
  uchar val82 = (*(data1_393216+alu35));
  uchar val83 = (*(data2_393216+alu35));
  int alu36 = (alu0+294912);
  uchar val84 = (*(data1_393216+alu36));
  uchar val85 = (*(data2_393216+alu36));
  int alu37 = (alu0+294913);
  uchar val86 = (*(data1_393216+alu37));
  uchar val87 = (*(data2_393216+alu37));
  int alu38 = (alu0+294914);
  uchar val88 = (*(data1_393216+alu38));
  uchar val89 = (*(data2_393216+alu38));
  int alu39 = (alu0+294915);
  uchar val90 = (*(data1_393216+alu39));
  uchar val91 = (*(data2_393216+alu39));
  int alu40 = (alu0+327680);
  uchar val92 = (*(data1_393216+alu40));
  uchar val93 = (*(data2_393216+alu40));
  int alu41 = (alu0+327681);
  uchar val94 = (*(data1_393216+alu41));
  uchar val95 = (*(data2_393216+alu41));
  int alu42 = (alu0+327682);
  uchar val96 = (*(data1_393216+alu42));
  uchar val97 = (*(data2_393216+alu42));
  int alu43 = (alu0+327683);
  uchar val98 = (*(data1_393216+alu43));
  uchar val99 = (*(data2_393216+alu43));
  int alu44 = (alu0+360448);
  uchar val100 = (*(data1_393216+alu44));
  uchar val101 = (*(data2_393216+alu44));
  int alu45 = (alu0+360449);
  uchar val102 = (*(data1_393216+alu45));
  uchar val103 = (*(data2_393216+alu45));
  int alu46 = (alu0+360450);
  uchar val104 = (*(data1_393216+alu46));
  uchar val105 = (*(data2_393216+alu46));
  int alu47 = (alu0+360451);
  uchar val106 = (*(data1_393216+alu47));
  uchar val107 = (*(data2_393216+alu47));
  half alu48 = (1/val6.x);
  half alu49 = (1/val7.x);
  half alu50 = (1/val8.x);
  half alu51 = (1/val9.x);
  half alu52 = (1/val10.x);
  half alu53 = (1/val11.x);
  half alu54 = (1/val6.y);
  half alu55 = (1/val7.y);
  half alu56 = (1/val8.y);
  half alu57 = (1/val9.y);
  half alu58 = (1/val10.y);
  half alu59 = (1/val11.y);
  half alu60 = (1/val6.z);
  half alu61 = (1/val7.z);
  half alu62 = (1/val8.z);
  half alu63 = (1/val9.z);
  half alu64 = (1/val10.z);
  half alu65 = (1/val11.z);
  half alu66 = (1/val6.w);
  half alu67 = (1/val7.w);
  half alu68 = (1/val8.w);
  half alu69 = (1/val9.w);
  half alu70 = (1/val10.w);
  half alu71 = (1/val11.w);
  int alu72 = (idx0>>6);
  int alu73 = ((idx0&63)*24);
  write_imagef(data0_786432, (int2)((alu73+6),alu72), (float4)(((float)(((((half)(val14))-val0.x)*alu48))),((float)(((((half)(val22))-val0.y)*alu54))),((float)(((((half)(val30))-val0.z)*alu60))),((float)(((((half)(val38))-val0.w)*alu66)))));
  write_imagef(data0_786432, (int2)((alu73+12),alu72), (float4)(((float)(((((half)(val16))-val0.x)*alu48))),((float)(((((half)(val24))-val0.y)*alu54))),((float)(((((half)(val32))-val0.z)*alu60))),((float)(((((half)(val40))-val0.w)*alu66)))));
  write_imagef(data0_786432, (int2)((alu73+18),alu72), (float4)(((float)(((((half)(val18))-val0.x)*alu48))),((float)(((((half)(val26))-val0.y)*alu54))),((float)(((((half)(val34))-val0.z)*alu60))),((float)(((((half)(val42))-val0.w)*alu66)))));
  write_imagef(data0_786432, (int2)((alu73+1),alu72), (float4)(((float)(((((half)(val44))-val1.x)*alu49))),((float)(((((half)(val52))-val1.y)*alu55))),((float)(((((half)(val60))-val1.z)*alu61))),((float)(((((half)(val68))-val1.w)*alu67)))));
  write_imagef(data0_786432, (int2)((alu73+7),alu72), (float4)(((float)(((((half)(val46))-val1.x)*alu49))),((float)(((((half)(val54))-val1.y)*alu55))),((float)(((((half)(val62))-val1.z)*alu61))),((float)(((((half)(val70))-val1.w)*alu67)))));
  write_imagef(data0_786432, (int2)((alu73+13),alu72), (float4)(((float)(((((half)(val48))-val1.x)*alu49))),((float)(((((half)(val56))-val1.y)*alu55))),((float)(((((half)(val64))-val1.z)*alu61))),((float)(((((half)(val72))-val1.w)*alu67)))));
  write_imagef(data0_786432, (int2)((alu73+19),alu72), (float4)(((float)(((((half)(val50))-val1.x)*alu49))),((float)(((((half)(val58))-val1.y)*alu55))),((float)(((((half)(val66))-val1.z)*alu61))),((float)(((((half)(val74))-val1.w)*alu67)))));
  write_imagef(data0_786432, (int2)((alu73+2),alu72), (float4)(((float)(((((half)(val76))-val2.x)*alu50))),((float)(((((half)(val84))-val2.y)*alu56))),((float)(((((half)(val92))-val2.z)*alu62))),((float)(((((half)(val100))-val2.w)*alu68)))));
  write_imagef(data0_786432, (int2)((alu73+8),alu72), (float4)(((float)(((((half)(val78))-val2.x)*alu50))),((float)(((((half)(val86))-val2.y)*alu56))),((float)(((((half)(val94))-val2.z)*alu62))),((float)(((((half)(val102))-val2.w)*alu68)))));
  write_imagef(data0_786432, (int2)((alu73+14),alu72), (float4)(((float)(((((half)(val80))-val2.x)*alu50))),((float)(((((half)(val88))-val2.y)*alu56))),((float)(((((half)(val96))-val2.z)*alu62))),((float)(((((half)(val104))-val2.w)*alu68)))));
  write_imagef(data0_786432, (int2)((alu73+20),alu72), (float4)(((float)(((((half)(val82))-val2.x)*alu50))),((float)(((((half)(val90))-val2.y)*alu56))),((float)(((((half)(val98))-val2.z)*alu62))),((float)(((((half)(val106))-val2.w)*alu68)))));
  write_imagef(data0_786432, (int2)(alu73,alu72), (float4)(((float)(((((half)(val12))-val0.x)*alu48))),((float)(((((half)(val20))-val0.y)*alu54))),((float)(((((half)(val28))-val0.z)*alu60))),((float)(((((half)(val36))-val0.w)*alu66)))));
  write_imagef(data0_786432, (int2)((alu73+9),alu72), (float4)(((float)(((((half)(val15))-val3.x)*alu51))),((float)(((((half)(val23))-val3.y)*alu57))),((float)(((((half)(val31))-val3.z)*alu63))),((float)(((((half)(val39))-val3.w)*alu69)))));
  write_imagef(data0_786432, (int2)((alu73+15),alu72), (float4)(((float)(((((half)(val17))-val3.x)*alu51))),((float)(((((half)(val25))-val3.y)*alu57))),((float)(((((half)(val33))-val3.z)*alu63))),((float)(((((half)(val41))-val3.w)*alu69)))));
  write_imagef(data0_786432, (int2)((alu73+21),alu72), (float4)(((float)(((((half)(val19))-val3.x)*alu51))),((float)(((((half)(val27))-val3.y)*alu57))),((float)(((((half)(val35))-val3.z)*alu63))),((float)(((((half)(val43))-val3.w)*alu69)))));
  write_imagef(data0_786432, (int2)((alu73+4),alu72), (float4)(((float)(((((half)(val45))-val4.x)*alu52))),((float)(((((half)(val53))-val4.y)*alu58))),((float)(((((half)(val61))-val4.z)*alu64))),((float)(((((half)(val69))-val4.w)*alu70)))));
  write_imagef(data0_786432, (int2)((alu73+10),alu72), (float4)(((float)(((((half)(val47))-val4.x)*alu52))),((float)(((((half)(val55))-val4.y)*alu58))),((float)(((((half)(val63))-val4.z)*alu64))),((float)(((((half)(val71))-val4.w)*alu70)))));
  write_imagef(data0_786432, (int2)((alu73+16),alu72), (float4)(((float)(((((half)(val49))-val4.x)*alu52))),((float)(((((half)(val57))-val4.y)*alu58))),((float)(((((half)(val65))-val4.z)*alu64))),((float)(((((half)(val73))-val4.w)*alu70)))));
  write_imagef(data0_786432, (int2)((alu73+22),alu72), (float4)(((float)(((((half)(val51))-val4.x)*alu52))),((float)(((((half)(val59))-val4.y)*alu58))),((float)(((((half)(val67))-val4.z)*alu64))),((float)(((((half)(val75))-val4.w)*alu70)))));
  write_imagef(data0_786432, (int2)((alu73+5),alu72), (float4)(((float)(((((half)(val77))-val5.x)*alu53))),((float)(((((half)(val85))-val5.y)*alu59))),((float)(((((half)(val93))-val5.z)*alu65))),((float)(((((half)(val101))-val5.w)*alu71)))));
  write_imagef(data0_786432, (int2)((alu73+11),alu72), (float4)(((float)(((((half)(val79))-val5.x)*alu53))),((float)(((((half)(val87))-val5.y)*alu59))),((float)(((((half)(val95))-val5.z)*alu65))),((float)(((((half)(val103))-val5.w)*alu71)))));
  write_imagef(data0_786432, (int2)((alu73+17),alu72), (float4)(((float)(((((half)(val81))-val5.x)*alu53))),((float)(((((half)(val89))-val5.y)*alu59))),((float)(((((half)(val97))-val5.z)*alu65))),((float)(((((half)(val105))-val5.w)*alu71)))));
  write_imagef(data0_786432, (int2)((alu73+23),alu72), (float4)(((float)(((((half)(val83))-val5.x)*alu53))),((float)(((((half)(val91))-val5.y)*alu59))),((float)(((((half)(val99))-val5.z)*alu65))),((float)(((((half)(val107))-val5.w)*alu71)))));
  write_imagef(data0_786432, (int2)((alu73+3),alu72), (float4)(((float)(((((half)(val13))-val3.x)*alu51))),((float)(((((half)(val21))-val3.y)*alu57))),((float)(((((half)(val29))-val3.z)*alu63))),((float)(((((half)(val37))-val3.w)*alu69)))));
}

__kernel void r_64_32_16_4_4_6_3_3_4(write_only image2d_t data0_524288, read_only image2d_t data1_786432, read_only image2d_t data2_13824, __global float* data3_64) {
  float acc0[16];
  int idx0 = get_global_id(0); /* 16 */
  int idx1 = get_global_id(1); /* 32 */
  int idx2 = get_global_id(2); /* 64 */
  *(acc0+0) = 0.0f;
  *(acc0+1) = 0.0f;
  *(acc0+2) = 0.0f;
  *(acc0+3) = 0.0f;
  *(acc0+4) = 0.0f;
  *(acc0+5) = 0.0f;
  *(acc0+6) = 0.0f;
  *(acc0+7) = 0.0f;
  *(acc0+8) = 0.0f;
  *(acc0+9) = 0.0f;
  *(acc0+10) = 0.0f;
  *(acc0+11) = 0.0f;
  *(acc0+12) = 0.0f;
  *(acc0+13) = 0.0f;
  *(acc0+14) = 0.0f;
  *(acc0+15) = 0.0f;
  for (int ridx1007 = 0; ridx1007 < 6; ridx1007++) {
    for (int ridx1009 = 0; ridx1009 < 3; ridx1009++) {
      int alu16 = ((idx2<<1)+ridx1009+-1);
      for (int ridx1010 = 0; ridx1010 < 3; ridx1010++) {
        int alu17 = ((idx1*48)+ridx1007+(ridx1010*6));
        float4 val0 = read_imagef(data1_786432, smp, (int2)((alu17+-6),alu16));
        float4 val1 = read_imagef(data1_786432, smp, (int2)((alu17+6),alu16));
        float4 val2 = read_imagef(data1_786432, smp, (int2)((alu17+18),alu16));
        float4 val3 = read_imagef(data1_786432, smp, (int2)((alu17+30),alu16));
        int alu18 = ((ridx1007*12)+(ridx1009*72)+(ridx1010<<2));
        float4 val4 = read_imagef(data2_13824, smp, (int2)(alu18,idx0));
        float4 val5 = read_imagef(data2_13824, smp, (int2)((alu18+1),idx0));
        float4 val6 = read_imagef(data2_13824, smp, (int2)((alu18+2),idx0));
        float4 val7 = read_imagef(data2_13824, smp, (int2)((alu18+3),idx0));
        *(acc0+0) = ((*(acc0+0))+(val0.x*val4.x)+(val0.y*val5.x)+(val0.z*val6.x)+(val0.w*val7.x));
        *(acc0+4) = ((*(acc0+4))+(val0.x*val4.y)+(val0.y*val5.y)+(val0.z*val6.y)+(val0.w*val7.y));
        *(acc0+8) = ((*(acc0+8))+(val0.x*val4.z)+(val0.y*val5.z)+(val0.z*val6.z)+(val0.w*val7.z));
        *(acc0+12) = ((*(acc0+12))+(val0.x*val4.w)+(val0.y*val5.w)+(val0.z*val6.w)+(val0.w*val7.w));
        *(acc0+1) = ((*(acc0+1))+(val1.x*val4.x)+(val1.y*val5.x)+(val1.z*val6.x)+(val1.w*val7.x));
        *(acc0+5) = ((*(acc0+5))+(val1.x*val4.y)+(val1.y*val5.y)+(val1.z*val6.y)+(val1.w*val7.y));
        *(acc0+9) = ((*(acc0+9))+(val1.x*val4.z)+(val1.y*val5.z)+(val1.z*val6.z)+(val1.w*val7.z));
        *(acc0+13) = ((*(acc0+13))+(val1.x*val4.w)+(val1.y*val5.w)+(val1.z*val6.w)+(val1.w*val7.w));
        *(acc0+2) = ((*(acc0+2))+(val2.x*val4.x)+(val2.y*val5.x)+(val2.z*val6.x)+(val2.w*val7.x));
        *(acc0+6) = ((*(acc0+6))+(val2.x*val4.y)+(val2.y*val5.y)+(val2.z*val6.y)+(val2.w*val7.y));
        *(acc0+10) = ((*(acc0+10))+(val2.x*val4.z)+(val2.y*val5.z)+(val2.z*val6.z)+(val2.w*val7.z));
        *(acc0+14) = ((*(acc0+14))+(val2.x*val4.w)+(val2.y*val5.w)+(val2.z*val6.w)+(val2.w*val7.w));
        *(acc0+3) = ((*(acc0+3))+(val3.x*val4.x)+(val3.y*val5.x)+(val3.z*val6.x)+(val3.w*val7.x));
        *(acc0+7) = ((*(acc0+7))+(val3.x*val4.y)+(val3.y*val5.y)+(val3.z*val6.y)+(val3.w*val7.y));
        *(acc0+11) = ((*(acc0+11))+(val3.x*val4.z)+(val3.y*val5.z)+(val3.z*val6.z)+(val3.w*val7.z));
        *(acc0+15) = ((*(acc0+15))+(val3.x*val4.w)+(val3.y*val5.w)+(val3.z*val6.w)+(val3.w*val7.w));
      }
    }
  }
  float4 val8 = (*((__global float4*)((data3_64+(idx0<<2)))));
  float alu38 = ((*(acc0+0))+val8.x);
  float alu39 = ((*(acc0+1))+val8.x);
  float alu40 = ((*(acc0+2))+val8.x);
  float alu41 = ((*(acc0+3))+val8.x);
  float alu42 = ((*(acc0+4))+val8.y);
  float alu43 = ((*(acc0+5))+val8.y);
  float alu44 = ((*(acc0+6))+val8.y);
  float alu45 = ((*(acc0+7))+val8.y);
  float alu46 = ((*(acc0+8))+val8.z);
  float alu47 = ((*(acc0+9))+val8.z);
  float alu48 = ((*(acc0+10))+val8.z);
  float alu49 = ((*(acc0+11))+val8.z);
  float alu50 = ((*(acc0+12))+val8.w);
  float alu51 = ((*(acc0+13))+val8.w);
  float alu52 = ((*(acc0+14))+val8.w);
  float alu53 = ((*(acc0+15))+val8.w);
  int alu54 = (idx0+(idx1<<6));
  write_imagef(data0_524288, (int2)(alu54,idx2), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_524288, (int2)((alu54+16),idx2), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
  write_imagef(data0_524288, (int2)((alu54+32),idx2), (float4)(((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48),((1/(1.0f+exp2(((alu52+(0.044708251953125f*alu52*alu52*alu52))*-2.3021129851685216f))))*alu52)));
  write_imagef(data0_524288, (int2)((alu54+48),idx2), (float4)(((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49),((1/(1.0f+exp2(((alu53+(0.044708251953125f*alu53*alu53*alu53))*-2.3021129851685216f))))*alu53)));
}

__kernel void r_32_16_16_4_4_3_3(write_only image2d_t data0_131072, read_only image2d_t data1_524288, read_only image2d_t data2_576, __global float* data3_64) {
  int idx1 = get_global_id(1); /* 16 */
  int idx2 = get_global_id(2); /* 32 */
  float4 val0 = read_imagef(data2_576, smp, (int2)(0,idx0));
  float4 val1 = read_imagef(data2_576, smp, (int2)(1,idx0));
  float4 val2 = read_imagef(data2_576, smp, (int2)(3,idx0));
  float4 val3 = read_imagef(data2_576, smp, (int2)(2,idx0));
  float4 val4 = read_imagef(data2_576, smp, (int2)(4,idx0));
  float4 val5 = read_imagef(data2_576, smp, (int2)(5,idx0));
  float4 val6 = read_imagef(data2_576, smp, (int2)(6,idx0));
  float4 val7 = read_imagef(data2_576, smp, (int2)(7,idx0));
  float4 val8 = read_imagef(data2_576, smp, (int2)(8,idx0));
  float4 val9 = (*((__global float4*)((data3_64+(idx0<<2)))));
  int alu0 = (idx0+(idx1<<7));
  int alu1 = (alu0+-16);
  int alu2 = (alu0+16);
  int alu3 = (alu0+32);
  int alu4 = (alu0+48);
  int alu5 = (alu0+64);
  int alu6 = (alu0+80);
  int alu7 = (alu0+96);
  int alu8 = (alu0+112);
  int alu9 = (idx2<<1);
  float4 val10 = read_imagef(data1_524288, smp, (int2)(alu1,alu9));
  float4 val11 = read_imagef(data1_524288, smp, (int2)(alu4,alu9));
  float4 val12 = read_imagef(data1_524288, smp, (int2)(alu2,alu9));
  float4 val13 = read_imagef(data1_524288, smp, (int2)(alu0,alu9));
  float4 val14 = read_imagef(data1_524288, smp, (int2)(alu6,alu9));
  float4 val15 = read_imagef(data1_524288, smp, (int2)(alu3,alu9));
  float4 val16 = read_imagef(data1_524288, smp, (int2)(alu5,alu9));
  float4 val17 = read_imagef(data1_524288, smp, (int2)(alu7,alu9));
  float4 val18 = read_imagef(data1_524288, smp, (int2)(alu8,alu9));
  int alu10 = (alu9+-1);
  float4 val19 = read_imagef(data1_524288, smp, (int2)(alu1,alu10));
  float4 val20 = read_imagef(data1_524288, smp, (int2)(alu0,alu10));
  float4 val21 = read_imagef(data1_524288, smp, (int2)(alu2,alu10));
  float4 val22 = read_imagef(data1_524288, smp, (int2)(alu8,alu10));
  float4 val23 = read_imagef(data1_524288, smp, (int2)(alu3,alu10));
  float4 val24 = read_imagef(data1_524288, smp, (int2)(alu4,alu10));
  float4 val25 = read_imagef(data1_524288, smp, (int2)(alu5,alu10));
  float4 val26 = read_imagef(data1_524288, smp, (int2)(alu6,alu10));
  float4 val27 = read_imagef(data1_524288, smp, (int2)(alu7,alu10));
  int alu11 = (alu9+1);
  float4 val28 = read_imagef(data1_524288, smp, (int2)(alu0,alu11));
  float4 val29 = read_imagef(data1_524288, smp, (int2)(alu1,alu11));
  float4 val30 = read_imagef(data1_524288, smp, (int2)(alu2,alu11));
  float4 val31 = read_imagef(data1_524288, smp, (int2)(alu4,alu11));
  float4 val32 = read_imagef(data1_524288, smp, (int2)(alu6,alu11));
  float4 val33 = read_imagef(data1_524288, smp, (int2)(alu3,alu11));
  float4 val34 = read_imagef(data1_524288, smp, (int2)(alu5,alu11));
  float4 val35 = read_imagef(data1_524288, smp, (int2)(alu7,alu11));
  float4 val36 = read_imagef(data1_524288, smp, (int2)(alu8,alu11));
  float alu12 = ((val19.x*val0.x)+(val20.x*val1.x)+(val21.x*val3.x)+(val10.x*val2.x)+(val13.x*val4.x)+(val12.x*val5.x)+(val29.x*val6.x)+(val28.x*val7.x)+(val30.x*val8.x)+val9.x);
  float alu13 = ((val21.x*val0.x)+(val23.x*val1.x)+(val24.x*val3.x)+(val12.x*val2.x)+(val15.x*val4.x)+(val11.x*val5.x)+(val30.x*val6.x)+(val33.x*val7.x)+(val31.x*val8.x)+val9.x);
  float alu14 = ((val24.x*val0.x)+(val25.x*val1.x)+(val26.x*val3.x)+(val11.x*val2.x)+(val16.x*val4.x)+(val14.x*val5.x)+(val31.x*val6.x)+(val34.x*val7.x)+(val32.x*val8.x)+val9.x);
  float alu15 = ((val26.x*val0.x)+(val27.x*val1.x)+(val22.x*val3.x)+(val14.x*val2.x)+(val17.x*val4.x)+(val18.x*val5.x)+(val32.x*val6.x)+(val35.x*val7.x)+(val36.x*val8.x)+val9.x);
  float alu16 = ((val19.y*val0.y)+(val20.y*val1.y)+(val21.y*val3.y)+(val10.y*val2.y)+(val13.y*val4.y)+(val12.y*val5.y)+(val29.y*val6.y)+(val28.y*val7.y)+(val30.y*val8.y)+val9.y);
  float alu17 = ((val21.y*val0.y)+(val23.y*val1.y)+(val24.y*val3.y)+(val12.y*val2.y)+(val15.y*val4.y)+(val11.y*val5.y)+(val30.y*val6.y)+(val33.y*val7.y)+(val31.y*val8.y)+val9.y);
  float alu18 = ((val24.y*val0.y)+(val25.y*val1.y)+(val26.y*val3.y)+(val11.y*val2.y)+(val16.y*val4.y)+(val14.y*val5.y)+(val31.y*val6.y)+(val34.y*val7.y)+(val32.y*val8.y)+val9.y);
  float alu19 = ((val26.y*val0.y)+(val27.y*val1.y)+(val22.y*val3.y)+(val14.y*val2.y)+(val17.y*val4.y)+(val18.y*val5.y)+(val32.y*val6.y)+(val35.y*val7.y)+(val36.y*val8.y)+val9.y);
  float alu20 = ((val19.z*val0.z)+(val20.z*val1.z)+(val21.z*val3.z)+(val10.z*val2.z)+(val13.z*val4.z)+(val12.z*val5.z)+(val29.z*val6.z)+(val28.z*val7.z)+(val30.z*val8.z)+val9.z);
  float alu21 = ((val21.z*val0.z)+(val23.z*val1.z)+(val24.z*val3.z)+(val12.z*val2.z)+(val15.z*val4.z)+(val11.z*val5.z)+(val30.z*val6.z)+(val33.z*val7.z)+(val31.z*val8.z)+val9.z);
  float alu22 = ((val24.z*val0.z)+(val25.z*val1.z)+(val26.z*val3.z)+(val11.z*val2.z)+(val16.z*val4.z)+(val14.z*val5.z)+(val31.z*val6.z)+(val34.z*val7.z)+(val32.z*val8.z)+val9.z);
  float alu23 = ((val26.z*val0.z)+(val27.z*val1.z)+(val22.z*val3.z)+(val14.z*val2.z)+(val17.z*val4.z)+(val18.z*val5.z)+(val32.z*val6.z)+(val35.z*val7.z)+(val36.z*val8.z)+val9.z);
  float alu24 = ((val19.w*val0.w)+(val20.w*val1.w)+(val21.w*val3.w)+(val10.w*val2.w)+(val13.w*val4.w)+(val12.w*val5.w)+(val29.w*val6.w)+(val28.w*val7.w)+(val30.w*val8.w)+val9.w);
  float alu25 = ((val21.w*val0.w)+(val23.w*val1.w)+(val24.w*val3.w)+(val12.w*val2.w)+(val15.w*val4.w)+(val11.w*val5.w)+(val30.w*val6.w)+(val33.w*val7.w)+(val31.w*val8.w)+val9.w);
  float alu26 = ((val24.w*val0.w)+(val25.w*val1.w)+(val26.w*val3.w)+(val11.w*val2.w)+(val16.w*val4.w)+(val14.w*val5.w)+(val31.w*val6.w)+(val34.w*val7.w)+(val32.w*val8.w)+val9.w);
  float alu27 = ((val26.w*val0.w)+(val27.w*val1.w)+(val22.w*val3.w)+(val14.w*val2.w)+(val17.w*val4.w)+(val18.w*val5.w)+(val32.w*val6.w)+(val35.w*val7.w)+(val36.w*val8.w)+val9.w);
  int alu28 = (idx0+(idx1<<6));
  write_imagef(data0_131072, (int2)(alu28,idx2), (float4)(((1/(1.0f+exp2(((alu12+(0.044708251953125f*alu12*alu12*alu12))*-2.3021129851685216f))))*alu12),((1/(1.0f+exp2(((alu16+(0.044708251953125f*alu16*alu16*alu16))*-2.3021129851685216f))))*alu16),((1/(1.0f+exp2(((alu20+(0.044708251953125f*alu20*alu20*alu20))*-2.3021129851685216f))))*alu20),((1/(1.0f+exp2(((alu24+(0.044708251953125f*alu24*alu24*alu24))*-2.3021129851685216f))))*alu24)));
  write_imagef(data0_131072, (int2)((alu28+16),idx2), (float4)(((1/(1.0f+exp2(((alu13+(0.044708251953125f*alu13*alu13*alu13))*-2.3021129851685216f))))*alu13),((1/(1.0f+exp2(((alu17+(0.044708251953125f*alu17*alu17*alu17))*-2.3021129851685216f))))*alu17),((1/(1.0f+exp2(((alu21+(0.044708251953125f*alu21*alu21*alu21))*-2.3021129851685216f))))*alu21),((1/(1.0f+exp2(((alu25+(0.044708251953125f*alu25*alu25*alu25))*-2.3021129851685216f))))*alu25)));
  write_imagef(data0_131072, (int2)((alu28+32),idx2), (float4)(((1/(1.0f+exp2(((alu14+(0.044708251953125f*alu14*alu14*alu14))*-2.3021129851685216f))))*alu14),((1/(1.0f+exp2(((alu18+(0.044708251953125f*alu18*alu18*alu18))*-2.3021129851685216f))))*alu18),((1/(1.0f+exp2(((alu22+(0.044708251953125f*alu22*alu22*alu22))*-2.3021129851685216f))))*alu22),((1/(1.0f+exp2(((alu26+(0.044708251953125f*alu26*alu26*alu26))*-2.3021129851685216f))))*alu26)));
  write_imagef(data0_131072, (int2)((alu28+48),idx2), (float4)(((1/(1.0f+exp2(((alu15+(0.044708251953125f*alu15*alu15*alu15))*-2.3021129851685216f))))*alu15),((1/(1.0f+exp2(((alu19+(0.044708251953125f*alu19*alu19*alu19))*-2.3021129851685216f))))*alu19),((1/(1.0f+exp2(((alu23+(0.044708251953125f*alu23*alu23*alu23))*-2.3021129851685216f))))*alu23),((1/(1.0f+exp2(((alu27+(0.044708251953125f*alu27*alu27*alu27))*-2.3021129851685216f))))*alu27)));
}

__kernel void r_512_16_4_4_16_4(write_only image2d_t data0_131072, read_only image2d_t data1_131072, read_only image2d_t data2_4096, __global float* data3_64) {
  int idx1 = get_global_id(1); /* 512 */
  int alu0 = (idx1>>4);
  int alu1 = (idx1<<6);
  for (int ridx1007 = 0; ridx1007 < 16; ridx1007++) {
    int alu18 = (alu1+ridx1007);
    int alu19 = (ridx1007<<2);
    float4 val0 = read_imagef(data2_4096, smp, (int2)(alu19,idx0));
    float4 val1 = read_imagef(data2_4096, smp, (int2)((alu19+1),idx0));
    float4 val2 = read_imagef(data2_4096, smp, (int2)((alu19+2),idx0));
    float4 val3 = read_imagef(data2_4096, smp, (int2)((alu19+3),idx0));
    float4 val4 = read_imagef(data1_131072, smp, (int2)(((alu18+16)&1023),alu0));
    float4 val5 = read_imagef(data1_131072, smp, (int2)(((alu18+32)&1023),alu0));
    float4 val6 = read_imagef(data1_131072, smp, (int2)(((alu18+48)&1023),alu0));
    float4 val7 = read_imagef(data1_131072, smp, (int2)((alu18&1023),alu0));
    *(acc0+1) = ((*(acc0+1))+(val4.x*val0.x)+(val4.y*val1.x)+(val4.z*val2.x)+(val4.w*val3.x));
    *(acc0+5) = ((*(acc0+5))+(val4.x*val0.y)+(val4.y*val1.y)+(val4.z*val2.y)+(val4.w*val3.y));
    *(acc0+9) = ((*(acc0+9))+(val4.x*val0.z)+(val4.y*val1.z)+(val4.z*val2.z)+(val4.w*val3.z));
    *(acc0+13) = ((*(acc0+13))+(val4.x*val0.w)+(val4.y*val1.w)+(val4.z*val2.w)+(val4.w*val3.w));
    *(acc0+2) = ((*(acc0+2))+(val5.x*val0.x)+(val5.y*val1.x)+(val5.z*val2.x)+(val5.w*val3.x));
    *(acc0+6) = ((*(acc0+6))+(val5.x*val0.y)+(val5.y*val1.y)+(val5.z*val2.y)+(val5.w*val3.y));
    *(acc0+10) = ((*(acc0+10))+(val5.x*val0.z)+(val5.y*val1.z)+(val5.z*val2.z)+(val5.w*val3.z));
    *(acc0+14) = ((*(acc0+14))+(val5.x*val0.w)+(val5.y*val1.w)+(val5.z*val2.w)+(val5.w*val3.w));
    *(acc0+3) = ((*(acc0+3))+(val6.x*val0.x)+(val6.y*val1.x)+(val6.z*val2.x)+(val6.w*val3.x));
    *(acc0+7) = ((*(acc0+7))+(val6.x*val0.y)+(val6.y*val1.y)+(val6.z*val2.y)+(val6.w*val3.y));
    *(acc0+11) = ((*(acc0+11))+(val6.x*val0.z)+(val6.y*val1.z)+(val6.z*val2.z)+(val6.w*val3.z));
    *(acc0+15) = ((*(acc0+15))+(val6.x*val0.w)+(val6.y*val1.w)+(val6.z*val2.w)+(val6.w*val3.w));
    *(acc0+0) = ((*(acc0+0))+(val7.x*val0.x)+(val7.y*val1.x)+(val7.z*val2.x)+(val7.w*val3.x));
    *(acc0+4) = ((*(acc0+4))+(val7.x*val0.y)+(val7.y*val1.y)+(val7.z*val2.y)+(val7.w*val3.y));
    *(acc0+8) = ((*(acc0+8))+(val7.x*val0.z)+(val7.y*val1.z)+(val7.z*val2.z)+(val7.w*val3.z));
    *(acc0+12) = ((*(acc0+12))+(val7.x*val0.w)+(val7.y*val1.w)+(val7.z*val2.w)+(val7.w*val3.w));
  }
  int alu37 = (idx0+alu1);
  write_imagef(data0_131072, (int2)((alu37&1023),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_131072, (int2)(((alu37+16)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
  write_imagef(data0_131072, (int2)(((alu37+32)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48),((1/(1.0f+exp2(((alu52+(0.044708251953125f*alu52*alu52*alu52))*-2.3021129851685216f))))*alu52)));
  write_imagef(data0_131072, (int2)(((alu37+48)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49),((1/(1.0f+exp2(((alu53+(0.044708251953125f*alu53*alu53*alu53))*-2.3021129851685216f))))*alu53)));
}

__kernel void r_32_16_16_4_4_3_3n1(write_only image2d_t data0_131072, read_only image2d_t data1_131072, read_only image2d_t data2_576, __global float* data3_64) {
  float4 val0 = read_imagef(data2_576, smp, (int2)(5,idx0));
  float4 val1 = read_imagef(data2_576, smp, (int2)(0,idx0));
  float4 val2 = read_imagef(data2_576, smp, (int2)(1,idx0));
  float4 val4 = read_imagef(data2_576, smp, (int2)(3,idx0));
  float4 val5 = read_imagef(data2_576, smp, (int2)(4,idx0));
  int alu0 = (idx2+-1);
  int alu1 = (idx2+1);
  int alu2 = (idx0+(idx1<<6));
  int2 cast0 = (int2)(alu2,idx2);
  float4 val10 = read_imagef(data1_131072, smp, (int2)(alu2,alu1));
  float4 val11 = read_imagef(data1_131072, smp, (int2)(alu2,alu0));
  float4 val12 = read_imagef(data1_131072, smp, cast0);
  int alu3 = (alu2+-16);
  float4 val13 = read_imagef(data1_131072, smp, (int2)(alu3,alu0));
  float4 val14 = read_imagef(data1_131072, smp, (int2)(alu3,idx2));
  float4 val15 = read_imagef(data1_131072, smp, (int2)(alu3,alu1));
  int alu4 = (alu2+16);
  int2 cast1 = (int2)(alu4,idx2);
  float4 val16 = read_imagef(data1_131072, smp, (int2)(alu4,alu0));
  float4 val17 = read_imagef(data1_131072, smp, (int2)(alu4,alu1));
  float4 val18 = read_imagef(data1_131072, smp, cast1);
  int alu5 = (alu2+32);
  int2 cast2 = (int2)(alu5,idx2);
  float4 val19 = read_imagef(data1_131072, smp, (int2)(alu5,alu0));
  float4 val20 = read_imagef(data1_131072, smp, (int2)(alu5,alu1));
  float4 val21 = read_imagef(data1_131072, smp, cast2);
  int alu6 = (alu2+48);
  int2 cast3 = (int2)(alu6,idx2);
  float4 val22 = read_imagef(data1_131072, smp, (int2)(alu6,alu0));
  float4 val23 = read_imagef(data1_131072, smp, cast3);
  float4 val24 = read_imagef(data1_131072, smp, (int2)(alu6,alu1));
  int alu7 = (alu2+64);
  float4 val25 = read_imagef(data1_131072, smp, (int2)(alu7,idx2));
  float4 val26 = read_imagef(data1_131072, smp, (int2)(alu7,alu0));
  float4 val27 = read_imagef(data1_131072, smp, (int2)(alu7,alu1));
  write_imagef(data0_131072, cast0, (float4)(((val13.x*val1.x)+(val11.x*val2.x)+(val16.x*val3.x)+(val14.x*val4.x)+(val12.x*val5.x)+(val18.x*val0.x)+(val15.x*val6.x)+(val10.x*val7.x)+(val17.x*val8.x)+val9.x),((val13.y*val1.y)+(val11.y*val2.y)+(val16.y*val3.y)+(val14.y*val4.y)+(val12.y*val5.y)+(val18.y*val0.y)+(val15.y*val6.y)+(val10.y*val7.y)+(val17.y*val8.y)+val9.y),((val13.z*val1.z)+(val11.z*val2.z)+(val16.z*val3.z)+(val14.z*val4.z)+(val12.z*val5.z)+(val18.z*val0.z)+(val15.z*val6.z)+(val10.z*val7.z)+(val17.z*val8.z)+val9.z),((val13.w*val1.w)+(val11.w*val2.w)+(val16.w*val3.w)+(val14.w*val4.w)+(val12.w*val5.w)+(val18.w*val0.w)+(val15.w*val6.w)+(val10.w*val7.w)+(val17.w*val8.w)+val9.w)));
  write_imagef(data0_131072, cast1, (float4)(((val11.x*val1.x)+(val16.x*val2.x)+(val19.x*val3.x)+(val12.x*val4.x)+(val18.x*val5.x)+(val21.x*val0.x)+(val10.x*val6.x)+(val17.x*val7.x)+(val20.x*val8.x)+val9.x),((val11.y*val1.y)+(val16.y*val2.y)+(val19.y*val3.y)+(val12.y*val4.y)+(val18.y*val5.y)+(val21.y*val0.y)+(val10.y*val6.y)+(val17.y*val7.y)+(val20.y*val8.y)+val9.y),((val11.z*val1.z)+(val16.z*val2.z)+(val19.z*val3.z)+(val12.z*val4.z)+(val18.z*val5.z)+(val21.z*val0.z)+(val10.z*val6.z)+(val17.z*val7.z)+(val20.z*val8.z)+val9.z),((val11.w*val1.w)+(val16.w*val2.w)+(val19.w*val3.w)+(val12.w*val4.w)+(val18.w*val5.w)+(val21.w*val0.w)+(val10.w*val6.w)+(val17.w*val7.w)+(val20.w*val8.w)+val9.w)));
  write_imagef(data0_131072, cast2, (float4)(((val16.x*val1.x)+(val19.x*val2.x)+(val22.x*val3.x)+(val18.x*val4.x)+(val21.x*val5.x)+(val23.x*val0.x)+(val17.x*val6.x)+(val20.x*val7.x)+(val24.x*val8.x)+val9.x),((val16.y*val1.y)+(val19.y*val2.y)+(val22.y*val3.y)+(val18.y*val4.y)+(val21.y*val5.y)+(val23.y*val0.y)+(val17.y*val6.y)+(val20.y*val7.y)+(val24.y*val8.y)+val9.y),((val16.z*val1.z)+(val19.z*val2.z)+(val22.z*val3.z)+(val18.z*val4.z)+(val21.z*val5.z)+(val23.z*val0.z)+(val17.z*val6.z)+(val20.z*val7.z)+(val24.z*val8.z)+val9.z),((val16.w*val1.w)+(val19.w*val2.w)+(val22.w*val3.w)+(val18.w*val4.w)+(val21.w*val5.w)+(val23.w*val0.w)+(val17.w*val6.w)+(val20.w*val7.w)+(val24.w*val8.w)+val9.w)));
  write_imagef(data0_131072, cast3, (float4)(((val19.x*val1.x)+(val22.x*val2.x)+(val26.x*val3.x)+(val21.x*val4.x)+(val23.x*val5.x)+(val25.x*val0.x)+(val20.x*val6.x)+(val24.x*val7.x)+(val27.x*val8.x)+val9.x),((val19.y*val1.y)+(val22.y*val2.y)+(val26.y*val3.y)+(val21.y*val4.y)+(val23.y*val5.y)+(val25.y*val0.y)+(val20.y*val6.y)+(val24.y*val7.y)+(val27.y*val8.y)+val9.y),((val19.z*val1.z)+(val22.z*val2.z)+(val26.z*val3.z)+(val21.z*val4.z)+(val23.z*val5.z)+(val25.z*val0.z)+(val20.z*val6.z)+(val24.z*val7.z)+(val27.z*val8.z)+val9.z),((val19.w*val1.w)+(val22.w*val2.w)+(val26.w*val3.w)+(val21.w*val4.w)+(val23.w*val5.w)+(val25.w*val0.w)+(val20.w*val6.w)+(val24.w*val7.w)+(val27.w*val8.w)+val9.w)));
}

__kernel void r_32_16_16_4_4_7_7(write_only image2d_t data0_131072, read_only image2d_t data1_131072, read_only image2d_t data2_3136, __global float* data3_64) {
  int alu0 = (idx0+(idx1<<6));
  int alu1 = (alu0+48);
  int alu2 = (alu0+32);
  int alu3 = (alu0+16);
  for (int ridx1009 = 0; ridx1009 < 7; ridx1009++) {
    int alu20 = (idx2+ridx1009+-3);
    float4 val0 = read_imagef(data1_131072, smp, (int2)((alu0+-48),alu20));
    float4 val1 = read_imagef(data1_131072, smp, (int2)(alu0,alu20));
    float4 val2 = read_imagef(data1_131072, smp, (int2)((alu0+-32),alu20));
    float4 val3 = read_imagef(data1_131072, smp, (int2)((alu0+-16),alu20));
    float4 val4 = read_imagef(data1_131072, smp, (int2)(alu3,alu20));
    float4 val5 = read_imagef(data1_131072, smp, (int2)(alu2,alu20));
    float4 val6 = read_imagef(data1_131072, smp, (int2)(alu1,alu20));
    float4 val7 = read_imagef(data1_131072, smp, (int2)((alu0+64),alu20));
    float4 val8 = read_imagef(data1_131072, smp, (int2)((alu0+80),alu20));
    float4 val9 = read_imagef(data1_131072, smp, (int2)((alu0+96),alu20));
    int alu21 = (ridx1009*7);
    float4 val10 = read_imagef(data2_3136, smp, (int2)(alu21,idx0));
    float4 val11 = read_imagef(data2_3136, smp, (int2)((alu21+1),idx0));
    float4 val12 = read_imagef(data2_3136, smp, (int2)((alu21+2),idx0));
    float4 val13 = read_imagef(data2_3136, smp, (int2)((alu21+3),idx0));
    float4 val14 = read_imagef(data2_3136, smp, (int2)((alu21+4),idx0));
    float4 val15 = read_imagef(data2_3136, smp, (int2)((alu21+5),idx0));
    float4 val16 = read_imagef(data2_3136, smp, (int2)((alu21+6),idx0));
    *(acc0+0) = ((*(acc0+0))+(val0.x*val10.x)+(val2.x*val11.x)+(val3.x*val12.x)+(val1.x*val13.x)+(val4.x*val14.x)+(val5.x*val15.x)+(val6.x*val16.x));
    *(acc0+1) = ((*(acc0+1))+(val2.x*val10.x)+(val3.x*val11.x)+(val1.x*val12.x)+(val4.x*val13.x)+(val5.x*val14.x)+(val6.x*val15.x)+(val7.x*val16.x));
    *(acc0+2) = ((*(acc0+2))+(val3.x*val10.x)+(val1.x*val11.x)+(val4.x*val12.x)+(val5.x*val13.x)+(val6.x*val14.x)+(val7.x*val15.x)+(val8.x*val16.x));
    *(acc0+3) = ((*(acc0+3))+(val1.x*val10.x)+(val4.x*val11.x)+(val5.x*val12.x)+(val6.x*val13.x)+(val7.x*val14.x)+(val8.x*val15.x)+(val9.x*val16.x));
    *(acc0+4) = ((*(acc0+4))+(val0.y*val10.y)+(val2.y*val11.y)+(val3.y*val12.y)+(val1.y*val13.y)+(val4.y*val14.y)+(val5.y*val15.y)+(val6.y*val16.y));
    *(acc0+5) = ((*(acc0+5))+(val2.y*val10.y)+(val3.y*val11.y)+(val1.y*val12.y)+(val4.y*val13.y)+(val5.y*val14.y)+(val6.y*val15.y)+(val7.y*val16.y));
    *(acc0+6) = ((*(acc0+6))+(val3.y*val10.y)+(val1.y*val11.y)+(val4.y*val12.y)+(val5.y*val13.y)+(val6.y*val14.y)+(val7.y*val15.y)+(val8.y*val16.y));
    *(acc0+7) = ((*(acc0+7))+(val1.y*val10.y)+(val4.y*val11.y)+(val5.y*val12.y)+(val6.y*val13.y)+(val7.y*val14.y)+(val8.y*val15.y)+(val9.y*val16.y));
    *(acc0+8) = ((*(acc0+8))+(val0.z*val10.z)+(val2.z*val11.z)+(val3.z*val12.z)+(val1.z*val13.z)+(val4.z*val14.z)+(val5.z*val15.z)+(val6.z*val16.z));
    *(acc0+9) = ((*(acc0+9))+(val2.z*val10.z)+(val3.z*val11.z)+(val1.z*val12.z)+(val4.z*val13.z)+(val5.z*val14.z)+(val6.z*val15.z)+(val7.z*val16.z));
    *(acc0+10) = ((*(acc0+10))+(val3.z*val10.z)+(val1.z*val11.z)+(val4.z*val12.z)+(val5.z*val13.z)+(val6.z*val14.z)+(val7.z*val15.z)+(val8.z*val16.z));
    *(acc0+11) = ((*(acc0+11))+(val1.z*val10.z)+(val4.z*val11.z)+(val5.z*val12.z)+(val6.z*val13.z)+(val7.z*val14.z)+(val8.z*val15.z)+(val9.z*val16.z));
    *(acc0+12) = ((*(acc0+12))+(val0.w*val10.w)+(val2.w*val11.w)+(val3.w*val12.w)+(val1.w*val13.w)+(val4.w*val14.w)+(val5.w*val15.w)+(val6.w*val16.w));
    *(acc0+13) = ((*(acc0+13))+(val2.w*val10.w)+(val3.w*val11.w)+(val1.w*val12.w)+(val4.w*val13.w)+(val5.w*val14.w)+(val6.w*val15.w)+(val7.w*val16.w));
    *(acc0+14) = ((*(acc0+14))+(val3.w*val10.w)+(val1.w*val11.w)+(val4.w*val12.w)+(val5.w*val13.w)+(val6.w*val14.w)+(val7.w*val15.w)+(val8.w*val16.w));
    *(acc0+15) = ((*(acc0+15))+(val1.w*val10.w)+(val4.w*val11.w)+(val5.w*val12.w)+(val6.w*val13.w)+(val7.w*val14.w)+(val8.w*val15.w)+(val9.w*val16.w));
  }
  float4 val17 = (*((__global float4*)((data3_64+(idx0<<2)))));
  write_imagef(data0_131072, (int2)(alu0,idx2), (float4)(((*(acc0+0))+val17.x),((*(acc0+4))+val17.y),((*(acc0+8))+val17.z),((*(acc0+12))+val17.w)));
  write_imagef(data0_131072, (int2)(alu3,idx2), (float4)(((*(acc0+1))+val17.x),((*(acc0+5))+val17.y),((*(acc0+9))+val17.z),((*(acc0+13))+val17.w)));
  write_imagef(data0_131072, (int2)(alu2,idx2), (float4)(((*(acc0+2))+val17.x),((*(acc0+6))+val17.y),((*(acc0+10))+val17.z),((*(acc0+14))+val17.w)));
  write_imagef(data0_131072, (int2)(alu1,idx2), (float4)(((*(acc0+3))+val17.x),((*(acc0+7))+val17.y),((*(acc0+11))+val17.z),((*(acc0+15))+val17.w)));
}

__kernel void r_512_48_4_4_16_4(write_only image2d_t data0_393216, read_only image2d_t data1_131072, read_only image2d_t data2_12288, __global float* data3_192) {
  int idx0 = get_global_id(0); /* 48 */
    int alu17 = ((idx1<<6)+ridx1007);
    int alu18 = (ridx1007<<2);
    float4 val0 = read_imagef(data2_12288, smp, (int2)(alu18,idx0));
    float4 val1 = read_imagef(data2_12288, smp, (int2)((alu18+1),idx0));
    float4 val2 = read_imagef(data2_12288, smp, (int2)((alu18+2),idx0));
    float4 val3 = read_imagef(data2_12288, smp, (int2)((alu18+3),idx0));
    float4 val4 = read_imagef(data1_131072, smp, (int2)(((alu17+16)&1023),alu0));
    float4 val5 = read_imagef(data1_131072, smp, (int2)(((alu17+32)&1023),alu0));
    float4 val6 = read_imagef(data1_131072, smp, (int2)(((alu17+48)&1023),alu0));
    float4 val7 = read_imagef(data1_131072, smp, (int2)((alu17&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_192+(idx0<<2)))));
  float alu36 = ((*(acc0+0))+val8.x);
  float alu37 = ((*(acc0+1))+val8.x);
  float alu38 = ((*(acc0+2))+val8.x);
  float alu39 = ((*(acc0+3))+val8.x);
  float alu40 = ((*(acc0+4))+val8.y);
  float alu41 = ((*(acc0+5))+val8.y);
  float alu42 = ((*(acc0+6))+val8.y);
  float alu43 = ((*(acc0+7))+val8.y);
  float alu44 = ((*(acc0+8))+val8.z);
  float alu45 = ((*(acc0+9))+val8.z);
  float alu46 = ((*(acc0+10))+val8.z);
  float alu47 = ((*(acc0+11))+val8.z);
  float alu48 = ((*(acc0+12))+val8.w);
  float alu49 = ((*(acc0+13))+val8.w);
  float alu50 = ((*(acc0+14))+val8.w);
  float alu51 = ((*(acc0+15))+val8.w);
  int alu52 = (idx0+(idx1*192));
  int alu53 = (alu52+48);
  int alu54 = (alu52+96);
  int alu55 = (alu52+144);
  write_imagef(data0_393216, (int2)((alu52-(3072*(((alu52>>10)*43)>>7))),alu0), (float4)(((1/(1.0f+exp2(((alu36+(0.044708251953125f*alu36*alu36*alu36))*-2.3021129851685216f))))*alu36),((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48)));
  write_imagef(data0_393216, (int2)((alu53-(3072*(((alu53>>10)*43)>>7))),alu0), (float4)(((1/(1.0f+exp2(((alu37+(0.044708251953125f*alu37*alu37*alu37))*-2.3021129851685216f))))*alu37),((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49)));
  write_imagef(data0_393216, (int2)((alu54-(3072*(((alu54>>10)*43)>>7))),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_393216, (int2)((alu55-(3072*(((alu55>>10)*43)>>7))),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
}

__kernel void r_512_16_4_4_48_4(write_only image2d_t data0_131072, read_only image2d_t data1_131072, read_only image2d_t data2_393216, read_only image2d_t data3_12288, __global float* data4_64, __global float* data5_64) {
  for (int ridx1007 = 0; ridx1007 < 48; ridx1007++) {
    int alu17 = ((idx1*192)+ridx1007);
    int alu18 = (alu17+48);
    int alu19 = (alu17+96);
    int alu20 = (alu17+144);
    int alu21 = (ridx1007<<2);
    float4 val0 = read_imagef(data3_12288, smp, (int2)(alu21,idx0));
    float4 val1 = read_imagef(data3_12288, smp, (int2)((alu21+1),idx0));
    float4 val2 = read_imagef(data3_12288, smp, (int2)((alu21+2),idx0));
    float4 val3 = read_imagef(data3_12288, smp, (int2)((alu21+3),idx0));
    float4 val4 = read_imagef(data2_393216, smp, (int2)((alu18-(3072*(((alu18>>10)*43)>>7))),alu0));
    float4 val5 = read_imagef(data2_393216, smp, (int2)((alu19-(3072*(((alu19>>10)*43)>>7))),alu0));
    float4 val6 = read_imagef(data2_393216, smp, (int2)((alu20-(3072*(((alu20>>10)*43)>>7))),alu0));
    float4 val7 = read_imagef(data2_393216, smp, (int2)((alu17-(3072*(((alu17>>10)*43)>>7))),alu0));
  }
  int alu39 = (idx0<<2);
  float4 val8 = (*((__global float4*)((data4_64+alu39))));
  float4 val9 = (*((__global float4*)((data5_64+alu39))));
  int alu40 = (idx0+(idx1<<6));
  int2 cast0 = (int2)((alu40&1023),alu0);
  float4 val10 = read_imagef(data1_131072, smp, cast0);
  int2 cast1 = (int2)(((alu40+16)&1023),alu0);
  float4 val11 = read_imagef(data1_131072, smp, cast1);
  int2 cast2 = (int2)(((alu40+32)&1023),alu0);
  float4 val12 = read_imagef(data1_131072, smp, cast2);
  int2 cast3 = (int2)(((alu40+48)&1023),alu0);
  float4 val13 = read_imagef(data1_131072, smp, cast3);
  write_imagef(data0_131072, cast0, (float4)((val10.x+(((*(acc0+0))+val8.x)*val9.x)),(val10.y+(((*(acc0+4))+val8.y)*val9.y)),(val10.z+(((*(acc0+8))+val8.z)*val9.z)),(val10.w+(((*(acc0+12))+val8.w)*val9.w))));
  write_imagef(data0_131072, cast1, (float4)((val11.x+(((*(acc0+1))+val8.x)*val9.x)),(val11.y+(((*(acc0+5))+val8.y)*val9.y)),(val11.z+(((*(acc0+9))+val8.z)*val9.z)),(val11.w+(((*(acc0+13))+val8.w)*val9.w))));
  write_imagef(data0_131072, cast2, (float4)((val12.x+(((*(acc0+2))+val8.x)*val9.x)),(val12.y+(((*(acc0+6))+val8.y)*val9.y)),(val12.z+(((*(acc0+10))+val8.z)*val9.z)),(val12.w+(((*(acc0+14))+val8.w)*val9.w))));
  write_imagef(data0_131072, cast3, (float4)((val13.x+(((*(acc0+3))+val8.x)*val9.x)),(val13.y+(((*(acc0+7))+val8.y)*val9.y)),(val13.z+(((*(acc0+11))+val8.z)*val9.z)),(val13.w+(((*(acc0+15))+val8.w)*val9.w))));
}

__kernel void r_16_8_16_4_4_4_7_7(write_only image2d_t data0_131072, read_only image2d_t data1_131072, read_only image2d_t data2_12544) {
  float acc0[64];
  int idx1 = get_global_id(1); /* 8 */
  int idx2 = get_global_id(2); /* 16 */
  int alu1 = (idx1<<7);
  float4 cast0 = (float4)(0.0f,0.0f,0.0f,0.0f);
  *(acc0+16) = 0.0f;
  *(acc0+17) = 0.0f;
  *(acc0+18) = 0.0f;
  *(acc0+19) = 0.0f;
  *(acc0+20) = 0.0f;
  *(acc0+21) = 0.0f;
  *(acc0+22) = 0.0f;
  *(acc0+23) = 0.0f;
  *(acc0+24) = 0.0f;
  *(acc0+25) = 0.0f;
  *(acc0+26) = 0.0f;
  *(acc0+27) = 0.0f;
  *(acc0+28) = 0.0f;
  *(acc0+29) = 0.0f;
  *(acc0+30) = 0.0f;
  *(acc0+31) = 0.0f;
  *(acc0+32) = 0.0f;
  *(acc0+33) = 0.0f;
  *(acc0+34) = 0.0f;
  *(acc0+35) = 0.0f;
  *(acc0+36) = 0.0f;
  *(acc0+37) = 0.0f;
  *(acc0+38) = 0.0f;
  *(acc0+39) = 0.0f;
  *(acc0+40) = 0.0f;
  *(acc0+41) = 0.0f;
  *(acc0+42) = 0.0f;
  *(acc0+43) = 0.0f;
  *(acc0+44) = 0.0f;
  *(acc0+45) = 0.0f;
  *(acc0+46) = 0.0f;
  *(acc0+47) = 0.0f;
  *(acc0+48) = 0.0f;
  *(acc0+49) = 0.0f;
  *(acc0+50) = 0.0f;
  *(acc0+51) = 0.0f;
  *(acc0+52) = 0.0f;
  *(acc0+53) = 0.0f;
  *(acc0+54) = 0.0f;
  *(acc0+55) = 0.0f;
  *(acc0+56) = 0.0f;
  *(acc0+57) = 0.0f;
  *(acc0+58) = 0.0f;
  *(acc0+59) = 0.0f;
  *(acc0+60) = 0.0f;
  *(acc0+61) = 0.0f;
  *(acc0+62) = 0.0f;
  *(acc0+63) = 0.0f;
    int alu66 = (idx0+(idx2<<11)+(ridx1009<<10));
    int alu67 = ((idx2<<1)+ridx1009);
    int alu68 = (alu67+-3);
    bool alu69 = ((2<alu67)&(alu67<35));
    for (int ridx1010 = 0; ridx1010 < 7; ridx1010++) {
      int alu70 = (ridx1010<<4);
      int alu71 = (idx0+alu1+alu70);
      int alu72 = ((idx1<<3)+ridx1010);
      float4 val0 = read_imagef(data1_131072, smp, (int2)((alu71+-16),alu68));
      float4 val1 = read_imagef(data1_131072, smp, (int2)((alu71+16),alu68));
      int alu73 = (alu66+alu1+alu70);
      int alu74 = (alu73+-3120);
      int alu75 = (alu73+-3024);
      int alu76 = (alu66+alu1+alu70);
      int alu77 = ((ridx1009*7)+ridx1010);
      float4 val2 = read_imagef(data2_12544, smp, (int2)(alu77,alu0));
      float4 val3 = read_imagef(data2_12544, smp, (int2)(alu77,(alu0+1)));
      float4 val4 = read_imagef(data2_12544, smp, (int2)(alu77,(alu0+2)));
      float4 val5 = read_imagef(data2_12544, smp, (int2)(alu77,(alu0+3)));
      int alu78 = ((alu74<0)?1023:0);
      float4 val6 = ((alu69&(2<alu72))?read_imagef(data1_131072, smp, (int2)(((alu76+-3120)&1023),((alu74+alu78)>>10))):cast0);
      int alu79 = ((alu75<0)?1023:0);
      float4 val7 = ((alu69&(alu72<61))?read_imagef(data1_131072, smp, (int2)(((alu76+-3024)&1023),((alu75+alu79)>>10))):cast0);
      *(acc0+1) = ((*(acc0+1))+(val0.x*val2.x));
      *(acc0+17) = ((*(acc0+17))+(val0.x*val2.y));
      *(acc0+33) = ((*(acc0+33))+(val0.x*val2.z));
      *(acc0+49) = ((*(acc0+49))+(val0.x*val2.w));
      *(acc0+2) = ((*(acc0+2))+(val1.x*val2.x));
      *(acc0+18) = ((*(acc0+18))+(val1.x*val2.y));
      *(acc0+34) = ((*(acc0+34))+(val1.x*val2.z));
      *(acc0+50) = ((*(acc0+50))+(val1.x*val2.w));
      *(acc0+0) = ((*(acc0+0))+(val6.x*val2.x));
      *(acc0+16) = ((*(acc0+16))+(val6.x*val2.y));
      *(acc0+32) = ((*(acc0+32))+(val6.x*val2.z));
      *(acc0+48) = ((*(acc0+48))+(val6.x*val2.w));
      *(acc0+3) = ((*(acc0+3))+(val7.x*val2.x));
      *(acc0+19) = ((*(acc0+19))+(val7.x*val2.y));
      *(acc0+35) = ((*(acc0+35))+(val7.x*val2.z));
      *(acc0+51) = ((*(acc0+51))+(val7.x*val2.w));
      *(acc0+5) = ((*(acc0+5))+(val0.y*val3.x));
      *(acc0+21) = ((*(acc0+21))+(val0.y*val3.y));
      *(acc0+37) = ((*(acc0+37))+(val0.y*val3.z));
      *(acc0+53) = ((*(acc0+53))+(val0.y*val3.w));
      *(acc0+6) = ((*(acc0+6))+(val1.y*val3.x));
      *(acc0+22) = ((*(acc0+22))+(val1.y*val3.y));
      *(acc0+38) = ((*(acc0+38))+(val1.y*val3.z));
      *(acc0+54) = ((*(acc0+54))+(val1.y*val3.w));
      *(acc0+4) = ((*(acc0+4))+(val6.y*val3.x));
      *(acc0+20) = ((*(acc0+20))+(val6.y*val3.y));
      *(acc0+36) = ((*(acc0+36))+(val6.y*val3.z));
      *(acc0+52) = ((*(acc0+52))+(val6.y*val3.w));
      *(acc0+7) = ((*(acc0+7))+(val7.y*val3.x));
      *(acc0+23) = ((*(acc0+23))+(val7.y*val3.y));
      *(acc0+39) = ((*(acc0+39))+(val7.y*val3.z));
      *(acc0+55) = ((*(acc0+55))+(val7.y*val3.w));
      *(acc0+9) = ((*(acc0+9))+(val0.z*val4.x));
      *(acc0+25) = ((*(acc0+25))+(val0.z*val4.y));
      *(acc0+41) = ((*(acc0+41))+(val0.z*val4.z));
      *(acc0+57) = ((*(acc0+57))+(val0.z*val4.w));
      *(acc0+10) = ((*(acc0+10))+(val1.z*val4.x));
      *(acc0+26) = ((*(acc0+26))+(val1.z*val4.y));
      *(acc0+42) = ((*(acc0+42))+(val1.z*val4.z));
      *(acc0+58) = ((*(acc0+58))+(val1.z*val4.w));
      *(acc0+8) = ((*(acc0+8))+(val6.z*val4.x));
      *(acc0+24) = ((*(acc0+24))+(val6.z*val4.y));
      *(acc0+40) = ((*(acc0+40))+(val6.z*val4.z));
      *(acc0+56) = ((*(acc0+56))+(val6.z*val4.w));
      *(acc0+11) = ((*(acc0+11))+(val7.z*val4.x));
      *(acc0+27) = ((*(acc0+27))+(val7.z*val4.y));
      *(acc0+43) = ((*(acc0+43))+(val7.z*val4.z));
      *(acc0+59) = ((*(acc0+59))+(val7.z*val4.w));
      *(acc0+13) = ((*(acc0+13))+(val0.w*val5.x));
      *(acc0+29) = ((*(acc0+29))+(val0.w*val5.y));
      *(acc0+45) = ((*(acc0+45))+(val0.w*val5.z));
      *(acc0+61) = ((*(acc0+61))+(val0.w*val5.w));
      *(acc0+14) = ((*(acc0+14))+(val1.w*val5.x));
      *(acc0+30) = ((*(acc0+30))+(val1.w*val5.y));
      *(acc0+46) = ((*(acc0+46))+(val1.w*val5.z));
      *(acc0+62) = ((*(acc0+62))+(val1.w*val5.w));
      *(acc0+12) = ((*(acc0+12))+(val6.w*val5.x));
      *(acc0+28) = ((*(acc0+28))+(val6.w*val5.y));
      *(acc0+44) = ((*(acc0+44))+(val6.w*val5.z));
      *(acc0+60) = ((*(acc0+60))+(val6.w*val5.w));
      *(acc0+15) = ((*(acc0+15))+(val7.w*val5.x));
      *(acc0+31) = ((*(acc0+31))+(val7.w*val5.y));
      *(acc0+47) = ((*(acc0+47))+(val7.w*val5.z));
      *(acc0+63) = ((*(acc0+63))+(val7.w*val5.w));
    }
  }
  int alu146 = (alu0+(idx1<<8));
  write_imagef(data0_131072, (int2)(alu146,idx2), (float4)((*(acc0+0)),(*(acc0+16)),(*(acc0+32)),(*(acc0+48))));
  write_imagef(data0_131072, (int2)((alu146+1),idx2), (float4)((*(acc0+4)),(*(acc0+20)),(*(acc0+36)),(*(acc0+52))));
  write_imagef(data0_131072, (int2)((alu146+2),idx2), (float4)((*(acc0+8)),(*(acc0+24)),(*(acc0+40)),(*(acc0+56))));
  write_imagef(data0_131072, (int2)((alu146+3),idx2), (float4)((*(acc0+12)),(*(acc0+28)),(*(acc0+44)),(*(acc0+60))));
  write_imagef(data0_131072, (int2)((alu146+64),idx2), (float4)((*(acc0+1)),(*(acc0+17)),(*(acc0+33)),(*(acc0+49))));
  write_imagef(data0_131072, (int2)((alu146+65),idx2), (float4)((*(acc0+5)),(*(acc0+21)),(*(acc0+37)),(*(acc0+53))));
  write_imagef(data0_131072, (int2)((alu146+66),idx2), (float4)((*(acc0+9)),(*(acc0+25)),(*(acc0+41)),(*(acc0+57))));
  write_imagef(data0_131072, (int2)((alu146+67),idx2), (float4)((*(acc0+13)),(*(acc0+29)),(*(acc0+45)),(*(acc0+61))));
  write_imagef(data0_131072, (int2)((alu146+128),idx2), (float4)((*(acc0+2)),(*(acc0+18)),(*(acc0+34)),(*(acc0+50))));
  write_imagef(data0_131072, (int2)((alu146+129),idx2), (float4)((*(acc0+6)),(*(acc0+22)),(*(acc0+38)),(*(acc0+54))));
  write_imagef(data0_131072, (int2)((alu146+130),idx2), (float4)((*(acc0+10)),(*(acc0+26)),(*(acc0+42)),(*(acc0+58))));
  write_imagef(data0_131072, (int2)((alu146+131),idx2), (float4)((*(acc0+14)),(*(acc0+30)),(*(acc0+46)),(*(acc0+62))));
  write_imagef(data0_131072, (int2)((alu146+192),idx2), (float4)((*(acc0+3)),(*(acc0+19)),(*(acc0+35)),(*(acc0+51))));
  write_imagef(data0_131072, (int2)((alu146+193),idx2), (float4)((*(acc0+7)),(*(acc0+23)),(*(acc0+39)),(*(acc0+55))));
  write_imagef(data0_131072, (int2)((alu146+194),idx2), (float4)((*(acc0+11)),(*(acc0+27)),(*(acc0+43)),(*(acc0+59))));
  write_imagef(data0_131072, (int2)((alu146+195),idx2), (float4)((*(acc0+15)),(*(acc0+31)),(*(acc0+47)),(*(acc0+63))));
}

__kernel void E_128_32_4_4(write_only image2d_t data0_65536, read_only image2d_t data1_131072, __global float* data2_128) {
  int idx0 = get_global_id(0); /* 32 */
  int idx1 = get_global_id(1); /* 128 */
  float4 val0 = (*((__global float4*)((data2_128+(idx0<<2)))));
  int alu1 = (idx1>>3);
  int alu2 = (alu0&1023);
  int alu3 = (alu2<<1);
  float4 val1 = read_imagef(data1_131072, smp, (int2)(alu3,alu1));
  float4 val2 = read_imagef(data1_131072, smp, (int2)((alu3+1),alu1));
  int alu4 = ((alu0+32)&1023);
  int alu5 = (alu4<<1);
  float4 val3 = read_imagef(data1_131072, smp, (int2)(alu5,alu1));
  float4 val4 = read_imagef(data1_131072, smp, (int2)((alu5+1),alu1));
  int alu6 = ((alu0+64)&1023);
  int alu7 = (alu6<<1);
  float4 val5 = read_imagef(data1_131072, smp, (int2)(alu7,alu1));
  float4 val6 = read_imagef(data1_131072, smp, (int2)((alu7+1),alu1));
  int alu8 = ((alu0+96)&1023);
  int alu9 = (alu8<<1);
  float4 val7 = read_imagef(data1_131072, smp, (int2)(alu9,alu1));
  float4 val8 = read_imagef(data1_131072, smp, (int2)((alu9+1),alu1));
  write_imagef(data0_65536, (int2)(alu2,alu1), (float4)((val1.x+val0.x),(val1.y+val0.y),(val2.x+val0.z),(val2.y+val0.w)));
  write_imagef(data0_65536, (int2)(alu4,alu1), (float4)((val3.x+val0.x),(val3.y+val0.y),(val4.x+val0.z),(val4.y+val0.w)));
  write_imagef(data0_65536, (int2)(alu6,alu1), (float4)((val5.x+val0.x),(val5.y+val0.y),(val6.x+val0.z),(val6.y+val0.w)));
  write_imagef(data0_65536, (int2)(alu8,alu1), (float4)((val7.x+val0.x),(val7.y+val0.y),(val8.x+val0.z),(val8.y+val0.w)));
}

__kernel void r_128_32_4_4_32_4(write_only image2d_t data0_65536, read_only image2d_t data1_65536, read_only image2d_t data2_16384, __global float* data3_128) {
  int alu0 = (idx1>>3);
  for (int ridx1007 = 0; ridx1007 < 32; ridx1007++) {
    float4 val0 = read_imagef(data2_16384, smp, (int2)(alu19,idx0));
    float4 val1 = read_imagef(data2_16384, smp, (int2)((alu19+1),idx0));
    float4 val2 = read_imagef(data2_16384, smp, (int2)((alu19+2),idx0));
    float4 val3 = read_imagef(data2_16384, smp, (int2)((alu19+3),idx0));
    float4 val4 = read_imagef(data1_65536, smp, (int2)(((alu18+32)&1023),alu0));
    float4 val5 = read_imagef(data1_65536, smp, (int2)(((alu18+64)&1023),alu0));
    float4 val6 = read_imagef(data1_65536, smp, (int2)(((alu18+96)&1023),alu0));
    float4 val7 = read_imagef(data1_65536, smp, (int2)((alu18&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_128+(idx0<<2)))));
  write_imagef(data0_65536, (int2)((alu37&1023),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_65536, (int2)(((alu37+32)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
  write_imagef(data0_65536, (int2)(((alu37+64)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48),((1/(1.0f+exp2(((alu52+(0.044708251953125f*alu52*alu52*alu52))*-2.3021129851685216f))))*alu52)));
  write_imagef(data0_65536, (int2)(((alu37+96)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49),((1/(1.0f+exp2(((alu53+(0.044708251953125f*alu53*alu53*alu53))*-2.3021129851685216f))))*alu53)));
}

__kernel void r_16_8_32_4_4_3_3(write_only image2d_t data0_65536, read_only image2d_t data1_65536, read_only image2d_t data2_1152, __global float* data3_128) {
  float4 val0 = read_imagef(data2_1152, smp, (int2)(5,idx0));
  float4 val1 = read_imagef(data2_1152, smp, (int2)(0,idx0));
  float4 val2 = read_imagef(data2_1152, smp, (int2)(1,idx0));
  float4 val3 = read_imagef(data2_1152, smp, (int2)(2,idx0));
  float4 val4 = read_imagef(data2_1152, smp, (int2)(3,idx0));
  float4 val5 = read_imagef(data2_1152, smp, (int2)(4,idx0));
  float4 val6 = read_imagef(data2_1152, smp, (int2)(6,idx0));
  float4 val7 = read_imagef(data2_1152, smp, (int2)(7,idx0));
  float4 val8 = read_imagef(data2_1152, smp, (int2)(8,idx0));
  float4 val9 = (*((__global float4*)((data3_128+(idx0<<2)))));
  int alu2 = (idx0+(idx1<<7));
  float4 val10 = read_imagef(data1_65536, smp, (int2)(alu2,alu1));
  float4 val11 = read_imagef(data1_65536, smp, (int2)(alu2,alu0));
  float4 val12 = read_imagef(data1_65536, smp, cast0);
  int alu3 = (alu2+-32);
  float4 val13 = read_imagef(data1_65536, smp, (int2)(alu3,alu0));
  float4 val14 = read_imagef(data1_65536, smp, (int2)(alu3,idx2));
  float4 val15 = read_imagef(data1_65536, smp, (int2)(alu3,alu1));
  int alu4 = (alu2+32);
  float4 val16 = read_imagef(data1_65536, smp, (int2)(alu4,alu0));
  float4 val17 = read_imagef(data1_65536, smp, (int2)(alu4,alu1));
  float4 val18 = read_imagef(data1_65536, smp, cast1);
  int alu5 = (alu2+64);
  float4 val19 = read_imagef(data1_65536, smp, (int2)(alu5,alu0));
  float4 val20 = read_imagef(data1_65536, smp, (int2)(alu5,alu1));
  float4 val21 = read_imagef(data1_65536, smp, cast2);
  int alu6 = (alu2+96);
  float4 val22 = read_imagef(data1_65536, smp, (int2)(alu6,alu0));
  float4 val23 = read_imagef(data1_65536, smp, cast3);
  float4 val24 = read_imagef(data1_65536, smp, (int2)(alu6,alu1));
  int alu7 = (alu2+128);
  float4 val25 = read_imagef(data1_65536, smp, (int2)(alu7,idx2));
  float4 val26 = read_imagef(data1_65536, smp, (int2)(alu7,alu0));
  float4 val27 = read_imagef(data1_65536, smp, (int2)(alu7,alu1));
  write_imagef(data0_65536, cast0, (float4)(((val13.x*val1.x)+(val11.x*val2.x)+(val16.x*val3.x)+(val14.x*val4.x)+(val12.x*val5.x)+(val18.x*val0.x)+(val15.x*val6.x)+(val10.x*val7.x)+(val17.x*val8.x)+val9.x),((val13.y*val1.y)+(val11.y*val2.y)+(val16.y*val3.y)+(val14.y*val4.y)+(val12.y*val5.y)+(val18.y*val0.y)+(val15.y*val6.y)+(val10.y*val7.y)+(val17.y*val8.y)+val9.y),((val13.z*val1.z)+(val11.z*val2.z)+(val16.z*val3.z)+(val14.z*val4.z)+(val12.z*val5.z)+(val18.z*val0.z)+(val15.z*val6.z)+(val10.z*val7.z)+(val17.z*val8.z)+val9.z),((val13.w*val1.w)+(val11.w*val2.w)+(val16.w*val3.w)+(val14.w*val4.w)+(val12.w*val5.w)+(val18.w*val0.w)+(val15.w*val6.w)+(val10.w*val7.w)+(val17.w*val8.w)+val9.w)));
  write_imagef(data0_65536, cast1, (float4)(((val11.x*val1.x)+(val16.x*val2.x)+(val19.x*val3.x)+(val12.x*val4.x)+(val18.x*val5.x)+(val21.x*val0.x)+(val10.x*val6.x)+(val17.x*val7.x)+(val20.x*val8.x)+val9.x),((val11.y*val1.y)+(val16.y*val2.y)+(val19.y*val3.y)+(val12.y*val4.y)+(val18.y*val5.y)+(val21.y*val0.y)+(val10.y*val6.y)+(val17.y*val7.y)+(val20.y*val8.y)+val9.y),((val11.z*val1.z)+(val16.z*val2.z)+(val19.z*val3.z)+(val12.z*val4.z)+(val18.z*val5.z)+(val21.z*val0.z)+(val10.z*val6.z)+(val17.z*val7.z)+(val20.z*val8.z)+val9.z),((val11.w*val1.w)+(val16.w*val2.w)+(val19.w*val3.w)+(val12.w*val4.w)+(val18.w*val5.w)+(val21.w*val0.w)+(val10.w*val6.w)+(val17.w*val7.w)+(val20.w*val8.w)+val9.w)));
  write_imagef(data0_65536, cast2, (float4)(((val16.x*val1.x)+(val19.x*val2.x)+(val22.x*val3.x)+(val18.x*val4.x)+(val21.x*val5.x)+(val23.x*val0.x)+(val17.x*val6.x)+(val20.x*val7.x)+(val24.x*val8.x)+val9.x),((val16.y*val1.y)+(val19.y*val2.y)+(val22.y*val3.y)+(val18.y*val4.y)+(val21.y*val5.y)+(val23.y*val0.y)+(val17.y*val6.y)+(val20.y*val7.y)+(val24.y*val8.y)+val9.y),((val16.z*val1.z)+(val19.z*val2.z)+(val22.z*val3.z)+(val18.z*val4.z)+(val21.z*val5.z)+(val23.z*val0.z)+(val17.z*val6.z)+(val20.z*val7.z)+(val24.z*val8.z)+val9.z),((val16.w*val1.w)+(val19.w*val2.w)+(val22.w*val3.w)+(val18.w*val4.w)+(val21.w*val5.w)+(val23.w*val0.w)+(val17.w*val6.w)+(val20.w*val7.w)+(val24.w*val8.w)+val9.w)));
  write_imagef(data0_65536, cast3, (float4)(((val19.x*val1.x)+(val22.x*val2.x)+(val26.x*val3.x)+(val21.x*val4.x)+(val23.x*val5.x)+(val25.x*val0.x)+(val20.x*val6.x)+(val24.x*val7.x)+(val27.x*val8.x)+val9.x),((val19.y*val1.y)+(val22.y*val2.y)+(val26.y*val3.y)+(val21.y*val4.y)+(val23.y*val5.y)+(val25.y*val0.y)+(val20.y*val6.y)+(val24.y*val7.y)+(val27.y*val8.y)+val9.y),((val19.z*val1.z)+(val22.z*val2.z)+(val26.z*val3.z)+(val21.z*val4.z)+(val23.z*val5.z)+(val25.z*val0.z)+(val20.z*val6.z)+(val24.z*val7.z)+(val27.z*val8.z)+val9.z),((val19.w*val1.w)+(val22.w*val2.w)+(val26.w*val3.w)+(val21.w*val4.w)+(val23.w*val5.w)+(val25.w*val0.w)+(val20.w*val6.w)+(val24.w*val7.w)+(val27.w*val8.w)+val9.w)));
}

__kernel void r_16_8_32_4_4_7_7(write_only image2d_t data0_65536, read_only image2d_t data1_65536, read_only image2d_t data2_6272, __global float* data3_128) {
  int alu1 = (alu0+96);
  int alu2 = (alu0+64);
    float4 val0 = read_imagef(data1_65536, smp, (int2)((alu0+-96),alu20));
    float4 val1 = read_imagef(data1_65536, smp, (int2)(alu0,alu20));
    float4 val2 = read_imagef(data1_65536, smp, (int2)((alu0+-64),alu20));
    float4 val3 = read_imagef(data1_65536, smp, (int2)((alu0+-32),alu20));
    float4 val4 = read_imagef(data1_65536, smp, (int2)(alu3,alu20));
    float4 val5 = read_imagef(data1_65536, smp, (int2)(alu2,alu20));
    float4 val6 = read_imagef(data1_65536, smp, (int2)(alu1,alu20));
    float4 val7 = read_imagef(data1_65536, smp, (int2)((alu0+128),alu20));
    float4 val8 = read_imagef(data1_65536, smp, (int2)((alu0+160),alu20));
    float4 val9 = read_imagef(data1_65536, smp, (int2)((alu0+192),alu20));
    float4 val10 = read_imagef(data2_6272, smp, (int2)(alu21,idx0));
    float4 val11 = read_imagef(data2_6272, smp, (int2)((alu21+1),idx0));
    float4 val12 = read_imagef(data2_6272, smp, (int2)((alu21+2),idx0));
    float4 val13 = read_imagef(data2_6272, smp, (int2)((alu21+3),idx0));
    float4 val14 = read_imagef(data2_6272, smp, (int2)((alu21+4),idx0));
    float4 val15 = read_imagef(data2_6272, smp, (int2)((alu21+5),idx0));
    float4 val16 = read_imagef(data2_6272, smp, (int2)((alu21+6),idx0));
  }
  float4 val17 = (*((__global float4*)((data3_128+(idx0<<2)))));
  write_imagef(data0_65536, (int2)(alu0,idx2), (float4)(((*(acc0+0))+val17.x),((*(acc0+4))+val17.y),((*(acc0+8))+val17.z),((*(acc0+12))+val17.w)));
  write_imagef(data0_65536, (int2)(alu3,idx2), (float4)(((*(acc0+1))+val17.x),((*(acc0+5))+val17.y),((*(acc0+9))+val17.z),((*(acc0+13))+val17.w)));
  write_imagef(data0_65536, (int2)(alu2,idx2), (float4)(((*(acc0+2))+val17.x),((*(acc0+6))+val17.y),((*(acc0+10))+val17.z),((*(acc0+14))+val17.w)));
  write_imagef(data0_65536, (int2)(alu1,idx2), (float4)(((*(acc0+3))+val17.x),((*(acc0+7))+val17.y),((*(acc0+11))+val17.z),((*(acc0+15))+val17.w)));
}

__kernel void r_128_96_4_4_32_4(write_only image2d_t data0_196608, read_only image2d_t data1_65536, read_only image2d_t data2_49152, __global float* data3_384) {
  int idx0 = get_global_id(0); /* 96 */
    int alu17 = ((idx1<<7)+ridx1007);
    float4 val0 = read_imagef(data2_49152, smp, (int2)(alu18,idx0));
    float4 val1 = read_imagef(data2_49152, smp, (int2)((alu18+1),idx0));
    float4 val2 = read_imagef(data2_49152, smp, (int2)((alu18+2),idx0));
    float4 val3 = read_imagef(data2_49152, smp, (int2)((alu18+3),idx0));
    float4 val4 = read_imagef(data1_65536, smp, (int2)(((alu17+32)&1023),alu0));
    float4 val5 = read_imagef(data1_65536, smp, (int2)(((alu17+64)&1023),alu0));
    float4 val6 = read_imagef(data1_65536, smp, (int2)(((alu17+96)&1023),alu0));
    float4 val7 = read_imagef(data1_65536, smp, (int2)((alu17&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_384+(idx0<<2)))));
  int alu52 = (idx0+(idx1*384));
  int alu53 = (alu52+96);
  int alu54 = (alu52+192);
  int alu55 = (alu52+288);
  write_imagef(data0_196608, (int2)((alu52-(3072*((alu52*43691)>>27))),alu0), (float4)(((1/(1.0f+exp2(((alu36+(0.044708251953125f*alu36*alu36*alu36))*-2.3021129851685216f))))*alu36),((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48)));
  write_imagef(data0_196608, (int2)((alu53-(3072*((alu53*43691)>>27))),alu0), (float4)(((1/(1.0f+exp2(((alu37+(0.044708251953125f*alu37*alu37*alu37))*-2.3021129851685216f))))*alu37),((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49)));
  write_imagef(data0_196608, (int2)((alu54-(3072*((alu54*43691)>>27))),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_196608, (int2)((alu55-(3072*((alu55*43691)>>27))),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
}

__kernel void r_128_32_4_4_96_4(write_only image2d_t data0_65536, read_only image2d_t data1_65536, read_only image2d_t data2_196608, read_only image2d_t data3_49152, __global float* data4_128, __global float* data5_128) {
  for (int ridx1007 = 0; ridx1007 < 96; ridx1007++) {
    int alu17 = ((idx1*384)+ridx1007);
    int alu18 = (alu17+96);
    int alu19 = (alu17+192);
    int alu20 = (alu17+288);
    float4 val0 = read_imagef(data3_49152, smp, (int2)(alu21,idx0));
    float4 val1 = read_imagef(data3_49152, smp, (int2)((alu21+1),idx0));
    float4 val2 = read_imagef(data3_49152, smp, (int2)((alu21+2),idx0));
    float4 val3 = read_imagef(data3_49152, smp, (int2)((alu21+3),idx0));
    float4 val4 = read_imagef(data2_196608, smp, (int2)((alu18-(3072*((alu18*43691)>>27))),alu0));
    float4 val5 = read_imagef(data2_196608, smp, (int2)((alu19-(3072*((alu19*43691)>>27))),alu0));
    float4 val6 = read_imagef(data2_196608, smp, (int2)((alu20-(3072*((alu20*43691)>>27))),alu0));
    float4 val7 = read_imagef(data2_196608, smp, (int2)((alu17-(3072*((alu17*43691)>>27))),alu0));
  }
  float4 val8 = (*((__global float4*)((data4_128+alu39))));
  float4 val9 = (*((__global float4*)((data5_128+alu39))));
  int alu40 = (idx0+(idx1<<7));
  float4 val10 = read_imagef(data1_65536, smp, cast0);
  int2 cast1 = (int2)(((alu40+32)&1023),alu0);
  float4 val11 = read_imagef(data1_65536, smp, cast1);
  int2 cast2 = (int2)(((alu40+64)&1023),alu0);
  float4 val12 = read_imagef(data1_65536, smp, cast2);
  int2 cast3 = (int2)(((alu40+96)&1023),alu0);
  float4 val13 = read_imagef(data1_65536, smp, cast3);
  write_imagef(data0_65536, cast0, (float4)((val10.x+(((*(acc0+0))+val8.x)*val9.x)),(val10.y+(((*(acc0+4))+val8.y)*val9.y)),(val10.z+(((*(acc0+8))+val8.z)*val9.z)),(val10.w+(((*(acc0+12))+val8.w)*val9.w))));
  write_imagef(data0_65536, cast1, (float4)((val11.x+(((*(acc0+1))+val8.x)*val9.x)),(val11.y+(((*(acc0+5))+val8.y)*val9.y)),(val11.z+(((*(acc0+9))+val8.z)*val9.z)),(val11.w+(((*(acc0+13))+val8.w)*val9.w))));
  write_imagef(data0_65536, cast2, (float4)((val12.x+(((*(acc0+2))+val8.x)*val9.x)),(val12.y+(((*(acc0+6))+val8.y)*val9.y)),(val12.z+(((*(acc0+10))+val8.z)*val9.z)),(val12.w+(((*(acc0+14))+val8.w)*val9.w))));
  write_imagef(data0_65536, cast3, (float4)((val13.x+(((*(acc0+3))+val8.x)*val9.x)),(val13.y+(((*(acc0+7))+val8.y)*val9.y)),(val13.z+(((*(acc0+11))+val8.z)*val9.z)),(val13.w+(((*(acc0+15))+val8.w)*val9.w))));
}

__kernel void r_8_4_32_4_4_4_7_7(write_only image2d_t data0_65536, read_only image2d_t data1_65536, read_only image2d_t data2_25088) {
  int idx1 = get_global_id(1); /* 4 */
  int idx2 = get_global_id(2); /* 8 */
  int alu1 = (idx1<<8);
    bool alu69 = ((2<alu67)&(alu67<19));
      int alu70 = (ridx1010<<5);
      float4 val0 = read_imagef(data1_65536, smp, (int2)((alu71+-32),alu68));
      float4 val1 = read_imagef(data1_65536, smp, (int2)((alu71+32),alu68));
      int alu74 = (alu73+-3168);
      int alu75 = (alu73+-2976);
      float4 val2 = read_imagef(data2_25088, smp, (int2)(alu77,alu0));
      float4 val3 = read_imagef(data2_25088, smp, (int2)(alu77,(alu0+1)));
      float4 val4 = read_imagef(data2_25088, smp, (int2)(alu77,(alu0+2)));
      float4 val5 = read_imagef(data2_25088, smp, (int2)(alu77,(alu0+3)));
      float4 val6 = ((alu69&(2<alu72))?read_imagef(data1_65536, smp, (int2)(((alu76+-3168)&1023),((alu74+alu78)>>10))):cast0);
      float4 val7 = ((alu69&(alu72<29))?read_imagef(data1_65536, smp, (int2)(((alu76+-2976)&1023),((alu75+alu79)>>10))):cast0);
    }
  }
  int alu146 = (alu0+(idx1<<9));
  write_imagef(data0_65536, (int2)(alu146,idx2), (float4)((*(acc0+0)),(*(acc0+16)),(*(acc0+32)),(*(acc0+48))));
  write_imagef(data0_65536, (int2)((alu146+1),idx2), (float4)((*(acc0+4)),(*(acc0+20)),(*(acc0+36)),(*(acc0+52))));
  write_imagef(data0_65536, (int2)((alu146+2),idx2), (float4)((*(acc0+8)),(*(acc0+24)),(*(acc0+40)),(*(acc0+56))));
  write_imagef(data0_65536, (int2)((alu146+3),idx2), (float4)((*(acc0+12)),(*(acc0+28)),(*(acc0+44)),(*(acc0+60))));
  write_imagef(data0_65536, (int2)((alu146+128),idx2), (float4)((*(acc0+1)),(*(acc0+17)),(*(acc0+33)),(*(acc0+49))));
  write_imagef(data0_65536, (int2)((alu146+129),idx2), (float4)((*(acc0+5)),(*(acc0+21)),(*(acc0+37)),(*(acc0+53))));
  write_imagef(data0_65536, (int2)((alu146+130),idx2), (float4)((*(acc0+9)),(*(acc0+25)),(*(acc0+41)),(*(acc0+57))));
  write_imagef(data0_65536, (int2)((alu146+131),idx2), (float4)((*(acc0+13)),(*(acc0+29)),(*(acc0+45)),(*(acc0+61))));
  write_imagef(data0_65536, (int2)((alu146+256),idx2), (float4)((*(acc0+2)),(*(acc0+18)),(*(acc0+34)),(*(acc0+50))));
  write_imagef(data0_65536, (int2)((alu146+257),idx2), (float4)((*(acc0+6)),(*(acc0+22)),(*(acc0+38)),(*(acc0+54))));
  write_imagef(data0_65536, (int2)((alu146+258),idx2), (float4)((*(acc0+10)),(*(acc0+26)),(*(acc0+42)),(*(acc0+58))));
  write_imagef(data0_65536, (int2)((alu146+259),idx2), (float4)((*(acc0+14)),(*(acc0+30)),(*(acc0+46)),(*(acc0+62))));
  write_imagef(data0_65536, (int2)((alu146+384),idx2), (float4)((*(acc0+3)),(*(acc0+19)),(*(acc0+35)),(*(acc0+51))));
  write_imagef(data0_65536, (int2)((alu146+385),idx2), (float4)((*(acc0+7)),(*(acc0+23)),(*(acc0+39)),(*(acc0+55))));
  write_imagef(data0_65536, (int2)((alu146+386),idx2), (float4)((*(acc0+11)),(*(acc0+27)),(*(acc0+43)),(*(acc0+59))));
  write_imagef(data0_65536, (int2)((alu146+387),idx2), (float4)((*(acc0+15)),(*(acc0+31)),(*(acc0+47)),(*(acc0+63))));
}

__kernel void E_32_64_4_4(write_only image2d_t data0_32768, read_only image2d_t data1_65536, __global float* data2_256) {
  int idx0 = get_global_id(0); /* 64 */
  float4 val0 = (*((__global float4*)((data2_256+(idx0<<2)))));
  int alu0 = (idx0+(idx1<<8));
  int alu1 = (idx1>>2);
  float4 val1 = read_imagef(data1_65536, smp, (int2)(alu3,alu1));
  float4 val2 = read_imagef(data1_65536, smp, (int2)((alu3+1),alu1));
  int alu4 = ((alu0+64)&1023);
  float4 val3 = read_imagef(data1_65536, smp, (int2)(alu5,alu1));
  float4 val4 = read_imagef(data1_65536, smp, (int2)((alu5+1),alu1));
  int alu6 = ((alu0+128)&1023);
  float4 val5 = read_imagef(data1_65536, smp, (int2)(alu7,alu1));
  float4 val6 = read_imagef(data1_65536, smp, (int2)((alu7+1),alu1));
  int alu8 = ((alu0+192)&1023);
  float4 val7 = read_imagef(data1_65536, smp, (int2)(alu9,alu1));
  float4 val8 = read_imagef(data1_65536, smp, (int2)((alu9+1),alu1));
  write_imagef(data0_32768, (int2)(alu2,alu1), (float4)((val1.x+val0.x),(val1.y+val0.y),(val2.x+val0.z),(val2.y+val0.w)));
  write_imagef(data0_32768, (int2)(alu4,alu1), (float4)((val3.x+val0.x),(val3.y+val0.y),(val4.x+val0.z),(val4.y+val0.w)));
  write_imagef(data0_32768, (int2)(alu6,alu1), (float4)((val5.x+val0.x),(val5.y+val0.y),(val6.x+val0.z),(val6.y+val0.w)));
  write_imagef(data0_32768, (int2)(alu8,alu1), (float4)((val7.x+val0.x),(val7.y+val0.y),(val8.x+val0.z),(val8.y+val0.w)));
}

__kernel void r_32_64_4_4_64_4(write_only image2d_t data0_32768, read_only image2d_t data1_32768, read_only image2d_t data2_65536, __global float* data3_256) {
  int alu0 = (idx1>>2);
  for (int ridx1007 = 0; ridx1007 < 64; ridx1007++) {
    float4 val0 = read_imagef(data2_65536, smp, (int2)(alu19,idx0));
    float4 val1 = read_imagef(data2_65536, smp, (int2)((alu19+1),idx0));
    float4 val2 = read_imagef(data2_65536, smp, (int2)((alu19+2),idx0));
    float4 val3 = read_imagef(data2_65536, smp, (int2)((alu19+3),idx0));
    float4 val4 = read_imagef(data1_32768, smp, (int2)(((alu18+64)&1023),alu0));
    float4 val5 = read_imagef(data1_32768, smp, (int2)(((alu18+128)&1023),alu0));
    float4 val6 = read_imagef(data1_32768, smp, (int2)(((alu18+192)&1023),alu0));
    float4 val7 = read_imagef(data1_32768, smp, (int2)((alu18&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_256+(idx0<<2)))));
  write_imagef(data0_32768, (int2)((alu37&1023),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_32768, (int2)(((alu37+64)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
  write_imagef(data0_32768, (int2)(((alu37+128)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48),((1/(1.0f+exp2(((alu52+(0.044708251953125f*alu52*alu52*alu52))*-2.3021129851685216f))))*alu52)));
  write_imagef(data0_32768, (int2)(((alu37+192)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49),((1/(1.0f+exp2(((alu53+(0.044708251953125f*alu53*alu53*alu53))*-2.3021129851685216f))))*alu53)));
}

__kernel void r_8_4_64_4_4_3_3(write_only image2d_t data0_32768, read_only image2d_t data1_32768, read_only image2d_t data2_2304, __global float* data3_256) {
  float4 val0 = read_imagef(data2_2304, smp, (int2)(5,idx0));
  float4 val1 = read_imagef(data2_2304, smp, (int2)(0,idx0));
  float4 val2 = read_imagef(data2_2304, smp, (int2)(1,idx0));
  float4 val3 = read_imagef(data2_2304, smp, (int2)(2,idx0));
  float4 val4 = read_imagef(data2_2304, smp, (int2)(3,idx0));
  float4 val5 = read_imagef(data2_2304, smp, (int2)(4,idx0));
  float4 val6 = read_imagef(data2_2304, smp, (int2)(6,idx0));
  float4 val7 = read_imagef(data2_2304, smp, (int2)(7,idx0));
  float4 val8 = read_imagef(data2_2304, smp, (int2)(8,idx0));
  float4 val9 = (*((__global float4*)((data3_256+(idx0<<2)))));
  int alu2 = (idx0+(idx1<<8));
  float4 val10 = read_imagef(data1_32768, smp, (int2)(alu2,alu1));
  float4 val11 = read_imagef(data1_32768, smp, (int2)(alu2,alu0));
  float4 val12 = read_imagef(data1_32768, smp, cast0);
  int alu3 = (alu2+-64);
  float4 val13 = read_imagef(data1_32768, smp, (int2)(alu3,alu0));
  float4 val14 = read_imagef(data1_32768, smp, (int2)(alu3,idx2));
  float4 val15 = read_imagef(data1_32768, smp, (int2)(alu3,alu1));
  int alu4 = (alu2+64);
  float4 val16 = read_imagef(data1_32768, smp, (int2)(alu4,alu0));
  float4 val17 = read_imagef(data1_32768, smp, (int2)(alu4,alu1));
  float4 val18 = read_imagef(data1_32768, smp, cast1);
  int alu5 = (alu2+128);
  float4 val19 = read_imagef(data1_32768, smp, (int2)(alu5,alu0));
  float4 val20 = read_imagef(data1_32768, smp, (int2)(alu5,alu1));
  float4 val21 = read_imagef(data1_32768, smp, cast2);
  int alu6 = (alu2+192);
  float4 val22 = read_imagef(data1_32768, smp, (int2)(alu6,alu0));
  float4 val23 = read_imagef(data1_32768, smp, cast3);
  float4 val24 = read_imagef(data1_32768, smp, (int2)(alu6,alu1));
  int alu7 = (alu2+256);
  float4 val25 = read_imagef(data1_32768, smp, (int2)(alu7,idx2));
  float4 val26 = read_imagef(data1_32768, smp, (int2)(alu7,alu0));
  float4 val27 = read_imagef(data1_32768, smp, (int2)(alu7,alu1));
  write_imagef(data0_32768, cast0, (float4)(((val13.x*val1.x)+(val11.x*val2.x)+(val16.x*val3.x)+(val14.x*val4.x)+(val12.x*val5.x)+(val18.x*val0.x)+(val15.x*val6.x)+(val10.x*val7.x)+(val17.x*val8.x)+val9.x),((val13.y*val1.y)+(val11.y*val2.y)+(val16.y*val3.y)+(val14.y*val4.y)+(val12.y*val5.y)+(val18.y*val0.y)+(val15.y*val6.y)+(val10.y*val7.y)+(val17.y*val8.y)+val9.y),((val13.z*val1.z)+(val11.z*val2.z)+(val16.z*val3.z)+(val14.z*val4.z)+(val12.z*val5.z)+(val18.z*val0.z)+(val15.z*val6.z)+(val10.z*val7.z)+(val17.z*val8.z)+val9.z),((val13.w*val1.w)+(val11.w*val2.w)+(val16.w*val3.w)+(val14.w*val4.w)+(val12.w*val5.w)+(val18.w*val0.w)+(val15.w*val6.w)+(val10.w*val7.w)+(val17.w*val8.w)+val9.w)));
  write_imagef(data0_32768, cast1, (float4)(((val11.x*val1.x)+(val16.x*val2.x)+(val19.x*val3.x)+(val12.x*val4.x)+(val18.x*val5.x)+(val21.x*val0.x)+(val10.x*val6.x)+(val17.x*val7.x)+(val20.x*val8.x)+val9.x),((val11.y*val1.y)+(val16.y*val2.y)+(val19.y*val3.y)+(val12.y*val4.y)+(val18.y*val5.y)+(val21.y*val0.y)+(val10.y*val6.y)+(val17.y*val7.y)+(val20.y*val8.y)+val9.y),((val11.z*val1.z)+(val16.z*val2.z)+(val19.z*val3.z)+(val12.z*val4.z)+(val18.z*val5.z)+(val21.z*val0.z)+(val10.z*val6.z)+(val17.z*val7.z)+(val20.z*val8.z)+val9.z),((val11.w*val1.w)+(val16.w*val2.w)+(val19.w*val3.w)+(val12.w*val4.w)+(val18.w*val5.w)+(val21.w*val0.w)+(val10.w*val6.w)+(val17.w*val7.w)+(val20.w*val8.w)+val9.w)));
  write_imagef(data0_32768, cast2, (float4)(((val16.x*val1.x)+(val19.x*val2.x)+(val22.x*val3.x)+(val18.x*val4.x)+(val21.x*val5.x)+(val23.x*val0.x)+(val17.x*val6.x)+(val20.x*val7.x)+(val24.x*val8.x)+val9.x),((val16.y*val1.y)+(val19.y*val2.y)+(val22.y*val3.y)+(val18.y*val4.y)+(val21.y*val5.y)+(val23.y*val0.y)+(val17.y*val6.y)+(val20.y*val7.y)+(val24.y*val8.y)+val9.y),((val16.z*val1.z)+(val19.z*val2.z)+(val22.z*val3.z)+(val18.z*val4.z)+(val21.z*val5.z)+(val23.z*val0.z)+(val17.z*val6.z)+(val20.z*val7.z)+(val24.z*val8.z)+val9.z),((val16.w*val1.w)+(val19.w*val2.w)+(val22.w*val3.w)+(val18.w*val4.w)+(val21.w*val5.w)+(val23.w*val0.w)+(val17.w*val6.w)+(val20.w*val7.w)+(val24.w*val8.w)+val9.w)));
  write_imagef(data0_32768, cast3, (float4)(((val19.x*val1.x)+(val22.x*val2.x)+(val26.x*val3.x)+(val21.x*val4.x)+(val23.x*val5.x)+(val25.x*val0.x)+(val20.x*val6.x)+(val24.x*val7.x)+(val27.x*val8.x)+val9.x),((val19.y*val1.y)+(val22.y*val2.y)+(val26.y*val3.y)+(val21.y*val4.y)+(val23.y*val5.y)+(val25.y*val0.y)+(val20.y*val6.y)+(val24.y*val7.y)+(val27.y*val8.y)+val9.y),((val19.z*val1.z)+(val22.z*val2.z)+(val26.z*val3.z)+(val21.z*val4.z)+(val23.z*val5.z)+(val25.z*val0.z)+(val20.z*val6.z)+(val24.z*val7.z)+(val27.z*val8.z)+val9.z),((val19.w*val1.w)+(val22.w*val2.w)+(val26.w*val3.w)+(val21.w*val4.w)+(val23.w*val5.w)+(val25.w*val0.w)+(val20.w*val6.w)+(val24.w*val7.w)+(val27.w*val8.w)+val9.w)));
}

__kernel void r_8_4_64_4_4_7_7(write_only image2d_t data0_32768, read_only image2d_t data1_32768, read_only image2d_t data2_12544, __global float* data3_256) {
  int alu1 = (alu0+192);
  int alu2 = (alu0+128);
  int alu3 = (alu0+64);
    float4 val0 = read_imagef(data1_32768, smp, (int2)((alu0+-192),alu20));
    float4 val1 = read_imagef(data1_32768, smp, (int2)(alu0,alu20));
    float4 val2 = read_imagef(data1_32768, smp, (int2)((alu0+-128),alu20));
    float4 val3 = read_imagef(data1_32768, smp, (int2)((alu0+-64),alu20));
    float4 val4 = read_imagef(data1_32768, smp, (int2)(alu3,alu20));
    float4 val5 = read_imagef(data1_32768, smp, (int2)(alu2,alu20));
    float4 val6 = read_imagef(data1_32768, smp, (int2)(alu1,alu20));
    float4 val7 = read_imagef(data1_32768, smp, (int2)((alu0+256),alu20));
    float4 val8 = read_imagef(data1_32768, smp, (int2)((alu0+320),alu20));
    float4 val9 = read_imagef(data1_32768, smp, (int2)((alu0+384),alu20));
    float4 val10 = read_imagef(data2_12544, smp, (int2)(alu21,idx0));
    float4 val11 = read_imagef(data2_12544, smp, (int2)((alu21+1),idx0));
    float4 val12 = read_imagef(data2_12544, smp, (int2)((alu21+2),idx0));
    float4 val13 = read_imagef(data2_12544, smp, (int2)((alu21+3),idx0));
    float4 val14 = read_imagef(data2_12544, smp, (int2)((alu21+4),idx0));
    float4 val15 = read_imagef(data2_12544, smp, (int2)((alu21+5),idx0));
    float4 val16 = read_imagef(data2_12544, smp, (int2)((alu21+6),idx0));
  }
  float4 val17 = (*((__global float4*)((data3_256+(idx0<<2)))));
  write_imagef(data0_32768, (int2)(alu0,idx2), (float4)(((*(acc0+0))+val17.x),((*(acc0+4))+val17.y),((*(acc0+8))+val17.z),((*(acc0+12))+val17.w)));
  write_imagef(data0_32768, (int2)(alu3,idx2), (float4)(((*(acc0+1))+val17.x),((*(acc0+5))+val17.y),((*(acc0+9))+val17.z),((*(acc0+13))+val17.w)));
  write_imagef(data0_32768, (int2)(alu2,idx2), (float4)(((*(acc0+2))+val17.x),((*(acc0+6))+val17.y),((*(acc0+10))+val17.z),((*(acc0+14))+val17.w)));
  write_imagef(data0_32768, (int2)(alu1,idx2), (float4)(((*(acc0+3))+val17.x),((*(acc0+7))+val17.y),((*(acc0+11))+val17.z),((*(acc0+15))+val17.w)));
}

__kernel void r_32_192_4_4_64_4(write_only image2d_t data0_98304, read_only image2d_t data1_32768, read_only image2d_t data2_196608, __global float* data3_768) {
  int idx0 = get_global_id(0); /* 192 */
    int alu17 = ((idx1<<8)+ridx1007);
    float4 val0 = read_imagef(data2_196608, smp, (int2)(alu18,idx0));
    float4 val1 = read_imagef(data2_196608, smp, (int2)((alu18+1),idx0));
    float4 val2 = read_imagef(data2_196608, smp, (int2)((alu18+2),idx0));
    float4 val3 = read_imagef(data2_196608, smp, (int2)((alu18+3),idx0));
    float4 val4 = read_imagef(data1_32768, smp, (int2)(((alu17+64)&1023),alu0));
    float4 val5 = read_imagef(data1_32768, smp, (int2)(((alu17+128)&1023),alu0));
    float4 val6 = read_imagef(data1_32768, smp, (int2)(((alu17+192)&1023),alu0));
    float4 val7 = read_imagef(data1_32768, smp, (int2)((alu17&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_768+(idx0<<2)))));
  int alu52 = (idx0+(idx1*768));
  int alu53 = (alu52+192);
  int alu54 = (alu52+384);
  int alu55 = (alu52+576);
  write_imagef(data0_98304, (int2)((alu52-(3072*((alu52*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu36+(0.044708251953125f*alu36*alu36*alu36))*-2.3021129851685216f))))*alu36),((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48)));
  write_imagef(data0_98304, (int2)((alu53-(3072*((alu53*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu37+(0.044708251953125f*alu37*alu37*alu37))*-2.3021129851685216f))))*alu37),((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49)));
  write_imagef(data0_98304, (int2)((alu54-(3072*((alu54*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_98304, (int2)((alu55-(3072*((alu55*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
}

__kernel void r_32_64_4_4_192_4(write_only image2d_t data0_32768, read_only image2d_t data1_32768, read_only image2d_t data2_98304, read_only image2d_t data3_196608, __global float* data4_256, __global float* data5_256) {
  for (int ridx1007 = 0; ridx1007 < 192; ridx1007++) {
    int alu17 = ((idx1*768)+ridx1007);
    int alu18 = (alu17+192);
    int alu19 = (alu17+384);
    int alu20 = (alu17+576);
    float4 val0 = read_imagef(data3_196608, smp, (int2)(alu21,idx0));
    float4 val1 = read_imagef(data3_196608, smp, (int2)((alu21+1),idx0));
    float4 val2 = read_imagef(data3_196608, smp, (int2)((alu21+2),idx0));
    float4 val3 = read_imagef(data3_196608, smp, (int2)((alu21+3),idx0));
    float4 val4 = read_imagef(data2_98304, smp, (int2)((alu18-(3072*((alu18*10923)>>25))),alu0));
    float4 val5 = read_imagef(data2_98304, smp, (int2)((alu19-(3072*((alu19*10923)>>25))),alu0));
    float4 val6 = read_imagef(data2_98304, smp, (int2)((alu20-(3072*((alu20*10923)>>25))),alu0));
    float4 val7 = read_imagef(data2_98304, smp, (int2)((alu17-(3072*((alu17*10923)>>25))),alu0));
  }
  float4 val8 = (*((__global float4*)((data4_256+alu39))));
  float4 val9 = (*((__global float4*)((data5_256+alu39))));
  int alu40 = (idx0+(idx1<<8));
  float4 val10 = read_imagef(data1_32768, smp, cast0);
  int2 cast1 = (int2)(((alu40+64)&1023),alu0);
  float4 val11 = read_imagef(data1_32768, smp, cast1);
  int2 cast2 = (int2)(((alu40+128)&1023),alu0);
  float4 val12 = read_imagef(data1_32768, smp, cast2);
  int2 cast3 = (int2)(((alu40+192)&1023),alu0);
  float4 val13 = read_imagef(data1_32768, smp, cast3);
  write_imagef(data0_32768, cast0, (float4)((val10.x+(((*(acc0+0))+val8.x)*val9.x)),(val10.y+(((*(acc0+4))+val8.y)*val9.y)),(val10.z+(((*(acc0+8))+val8.z)*val9.z)),(val10.w+(((*(acc0+12))+val8.w)*val9.w))));
  write_imagef(data0_32768, cast1, (float4)((val11.x+(((*(acc0+1))+val8.x)*val9.x)),(val11.y+(((*(acc0+5))+val8.y)*val9.y)),(val11.z+(((*(acc0+9))+val8.z)*val9.z)),(val11.w+(((*(acc0+13))+val8.w)*val9.w))));
  write_imagef(data0_32768, cast2, (float4)((val12.x+(((*(acc0+2))+val8.x)*val9.x)),(val12.y+(((*(acc0+6))+val8.y)*val9.y)),(val12.z+(((*(acc0+10))+val8.z)*val9.z)),(val12.w+(((*(acc0+14))+val8.w)*val9.w))));
  write_imagef(data0_32768, cast3, (float4)((val13.x+(((*(acc0+3))+val8.x)*val9.x)),(val13.y+(((*(acc0+7))+val8.y)*val9.y)),(val13.z+(((*(acc0+11))+val8.z)*val9.z)),(val13.w+(((*(acc0+15))+val8.w)*val9.w))));
}

__kernel void r_8_64_4_4_4_7_7(write_only image2d_t data0_32768, read_only image2d_t data1_32768, read_only image2d_t data2_50176) {
    int alu66 = (idx0+(ridx1009<<10));
      int alu67 = ((idx1<<1)+ridx1010);
      bool alu68 = (alu67<19);
      bool alu69 = (2<alu67);
      int alu70 = (ridx1010<<6);
      int alu71 = ((idx0+alu1+alu70+832)&1023);
      int alu72 = (alu66+alu1+alu70);
      int alu73 = (alu72+-3264);
      int alu74 = (alu72+-1216);
      int alu75 = (alu66+alu1+alu70);
      int alu76 = ((ridx1009*7)+ridx1010);
      float4 val0 = read_imagef(data2_50176, smp, (int2)(alu76,(alu0+1)));
      float4 val1 = read_imagef(data2_50176, smp, (int2)(alu76,(alu0+3)));
      float4 val2 = read_imagef(data2_50176, smp, (int2)(alu76,alu0));
      float4 val3 = read_imagef(data2_50176, smp, (int2)(alu76,(alu0+2)));
      int alu77 = (((idx1+((ridx1010+1)>>1)+6)>>3)+ridx1009);
      float4 val4 = ((alu69&alu68)?read_imagef(data1_32768, smp, (int2)(alu71,alu77)):cast0);
      float4 val5 = (((ridx1009<5)&alu69&alu68)?read_imagef(data1_32768, smp, (int2)(alu71,(alu77+2))):cast0);
      int alu78 = ((alu73<0)?1023:0);
      float4 val6 = (((2<ridx1009)&alu69&alu68)?read_imagef(data1_32768, smp, (int2)(((alu75+-3264)&1023),((alu73+alu78)>>10))):cast0);
      int alu79 = ((alu74<0)?1023:0);
      float4 val7 = (((0<ridx1009)&alu69&alu68)?read_imagef(data1_32768, smp, (int2)(((alu75+-1216)&1023),((alu74+alu79)>>10))):cast0);
      *(acc0+3) = ((*(acc0+3))+(val5.x*val2.x));
      *(acc0+19) = ((*(acc0+19))+(val5.x*val2.y));
      *(acc0+35) = ((*(acc0+35))+(val5.x*val2.z));
      *(acc0+51) = ((*(acc0+51))+(val5.x*val2.w));
      *(acc0+2) = ((*(acc0+2))+(val4.x*val2.x));
      *(acc0+18) = ((*(acc0+18))+(val4.x*val2.y));
      *(acc0+34) = ((*(acc0+34))+(val4.x*val2.z));
      *(acc0+50) = ((*(acc0+50))+(val4.x*val2.w));
      *(acc0+1) = ((*(acc0+1))+(val7.x*val2.x));
      *(acc0+17) = ((*(acc0+17))+(val7.x*val2.y));
      *(acc0+33) = ((*(acc0+33))+(val7.x*val2.z));
      *(acc0+49) = ((*(acc0+49))+(val7.x*val2.w));
      *(acc0+7) = ((*(acc0+7))+(val5.y*val0.x));
      *(acc0+23) = ((*(acc0+23))+(val5.y*val0.y));
      *(acc0+39) = ((*(acc0+39))+(val5.y*val0.z));
      *(acc0+55) = ((*(acc0+55))+(val5.y*val0.w));
      *(acc0+6) = ((*(acc0+6))+(val4.y*val0.x));
      *(acc0+22) = ((*(acc0+22))+(val4.y*val0.y));
      *(acc0+38) = ((*(acc0+38))+(val4.y*val0.z));
      *(acc0+54) = ((*(acc0+54))+(val4.y*val0.w));
      *(acc0+4) = ((*(acc0+4))+(val6.y*val0.x));
      *(acc0+20) = ((*(acc0+20))+(val6.y*val0.y));
      *(acc0+36) = ((*(acc0+36))+(val6.y*val0.z));
      *(acc0+52) = ((*(acc0+52))+(val6.y*val0.w));
      *(acc0+5) = ((*(acc0+5))+(val7.y*val0.x));
      *(acc0+21) = ((*(acc0+21))+(val7.y*val0.y));
      *(acc0+37) = ((*(acc0+37))+(val7.y*val0.z));
      *(acc0+53) = ((*(acc0+53))+(val7.y*val0.w));
      *(acc0+11) = ((*(acc0+11))+(val5.z*val3.x));
      *(acc0+27) = ((*(acc0+27))+(val5.z*val3.y));
      *(acc0+43) = ((*(acc0+43))+(val5.z*val3.z));
      *(acc0+59) = ((*(acc0+59))+(val5.z*val3.w));
      *(acc0+10) = ((*(acc0+10))+(val4.z*val3.x));
      *(acc0+26) = ((*(acc0+26))+(val4.z*val3.y));
      *(acc0+42) = ((*(acc0+42))+(val4.z*val3.z));
      *(acc0+58) = ((*(acc0+58))+(val4.z*val3.w));
      *(acc0+8) = ((*(acc0+8))+(val6.z*val3.x));
      *(acc0+24) = ((*(acc0+24))+(val6.z*val3.y));
      *(acc0+40) = ((*(acc0+40))+(val6.z*val3.z));
      *(acc0+56) = ((*(acc0+56))+(val6.z*val3.w));
      *(acc0+9) = ((*(acc0+9))+(val7.z*val3.x));
      *(acc0+25) = ((*(acc0+25))+(val7.z*val3.y));
      *(acc0+41) = ((*(acc0+41))+(val7.z*val3.z));
      *(acc0+57) = ((*(acc0+57))+(val7.z*val3.w));
      *(acc0+15) = ((*(acc0+15))+(val5.w*val1.x));
      *(acc0+31) = ((*(acc0+31))+(val5.w*val1.y));
      *(acc0+47) = ((*(acc0+47))+(val5.w*val1.z));
      *(acc0+63) = ((*(acc0+63))+(val5.w*val1.w));
      *(acc0+14) = ((*(acc0+14))+(val4.w*val1.x));
      *(acc0+30) = ((*(acc0+30))+(val4.w*val1.y));
      *(acc0+46) = ((*(acc0+46))+(val4.w*val1.z));
      *(acc0+62) = ((*(acc0+62))+(val4.w*val1.w));
      *(acc0+12) = ((*(acc0+12))+(val6.w*val1.x));
      *(acc0+28) = ((*(acc0+28))+(val6.w*val1.y));
      *(acc0+44) = ((*(acc0+44))+(val6.w*val1.z));
      *(acc0+60) = ((*(acc0+60))+(val6.w*val1.w));
      *(acc0+13) = ((*(acc0+13))+(val7.w*val1.x));
      *(acc0+29) = ((*(acc0+29))+(val7.w*val1.y));
      *(acc0+45) = ((*(acc0+45))+(val7.w*val1.z));
      *(acc0+61) = ((*(acc0+61))+(val7.w*val1.w));
    }
  }
  write_imagef(data0_32768, (int2)(alu146,0), (float4)((*(acc0+0)),(*(acc0+16)),(*(acc0+32)),(*(acc0+48))));
  write_imagef(data0_32768, (int2)(alu146,1), (float4)((*(acc0+1)),(*(acc0+17)),(*(acc0+33)),(*(acc0+49))));
  write_imagef(data0_32768, (int2)(alu146,2), (float4)((*(acc0+2)),(*(acc0+18)),(*(acc0+34)),(*(acc0+50))));
  write_imagef(data0_32768, (int2)(alu146,3), (float4)((*(acc0+3)),(*(acc0+19)),(*(acc0+35)),(*(acc0+51))));
  int alu151 = (alu146+1);
  write_imagef(data0_32768, (int2)(alu151,0), (float4)((*(acc0+4)),(*(acc0+20)),(*(acc0+36)),(*(acc0+52))));
  write_imagef(data0_32768, (int2)(alu151,1), (float4)((*(acc0+5)),(*(acc0+21)),(*(acc0+37)),(*(acc0+53))));
  write_imagef(data0_32768, (int2)(alu151,2), (float4)((*(acc0+6)),(*(acc0+22)),(*(acc0+38)),(*(acc0+54))));
  write_imagef(data0_32768, (int2)(alu151,3), (float4)((*(acc0+7)),(*(acc0+23)),(*(acc0+39)),(*(acc0+55))));
  int alu156 = (alu146+2);
  write_imagef(data0_32768, (int2)(alu156,0), (float4)((*(acc0+8)),(*(acc0+24)),(*(acc0+40)),(*(acc0+56))));
  write_imagef(data0_32768, (int2)(alu156,1), (float4)((*(acc0+9)),(*(acc0+25)),(*(acc0+41)),(*(acc0+57))));
  write_imagef(data0_32768, (int2)(alu156,2), (float4)((*(acc0+10)),(*(acc0+26)),(*(acc0+42)),(*(acc0+58))));
  write_imagef(data0_32768, (int2)(alu156,3), (float4)((*(acc0+11)),(*(acc0+27)),(*(acc0+43)),(*(acc0+59))));
  int alu161 = (alu146+3);
  write_imagef(data0_32768, (int2)(alu161,0), (float4)((*(acc0+12)),(*(acc0+28)),(*(acc0+44)),(*(acc0+60))));
  write_imagef(data0_32768, (int2)(alu161,1), (float4)((*(acc0+13)),(*(acc0+29)),(*(acc0+45)),(*(acc0+61))));
  write_imagef(data0_32768, (int2)(alu161,2), (float4)((*(acc0+14)),(*(acc0+30)),(*(acc0+46)),(*(acc0+62))));
  write_imagef(data0_32768, (int2)(alu161,3), (float4)((*(acc0+15)),(*(acc0+31)),(*(acc0+47)),(*(acc0+63))));
}

__kernel void E_8_128_4_4n1(write_only image2d_t data0_16384, read_only image2d_t data1_32768, __global float* data2_512) {
  int idx0 = get_global_id(0); /* 128 */
  float4 val0 = (*((__global float4*)((data2_512+(idx0<<2)))));
  int alu0 = (idx0+(idx1<<9));
  int alu1 = (idx1>>1);
  float4 val1 = read_imagef(data1_32768, smp, (int2)(alu3,alu1));
  float4 val2 = read_imagef(data1_32768, smp, (int2)((alu3+1),alu1));
  int alu4 = ((alu0+128)&1023);
  float4 val3 = read_imagef(data1_32768, smp, (int2)(alu5,alu1));
  float4 val4 = read_imagef(data1_32768, smp, (int2)((alu5+1),alu1));
  int alu6 = ((alu0+256)&1023);
  float4 val5 = read_imagef(data1_32768, smp, (int2)(alu7,alu1));
  float4 val6 = read_imagef(data1_32768, smp, (int2)((alu7+1),alu1));
  int alu8 = ((alu0+384)&1023);
  float4 val7 = read_imagef(data1_32768, smp, (int2)(alu9,alu1));
  float4 val8 = read_imagef(data1_32768, smp, (int2)((alu9+1),alu1));
  write_imagef(data0_16384, (int2)(alu2,alu1), (float4)((val1.x+val0.x),(val1.y+val0.y),(val2.x+val0.z),(val2.y+val0.w)));
  write_imagef(data0_16384, (int2)(alu4,alu1), (float4)((val3.x+val0.x),(val3.y+val0.y),(val4.x+val0.z),(val4.y+val0.w)));
  write_imagef(data0_16384, (int2)(alu6,alu1), (float4)((val5.x+val0.x),(val5.y+val0.y),(val6.x+val0.z),(val6.y+val0.w)));
  write_imagef(data0_16384, (int2)(alu8,alu1), (float4)((val7.x+val0.x),(val7.y+val0.y),(val8.x+val0.z),(val8.y+val0.w)));
}

__kernel void r_8_128_4_4_128_4(write_only image2d_t data0_16384, read_only image2d_t data1_16384, read_only image2d_t data2_262144, __global float* data3_512) {
  int alu0 = (idx1>>1);
  int alu1 = (idx1<<9);
  for (int ridx1007 = 0; ridx1007 < 128; ridx1007++) {
    float4 val0 = read_imagef(data2_262144, smp, (int2)(alu19,idx0));
    float4 val1 = read_imagef(data2_262144, smp, (int2)((alu19+1),idx0));
    float4 val2 = read_imagef(data2_262144, smp, (int2)((alu19+2),idx0));
    float4 val3 = read_imagef(data2_262144, smp, (int2)((alu19+3),idx0));
    float4 val4 = read_imagef(data1_16384, smp, (int2)(((alu18+128)&1023),alu0));
    float4 val5 = read_imagef(data1_16384, smp, (int2)(((alu18+256)&1023),alu0));
    float4 val6 = read_imagef(data1_16384, smp, (int2)(((alu18+384)&1023),alu0));
    float4 val7 = read_imagef(data1_16384, smp, (int2)((alu18&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_512+(idx0<<2)))));
  write_imagef(data0_16384, (int2)((alu37&1023),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_16384, (int2)(((alu37+128)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
  write_imagef(data0_16384, (int2)(((alu37+256)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48),((1/(1.0f+exp2(((alu52+(0.044708251953125f*alu52*alu52*alu52))*-2.3021129851685216f))))*alu52)));
  write_imagef(data0_16384, (int2)(((alu37+384)&1023),alu0), (float4)(((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49),((1/(1.0f+exp2(((alu53+(0.044708251953125f*alu53*alu53*alu53))*-2.3021129851685216f))))*alu53)));
}

__kernel void r_8_128_4_4_3_3(write_only image2d_t data0_16384, read_only image2d_t data1_16384, read_only image2d_t data2_4608, __global float* data3_512) {
  float4 val0 = read_imagef(data2_4608, smp, (int2)(0,idx0));
  float4 val1 = read_imagef(data2_4608, smp, (int2)(1,idx0));
  float4 val2 = read_imagef(data2_4608, smp, (int2)(2,idx0));
  float4 val3 = read_imagef(data2_4608, smp, (int2)(3,idx0));
  float4 val4 = read_imagef(data2_4608, smp, (int2)(4,idx0));
  float4 val5 = read_imagef(data2_4608, smp, (int2)(5,idx0));
  float4 val6 = read_imagef(data2_4608, smp, (int2)(6,idx0));
  float4 val7 = read_imagef(data2_4608, smp, (int2)(7,idx0));
  float4 val8 = read_imagef(data2_4608, smp, (int2)(8,idx0));
  float4 val9 = (*((__global float4*)((data3_512+(idx0<<2)))));
  int2 cast0 = (int2)(alu0,0);
  int2 cast1 = (int2)(alu0,1);
  int2 cast2 = (int2)(alu0,2);
  int2 cast3 = (int2)(alu0,3);
  float4 val10 = read_imagef(data1_16384, smp, cast0);
  float4 val11 = read_imagef(data1_16384, smp, cast1);
  float4 val12 = read_imagef(data1_16384, smp, cast2);
  float4 val13 = read_imagef(data1_16384, smp, cast3);
  int alu1 = (alu0+-128);
  float4 val14 = read_imagef(data1_16384, smp, (int2)(alu1,0));
  float4 val15 = read_imagef(data1_16384, smp, (int2)(alu1,1));
  float4 val16 = read_imagef(data1_16384, smp, (int2)(alu1,2));
  float4 val17 = read_imagef(data1_16384, smp, (int2)(alu1,3));
  float4 val18 = read_imagef(data1_16384, smp, (int2)(alu2,0));
  float4 val19 = read_imagef(data1_16384, smp, (int2)(alu2,1));
  float4 val20 = read_imagef(data1_16384, smp, (int2)(alu2,2));
  float4 val21 = read_imagef(data1_16384, smp, (int2)(alu2,3));
  write_imagef(data0_16384, cast0, (float4)(((val14.x*val3.x)+(val10.x*val4.x)+(val18.x*val5.x)+(val15.x*val6.x)+(val11.x*val7.x)+(val19.x*val8.x)+val9.x),((val14.y*val3.y)+(val10.y*val4.y)+(val18.y*val5.y)+(val15.y*val6.y)+(val11.y*val7.y)+(val19.y*val8.y)+val9.y),((val14.z*val3.z)+(val10.z*val4.z)+(val18.z*val5.z)+(val15.z*val6.z)+(val11.z*val7.z)+(val19.z*val8.z)+val9.z),((val14.w*val3.w)+(val10.w*val4.w)+(val18.w*val5.w)+(val15.w*val6.w)+(val11.w*val7.w)+(val19.w*val8.w)+val9.w)));
  write_imagef(data0_16384, cast1, (float4)(((val14.x*val0.x)+(val10.x*val1.x)+(val18.x*val2.x)+(val15.x*val3.x)+(val11.x*val4.x)+(val19.x*val5.x)+(val16.x*val6.x)+(val12.x*val7.x)+(val20.x*val8.x)+val9.x),((val14.y*val0.y)+(val10.y*val1.y)+(val18.y*val2.y)+(val15.y*val3.y)+(val11.y*val4.y)+(val19.y*val5.y)+(val16.y*val6.y)+(val12.y*val7.y)+(val20.y*val8.y)+val9.y),((val14.z*val0.z)+(val10.z*val1.z)+(val18.z*val2.z)+(val15.z*val3.z)+(val11.z*val4.z)+(val19.z*val5.z)+(val16.z*val6.z)+(val12.z*val7.z)+(val20.z*val8.z)+val9.z),((val14.w*val0.w)+(val10.w*val1.w)+(val18.w*val2.w)+(val15.w*val3.w)+(val11.w*val4.w)+(val19.w*val5.w)+(val16.w*val6.w)+(val12.w*val7.w)+(val20.w*val8.w)+val9.w)));
  write_imagef(data0_16384, cast3, (float4)(((val16.x*val0.x)+(val12.x*val1.x)+(val20.x*val2.x)+(val17.x*val3.x)+(val13.x*val4.x)+(val21.x*val5.x)+val9.x),((val16.y*val0.y)+(val12.y*val1.y)+(val20.y*val2.y)+(val17.y*val3.y)+(val13.y*val4.y)+(val21.y*val5.y)+val9.y),((val16.z*val0.z)+(val12.z*val1.z)+(val20.z*val2.z)+(val17.z*val3.z)+(val13.z*val4.z)+(val21.z*val5.z)+val9.z),((val16.w*val0.w)+(val12.w*val1.w)+(val20.w*val2.w)+(val17.w*val3.w)+(val13.w*val4.w)+(val21.w*val5.w)+val9.w)));
  write_imagef(data0_16384, cast2, (float4)(((val15.x*val0.x)+(val11.x*val1.x)+(val19.x*val2.x)+(val16.x*val3.x)+(val12.x*val4.x)+(val20.x*val5.x)+(val17.x*val6.x)+(val13.x*val7.x)+(val21.x*val8.x)+val9.x),((val15.y*val0.y)+(val11.y*val1.y)+(val19.y*val2.y)+(val16.y*val3.y)+(val12.y*val4.y)+(val20.y*val5.y)+(val17.y*val6.y)+(val13.y*val7.y)+(val21.y*val8.y)+val9.y),((val15.z*val0.z)+(val11.z*val1.z)+(val19.z*val2.z)+(val16.z*val3.z)+(val12.z*val4.z)+(val20.z*val5.z)+(val17.z*val6.z)+(val13.z*val7.z)+(val21.z*val8.z)+val9.z),((val15.w*val0.w)+(val11.w*val1.w)+(val19.w*val2.w)+(val16.w*val3.w)+(val12.w*val4.w)+(val20.w*val5.w)+(val17.w*val6.w)+(val13.w*val7.w)+(val21.w*val8.w)+val9.w)));
}

__kernel void r_8_128_4_4_7_7(write_only image2d_t data0_16384, read_only image2d_t data1_16384, read_only image2d_t data2_25088, __global float* data3_512) {
  int alu17 = (alu0+-384);
  int alu18 = (alu0+-256);
  int alu19 = (alu0+-128);
  int alu20 = (alu0+128);
  int alu21 = (alu0+256);
  int alu22 = (alu0+384);
    float4 val0 = read_imagef(data1_16384, smp, (int2)(alu17,ridx1009));
    float4 val1 = read_imagef(data1_16384, smp, (int2)(alu18,ridx1009));
    float4 val2 = read_imagef(data1_16384, smp, (int2)(alu0,ridx1009));
    float4 val3 = read_imagef(data1_16384, smp, (int2)(alu19,ridx1009));
    float4 val4 = read_imagef(data1_16384, smp, (int2)(alu20,ridx1009));
    float4 val5 = read_imagef(data1_16384, smp, (int2)(alu21,ridx1009));
    float4 val6 = read_imagef(data1_16384, smp, (int2)(alu22,ridx1009));
    int alu23 = (ridx1009+-3);
    float4 val7 = read_imagef(data1_16384, smp, (int2)(alu17,alu23));
    float4 val8 = read_imagef(data1_16384, smp, (int2)(alu18,alu23));
    float4 val9 = read_imagef(data1_16384, smp, (int2)(alu19,alu23));
    float4 val10 = read_imagef(data1_16384, smp, (int2)(alu0,alu23));
    float4 val11 = read_imagef(data1_16384, smp, (int2)(alu20,alu23));
    float4 val12 = read_imagef(data1_16384, smp, (int2)(alu21,alu23));
    float4 val13 = read_imagef(data1_16384, smp, (int2)(alu22,alu23));
    int alu24 = (ridx1009+-2);
    float4 val14 = read_imagef(data1_16384, smp, (int2)(alu17,alu24));
    float4 val15 = read_imagef(data1_16384, smp, (int2)(alu18,alu24));
    float4 val16 = read_imagef(data1_16384, smp, (int2)(alu0,alu24));
    float4 val17 = read_imagef(data1_16384, smp, (int2)(alu19,alu24));
    float4 val18 = read_imagef(data1_16384, smp, (int2)(alu20,alu24));
    float4 val19 = read_imagef(data1_16384, smp, (int2)(alu21,alu24));
    float4 val20 = read_imagef(data1_16384, smp, (int2)(alu22,alu24));
    int alu25 = (ridx1009+-1);
    float4 val21 = read_imagef(data1_16384, smp, (int2)(alu17,alu25));
    float4 val22 = read_imagef(data1_16384, smp, (int2)(alu18,alu25));
    float4 val23 = read_imagef(data1_16384, smp, (int2)(alu0,alu25));
    float4 val24 = read_imagef(data1_16384, smp, (int2)(alu19,alu25));
    float4 val25 = read_imagef(data1_16384, smp, (int2)(alu20,alu25));
    float4 val26 = read_imagef(data1_16384, smp, (int2)(alu21,alu25));
    float4 val27 = read_imagef(data1_16384, smp, (int2)(alu22,alu25));
    int alu26 = (ridx1009*7);
    float4 val28 = read_imagef(data2_25088, smp, (int2)(alu26,idx0));
    float4 val29 = read_imagef(data2_25088, smp, (int2)((alu26+1),idx0));
    float4 val30 = read_imagef(data2_25088, smp, (int2)((alu26+2),idx0));
    float4 val31 = read_imagef(data2_25088, smp, (int2)((alu26+3),idx0));
    float4 val32 = read_imagef(data2_25088, smp, (int2)((alu26+4),idx0));
    float4 val33 = read_imagef(data2_25088, smp, (int2)((alu26+5),idx0));
    float4 val34 = read_imagef(data2_25088, smp, (int2)((alu26+6),idx0));
    *(acc0+0) = ((*(acc0+0))+(val7.x*val28.x)+(val8.x*val29.x)+(val9.x*val30.x)+(val10.x*val31.x)+(val11.x*val32.x)+(val12.x*val33.x)+(val13.x*val34.x));
    *(acc0+1) = ((*(acc0+1))+(val14.x*val28.x)+(val15.x*val29.x)+(val17.x*val30.x)+(val16.x*val31.x)+(val18.x*val32.x)+(val19.x*val33.x)+(val20.x*val34.x));
    *(acc0+2) = ((*(acc0+2))+(val21.x*val28.x)+(val22.x*val29.x)+(val24.x*val30.x)+(val23.x*val31.x)+(val25.x*val32.x)+(val26.x*val33.x)+(val27.x*val34.x));
    *(acc0+3) = ((*(acc0+3))+(val0.x*val28.x)+(val1.x*val29.x)+(val3.x*val30.x)+(val2.x*val31.x)+(val4.x*val32.x)+(val5.x*val33.x)+(val6.x*val34.x));
    *(acc0+4) = ((*(acc0+4))+(val7.y*val28.y)+(val8.y*val29.y)+(val9.y*val30.y)+(val10.y*val31.y)+(val11.y*val32.y)+(val12.y*val33.y)+(val13.y*val34.y));
    *(acc0+5) = ((*(acc0+5))+(val14.y*val28.y)+(val15.y*val29.y)+(val17.y*val30.y)+(val16.y*val31.y)+(val18.y*val32.y)+(val19.y*val33.y)+(val20.y*val34.y));
    *(acc0+6) = ((*(acc0+6))+(val21.y*val28.y)+(val22.y*val29.y)+(val24.y*val30.y)+(val23.y*val31.y)+(val25.y*val32.y)+(val26.y*val33.y)+(val27.y*val34.y));
    *(acc0+7) = ((*(acc0+7))+(val0.y*val28.y)+(val1.y*val29.y)+(val3.y*val30.y)+(val2.y*val31.y)+(val4.y*val32.y)+(val5.y*val33.y)+(val6.y*val34.y));
    *(acc0+8) = ((*(acc0+8))+(val7.z*val28.z)+(val8.z*val29.z)+(val9.z*val30.z)+(val10.z*val31.z)+(val11.z*val32.z)+(val12.z*val33.z)+(val13.z*val34.z));
    *(acc0+9) = ((*(acc0+9))+(val14.z*val28.z)+(val15.z*val29.z)+(val17.z*val30.z)+(val16.z*val31.z)+(val18.z*val32.z)+(val19.z*val33.z)+(val20.z*val34.z));
    *(acc0+10) = ((*(acc0+10))+(val21.z*val28.z)+(val22.z*val29.z)+(val24.z*val30.z)+(val23.z*val31.z)+(val25.z*val32.z)+(val26.z*val33.z)+(val27.z*val34.z));
    *(acc0+11) = ((*(acc0+11))+(val0.z*val28.z)+(val1.z*val29.z)+(val3.z*val30.z)+(val2.z*val31.z)+(val4.z*val32.z)+(val5.z*val33.z)+(val6.z*val34.z));
    *(acc0+12) = ((*(acc0+12))+(val7.w*val28.w)+(val8.w*val29.w)+(val9.w*val30.w)+(val10.w*val31.w)+(val11.w*val32.w)+(val12.w*val33.w)+(val13.w*val34.w));
    *(acc0+13) = ((*(acc0+13))+(val14.w*val28.w)+(val15.w*val29.w)+(val17.w*val30.w)+(val16.w*val31.w)+(val18.w*val32.w)+(val19.w*val33.w)+(val20.w*val34.w));
    *(acc0+14) = ((*(acc0+14))+(val21.w*val28.w)+(val22.w*val29.w)+(val24.w*val30.w)+(val23.w*val31.w)+(val25.w*val32.w)+(val26.w*val33.w)+(val27.w*val34.w));
    *(acc0+15) = ((*(acc0+15))+(val0.w*val28.w)+(val1.w*val29.w)+(val3.w*val30.w)+(val2.w*val31.w)+(val4.w*val32.w)+(val5.w*val33.w)+(val6.w*val34.w));
  }
  float4 val35 = (*((__global float4*)((data3_512+(idx0<<2)))));
  write_imagef(data0_16384, (int2)(alu0,0), (float4)(((*(acc0+0))+val35.x),((*(acc0+4))+val35.y),((*(acc0+8))+val35.z),((*(acc0+12))+val35.w)));
  write_imagef(data0_16384, (int2)(alu0,1), (float4)(((*(acc0+1))+val35.x),((*(acc0+5))+val35.y),((*(acc0+9))+val35.z),((*(acc0+13))+val35.w)));
  write_imagef(data0_16384, (int2)(alu0,2), (float4)(((*(acc0+2))+val35.x),((*(acc0+6))+val35.y),((*(acc0+10))+val35.z),((*(acc0+14))+val35.w)));
  write_imagef(data0_16384, (int2)(alu0,3), (float4)(((*(acc0+3))+val35.x),((*(acc0+7))+val35.y),((*(acc0+11))+val35.z),((*(acc0+15))+val35.w)));
}

__kernel void r_8_384_4_4_128_4(write_only image2d_t data0_49152, read_only image2d_t data1_16384, read_only image2d_t data2_786432, __global float* data3_1536) {
  int idx0 = get_global_id(0); /* 384 */
    int alu17 = ((idx1<<9)+ridx1007);
    float4 val0 = read_imagef(data2_786432, smp, (int2)(alu18,idx0));
    float4 val1 = read_imagef(data2_786432, smp, (int2)((alu18+1),idx0));
    float4 val2 = read_imagef(data2_786432, smp, (int2)((alu18+2),idx0));
    float4 val3 = read_imagef(data2_786432, smp, (int2)((alu18+3),idx0));
    float4 val4 = read_imagef(data1_16384, smp, (int2)(((alu17+128)&1023),alu0));
    float4 val5 = read_imagef(data1_16384, smp, (int2)(((alu17+256)&1023),alu0));
    float4 val6 = read_imagef(data1_16384, smp, (int2)(((alu17+384)&1023),alu0));
    float4 val7 = read_imagef(data1_16384, smp, (int2)((alu17&1023),alu0));
  }
  float4 val8 = (*((__global float4*)((data3_1536+(idx0<<2)))));
  int alu52 = (idx0+(idx1*1536));
  int alu53 = (alu52+384);
  int alu54 = (alu52+768);
  int alu55 = (alu52+1152);
  write_imagef(data0_49152, (int2)((alu52-(3072*((alu52*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu36+(0.044708251953125f*alu36*alu36*alu36))*-2.3021129851685216f))))*alu36),((1/(1.0f+exp2(((alu40+(0.044708251953125f*alu40*alu40*alu40))*-2.3021129851685216f))))*alu40),((1/(1.0f+exp2(((alu44+(0.044708251953125f*alu44*alu44*alu44))*-2.3021129851685216f))))*alu44),((1/(1.0f+exp2(((alu48+(0.044708251953125f*alu48*alu48*alu48))*-2.3021129851685216f))))*alu48)));
  write_imagef(data0_49152, (int2)((alu53-(3072*((alu53*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu37+(0.044708251953125f*alu37*alu37*alu37))*-2.3021129851685216f))))*alu37),((1/(1.0f+exp2(((alu41+(0.044708251953125f*alu41*alu41*alu41))*-2.3021129851685216f))))*alu41),((1/(1.0f+exp2(((alu45+(0.044708251953125f*alu45*alu45*alu45))*-2.3021129851685216f))))*alu45),((1/(1.0f+exp2(((alu49+(0.044708251953125f*alu49*alu49*alu49))*-2.3021129851685216f))))*alu49)));
  write_imagef(data0_49152, (int2)((alu54-(3072*((alu54*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu38+(0.044708251953125f*alu38*alu38*alu38))*-2.3021129851685216f))))*alu38),((1/(1.0f+exp2(((alu42+(0.044708251953125f*alu42*alu42*alu42))*-2.3021129851685216f))))*alu42),((1/(1.0f+exp2(((alu46+(0.044708251953125f*alu46*alu46*alu46))*-2.3021129851685216f))))*alu46),((1/(1.0f+exp2(((alu50+(0.044708251953125f*alu50*alu50*alu50))*-2.3021129851685216f))))*alu50)));
  write_imagef(data0_49152, (int2)((alu55-(3072*((alu55*10923)>>25))),alu0), (float4)(((1/(1.0f+exp2(((alu39+(0.044708251953125f*alu39*alu39*alu39))*-2.3021129851685216f))))*alu39),((1/(1.0f+exp2(((alu43+(0.044708251953125f*alu43*alu43*alu43))*-2.3021129851685216f))))*alu43),((1/(1.0f+exp2(((alu47+(0.044708251953125f*alu47*alu47*alu47))*-2.3021129851685216f))))*alu47),((1/(1.0f+exp2(((alu51+(0.044708251953125f*alu51*alu51*alu51))*-2.3021129851685216f))))*alu51)));
}

__kernel void r_8_128_4_4_384_4(write_only image2d_t data0_16384, read_only image2d_t data1_16384, read_only image2d_t data2_49152, read_only image2d_t data3_786432, __global float* data4_512, __global float* data5_512) {
  for (int ridx1007 = 0; ridx1007 < 384; ridx1007++) {
    int alu17 = ((idx1*1536)+ridx1007);
    int alu18 = (alu17+384);
    int alu19 = (alu17+768);
    int alu20 = (alu17+1152);
    float4 val0 = read_imagef(data3_786432, smp, (int2)(alu21,idx0));
    float4 val1 = read_imagef(data3_786432, smp, (int2)((alu21+1),idx0));
    float4 val2 = read_imagef(data3_786432, smp, (int2)((alu21+2),idx0));
    float4 val3 = read_imagef(data3_786432, smp, (int2)((alu21+3),idx0));
    float4 val4 = read_imagef(data2_49152, smp, (int2)((alu18-(3072*((alu18*10923)>>25))),alu0));
    float4 val5 = read_imagef(data2_49152, smp, (int2)((alu19-(3072*((alu19*10923)>>25))),alu0));
    float4 val6 = read_imagef(data2_49152, smp, (int2)((alu20-(3072*((alu20*10923)>>25))),alu0));
    float4 val7 = read_imagef(data2_49152, smp, (int2)((alu17-(3072*((alu17*10923)>>25))),alu0));
  }
  float4 val8 = (*((__global float4*)((data4_512+alu39))));
  float4 val9 = (*((__global float4*)((data5_512+alu39))));
  int alu40 = (idx0+(idx1<<9));
  int2 cast1 = (int2)(((alu40+128)&1023),alu0);
  int2 cast2 = (int2)(((alu40+256)&1023),alu0);
  int2 cast3 = (int2)(((alu40+384)&1023),alu0);
  write_imagef(data0_16384, cast0, (float4)((val10.x+(((*(acc0+0))+val8.x)*val9.x)),(val10.y+(((*(acc0+4))+val8.y)*val9.y)),(val10.z+(((*(acc0+8))+val8.z)*val9.z)),(val10.w+(((*(acc0+12))+val8.w)*val9.w))));
  write_imagef(data0_16384, cast1, (float4)((val11.x+(((*(acc0+1))+val8.x)*val9.x)),(val11.y+(((*(acc0+5))+val8.y)*val9.y)),(val11.z+(((*(acc0+9))+val8.z)*val9.z)),(val11.w+(((*(acc0+13))+val8.w)*val9.w))));
  write_imagef(data0_16384, cast2, (float4)((val12.x+(((*(acc0+2))+val8.x)*val9.x)),(val12.y+(((*(acc0+6))+val8.y)*val9.y)),(val12.z+(((*(acc0+10))+val8.z)*val9.z)),(val12.w+(((*(acc0+14))+val8.w)*val9.w))));
  write_imagef(data0_16384, cast3, (float4)((val13.x+(((*(acc0+3))+val8.x)*val9.x)),(val13.y+(((*(acc0+7))+val8.y)*val9.y)),(val13.z+(((*(acc0+11))+val8.z)*val9.z)),(val13.w+(((*(acc0+15))+val8.w)*val9.w))));
}

__kernel void r_8_128_4_4_4_3_3(write_only image2d_t data0_65536, read_only image2d_t data1_16384, read_only image2d_t data2_18432) {
  for (int ridx1009 = 0; ridx1009 < 3; ridx1009++) {
    for (int ridx1010 = 0; ridx1010 < 3; ridx1010++) {
      int alu67 = (idx1+ridx1010);
      bool alu68 = (alu67<9);
      bool alu69 = (0<alu67);
      int alu70 = (ridx1010<<7);
      bool alu71 = (alu69&alu68);
      int alu72 = ((idx0+alu1+alu70+896)&1023);
      float4 val0 = (alu71?read_imagef(data1_16384, smp, (int2)(alu72,(ridx1009+1))):cast0);
      float4 val1 = (alu71?read_imagef(data1_16384, smp, (int2)(alu72,(ridx1009+2))):cast0);
      float4 val2 = (alu71?read_imagef(data1_16384, smp, (int2)(alu72,ridx1009)):cast0);
      int alu73 = (alu66+alu1+alu70+-1152);
      int alu74 = ((ridx1009*3)+ridx1010);
      float4 val3 = read_imagef(data2_18432, smp, (int2)(alu74,(alu0+1)));
      float4 val4 = read_imagef(data2_18432, smp, (int2)(alu74,(alu0+2)));
      float4 val5 = read_imagef(data2_18432, smp, (int2)(alu74,(alu0+3)));
      float4 val6 = read_imagef(data2_18432, smp, (int2)(alu74,alu0));
      int alu75 = ((alu73<0)?1023:0);
      float4 val7 = (((0<ridx1009)&alu69&alu68)?read_imagef(data1_16384, smp, (int2)(((alu66+alu1+alu70+-1152)&1023),((alu73+alu75)>>10))):cast0);
      *(acc0+2) = ((*(acc0+2))+(val0.x*val6.x));
      *(acc0+18) = ((*(acc0+18))+(val0.x*val6.y));
      *(acc0+34) = ((*(acc0+34))+(val0.x*val6.z));
      *(acc0+50) = ((*(acc0+50))+(val0.x*val6.w));
      *(acc0+3) = ((*(acc0+3))+(val1.x*val6.x));
      *(acc0+19) = ((*(acc0+19))+(val1.x*val6.y));
      *(acc0+35) = ((*(acc0+35))+(val1.x*val6.z));
      *(acc0+51) = ((*(acc0+51))+(val1.x*val6.w));
      *(acc0+1) = ((*(acc0+1))+(val2.x*val6.x));
      *(acc0+17) = ((*(acc0+17))+(val2.x*val6.y));
      *(acc0+33) = ((*(acc0+33))+(val2.x*val6.z));
      *(acc0+49) = ((*(acc0+49))+(val2.x*val6.w));
      *(acc0+0) = ((*(acc0+0))+(val7.x*val6.x));
      *(acc0+16) = ((*(acc0+16))+(val7.x*val6.y));
      *(acc0+32) = ((*(acc0+32))+(val7.x*val6.z));
      *(acc0+48) = ((*(acc0+48))+(val7.x*val6.w));
      *(acc0+6) = ((*(acc0+6))+(val0.y*val3.x));
      *(acc0+22) = ((*(acc0+22))+(val0.y*val3.y));
      *(acc0+38) = ((*(acc0+38))+(val0.y*val3.z));
      *(acc0+54) = ((*(acc0+54))+(val0.y*val3.w));
      *(acc0+7) = ((*(acc0+7))+(val1.y*val3.x));
      *(acc0+23) = ((*(acc0+23))+(val1.y*val3.y));
      *(acc0+39) = ((*(acc0+39))+(val1.y*val3.z));
      *(acc0+55) = ((*(acc0+55))+(val1.y*val3.w));
      *(acc0+5) = ((*(acc0+5))+(val2.y*val3.x));
      *(acc0+21) = ((*(acc0+21))+(val2.y*val3.y));
      *(acc0+37) = ((*(acc0+37))+(val2.y*val3.z));
      *(acc0+53) = ((*(acc0+53))+(val2.y*val3.w));
      *(acc0+4) = ((*(acc0+4))+(val7.y*val3.x));
      *(acc0+20) = ((*(acc0+20))+(val7.y*val3.y));
      *(acc0+36) = ((*(acc0+36))+(val7.y*val3.z));
      *(acc0+52) = ((*(acc0+52))+(val7.y*val3.w));
      *(acc0+10) = ((*(acc0+10))+(val0.z*val4.x));
      *(acc0+26) = ((*(acc0+26))+(val0.z*val4.y));
      *(acc0+42) = ((*(acc0+42))+(val0.z*val4.z));
      *(acc0+58) = ((*(acc0+58))+(val0.z*val4.w));
      *(acc0+11) = ((*(acc0+11))+(val1.z*val4.x));
      *(acc0+27) = ((*(acc0+27))+(val1.z*val4.y));
      *(acc0+43) = ((*(acc0+43))+(val1.z*val4.z));
      *(acc0+59) = ((*(acc0+59))+(val1.z*val4.w));
      *(acc0+9) = ((*(acc0+9))+(val2.z*val4.x));
      *(acc0+25) = ((*(acc0+25))+(val2.z*val4.y));
      *(acc0+41) = ((*(acc0+41))+(val2.z*val4.z));
      *(acc0+57) = ((*(acc0+57))+(val2.z*val4.w));
      *(acc0+8) = ((*(acc0+8))+(val7.z*val4.x));
      *(acc0+24) = ((*(acc0+24))+(val7.z*val4.y));
      *(acc0+40) = ((*(acc0+40))+(val7.z*val4.z));
      *(acc0+56) = ((*(acc0+56))+(val7.z*val4.w));
      *(acc0+14) = ((*(acc0+14))+(val0.w*val5.x));
      *(acc0+30) = ((*(acc0+30))+(val0.w*val5.y));
      *(acc0+46) = ((*(acc0+46))+(val0.w*val5.z));
      *(acc0+62) = ((*(acc0+62))+(val0.w*val5.w));
      *(acc0+15) = ((*(acc0+15))+(val1.w*val5.x));
      *(acc0+31) = ((*(acc0+31))+(val1.w*val5.y));
      *(acc0+47) = ((*(acc0+47))+(val1.w*val5.z));
      *(acc0+63) = ((*(acc0+63))+(val1.w*val5.w));
      *(acc0+13) = ((*(acc0+13))+(val2.w*val5.x));
      *(acc0+29) = ((*(acc0+29))+(val2.w*val5.y));
      *(acc0+45) = ((*(acc0+45))+(val2.w*val5.z));
      *(acc0+61) = ((*(acc0+61))+(val2.w*val5.w));
      *(acc0+12) = ((*(acc0+12))+(val7.w*val5.x));
      *(acc0+28) = ((*(acc0+28))+(val7.w*val5.y));
      *(acc0+44) = ((*(acc0+44))+(val7.w*val5.z));
      *(acc0+60) = ((*(acc0+60))+(val7.w*val5.w));
    }
  }
  int alu142 = (alu0+(idx1<<9));
  write_imagef(data0_65536, (int2)(alu142,0), (float4)((*(acc0+0)),(*(acc0+16)),(*(acc0+32)),(*(acc0+48))));
  write_imagef(data0_65536, (int2)(alu142,1), (float4)((*(acc0+1)),(*(acc0+17)),(*(acc0+33)),(*(acc0+49))));
  write_imagef(data0_65536, (int2)(alu142,2), (float4)((*(acc0+2)),(*(acc0+18)),(*(acc0+34)),(*(acc0+50))));
  write_imagef(data0_65536, (int2)(alu142,3), (float4)((*(acc0+3)),(*(acc0+19)),(*(acc0+35)),(*(acc0+51))));
  int alu147 = (alu142+1);
  write_imagef(data0_65536, (int2)(alu147,0), (float4)((*(acc0+4)),(*(acc0+20)),(*(acc0+36)),(*(acc0+52))));
  write_imagef(data0_65536, (int2)(alu147,1), (float4)((*(acc0+5)),(*(acc0+21)),(*(acc0+37)),(*(acc0+53))));
  write_imagef(data0_65536, (int2)(alu147,2), (float4)((*(acc0+6)),(*(acc0+22)),(*(acc0+38)),(*(acc0+54))));
  write_imagef(data0_65536, (int2)(alu147,3), (float4)((*(acc0+7)),(*(acc0+23)),(*(acc0+39)),(*(acc0+55))));
  int alu152 = (alu142+2);
  write_imagef(data0_65536, (int2)(alu152,0), (float4)((*(acc0+8)),(*(acc0+24)),(*(acc0+40)),(*(acc0+56))));
  write_imagef(data0_65536, (int2)(alu152,1), (float4)((*(acc0+9)),(*(acc0+25)),(*(acc0+41)),(*(acc0+57))));
  write_imagef(data0_65536, (int2)(alu152,2), (float4)((*(acc0+10)),(*(acc0+26)),(*(acc0+42)),(*(acc0+58))));
  write_imagef(data0_65536, (int2)(alu152,3), (float4)((*(acc0+11)),(*(acc0+27)),(*(acc0+43)),(*(acc0+59))));
  int alu157 = (alu142+3);
  write_imagef(data0_65536, (int2)(alu157,0), (float4)((*(acc0+12)),(*(acc0+28)),(*(acc0+44)),(*(acc0+60))));
  write_imagef(data0_65536, (int2)(alu157,1), (float4)((*(acc0+13)),(*(acc0+29)),(*(acc0+45)),(*(acc0+61))));
  write_imagef(data0_65536, (int2)(alu157,2), (float4)((*(acc0+14)),(*(acc0+30)),(*(acc0+46)),(*(acc0+62))));
  write_imagef(data0_65536, (int2)(alu157,3), (float4)((*(acc0+15)),(*(acc0+31)),(*(acc0+47)),(*(acc0+63))));
}

__kernel void r_256_16_4_2(write_only image2d_t data0_1024, read_only image2d_t data1_65536, __global float* data2_1024) {
  __attribute__ ((aligned (16))) __local float temp0[64];
  float acc0[4];
  float acc1[4];
  int gidx0 = get_group_id(0); /* 256 */
  int lidx0 = get_local_id(0); /* 16 */
  *(acc1+0) = 0.0f;
  *(acc1+1) = 0.0f;
  *(acc1+2) = 0.0f;
  *(acc1+3) = 0.0f;
  float4 val0 = (*((__global float4*)((data2_1024+(gidx0<<2)))));
  int alu8 = (lidx0>>2);
  for (int ridx1002 = 0; ridx1002 < 2; ridx1002++) {
    int alu9 = (((gidx0+(lidx0<<9)+(ridx1002<<8))&2047)<<1);
    float4 val1 = read_imagef(data1_65536, smp, (int2)(alu9,alu8));
    float4 val2 = read_imagef(data1_65536, smp, (int2)((alu9+1),alu8));
    *(acc0+0) = ((*(acc0+0))+val1.x+val0.x);
    *(acc0+1) = ((*(acc0+1))+val1.y+val0.y);
    *(acc0+2) = ((*(acc0+2))+val2.x+val0.z);
    *(acc0+3) = ((*(acc0+3))+val2.y+val0.w);
  }
  *((__local float4*)((temp0+(lidx0<<2)))) = (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3)));
  barrier(CLK_LOCAL_MEM_FENCE);
  if ((((bool)(lidx0))!=1)) {
    for (int ridx1103 = 0; ridx1103 < 16; ridx1103++) {
      float4 val3 = (*((__local float4*)((temp0+(ridx1103<<2)))));
      *(acc1+0) = ((*(acc1+0))+val3.x);
      *(acc1+1) = ((*(acc1+1))+val3.y);
      *(acc1+2) = ((*(acc1+2))+val3.z);
      *(acc1+3) = ((*(acc1+3))+val3.w);
    }
    write_imagef(data0_1024, (int2)(gidx0,0), (float4)(((*(acc1+0))*0.03125f),((*(acc1+1))*0.03125f),((*(acc1+2))*0.03125f),((*(acc1+3))*0.03125f)));
  }
}

__kernel void r_16_16_4_16_4(write_only image2d_t data0_64, read_only image2d_t data1_1024, read_only image2d_t data2_65536, __global half* data3_64) {
  int gidx0 = get_group_id(0); /* 16 */
  half4 val0 = (*((__global half4*)((data3_64+(gidx0<<2)))));
    float4 val1 = read_imagef(data1_1024, smp, (int2)(((lidx0<<4)+ridx1007),0));
    int alu8 = ((lidx0<<6)+(ridx1007<<2));
    float4 val2 = read_imagef(data2_65536, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_65536, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_65536, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_65536, smp, (int2)((alu8+3),gidx0));
    *(acc0+1) = ((*(acc0+1))+(val1.x*val3.x)+(val1.y*val3.y)+(val1.z*val3.z)+(val1.w*val3.w));
    *(acc0+2) = ((*(acc0+2))+(val1.x*val4.x)+(val1.y*val4.y)+(val1.z*val4.z)+(val1.w*val4.w));
    *(acc0+3) = ((*(acc0+3))+(val1.x*val5.x)+(val1.y*val5.y)+(val1.z*val5.z)+(val1.w*val5.w));
    *(acc0+0) = ((*(acc0+0))+(val1.x*val2.x)+(val1.y*val2.y)+(val1.z*val2.z)+(val1.w*val2.w));
  }
    for (int ridx1109 = 0; ridx1109 < 16; ridx1109++) {
      float4 val6 = (*((__local float4*)((temp0+(ridx1109<<2)))));
      *(acc1+0) = ((*(acc1+0))+val6.x);
      *(acc1+1) = ((*(acc1+1))+val6.y);
      *(acc1+2) = ((*(acc1+2))+val6.z);
      *(acc1+3) = ((*(acc1+3))+val6.w);
    }
    float alu22 = ((*(acc1+0))+((float)(val0.x)));
    float alu23 = ((*(acc1+1))+((float)(val0.y)));
    float alu24 = ((*(acc1+2))+((float)(val0.z)));
    float alu25 = ((*(acc1+3))+((float)(val0.w)));
    float alu26 = ((0.0f<alu22)?alu22:0.0f);
    float alu27 = ((0.0f<alu23)?alu23:0.0f);
    float alu28 = ((0.0f<alu24)?alu24:0.0f);
    float alu29 = ((0.0f<alu25)?alu25:0.0f);
    write_imagef(data0_64, (int2)(gidx0,0), (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_256_4_16_4(__global float* data0_1024, read_only image2d_t data1_64, read_only image2d_t data2_65536, __global half* data3_1024) {
  __attribute__ ((aligned (16))) __local float temp0[16];
  float acc0[1];
  int gidx0 = get_group_id(0); /* 4 */
  int gidx1 = get_group_id(1); /* 256 */
  int alu1 = (gidx0+(gidx1<<2));
  half val0 = (*(data3_1024+alu1));
  float4 val1 = read_imagef(data1_64, smp, (int2)(lidx0,0));
  float4 val2 = read_imagef(data2_65536, smp, (int2)((gidx0+(lidx0<<2)),gidx1));
  *(temp0+lidx0) = ((val1.x*val2.x)+(val1.y*val2.y)+(val1.z*val2.z)+(val1.w*val2.w));
      float val3 = (*(temp0+ridx1109));
      *(acc0+0) = ((*(acc0+0))+val3);
    }
    *(data0_1024+alu1) = (1/(1.0f+exp2((((*(acc0+0))+((float)(val0)))*-1.4426950408889634f))));
  }
}

__kernel void r_256_16_4_2n1(write_only image2d_t data0_1024, read_only image2d_t data1_65536, __global float* data2_1024, __global float* data3_1024) {
  int alu0 = (gidx0<<2);
  float4 val0 = (*((__global float4*)((data3_1024+alu0))));
  float4 val1 = (*((__global float4*)((data2_1024+alu0))));
  int alu9 = (lidx0>>2);
    int alu10 = (((gidx0+(lidx0<<9)+(ridx1002<<8))&2047)<<1);
    float4 val2 = read_imagef(data1_65536, smp, (int2)(alu10,alu9));
    float4 val3 = read_imagef(data1_65536, smp, (int2)((alu10+1),alu9));
    float alu11 = (val3.x+val1.z);
    float alu12 = (val2.x+val1.x);
    float alu13 = (val3.y+val1.w);
    float alu14 = (val2.y+val1.y);
    float alu15 = (alu11*val0.z);
    float alu16 = (alu12*val0.x);
    float alu17 = (alu13*val0.w);
    float alu18 = (alu14*val0.y);
    *(acc0+2) = ((*(acc0+2))+((1/(1.0f+exp2(((alu15+(0.044708251953125f*alu15*alu15*alu15))*-2.3021129851685216f))))*alu11));
    *(acc0+0) = ((*(acc0+0))+((1/(1.0f+exp2(((alu16+(0.044708251953125f*alu16*alu16*alu16))*-2.3021129851685216f))))*alu12));
    *(acc0+3) = ((*(acc0+3))+((1/(1.0f+exp2(((alu17+(0.044708251953125f*alu17*alu17*alu17))*-2.3021129851685216f))))*alu13));
    *(acc0+1) = ((*(acc0+1))+((1/(1.0f+exp2(((alu18+(0.044708251953125f*alu18*alu18*alu18))*-2.3021129851685216f))))*alu14));
  }
      float4 val4 = (*((__local float4*)((temp0+(ridx1103<<2)))));
      *(acc1+0) = ((*(acc1+0))+val4.x);
      *(acc1+1) = ((*(acc1+1))+val4.y);
      *(acc1+2) = ((*(acc1+2))+val4.z);
      *(acc1+3) = ((*(acc1+3))+val4.w);
    }
    write_imagef(data0_1024, (int2)(gidx0,0), (float4)(((*(acc1+0))*val0.x*0.03125f),((*(acc1+1))*val0.y*0.03125f),((*(acc1+2))*val0.z*0.03125f),((*(acc1+3))*val0.w*0.03125f)));
  }
}

__kernel void r_512_16_4_16_4(write_only image2d_t data0_2048, read_only image2d_t data1_1024, read_only image2d_t data2_2097152, __global half* data3_2048) {
  int gidx0 = get_group_id(0); /* 512 */
  half4 val0 = (*((__global half4*)((data3_2048+(gidx0<<2)))));
    float4 val2 = read_imagef(data2_2097152, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_2097152, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_2097152, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_2097152, smp, (int2)((alu8+3),gidx0));
  }
    }
    write_imagef(data0_2048, (int2)(gidx0,0), (float4)(((*(acc1+0))+((float)(val0.x))),((*(acc1+1))+((float)(val0.y))),((*(acc1+2))+((float)(val0.z))),((*(acc1+3))+((float)(val0.w)))));
  }
}

__kernel void r_128_16_4_32_4(write_only image2d_t data0_512, read_only image2d_t data1_2048, read_only image2d_t data2_1048576, __global half* data3_512) {
  int gidx0 = get_group_id(0); /* 128 */
  half4 val0 = (*((__global half4*)((data3_512+(gidx0<<2)))));
    float4 val1 = read_imagef(data1_2048, smp, (int2)(((lidx0<<5)+ridx1007),0));
    int alu8 = ((lidx0<<7)+(ridx1007<<2));
    float4 val2 = read_imagef(data2_1048576, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_1048576, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_1048576, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_1048576, smp, (int2)((alu8+3),gidx0));
  }
    }
    write_imagef(data0_512, (int2)(gidx0,0), (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_256_16_4_8_4(write_only image2d_t data0_1024, read_only image2d_t data1_512, read_only image2d_t data2_524288, __global half* data3_1024) {
  half4 val0 = (*((__global half4*)((data3_1024+(gidx0<<2)))));
  for (int ridx1007 = 0; ridx1007 < 8; ridx1007++) {
    float4 val1 = read_imagef(data1_512, smp, (int2)(((lidx0<<3)+ridx1007),0));
    int alu8 = ((lidx0<<5)+(ridx1007<<2));
    float4 val2 = read_imagef(data2_524288, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_524288, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_524288, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_524288, smp, (int2)((alu8+3),gidx0));
  }
    }
    write_imagef(data0_1024, (int2)(gidx0,0), (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_128_16_4_16_4(write_only image2d_t data0_512, read_only image2d_t data1_512, read_only image2d_t data2_1024, read_only image2d_t data3_524288, __global half* data4_512) {
  int2 cast0 = (int2)(gidx0,0);
  float4 val0 = read_imagef(data1_512, smp, cast0);
  half4 val1 = (*((__global half4*)((data4_512+(gidx0<<2)))));
    float4 val2 = read_imagef(data2_1024, smp, (int2)(((lidx0<<4)+ridx1007),0));
    float4 val3 = read_imagef(data3_524288, smp, (int2)(alu8,gidx0));
    float4 val4 = read_imagef(data3_524288, smp, (int2)((alu8+1),gidx0));
    float4 val5 = read_imagef(data3_524288, smp, (int2)((alu8+2),gidx0));
    float4 val6 = read_imagef(data3_524288, smp, (int2)((alu8+3),gidx0));
    *(acc0+1) = ((*(acc0+1))+(val2.x*val4.x)+(val2.y*val4.y)+(val2.z*val4.z)+(val2.w*val4.w));
    *(acc0+2) = ((*(acc0+2))+(val2.x*val5.x)+(val2.y*val5.y)+(val2.z*val5.z)+(val2.w*val5.w));
    *(acc0+3) = ((*(acc0+3))+(val2.x*val6.x)+(val2.y*val6.y)+(val2.z*val6.z)+(val2.w*val6.w));
    *(acc0+0) = ((*(acc0+0))+(val2.x*val3.x)+(val2.y*val3.y)+(val2.z*val3.z)+(val2.w*val3.w));
  }
      float4 val7 = (*((__local float4*)((temp0+(ridx1109<<2)))));
      *(acc1+0) = ((*(acc1+0))+val7.x);
      *(acc1+1) = ((*(acc1+1))+val7.y);
      *(acc1+2) = ((*(acc1+2))+val7.z);
      *(acc1+3) = ((*(acc1+3))+val7.w);
    }
    float alu22 = (val0.x+(*(acc1+0))+((float)(val1.x)));
    float alu23 = (val0.y+(*(acc1+1))+((float)(val1.y)));
    float alu24 = (val0.z+(*(acc1+2))+((float)(val1.z)));
    float alu25 = (val0.w+(*(acc1+3))+((float)(val1.w)));
    write_imagef(data0_512, cast0, (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_128_16_4_8_4(write_only image2d_t data0_512, read_only image2d_t data1_512, read_only image2d_t data2_262144, __global half* data3_512) {
    float4 val2 = read_imagef(data2_262144, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_262144, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_262144, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_262144, smp, (int2)((alu8+3),gidx0));
  }
    }
    write_imagef(data0_512, (int2)(gidx0,0), (float4)(((*(acc1+0))+((float)(val0.x))),((*(acc1+1))+((float)(val0.y))),((*(acc1+2))+((float)(val0.z))),((*(acc1+3))+((float)(val0.w)))));
  }
}

__kernel void r_16_8_4(__global float* data0_1, read_only image2d_t data1_512) {
  float acc1[1];
  for (int ridx1001 = 0; ridx1001 < 8; ridx1001++) {
    float4 val0 = read_imagef(data1_512, smp, (int2)(((lidx0<<3)+ridx1001),0));
    *(acc0+0) = ((*(acc0+0))+(val0.x*val0.x)+(val0.y*val0.y)+(val0.z*val0.z)+(val0.w*val0.w));
  }
  *(temp0+lidx0) = (*(acc0+0));
    for (int ridx1102 = 0; ridx1102 < 16; ridx1102++) {
      float val1 = (*(temp0+ridx1102));
      *(acc1+0) = ((*(acc1+0))+val1);
    }
    float alu9 = sqrt((*(acc1+0)));
    float alu10 = ((alu9<0.0f)?0.0f:alu9);
    *(data0_1+0) = (1/alu10);
  }
}

__kernel void E_128_4n2(write_only image2d_t data0_512, read_only image2d_t data1_512, __global float* data2_1) {
  int2 cast0 = (int2)(idx0,0);
  float val0 = (*(data2_1+0));
  float4 val1 = read_imagef(data1_512, smp, cast0);
  write_imagef(data0_512, cast0, (float4)((val1.x*val0),(val1.y*val0),(val1.z*val0),(val1.w*val0)));
}

__kernel void r_16_16_4_8_4(write_only image2d_t data0_64, read_only image2d_t data1_512, read_only image2d_t data2_32768, __global half* data3_64) {
    float4 val2 = read_imagef(data2_32768, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_32768, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_32768, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_32768, smp, (int2)((alu8+3),gidx0));
  }
    }
  }
}

__kernel void r_8_16_4_8_4(write_only image2d_t data0_32, read_only image2d_t data1_512, read_only image2d_t data2_16384, __global half* data3_32) {
  int gidx0 = get_group_id(0); /* 8 */
  half4 val0 = (*((__global half4*)((data3_32+(gidx0<<2)))));
    float4 val2 = read_imagef(data2_16384, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_16384, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_16384, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_16384, smp, (int2)((alu8+3),gidx0));
  }
    }
    write_imagef(data0_32, (int2)(gidx0,0), (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_16_16_4_4(write_only image2d_t data0_64, read_only image2d_t data1_64, read_only image2d_t data2_4096, __global half* data3_64) {
  int alu4 = (lidx0<<2);
  float4 val2 = read_imagef(data2_4096, smp, (int2)(alu4,gidx0));
  float4 val3 = read_imagef(data2_4096, smp, (int2)((alu4+1),gidx0));
  float4 val4 = read_imagef(data2_4096, smp, (int2)((alu4+2),gidx0));
  float4 val5 = read_imagef(data2_4096, smp, (int2)((alu4+3),gidx0));
  *((__local float4*)((temp0+alu4))) = (float4)(((val1.x*val2.x)+(val1.y*val2.y)+(val1.z*val2.z)+(val1.w*val2.w)),((val1.x*val3.x)+(val1.y*val3.y)+(val1.z*val3.z)+(val1.w*val3.w)),((val1.x*val4.x)+(val1.y*val4.y)+(val1.z*val4.z)+(val1.w*val4.w)),((val1.x*val5.x)+(val1.y*val5.y)+(val1.z*val5.z)+(val1.w*val5.w)));
      *(acc0+0) = ((*(acc0+0))+val6.x);
      *(acc0+1) = ((*(acc0+1))+val6.y);
      *(acc0+2) = ((*(acc0+2))+val6.z);
      *(acc0+3) = ((*(acc0+3))+val6.w);
    }
    float alu13 = ((*(acc0+0))+((float)(val0.x)));
    float alu14 = ((*(acc0+1))+((float)(val0.y)));
    float alu15 = ((*(acc0+2))+((float)(val0.z)));
    float alu16 = ((*(acc0+3))+((float)(val0.w)));
    float alu17 = ((0.0f<alu13)?alu13:0.0f);
    float alu18 = ((0.0f<alu14)?alu14:0.0f);
    float alu19 = ((0.0f<alu15)?alu15:0.0f);
    float alu20 = ((0.0f<alu16)?alu16:0.0f);
    write_imagef(data0_64, (int2)(gidx0,0), (float4)(alu17,alu18,alu19,alu20));
  }
}

__kernel void r_8_4_8_4(write_only image2d_t data0_32, read_only image2d_t data1_32, read_only image2d_t data2_1024, __global half* data3_32) {
  int idx0 = get_global_id(0); /* 8 */
    float4 val0 = read_imagef(data1_32, smp, (int2)(ridx1007,0));
    int alu4 = (ridx1007<<2);
    float4 val1 = read_imagef(data2_1024, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data2_1024, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data2_1024, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data2_1024, smp, (int2)((alu4+3),idx0));
    *(acc0+1) = ((*(acc0+1))+(val0.x*val2.x)+(val0.y*val2.y)+(val0.z*val2.z)+(val0.w*val2.w));
    *(acc0+2) = ((*(acc0+2))+(val0.x*val3.x)+(val0.y*val3.y)+(val0.z*val3.z)+(val0.w*val3.w));
    *(acc0+3) = ((*(acc0+3))+(val0.x*val4.x)+(val0.y*val4.y)+(val0.z*val4.z)+(val0.w*val4.w));
    *(acc0+0) = ((*(acc0+0))+(val0.x*val1.x)+(val0.y*val1.y)+(val0.z*val1.z)+(val0.w*val1.w));
  }
  half4 val5 = (*((__global half4*)((data3_32+(idx0<<2)))));
  float alu10 = ((*(acc0+0))+((float)(val5.x)));
  float alu11 = ((*(acc0+1))+((float)(val5.y)));
  float alu12 = ((*(acc0+2))+((float)(val5.z)));
  float alu13 = ((*(acc0+3))+((float)(val5.w)));
  float alu14 = ((0.0f<alu10)?alu10:0.0f);
  float alu15 = ((0.0f<alu11)?alu11:0.0f);
  float alu16 = ((0.0f<alu12)?alu12:0.0f);
  float alu17 = ((0.0f<alu13)?alu13:0.0f);
  write_imagef(data0_32, (int2)(idx0,0), (float4)(alu14,alu15,alu16,alu17));
}

__kernel void r_16_16_4_4n1(write_only image2d_t data0_64, read_only image2d_t data1_64, read_only image2d_t data2_64, read_only image2d_t data3_4096, __global half* data4_64) {
  float4 val0 = read_imagef(data1_64, smp, cast0);
  half4 val1 = (*((__global half4*)((data4_64+(gidx0<<2)))));
  float4 val2 = read_imagef(data2_64, smp, (int2)(lidx0,0));
  float4 val3 = read_imagef(data3_4096, smp, (int2)(alu4,gidx0));
  float4 val4 = read_imagef(data3_4096, smp, (int2)((alu4+1),gidx0));
  float4 val5 = read_imagef(data3_4096, smp, (int2)((alu4+2),gidx0));
  float4 val6 = read_imagef(data3_4096, smp, (int2)((alu4+3),gidx0));
  *((__local float4*)((temp0+alu4))) = (float4)(((val2.x*val3.x)+(val2.y*val3.y)+(val2.z*val3.z)+(val2.w*val3.w)),((val2.x*val4.x)+(val2.y*val4.y)+(val2.z*val4.z)+(val2.w*val4.w)),((val2.x*val5.x)+(val2.y*val5.y)+(val2.z*val5.z)+(val2.w*val5.w)),((val2.x*val6.x)+(val2.y*val6.y)+(val2.z*val6.z)+(val2.w*val6.w)));
      *(acc0+0) = ((*(acc0+0))+val7.x);
      *(acc0+1) = ((*(acc0+1))+val7.y);
      *(acc0+2) = ((*(acc0+2))+val7.z);
      *(acc0+3) = ((*(acc0+3))+val7.w);
    }
    float alu13 = (val0.x+(*(acc0+0))+((float)(val1.x)));
    float alu14 = (val0.y+(*(acc0+1))+((float)(val1.y)));
    float alu15 = (val0.z+(*(acc0+2))+((float)(val1.z)));
    float alu16 = (val0.w+(*(acc0+3))+((float)(val1.w)));
    write_imagef(data0_64, cast0, (float4)(alu17,alu18,alu19,alu20));
  }
}

__kernel void r_8_4_8_4n1(write_only image2d_t data0_32, read_only image2d_t data1_32, read_only image2d_t data2_32, read_only image2d_t data3_1024, __global half* data4_32) {
    float4 val0 = read_imagef(data2_32, smp, (int2)(ridx1007,0));
    float4 val1 = read_imagef(data3_1024, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data3_1024, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data3_1024, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data3_1024, smp, (int2)((alu4+3),idx0));
  }
  float4 val5 = read_imagef(data1_32, smp, cast0);
  half4 val6 = (*((__global half4*)((data4_32+(idx0<<2)))));
  float alu10 = (val5.x+(*(acc0+0))+((float)(val6.x)));
  float alu11 = (val5.y+(*(acc0+1))+((float)(val6.y)));
  float alu12 = (val5.z+(*(acc0+2))+((float)(val6.z)));
  float alu13 = (val5.w+(*(acc0+3))+((float)(val6.w)));
  write_imagef(data0_32, cast0, (float4)(alu14,alu15,alu16,alu17));
}

__kernel void r_14_16_4_4(write_only image2d_t data0_56, read_only image2d_t data1_64, read_only image2d_t data2_3584) {
  int gidx0 = get_group_id(0); /* 14 */
  float4 val0 = read_imagef(data1_64, smp, (int2)(lidx0,0));
  float4 val1 = read_imagef(data2_3584, smp, (int2)(alu4,gidx0));
  float4 val2 = read_imagef(data2_3584, smp, (int2)((alu4+1),gidx0));
  float4 val3 = read_imagef(data2_3584, smp, (int2)((alu4+2),gidx0));
  float4 val4 = read_imagef(data2_3584, smp, (int2)((alu4+3),gidx0));
  *((__local float4*)((temp0+alu4))) = (float4)(((val0.x*val1.x)+(val0.y*val1.y)+(val0.z*val1.z)+(val0.w*val1.w)),((val0.x*val2.x)+(val0.y*val2.y)+(val0.z*val2.z)+(val0.w*val2.w)),((val0.x*val3.x)+(val0.y*val3.y)+(val0.z*val3.z)+(val0.w*val3.w)),((val0.x*val4.x)+(val0.y*val4.y)+(val0.z*val4.z)+(val0.w*val4.w)));
      float4 val5 = (*((__local float4*)((temp0+(ridx1109<<2)))));
      *(acc0+0) = ((*(acc0+0))+val5.x);
      *(acc0+1) = ((*(acc0+1))+val5.y);
      *(acc0+2) = ((*(acc0+2))+val5.z);
      *(acc0+3) = ((*(acc0+3))+val5.w);
    }
    write_imagef(data0_56, (int2)(gidx0,0), (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3))));
  }
}

__kernel void r_8_4_8_4n2(write_only image2d_t data0_32, read_only image2d_t data1_32, read_only image2d_t data2_1024, __global half* data3_32) {
  }
  write_imagef(data0_32, (int2)(idx0,0), (float4)(((*(acc0+0))+((float)(val5.x))),((*(acc0+1))+((float)(val5.y))),((*(acc0+2))+((float)(val5.z))),((*(acc0+3))+((float)(val5.w)))));
}

__kernel void r_3_4_8_4(write_only image2d_t data0_12, read_only image2d_t data1_32, read_only image2d_t data2_384, __global half* data3_12) {
  int idx0 = get_global_id(0); /* 3 */
    float4 val1 = read_imagef(data2_384, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data2_384, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data2_384, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data2_384, smp, (int2)((alu4+3),idx0));
  }
  half4 val5 = (*((__global half4*)((data3_12+(idx0<<2)))));
  write_imagef(data0_12, (int2)(idx0,0), (float4)(((*(acc0+0))+((float)(val5.x))),((*(acc0+1))+((float)(val5.y))),((*(acc0+2))+((float)(val5.z))),((*(acc0+3))+((float)(val5.w)))));
}

__kernel void r_2_4_8_4(write_only image2d_t data0_8, read_only image2d_t data1_32, read_only image2d_t data2_256) {
  int idx0 = get_global_id(0); /* 2 */
    float4 val1 = read_imagef(data2_256, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data2_256, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data2_256, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data2_256, smp, (int2)((alu4+3),idx0));
  }
  write_imagef(data0_8, (int2)(idx0,0), (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3))));
}

__kernel void r_4_16_4_8_4(write_only image2d_t data0_16, read_only image2d_t data1_512, read_only image2d_t data2_8192, __global half* data3_16) {
  half4 val0 = (*((__global half4*)((data3_16+(gidx0<<2)))));
    float4 val2 = read_imagef(data2_8192, smp, (int2)(alu8,gidx0));
    float4 val3 = read_imagef(data2_8192, smp, (int2)((alu8+1),gidx0));
    float4 val4 = read_imagef(data2_8192, smp, (int2)((alu8+2),gidx0));
    float4 val5 = read_imagef(data2_8192, smp, (int2)((alu8+3),gidx0));
  }
    }
    write_imagef(data0_16, (int2)(gidx0,0), (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_4_4_4_4(write_only image2d_t data0_16, read_only image2d_t data1_16, read_only image2d_t data2_256, __global half* data3_16) {
  for (int ridx1007 = 0; ridx1007 < 4; ridx1007++) {
    float4 val0 = read_imagef(data1_16, smp, (int2)(ridx1007,0));
    int alu16 = (ridx1007<<2);
    float4 val1 = read_imagef(data2_256, smp, (int2)(alu16,0));
    float4 val2 = read_imagef(data2_256, smp, (int2)(alu16,1));
    float4 val3 = read_imagef(data2_256, smp, (int2)(alu16,2));
    float4 val4 = read_imagef(data2_256, smp, (int2)(alu16,3));
    int alu17 = (alu16+1);
    float4 val5 = read_imagef(data2_256, smp, (int2)(alu17,0));
    float4 val6 = read_imagef(data2_256, smp, (int2)(alu17,1));
    float4 val7 = read_imagef(data2_256, smp, (int2)(alu17,2));
    float4 val8 = read_imagef(data2_256, smp, (int2)(alu17,3));
    int alu18 = (alu16+2);
    float4 val9 = read_imagef(data2_256, smp, (int2)(alu18,0));
    float4 val10 = read_imagef(data2_256, smp, (int2)(alu18,1));
    float4 val11 = read_imagef(data2_256, smp, (int2)(alu18,2));
    float4 val12 = read_imagef(data2_256, smp, (int2)(alu18,3));
    int alu19 = (alu16+3);
    float4 val13 = read_imagef(data2_256, smp, (int2)(alu19,0));
    float4 val14 = read_imagef(data2_256, smp, (int2)(alu19,1));
    float4 val15 = read_imagef(data2_256, smp, (int2)(alu19,2));
    float4 val16 = read_imagef(data2_256, smp, (int2)(alu19,3));
    *(acc0+4) = ((*(acc0+4))+(val0.x*val5.x)+(val0.y*val5.y)+(val0.z*val5.z)+(val0.w*val5.w));
    *(acc0+5) = ((*(acc0+5))+(val0.x*val6.x)+(val0.y*val6.y)+(val0.z*val6.z)+(val0.w*val6.w));
    *(acc0+6) = ((*(acc0+6))+(val0.x*val7.x)+(val0.y*val7.y)+(val0.z*val7.z)+(val0.w*val7.w));
    *(acc0+7) = ((*(acc0+7))+(val0.x*val8.x)+(val0.y*val8.y)+(val0.z*val8.z)+(val0.w*val8.w));
    *(acc0+8) = ((*(acc0+8))+(val0.x*val9.x)+(val0.y*val9.y)+(val0.z*val9.z)+(val0.w*val9.w));
    *(acc0+9) = ((*(acc0+9))+(val0.x*val10.x)+(val0.y*val10.y)+(val0.z*val10.z)+(val0.w*val10.w));
    *(acc0+10) = ((*(acc0+10))+(val0.x*val11.x)+(val0.y*val11.y)+(val0.z*val11.z)+(val0.w*val11.w));
    *(acc0+11) = ((*(acc0+11))+(val0.x*val12.x)+(val0.y*val12.y)+(val0.z*val12.z)+(val0.w*val12.w));
    *(acc0+12) = ((*(acc0+12))+(val0.x*val13.x)+(val0.y*val13.y)+(val0.z*val13.z)+(val0.w*val13.w));
    *(acc0+13) = ((*(acc0+13))+(val0.x*val14.x)+(val0.y*val14.y)+(val0.z*val14.z)+(val0.w*val14.w));
    *(acc0+14) = ((*(acc0+14))+(val0.x*val15.x)+(val0.y*val15.y)+(val0.z*val15.z)+(val0.w*val15.w));
    *(acc0+15) = ((*(acc0+15))+(val0.x*val16.x)+(val0.y*val16.y)+(val0.z*val16.z)+(val0.w*val16.w));
  }
  half4 val17 = (*((__global half4*)((data3_16+0))));
  half4 val18 = (*((__global half4*)((data3_16+4))));
  half4 val19 = (*((__global half4*)((data3_16+8))));
  half4 val20 = (*((__global half4*)((data3_16+12))));
  float alu37 = ((*(acc0+0))+((float)(val17.x)));
  float alu38 = ((*(acc0+1))+((float)(val18.x)));
  float alu39 = ((*(acc0+2))+((float)(val19.x)));
  float alu40 = ((*(acc0+3))+((float)(val20.x)));
  float alu41 = ((*(acc0+4))+((float)(val17.y)));
  float alu42 = ((*(acc0+5))+((float)(val18.y)));
  float alu43 = ((*(acc0+6))+((float)(val19.y)));
  float alu44 = ((*(acc0+7))+((float)(val20.y)));
  float alu45 = ((*(acc0+8))+((float)(val17.z)));
  float alu46 = ((*(acc0+9))+((float)(val18.z)));
  float alu47 = ((*(acc0+10))+((float)(val19.z)));
  float alu48 = ((*(acc0+11))+((float)(val20.z)));
  float alu49 = ((*(acc0+12))+((float)(val17.w)));
  float alu50 = ((*(acc0+13))+((float)(val18.w)));
  float alu51 = ((*(acc0+14))+((float)(val19.w)));
  float alu52 = ((*(acc0+15))+((float)(val20.w)));
  float alu53 = ((0.0f<alu37)?alu37:0.0f);
  float alu54 = ((0.0f<alu38)?alu38:0.0f);
  float alu55 = ((0.0f<alu39)?alu39:0.0f);
  float alu56 = ((0.0f<alu40)?alu40:0.0f);
  float alu57 = ((0.0f<alu41)?alu41:0.0f);
  float alu58 = ((0.0f<alu42)?alu42:0.0f);
  float alu59 = ((0.0f<alu43)?alu43:0.0f);
  float alu60 = ((0.0f<alu44)?alu44:0.0f);
  float alu61 = ((0.0f<alu45)?alu45:0.0f);
  float alu62 = ((0.0f<alu46)?alu46:0.0f);
  float alu63 = ((0.0f<alu47)?alu47:0.0f);
  float alu64 = ((0.0f<alu48)?alu48:0.0f);
  float alu65 = ((0.0f<alu49)?alu49:0.0f);
  write_imagef(data0_16, (int2)(0,0), (float4)(alu53,alu57,alu61,alu65));
  float alu67 = ((0.0f<alu50)?alu50:0.0f);
  write_imagef(data0_16, (int2)(1,0), (float4)(alu54,alu58,alu62,alu67));
  float alu69 = ((0.0f<alu51)?alu51:0.0f);
  write_imagef(data0_16, (int2)(2,0), (float4)(alu55,alu59,alu63,alu69));
  float alu71 = ((0.0f<alu52)?alu52:0.0f);
  write_imagef(data0_16, (int2)(3,0), (float4)(alu56,alu60,alu64,alu71));
}

__kernel void r_4_4_4_4n1(write_only image2d_t data0_16, read_only image2d_t data1_16, read_only image2d_t data2_16, read_only image2d_t data3_256, __global half* data4_16) {
    float4 val0 = read_imagef(data2_16, smp, (int2)(ridx1007,0));
    float4 val1 = read_imagef(data3_256, smp, (int2)(alu16,0));
    float4 val2 = read_imagef(data3_256, smp, (int2)(alu16,1));
    float4 val3 = read_imagef(data3_256, smp, (int2)(alu16,2));
    float4 val4 = read_imagef(data3_256, smp, (int2)(alu16,3));
    float4 val5 = read_imagef(data3_256, smp, (int2)(alu17,0));
    float4 val6 = read_imagef(data3_256, smp, (int2)(alu17,1));
    float4 val7 = read_imagef(data3_256, smp, (int2)(alu17,2));
    float4 val8 = read_imagef(data3_256, smp, (int2)(alu17,3));
    float4 val9 = read_imagef(data3_256, smp, (int2)(alu18,0));
    float4 val10 = read_imagef(data3_256, smp, (int2)(alu18,1));
    float4 val11 = read_imagef(data3_256, smp, (int2)(alu18,2));
    float4 val12 = read_imagef(data3_256, smp, (int2)(alu18,3));
    float4 val13 = read_imagef(data3_256, smp, (int2)(alu19,0));
    float4 val14 = read_imagef(data3_256, smp, (int2)(alu19,1));
    float4 val15 = read_imagef(data3_256, smp, (int2)(alu19,2));
    float4 val16 = read_imagef(data3_256, smp, (int2)(alu19,3));
  }
  int2 cast0 = (int2)(0,0);
  int2 cast1 = (int2)(1,0);
  int2 cast2 = (int2)(2,0);
  int2 cast3 = (int2)(3,0);
  half4 val17 = (*((__global half4*)((data4_16+0))));
  half4 val18 = (*((__global half4*)((data4_16+4))));
  half4 val19 = (*((__global half4*)((data4_16+8))));
  half4 val20 = (*((__global half4*)((data4_16+12))));
  float4 val21 = read_imagef(data1_16, smp, cast0);
  float4 val22 = read_imagef(data1_16, smp, cast1);
  float4 val23 = read_imagef(data1_16, smp, cast2);
  float4 val24 = read_imagef(data1_16, smp, cast3);
  float alu37 = (val21.x+(*(acc0+0))+((float)(val17.x)));
  float alu38 = (val22.x+(*(acc0+1))+((float)(val18.x)));
  float alu39 = (val23.x+(*(acc0+2))+((float)(val19.x)));
  float alu40 = (val24.x+(*(acc0+3))+((float)(val20.x)));
  float alu41 = (val21.y+(*(acc0+4))+((float)(val17.y)));
  float alu42 = (val22.y+(*(acc0+5))+((float)(val18.y)));
  float alu43 = (val23.y+(*(acc0+6))+((float)(val19.y)));
  float alu44 = (val24.y+(*(acc0+7))+((float)(val20.y)));
  float alu45 = (val21.z+(*(acc0+8))+((float)(val17.z)));
  float alu46 = (val22.z+(*(acc0+9))+((float)(val18.z)));
  float alu47 = (val23.z+(*(acc0+10))+((float)(val19.z)));
  float alu48 = (val24.z+(*(acc0+11))+((float)(val20.z)));
  float alu49 = (val21.w+(*(acc0+12))+((float)(val17.w)));
  float alu50 = (val22.w+(*(acc0+13))+((float)(val18.w)));
  float alu51 = (val23.w+(*(acc0+14))+((float)(val19.w)));
  float alu52 = (val24.w+(*(acc0+15))+((float)(val20.w)));
  write_imagef(data0_16, cast0, (float4)(alu53,alu57,alu61,alu65));
  write_imagef(data0_16, cast1, (float4)(alu54,alu58,alu62,alu67));
  write_imagef(data0_16, cast2, (float4)(alu55,alu59,alu63,alu69));
  write_imagef(data0_16, cast3, (float4)(alu56,alu60,alu64,alu71));
}

__kernel void r_132_16_4_4(write_only image2d_t data0_528, read_only image2d_t data1_64, read_only image2d_t data2_33792, __global half* data3_528) {
  int gidx0 = get_group_id(0); /* 132 */
  half4 val0 = (*((__global half4*)((data3_528+(gidx0<<2)))));
  float4 val2 = read_imagef(data2_33792, smp, (int2)(alu4,gidx0));
  float4 val3 = read_imagef(data2_33792, smp, (int2)((alu4+1),gidx0));
  float4 val4 = read_imagef(data2_33792, smp, (int2)((alu4+2),gidx0));
  float4 val5 = read_imagef(data2_33792, smp, (int2)((alu4+3),gidx0));
    }
    write_imagef(data0_528, (int2)(gidx0,0), (float4)(((*(acc0+0))+((float)(val0.x))),((*(acc0+1))+((float)(val0.y))),((*(acc0+2))+((float)(val0.z))),((*(acc0+3))+((float)(val0.w)))));
  }
}

__kernel void r_2_4_4_4(write_only image2d_t data0_8, read_only image2d_t data1_16, read_only image2d_t data2_128, __global half* data3_8) {
    float4 val1 = read_imagef(data2_128, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data2_128, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data2_128, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data2_128, smp, (int2)((alu4+3),idx0));
  }
  half4 val5 = (*((__global half4*)((data3_8+(idx0<<2)))));
  write_imagef(data0_8, (int2)(idx0,0), (float4)(((*(acc0+0))+((float)(val5.x))),((*(acc0+1))+((float)(val5.y))),((*(acc0+2))+((float)(val5.z))),((*(acc0+3))+((float)(val5.w)))));
}

__kernel void r_66_4_8_4(write_only image2d_t data0_264, read_only image2d_t data1_32, read_only image2d_t data2_8448, __global half* data3_264) {
  int idx0 = get_global_id(0); /* 66 */
    float4 val1 = read_imagef(data2_8448, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data2_8448, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data2_8448, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data2_8448, smp, (int2)((alu4+3),idx0));
  }
  half4 val5 = (*((__global half4*)((data3_264+(idx0<<2)))));
  write_imagef(data0_264, (int2)(idx0,0), (float4)(((*(acc0+0))+((float)(val5.x))),((*(acc0+1))+((float)(val5.y))),((*(acc0+2))+((float)(val5.z))),((*(acc0+3))+((float)(val5.w)))));
}

__kernel void r_36_16_4_4(write_only image2d_t data0_144, read_only image2d_t data1_64, read_only image2d_t data2_9216, __global half* data3_144, __global half* data4_144) {
  int gidx0 = get_group_id(0); /* 36 */
  int alu4 = (gidx0<<2);
  half4 val0 = (*((__global half4*)((data3_144+alu4))));
  half4 val1 = (*((__global half4*)((data4_144+alu4))));
  float4 val2 = read_imagef(data1_64, smp, (int2)(lidx0,0));
  int alu5 = (lidx0<<2);
  float4 val3 = read_imagef(data2_9216, smp, (int2)(alu5,gidx0));
  float4 val4 = read_imagef(data2_9216, smp, (int2)((alu5+1),gidx0));
  float4 val5 = read_imagef(data2_9216, smp, (int2)((alu5+2),gidx0));
  float4 val6 = read_imagef(data2_9216, smp, (int2)((alu5+3),gidx0));
  *((__local float4*)((temp0+alu5))) = (float4)(((val2.x*val3.x)+(val2.y*val3.y)+(val2.z*val3.z)+(val2.w*val3.w)),((val2.x*val4.x)+(val2.y*val4.y)+(val2.z*val4.z)+(val2.w*val4.w)),((val2.x*val5.x)+(val2.y*val5.y)+(val2.z*val5.z)+(val2.w*val5.w)),((val2.x*val6.x)+(val2.y*val6.y)+(val2.z*val6.z)+(val2.w*val6.w)));
    }
    write_imagef(data0_144, (int2)(gidx0,0), (float4)((((*(acc0+0))+((float)(val0.x)))*((float)(val1.x))),(((*(acc0+1))+((float)(val0.y)))*((float)(val1.y))),(((*(acc0+2))+((float)(val0.z)))*((float)(val1.z))),(((*(acc0+3))+((float)(val0.w)))*((float)(val1.w)))));
  }
}

__kernel void r_4_4_4(write_only image2d_t data0_4, read_only image2d_t data1_16, read_only image2d_t data2_64) {
    float4 val1 = read_imagef(data2_64, smp, (int2)(alu4,0));
    float4 val2 = read_imagef(data2_64, smp, (int2)((alu4+1),0));
    float4 val3 = read_imagef(data2_64, smp, (int2)((alu4+2),0));
    float4 val4 = read_imagef(data2_64, smp, (int2)((alu4+3),0));
  }
  write_imagef(data0_4, (int2)(0,0), (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3))));
}

__kernel void E_394_4(__global float* data0_1576, read_only image2d_t data1_56, __global half* data2_55, read_only image2d_t data3_32, read_only image2d_t data4_12, read_only image2d_t data5_8, __global half* data6_6, read_only image2d_t data7_12, read_only image2d_t data8_528, read_only image2d_t data9_8, read_only image2d_t data10_264, read_only image2d_t data11_144, read_only image2d_t data12_4, __global half* data13_3, read_only image2d_t data14_512, __global float* data15_1) {
  int idx0 = get_global_id(0); /* 394 */
  int2 cast1 = (int2)(0,0);
  half2 cast2 = (half2)(((half)(0.0f)),((half)(0.0f)));
  float4 cast3 = (float4)(0.0f,0.0f,0.0f,0.0f);
  float4 val0 = read_imagef(data1_56, smp, cast0);
  float4 val1 = read_imagef(data14_512, smp, (int2)((idx0+-266),0));
  float4 val2 = read_imagef(data11_144, smp, (int2)((idx0+-230),0));
  float4 val3 = read_imagef(data11_144, smp, (int2)((idx0+-229),0));
  float4 val4 = read_imagef(data10_264, smp, (int2)((idx0+-164),0));
  float4 val5 = read_imagef(data10_264, smp, (int2)((idx0+-163),0));
  float4 val6 = read_imagef(data9_8, smp, (int2)((idx0+-162),0));
  float4 val7 = read_imagef(data9_8, smp, (int2)((idx0+-161),0));
  float4 val8 = read_imagef(data8_528, smp, (int2)((idx0+-30),0));
  float4 val9 = read_imagef(data8_528, smp, (int2)((idx0+-29),0));
  float4 val10 = read_imagef(data7_12, smp, (int2)((idx0+-27),0));
  float4 val11 = read_imagef(data7_12, smp, (int2)((idx0+-26),0));
  float4 val12 = read_imagef(data5_8, smp, (int2)((idx0+-25),0));
  float4 val13 = read_imagef(data5_8, smp, (int2)((idx0+-24),0));
  float4 val14 = read_imagef(data4_12, smp, (int2)((idx0+-22),0));
  float4 val15 = read_imagef(data4_12, smp, (int2)((idx0+-21),0));
  float4 val16 = read_imagef(data3_32, smp, (int2)((idx0+-14),0));
  float4 val17 = read_imagef(data3_32, smp, (int2)((idx0+-13),0));
  bool alu1 = (idx0<13);
  half val18 = (alu1?*(data2_55+(alu0+3)):((half)(0.0f)));
  float4 val19 = (alu1?read_imagef(data1_56, smp, cast0):cast3);
  bool alu2 = (idx0<14);
  half2 val20 = (alu2?*((__global half2*)((data2_55+alu0))):cast2);
  half val21 = (alu2?*(data2_55+(alu0+2)):((half)(0.0f)));
  float val22 = ((265<idx0)?*(data15_1+0):0.0f);
  bool alu3 = (idx0==25);
  half2 val23 = (alu3?*((__global half2*)((data6_6+2))):cast2);
  float4 val24 = (alu3?read_imagef(data5_8, smp, cast1):cast3);
  bool alu4 = (idx0==265);
  half2 val25 = (alu4?*((__global half2*)((data13_3+0))):cast2);
  half val26 = (alu4?*(data13_3+2):((half)(0.0f)));
  float4 val27 = (alu4?read_imagef(data12_4, smp, cast1):cast3);
  half val28 = (((23<idx0)&(idx0<26))?*(data6_6+(alu0+-96)):((half)(0.0f)));
  half val29 = (((24<idx0)&(idx0<27))?*(data6_6+(alu0+-99)):((half)(0.0f)));
  *((__global float4*)((data0_1576+alu0))) = (float4)((val0.x+((float)(val20.x))+val16.y+val14.y+val12.y+((float)(val29))+val10.w+val8.w+val6.w+val4.w+val2.w+(val1.x*val22)),(val0.y+((float)(val20.y))+val16.z+val14.z+val24.z+((float)(val23.x))+val11.x+val9.x+val7.x+val5.x+val3.x+val27.x+((float)(val25.x))+(val1.y*val22)),(val0.z+((float)(val21))+val16.w+val14.w+val24.w+((float)(val23.y))+val11.y+val9.y+val7.y+val5.y+val3.y+val27.y+((float)(val25.y))+(val1.z*val22)),(val19.w+((float)(val18))+val17.x+val15.x+val13.x+((float)(val28))+val11.z+val9.z+val7.z+val5.z+val3.z+val27.z+((float)(val26))+(val1.w*val22)));
}