__kernel void E_9_128_4(__global float* data0_4608, __global long* data1_9, __global float* data2_12800) {
  int idx1 = get_global_id(1); /* 9 */
  long val0 = (*(data1_9+idx1));
  int idx0 = get_global_id(0); /* 128 */
  int alu0 = (idx0<<2);
  long alu1 = ((val0<0l)?(val0+25l):val0);
  float4 val1 = (((-1l<alu1)&(alu1<25l))?*((__global float4*)((data2_12800+((int)((((long)(alu0))+(alu1<<9l))))))):(float4)(0.0f,0.0f,0.0f,0.0f));
  *((__global float4*)((data0_4608+(alu0+(idx1<<9))))) = val1;
}

__kernel void r_512_50_4(__global float* data0_512, __global float* data1_200, __global ushort* data2_102400, __global ushort* data3_512) {
  float buf0[1];
  int idx0 = get_global_id(0); /* 512 */
  *(buf0+0) = 0.0f;
  for (int Ridx0 = 0; Ridx0 < 50; Ridx0++) {
    int alu1 = (Ridx0<<2);
    int alu2 = ((idx0*200)+alu1);
    ushort val0 = (*(data2_102400+(alu2+1)));
    ushort val1 = (*(data2_102400+(alu2+2)));
    ushort val2 = (*(data2_102400+(alu2+3)));
    ushort val3 = (*(data2_102400+alu2));
    float4 val4 = (*((__global float4*)((data1_200+alu1))));
    uint cast0 = ((uint)((val0&((ushort)(32767u)))));
    uint cast1 = ((uint)((val1&((ushort)(32767u)))));
    uint cast2 = ((uint)((val2&((ushort)(32767u)))));
    uint cast3 = ((uint)((val3&((ushort)(32767u)))));
    uint alu3 = (cast0<<13u);
    uint alu4 = (cast0>>10u);
    uint alu5 = ((alu4==31u)?(alu3|2139095040u):(alu3+939524096u));
    uint alu6 = ((alu4==0u)?0u:alu5);
    uint alu7 = (cast1<<13u);
    uint alu8 = (cast1>>10u);
    uint alu9 = ((alu8==31u)?(alu7|2139095040u):(alu7+939524096u));
    uint alu10 = ((alu8==0u)?0u:alu9);
    uint alu11 = (cast2<<13u);
    uint alu12 = (cast2>>10u);
    uint alu13 = ((alu12==31u)?(alu11|2139095040u):(alu11+939524096u));
    uint alu14 = ((alu12==0u)?0u:alu13);
    uint alu15 = (cast3<<13u);
    uint alu16 = (cast3>>10u);
    uint alu17 = ((alu16==31u)?(alu15|2139095040u):(alu15+939524096u));
    uint alu18 = ((alu16==0u)?0u:alu17);
    *(buf0+0) = ((*(buf0+0))+(val4.x*as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu18))))+(val4.y*as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu6))))+(val4.z*as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu10))))+(val4.w*as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu14)))));
  }
  ushort val5 = (*(data3_512+idx0));
  uint cast4 = ((uint)((val5&((ushort)(32767u)))));
  uint alu21 = (cast4<<13u);
  uint alu22 = (cast4>>10u);
  uint alu23 = ((alu22==31u)?(alu21|2139095040u):(alu21+939524096u));
  uint alu24 = ((alu22==0u)?0u:alu23);
  float alu25 = ((*(buf0+0))+as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu24))));
  *(data0_512+idx0) = (alu25*(1/(1.0f+exp2((alu25*-1.4426950216293335f)))));
}

__kernel void r_512_2(__global float* data0_512, __global float* data1_2, __global ushort* data2_1024, __global ushort* data3_512) {
  int alu0 = (idx0<<1);
  ushort val0 = (*(data2_1024+(alu0+1)));
  ushort val1 = (*(data2_1024+alu0));
  ushort val2 = (*(data3_512+idx0));
  float2 val3 = (*((__global float2*)((data1_2+0))));
  uint cast0 = ((uint)((val0&((ushort)(32767u)))));
  uint cast1 = ((uint)((val1&((ushort)(32767u)))));
  uint cast2 = ((uint)((val2&((ushort)(32767u)))));
  uint alu1 = (cast0<<13u);
  uint alu2 = (cast0>>10u);
  uint alu3 = ((alu2==31u)?(alu1|2139095040u):(alu1+939524096u));
  uint alu4 = ((alu2==0u)?0u:alu3);
  uint alu5 = (cast1<<13u);
  uint alu6 = (cast1>>10u);
  uint alu7 = ((alu6==31u)?(alu5|2139095040u):(alu5+939524096u));
  uint alu8 = ((alu6==0u)?0u:alu7);
  uint alu9 = (cast2<<13u);
  uint alu10 = (cast2>>10u);
  uint alu11 = ((alu10==31u)?(alu9|2139095040u):(alu9+939524096u));
  uint alu12 = ((alu10==0u)?0u:alu11);
  float alu13 = ((val3.x*as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu8))))+(val3.y*as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu4))))+as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu12))));
  *(data0_512+idx0) = (alu13*(1/(1.0f+exp2((alu13*-1.4426950216293335f)))));
}

__kernel void r_3_128_4_3_128_4(__global float* data0_4608, __global float* data1_4608, __global ushort* data2_262144, __global ushort* data3_512) {
  float buf0[12];
  int idx1 = get_global_id(1); /* 3 */
  int alu0 = (idx1*1536);
  int alu1 = (idx0<<2);
  *(buf0+1) = 0.0f;
  *(buf0+2) = 0.0f;
  *(buf0+3) = 0.0f;
  *(buf0+4) = 0.0f;
  *(buf0+5) = 0.0f;
  *(buf0+6) = 0.0f;
  *(buf0+7) = 0.0f;
  *(buf0+8) = 0.0f;
  *(buf0+9) = 0.0f;
  *(buf0+10) = 0.0f;
  *(buf0+11) = 0.0f;
  for (int Ridx0 = 0; Ridx0 < 128; Ridx0++) {
    int alu14 = (alu1+(Ridx0<<11));
    int alu15 = (alu14+512);
    ushort val0 = (*(data2_262144+(alu15+1)));
    ushort val1 = (*(data2_262144+(alu15+2)));
    ushort val2 = (*(data2_262144+(alu15+3)));
    int alu16 = (alu14+1024);
    ushort val3 = (*(data2_262144+(alu16+1)));
    ushort val4 = (*(data2_262144+(alu16+2)));
    ushort val5 = (*(data2_262144+(alu16+3)));
    int alu17 = (alu14+1536);
    ushort val6 = (*(data2_262144+(alu17+1)));
    ushort val7 = (*(data2_262144+(alu17+2)));
    ushort val8 = (*(data2_262144+(alu17+3)));
    ushort val9 = (*(data2_262144+(alu14+1)));
    ushort val10 = (*(data2_262144+(alu14+2)));
    ushort val11 = (*(data2_262144+(alu14+3)));
    ushort val12 = (*(data2_262144+alu15));
    ushort val13 = (*(data2_262144+alu16));
    ushort val14 = (*(data2_262144+alu17));
    ushort val15 = (*(data2_262144+alu14));
    int alu18 = (alu0+(Ridx0<<2));
    float4 val16 = (*((__global float4*)((data1_4608+(alu18+512)))));
    float4 val17 = (*((__global float4*)((data1_4608+(alu18+1024)))));
    float4 val18 = (*((__global float4*)((data1_4608+alu18))));
    uint cast4 = ((uint)((val4&((ushort)(32767u)))));
    uint cast5 = ((uint)((val5&((ushort)(32767u)))));
    uint cast6 = ((uint)((val6&((ushort)(32767u)))));
    uint cast7 = ((uint)((val7&((ushort)(32767u)))));
    uint cast8 = ((uint)((val8&((ushort)(32767u)))));
    uint cast9 = ((uint)((val9&((ushort)(32767u)))));
    uint cast10 = ((uint)((val10&((ushort)(32767u)))));
    uint cast11 = ((uint)((val11&((ushort)(32767u)))));
    uint cast12 = ((uint)((val12&((ushort)(32767u)))));
    uint cast13 = ((uint)((val13&((ushort)(32767u)))));
    uint cast14 = ((uint)((val14&((ushort)(32767u)))));
    uint cast15 = ((uint)((val15&((ushort)(32767u)))));
    uint alu19 = (cast0<<13u);
    uint alu20 = (cast0>>10u);
    uint alu21 = ((alu20==31u)?(alu19|2139095040u):(alu19+939524096u));
    uint alu22 = ((alu20==0u)?0u:alu21);
    float cast16 = as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu22)));
    uint alu23 = (cast1<<13u);
    uint alu24 = (cast1>>10u);
    uint alu25 = ((alu24==31u)?(alu23|2139095040u):(alu23+939524096u));
    uint alu26 = ((alu24==0u)?0u:alu25);
    float cast17 = as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu26)));
    uint alu27 = (cast2<<13u);
    uint alu28 = (cast2>>10u);
    uint alu29 = ((alu28==31u)?(alu27|2139095040u):(alu27+939524096u));
    uint alu30 = ((alu28==0u)?0u:alu29);
    float cast18 = as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu30)));
    uint alu31 = (cast3<<13u);
    uint alu32 = (cast3>>10u);
    uint alu33 = ((alu32==31u)?(alu31|2139095040u):(alu31+939524096u));
    uint alu34 = ((alu32==0u)?0u:alu33);
    float cast19 = as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu34)));
    uint alu35 = (cast4<<13u);
    uint alu36 = (cast4>>10u);
    uint alu37 = ((alu36==31u)?(alu35|2139095040u):(alu35+939524096u));
    uint alu38 = ((alu36==0u)?0u:alu37);
    float cast20 = as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu38)));
    uint alu39 = (cast5<<13u);
    uint alu40 = (cast5>>10u);
    uint alu41 = ((alu40==31u)?(alu39|2139095040u):(alu39+939524096u));
    uint alu42 = ((alu40==0u)?0u:alu41);
    float cast21 = as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu42)));
    uint alu43 = (cast6<<13u);
    uint alu44 = (cast6>>10u);
    uint alu45 = ((alu44==31u)?(alu43|2139095040u):(alu43+939524096u));
    uint alu46 = ((alu44==0u)?0u:alu45);
    float cast22 = as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu46)));
    uint alu47 = (cast7<<13u);
    uint alu48 = (cast7>>10u);
    uint alu49 = ((alu48==31u)?(alu47|2139095040u):(alu47+939524096u));
    uint alu50 = ((alu48==0u)?0u:alu49);
    float cast23 = as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu50)));
    uint alu51 = (cast8<<13u);
    uint alu52 = (cast8>>10u);
    uint alu53 = ((alu52==31u)?(alu51|2139095040u):(alu51+939524096u));
    uint alu54 = ((alu52==0u)?0u:alu53);
    float cast24 = as_float((uint)(((((uint)((val8&((ushort)(32768u)))))<<16u)|alu54)));
    uint alu55 = (cast9<<13u);
    uint alu56 = (cast9>>10u);
    uint alu57 = ((alu56==31u)?(alu55|2139095040u):(alu55+939524096u));
    uint alu58 = ((alu56==0u)?0u:alu57);
    float cast25 = as_float((uint)(((((uint)((val9&((ushort)(32768u)))))<<16u)|alu58)));
    uint alu59 = (cast10<<13u);
    uint alu60 = (cast10>>10u);
    uint alu61 = ((alu60==31u)?(alu59|2139095040u):(alu59+939524096u));
    uint alu62 = ((alu60==0u)?0u:alu61);
    float cast26 = as_float((uint)(((((uint)((val10&((ushort)(32768u)))))<<16u)|alu62)));
    uint alu63 = (cast11<<13u);
    uint alu64 = (cast11>>10u);
    uint alu65 = ((alu64==31u)?(alu63|2139095040u):(alu63+939524096u));
    uint alu66 = ((alu64==0u)?0u:alu65);
    float cast27 = as_float((uint)(((((uint)((val11&((ushort)(32768u)))))<<16u)|alu66)));
    uint alu67 = (cast12<<13u);
    uint alu68 = (cast12>>10u);
    uint alu69 = ((alu68==31u)?(alu67|2139095040u):(alu67+939524096u));
    uint alu70 = ((alu68==0u)?0u:alu69);
    float cast28 = as_float((uint)(((((uint)((val12&((ushort)(32768u)))))<<16u)|alu70)));
    uint alu71 = (cast13<<13u);
    uint alu72 = (cast13>>10u);
    uint alu73 = ((alu72==31u)?(alu71|2139095040u):(alu71+939524096u));
    uint alu74 = ((alu72==0u)?0u:alu73);
    float cast29 = as_float((uint)(((((uint)((val13&((ushort)(32768u)))))<<16u)|alu74)));
    uint alu75 = (cast14<<13u);
    uint alu76 = (cast14>>10u);
    uint alu77 = ((alu76==31u)?(alu75|2139095040u):(alu75+939524096u));
    uint alu78 = ((alu76==0u)?0u:alu77);
    float cast30 = as_float((uint)(((((uint)((val14&((ushort)(32768u)))))<<16u)|alu78)));
    uint alu79 = (cast15<<13u);
    uint alu80 = (cast15>>10u);
    uint alu81 = ((alu80==31u)?(alu79|2139095040u):(alu79+939524096u));
    uint alu82 = ((alu80==0u)?0u:alu81);
    float cast31 = as_float((uint)(((((uint)((val15&((ushort)(32768u)))))<<16u)|alu82)));
    *(buf0+0) = ((*(buf0+0))+(val18.x*cast31)+(val18.y*cast28)+(val18.z*cast29)+(val18.w*cast30));
    *(buf0+1) = ((*(buf0+1))+(val18.x*cast25)+(val18.y*cast16)+(val18.z*cast19)+(val18.w*cast22));
    *(buf0+2) = ((*(buf0+2))+(val18.x*cast26)+(val18.y*cast17)+(val18.z*cast20)+(val18.w*cast23));
    *(buf0+3) = ((*(buf0+3))+(val18.x*cast27)+(val18.y*cast18)+(val18.z*cast21)+(val18.w*cast24));
    *(buf0+4) = ((*(buf0+4))+(val16.x*cast31)+(val16.y*cast28)+(val16.z*cast29)+(val16.w*cast30));
    *(buf0+5) = ((*(buf0+5))+(val16.x*cast25)+(val16.y*cast16)+(val16.z*cast19)+(val16.w*cast22));
    *(buf0+6) = ((*(buf0+6))+(val16.x*cast26)+(val16.y*cast17)+(val16.z*cast20)+(val16.w*cast23));
    *(buf0+7) = ((*(buf0+7))+(val16.x*cast27)+(val16.y*cast18)+(val16.z*cast21)+(val16.w*cast24));
    *(buf0+8) = ((*(buf0+8))+(val17.x*cast31)+(val17.y*cast28)+(val17.z*cast29)+(val17.w*cast30));
    *(buf0+9) = ((*(buf0+9))+(val17.x*cast25)+(val17.y*cast16)+(val17.z*cast19)+(val17.w*cast22));
    *(buf0+10) = ((*(buf0+10))+(val17.x*cast26)+(val17.y*cast17)+(val17.z*cast20)+(val17.w*cast23));
    *(buf0+11) = ((*(buf0+11))+(val17.x*cast27)+(val17.y*cast18)+(val17.z*cast21)+(val17.w*cast24));
  }
  ushort val19 = (*(data3_512+(alu1+1)));
  ushort val20 = (*(data3_512+(alu1+2)));
  ushort val21 = (*(data3_512+(alu1+3)));
  ushort val22 = (*(data3_512+alu1));
  uint cast32 = ((uint)((val19&((ushort)(32767u)))));
  uint cast33 = ((uint)((val20&((ushort)(32767u)))));
  uint cast34 = ((uint)((val21&((ushort)(32767u)))));
  uint cast35 = ((uint)((val22&((ushort)(32767u)))));
  uint alu96 = (cast32<<13u);
  uint alu97 = (cast32>>10u);
  uint alu98 = ((alu97==31u)?(alu96|2139095040u):(alu96+939524096u));
  uint alu99 = ((alu97==0u)?0u:alu98);
  float cast36 = as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu99)));
  uint alu100 = (cast33<<13u);
  uint alu101 = (cast33>>10u);
  uint alu102 = ((alu101==31u)?(alu100|2139095040u):(alu100+939524096u));
  uint alu103 = ((alu101==0u)?0u:alu102);
  float cast37 = as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu103)));
  uint alu104 = (cast34<<13u);
  uint alu105 = (cast34>>10u);
  uint alu106 = ((alu105==31u)?(alu104|2139095040u):(alu104+939524096u));
  uint alu107 = ((alu105==0u)?0u:alu106);
  float cast38 = as_float((uint)(((((uint)((val21&((ushort)(32768u)))))<<16u)|alu107)));
  uint alu108 = (cast35<<13u);
  uint alu109 = (cast35>>10u);
  uint alu110 = ((alu109==31u)?(alu108|2139095040u):(alu108+939524096u));
  uint alu111 = ((alu109==0u)?0u:alu110);
  float cast39 = as_float((uint)(((((uint)((val22&((ushort)(32768u)))))<<16u)|alu111)));
  float alu112 = ((*(buf0+0))+cast39);
  float alu113 = ((*(buf0+1))+cast36);
  float alu114 = ((*(buf0+2))+cast37);
  float alu115 = ((*(buf0+3))+cast38);
  float alu116 = ((*(buf0+4))+cast39);
  float alu117 = ((*(buf0+5))+cast36);
  float alu118 = ((*(buf0+6))+cast37);
  float alu119 = ((*(buf0+7))+cast38);
  float alu120 = ((*(buf0+8))+cast39);
  float alu121 = ((*(buf0+9))+cast36);
  float alu122 = ((*(buf0+10))+cast37);
  float alu123 = ((*(buf0+11))+cast38);
  int alu124 = (alu1+alu0);
  *((__global float4*)((data0_4608+(alu124+512)))) = (float4)((alu116*(1/(1.0f+exp2((alu116*-1.4426950216293335f))))),(alu117*(1/(1.0f+exp2((alu117*-1.4426950216293335f))))),(alu118*(1/(1.0f+exp2((alu118*-1.4426950216293335f))))),(alu119*(1/(1.0f+exp2((alu119*-1.4426950216293335f))))));
  *((__global float4*)((data0_4608+(alu124+1024)))) = (float4)((alu120*(1/(1.0f+exp2((alu120*-1.4426950216293335f))))),(alu121*(1/(1.0f+exp2((alu121*-1.4426950216293335f))))),(alu122*(1/(1.0f+exp2((alu122*-1.4426950216293335f))))),(alu123*(1/(1.0f+exp2((alu123*-1.4426950216293335f))))));
  *((__global float4*)((data0_4608+alu124))) = (float4)((alu112*(1/(1.0f+exp2((alu112*-1.4426950216293335f))))),(alu113*(1/(1.0f+exp2((alu113*-1.4426950216293335f))))),(alu114*(1/(1.0f+exp2((alu114*-1.4426950216293335f))))),(alu115*(1/(1.0f+exp2((alu115*-1.4426950216293335f))))));
}

__kernel void r_512_128_4(__global float* data0_512, __global float* data1_512, __global ushort* data2_262144, __global ushort* data3_512) {
    int alu2 = ((idx0<<9)+alu1);
    ushort val0 = (*(data2_262144+(alu2+1)));
    ushort val1 = (*(data2_262144+(alu2+2)));
    ushort val2 = (*(data2_262144+(alu2+3)));
    ushort val3 = (*(data2_262144+alu2));
    float4 val4 = (*((__global float4*)((data1_512+alu1))));
  }
  *(data0_512+idx0) = ((*(buf0+0))+as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu24))));
}

__kernel void r_3_128_4_3_128_4n1(__global float* data0_4608, __global float* data1_4608, __global ushort* data2_262144, __global ushort* data3_512, __global ushort* data4_4608, __global float* data5_512, __global float* data6_512) {
  }
  int alu96 = (alu1+alu0);
  int alu97 = (alu96+512);
  ushort val23 = (*(data4_4608+(alu97+1)));
  ushort val24 = (*(data4_4608+(alu97+2)));
  ushort val25 = (*(data4_4608+(alu97+3)));
  int alu98 = (alu96+1024);
  ushort val26 = (*(data4_4608+(alu98+1)));
  ushort val27 = (*(data4_4608+(alu98+2)));
  ushort val28 = (*(data4_4608+(alu98+3)));
  ushort val29 = (*(data4_4608+(alu96+1)));
  ushort val30 = (*(data4_4608+(alu96+2)));
  ushort val31 = (*(data4_4608+(alu96+3)));
  ushort val32 = (*(data4_4608+alu97));
  ushort val33 = (*(data4_4608+alu98));
  ushort val34 = (*(data4_4608+alu96));
  float4 val35 = (*((__global float4*)((data5_512+alu1))));
  float4 val36 = (*((__global float4*)((data6_512+alu1))));
  uint cast36 = ((uint)((val29&((ushort)(32767u)))));
  uint cast37 = ((uint)((val30&((ushort)(32767u)))));
  uint cast38 = ((uint)((val31&((ushort)(32767u)))));
  uint cast39 = ((uint)((val34&((ushort)(32767u)))));
  uint alu99 = (cast32<<13u);
  uint alu100 = (cast32>>10u);
  uint alu101 = ((alu100==31u)?(alu99|2139095040u):(alu99+939524096u));
  uint alu102 = ((alu100==0u)?0u:alu101);
  float cast40 = as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu102)));
  uint alu103 = (cast33<<13u);
  uint alu104 = (cast33>>10u);
  uint alu105 = ((alu104==31u)?(alu103|2139095040u):(alu103+939524096u));
  uint alu106 = ((alu104==0u)?0u:alu105);
  float cast41 = as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu106)));
  uint alu107 = (cast34<<13u);
  uint alu108 = (cast34>>10u);
  uint alu109 = ((alu108==31u)?(alu107|2139095040u):(alu107+939524096u));
  uint alu110 = ((alu108==0u)?0u:alu109);
  float cast42 = as_float((uint)(((((uint)((val21&((ushort)(32768u)))))<<16u)|alu110)));
  uint alu111 = (cast35<<13u);
  uint alu112 = (cast35>>10u);
  uint alu113 = ((alu112==31u)?(alu111|2139095040u):(alu111+939524096u));
  uint alu114 = ((alu112==0u)?0u:alu113);
  float cast43 = as_float((uint)(((((uint)((val22&((ushort)(32768u)))))<<16u)|alu114)));
  uint alu115 = (cast36<<13u);
  uint alu116 = (cast36>>10u);
  uint alu117 = ((alu116==31u)?(alu115|2139095040u):(alu115+939524096u));
  uint alu118 = ((alu116==0u)?0u:alu117);
  uint alu119 = (cast37<<13u);
  uint alu120 = (cast37>>10u);
  uint alu121 = ((alu120==31u)?(alu119|2139095040u):(alu119+939524096u));
  uint alu122 = ((alu120==0u)?0u:alu121);
  uint alu123 = (cast38<<13u);
  uint alu124 = (cast38>>10u);
  uint alu125 = ((alu124==31u)?(alu123|2139095040u):(alu123+939524096u));
  uint alu126 = ((alu124==0u)?0u:alu125);
  uint alu127 = (cast39<<13u);
  uint alu128 = (cast39>>10u);
  uint alu129 = ((alu128==31u)?(alu127|2139095040u):(alu127+939524096u));
  uint alu130 = ((alu128==0u)?0u:alu129);
  uint cast44 = ((uint)((val23&((ushort)(32767u)))));
  uint cast45 = ((uint)((val24&((ushort)(32767u)))));
  uint cast46 = ((uint)((val25&((ushort)(32767u)))));
  uint cast47 = ((uint)((val32&((ushort)(32767u)))));
  uint alu131 = (cast44<<13u);
  uint alu132 = (cast44>>10u);
  uint alu133 = ((alu132==31u)?(alu131|2139095040u):(alu131+939524096u));
  uint alu134 = ((alu132==0u)?0u:alu133);
  uint alu135 = (cast45<<13u);
  uint alu136 = (cast45>>10u);
  uint alu137 = ((alu136==31u)?(alu135|2139095040u):(alu135+939524096u));
  uint alu138 = ((alu136==0u)?0u:alu137);
  uint alu139 = (cast46<<13u);
  uint alu140 = (cast46>>10u);
  uint alu141 = ((alu140==31u)?(alu139|2139095040u):(alu139+939524096u));
  uint alu142 = ((alu140==0u)?0u:alu141);
  uint alu143 = (cast47<<13u);
  uint alu144 = (cast47>>10u);
  uint alu145 = ((alu144==31u)?(alu143|2139095040u):(alu143+939524096u));
  uint alu146 = ((alu144==0u)?0u:alu145);
  uint cast48 = ((uint)((val26&((ushort)(32767u)))));
  uint cast49 = ((uint)((val27&((ushort)(32767u)))));
  uint cast50 = ((uint)((val28&((ushort)(32767u)))));
  uint cast51 = ((uint)((val33&((ushort)(32767u)))));
  uint alu147 = (cast48<<13u);
  uint alu148 = (cast48>>10u);
  uint alu149 = ((alu148==31u)?(alu147|2139095040u):(alu147+939524096u));
  uint alu150 = ((alu148==0u)?0u:alu149);
  uint alu151 = (cast49<<13u);
  uint alu152 = (cast49>>10u);
  uint alu153 = ((alu152==31u)?(alu151|2139095040u):(alu151+939524096u));
  uint alu154 = ((alu152==0u)?0u:alu153);
  uint alu155 = (cast50<<13u);
  uint alu156 = (cast50>>10u);
  uint alu157 = ((alu156==31u)?(alu155|2139095040u):(alu155+939524096u));
  uint alu158 = ((alu156==0u)?0u:alu157);
  uint alu159 = (cast51<<13u);
  uint alu160 = (cast51>>10u);
  uint alu161 = ((alu160==31u)?(alu159|2139095040u):(alu159+939524096u));
  uint alu162 = ((alu160==0u)?0u:alu161);
  *((__global float4*)((data0_4608+alu97))) = (float4)(((*(buf0+4))+cast43+as_float((uint)(((((uint)((val32&((ushort)(32768u)))))<<16u)|alu146)))+val35.x+val36.x),((*(buf0+5))+cast40+as_float((uint)(((((uint)((val23&((ushort)(32768u)))))<<16u)|alu134)))+val35.y+val36.y),((*(buf0+6))+cast41+as_float((uint)(((((uint)((val24&((ushort)(32768u)))))<<16u)|alu138)))+val35.z+val36.z),((*(buf0+7))+cast42+as_float((uint)(((((uint)((val25&((ushort)(32768u)))))<<16u)|alu142)))+val35.w+val36.w));
  *((__global float4*)((data0_4608+alu98))) = (float4)(((*(buf0+8))+cast43+as_float((uint)(((((uint)((val33&((ushort)(32768u)))))<<16u)|alu162)))+val35.x+val36.x),((*(buf0+9))+cast40+as_float((uint)(((((uint)((val26&((ushort)(32768u)))))<<16u)|alu150)))+val35.y+val36.y),((*(buf0+10))+cast41+as_float((uint)(((((uint)((val27&((ushort)(32768u)))))<<16u)|alu154)))+val35.z+val36.z),((*(buf0+11))+cast42+as_float((uint)(((((uint)((val28&((ushort)(32768u)))))<<16u)|alu158)))+val35.w+val36.w));
  *((__global float4*)((data0_4608+alu96))) = (float4)(((*(buf0+0))+cast43+as_float((uint)(((((uint)((val34&((ushort)(32768u)))))<<16u)|alu130)))+val35.x+val36.x),((*(buf0+1))+cast40+as_float((uint)(((((uint)((val29&((ushort)(32768u)))))<<16u)|alu118)))+val35.y+val36.y),((*(buf0+2))+cast41+as_float((uint)(((((uint)((val30&((ushort)(32768u)))))<<16u)|alu122)))+val35.z+val36.z),((*(buf0+3))+cast42+as_float((uint)(((((uint)((val31&((ushort)(32768u)))))<<16u)|alu126)))+val35.w+val36.w));
}

__kernel void r_9_16_32(__global float* data0_9, __global float* data1_4608) {
  float buf1[1];
  __attribute__ ((aligned (16))) __local float buf2[16];
  int gidx0 = get_group_id(0); /* 9 */
  int lidx0 = get_local_id(0); /* 16 */
  for (int Ridx0 = 0; Ridx0 < 32; Ridx0++) {
    float val0 = (*(data1_4608+((lidx0<<5)+Ridx0+(gidx0<<9))));
    *(buf0+0) = ((*(buf0+0))+val0);
  }
  *(buf2+lidx0) = (*(buf0+0));
  barrier(CLK_LOCAL_MEM_FENCE);
  *(buf1+0) = 0.0f;
  for (int Ridx102 = 0; Ridx102 < 16; Ridx102++) {
    float val1 = (*(buf2+Ridx102));
    *(buf1+0) = ((*(buf1+0))+val1);
  }
  if ((lidx0==0)) {
    *(data0_9+gidx0) = ((*(buf1+0))*0.001953125f);
  }
}

__kernel void r_9_16_32n1(__global float* data0_9, __global float* data1_4608, __global float* data2_9) {
  float val0 = (*(data2_9+gidx0));
    float val1 = (*(data1_4608+((lidx0<<5)+Ridx0+(gidx0<<9))));
    float alu1 = (val1-val0);
    *(buf0+0) = ((*(buf0+0))+(alu1*alu1));
  }
    float val2 = (*(buf2+Ridx102));
    *(buf1+0) = ((*(buf1+0))+val2);
  }
    *(data0_9+gidx0) = sqrt((((*(buf1+0))*0.001953125f)+9.999999747378752e-06f));
  }
}

__kernel void E_3_128_4_3(__global float* data0_4608, __global float* data1_4608, __global float* data2_9, __global float* data3_9, __global ushort* data4_512, __global ushort* data5_512) {
  int alu1 = (alu0+1);
  ushort val0 = (*(data4_512+alu1));
  int alu2 = (alu0+2);
  ushort val1 = (*(data4_512+alu2));
  int alu3 = (alu0+3);
  ushort val2 = (*(data4_512+alu3));
  ushort val3 = (*(data4_512+alu0));
  ushort val4 = (*(data5_512+alu1));
  ushort val5 = (*(data5_512+alu2));
  ushort val6 = (*(data5_512+alu3));
  ushort val7 = (*(data5_512+alu0));
  int alu4 = (idx1*3);
  int alu5 = (alu4+1);
  float val8 = (*(data2_9+alu5));
  int alu6 = (alu4+2);
  float val9 = (*(data2_9+alu6));
  float val10 = (*(data2_9+alu4));
  float val11 = (*(data3_9+alu5));
  float val12 = (*(data3_9+alu6));
  float val13 = (*(data3_9+alu4));
  int alu7 = (alu0+(idx1*1536));
  int alu8 = (alu7+512);
  float4 val14 = (*((__global float4*)((data1_4608+alu8))));
  int alu9 = (alu7+1024);
  float4 val15 = (*((__global float4*)((data1_4608+alu9))));
  float4 val16 = (*((__global float4*)((data1_4608+alu7))));
  uint cast3 = ((uint)((val3&((ushort)(32767u)))));
  uint cast4 = ((uint)((val4&((ushort)(32767u)))));
  uint cast5 = ((uint)((val5&((ushort)(32767u)))));
  uint cast6 = ((uint)((val6&((ushort)(32767u)))));
  uint cast7 = ((uint)((val7&((ushort)(32767u)))));
  uint alu10 = (cast0<<13u);
  uint alu11 = (cast0>>10u);
  uint alu12 = ((alu11==31u)?(alu10|2139095040u):(alu10+939524096u));
  uint alu13 = ((alu11==0u)?0u:alu12);
  float cast8 = as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu13)));
  uint alu14 = (cast1<<13u);
  uint alu15 = (cast1>>10u);
  uint alu16 = ((alu15==31u)?(alu14|2139095040u):(alu14+939524096u));
  uint alu17 = ((alu15==0u)?0u:alu16);
  float cast9 = as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu17)));
  uint alu18 = (cast2<<13u);
  uint alu19 = (cast2>>10u);
  uint alu20 = ((alu19==31u)?(alu18|2139095040u):(alu18+939524096u));
  uint alu21 = ((alu19==0u)?0u:alu20);
  float cast10 = as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu21)));
  uint alu22 = (cast3<<13u);
  uint alu23 = (cast3>>10u);
  uint alu24 = ((alu23==31u)?(alu22|2139095040u):(alu22+939524096u));
  uint alu25 = ((alu23==0u)?0u:alu24);
  float cast11 = as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu25)));
  uint alu26 = (cast4<<13u);
  uint alu27 = (cast4>>10u);
  uint alu28 = ((alu27==31u)?(alu26|2139095040u):(alu26+939524096u));
  uint alu29 = ((alu27==0u)?0u:alu28);
  float cast12 = as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu29)));
  uint alu30 = (cast5<<13u);
  uint alu31 = (cast5>>10u);
  uint alu32 = ((alu31==31u)?(alu30|2139095040u):(alu30+939524096u));
  uint alu33 = ((alu31==0u)?0u:alu32);
  float cast13 = as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu33)));
  uint alu34 = (cast6<<13u);
  uint alu35 = (cast6>>10u);
  uint alu36 = ((alu35==31u)?(alu34|2139095040u):(alu34+939524096u));
  uint alu37 = ((alu35==0u)?0u:alu36);
  float cast14 = as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu37)));
  uint alu38 = (cast7<<13u);
  uint alu39 = (cast7>>10u);
  uint alu40 = ((alu39==31u)?(alu38|2139095040u):(alu38+939524096u));
  uint alu41 = ((alu39==0u)?0u:alu40);
  float cast15 = as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu41)));
  float alu42 = (1/val11);
  float alu43 = (1/val12);
  float alu44 = (1/val13);
  *((__global float4*)((data0_4608+alu8))) = (float4)((((val14.x-val8)*alu42*cast11)+cast15),(((val14.y-val8)*alu42*cast8)+cast12),(((val14.z-val8)*alu42*cast9)+cast13),(((val14.w-val8)*alu42*cast10)+cast14));
  *((__global float4*)((data0_4608+alu9))) = (float4)((((val15.x-val9)*alu43*cast11)+cast15),(((val15.y-val9)*alu43*cast8)+cast12),(((val15.z-val9)*alu43*cast9)+cast13),(((val15.w-val9)*alu43*cast10)+cast14));
  *((__global float4*)((data0_4608+alu7))) = (float4)((((val16.x-val10)*alu44*cast11)+cast15),(((val16.y-val10)*alu44*cast8)+cast12),(((val16.z-val10)*alu44*cast9)+cast13),(((val16.w-val10)*alu44*cast10)+cast14));
}

__kernel void r_3_512_3_3_128_4(__global float* data0_13824, __global float* data1_4608, __global ushort* data2_786432, __global ushort* data3_1536) {
  float buf0[9];
  int alu0 = (idx0*3);
    int alu10 = (alu0+(Ridx0*6144));
    ushort val0 = (*(data2_786432+(alu10+1)));
    ushort val1 = (*(data2_786432+(alu10+2)));
    ushort val2 = (*(data2_786432+(alu10+1536)));
    ushort val3 = (*(data2_786432+(alu10+1537)));
    ushort val4 = (*(data2_786432+(alu10+1538)));
    ushort val5 = (*(data2_786432+(alu10+3072)));
    ushort val6 = (*(data2_786432+(alu10+3073)));
    ushort val7 = (*(data2_786432+(alu10+3074)));
    ushort val8 = (*(data2_786432+(alu10+4608)));
    ushort val9 = (*(data2_786432+(alu10+4609)));
    ushort val10 = (*(data2_786432+(alu10+4610)));
    ushort val11 = (*(data2_786432+alu10));
    int alu11 = ((idx1*1536)+(Ridx0<<2));
    float4 val12 = (*((__global float4*)((data1_4608+(alu11+512)))));
    float4 val13 = (*((__global float4*)((data1_4608+(alu11+1024)))));
    float4 val14 = (*((__global float4*)((data1_4608+alu11))));
    uint alu12 = (cast0<<13u);
    uint alu13 = (cast0>>10u);
    uint alu14 = ((alu13==31u)?(alu12|2139095040u):(alu12+939524096u));
    uint alu15 = ((alu13==0u)?0u:alu14);
    float cast12 = as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu15)));
    uint alu16 = (cast1<<13u);
    uint alu17 = (cast1>>10u);
    uint alu18 = ((alu17==31u)?(alu16|2139095040u):(alu16+939524096u));
    uint alu19 = ((alu17==0u)?0u:alu18);
    float cast13 = as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu19)));
    uint alu20 = (cast2<<13u);
    uint alu21 = (cast2>>10u);
    uint alu22 = ((alu21==31u)?(alu20|2139095040u):(alu20+939524096u));
    uint alu23 = ((alu21==0u)?0u:alu22);
    float cast14 = as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu23)));
    uint alu24 = (cast3<<13u);
    uint alu25 = (cast3>>10u);
    uint alu26 = ((alu25==31u)?(alu24|2139095040u):(alu24+939524096u));
    uint alu27 = ((alu25==0u)?0u:alu26);
    float cast15 = as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu27)));
    uint alu28 = (cast4<<13u);
    uint alu29 = (cast4>>10u);
    uint alu30 = ((alu29==31u)?(alu28|2139095040u):(alu28+939524096u));
    uint alu31 = ((alu29==0u)?0u:alu30);
    float cast16 = as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu31)));
    uint alu32 = (cast5<<13u);
    uint alu33 = (cast5>>10u);
    uint alu34 = ((alu33==31u)?(alu32|2139095040u):(alu32+939524096u));
    uint alu35 = ((alu33==0u)?0u:alu34);
    float cast17 = as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu35)));
    uint alu36 = (cast6<<13u);
    uint alu37 = (cast6>>10u);
    uint alu38 = ((alu37==31u)?(alu36|2139095040u):(alu36+939524096u));
    uint alu39 = ((alu37==0u)?0u:alu38);
    float cast18 = as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu39)));
    uint alu40 = (cast7<<13u);
    uint alu41 = (cast7>>10u);
    uint alu42 = ((alu41==31u)?(alu40|2139095040u):(alu40+939524096u));
    uint alu43 = ((alu41==0u)?0u:alu42);
    float cast19 = as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu43)));
    uint alu44 = (cast8<<13u);
    uint alu45 = (cast8>>10u);
    uint alu46 = ((alu45==31u)?(alu44|2139095040u):(alu44+939524096u));
    uint alu47 = ((alu45==0u)?0u:alu46);
    float cast20 = as_float((uint)(((((uint)((val8&((ushort)(32768u)))))<<16u)|alu47)));
    uint alu48 = (cast9<<13u);
    uint alu49 = (cast9>>10u);
    uint alu50 = ((alu49==31u)?(alu48|2139095040u):(alu48+939524096u));
    uint alu51 = ((alu49==0u)?0u:alu50);
    float cast21 = as_float((uint)(((((uint)((val9&((ushort)(32768u)))))<<16u)|alu51)));
    uint alu52 = (cast10<<13u);
    uint alu53 = (cast10>>10u);
    uint alu54 = ((alu53==31u)?(alu52|2139095040u):(alu52+939524096u));
    uint alu55 = ((alu53==0u)?0u:alu54);
    float cast22 = as_float((uint)(((((uint)((val10&((ushort)(32768u)))))<<16u)|alu55)));
    uint alu56 = (cast11<<13u);
    uint alu57 = (cast11>>10u);
    uint alu58 = ((alu57==31u)?(alu56|2139095040u):(alu56+939524096u));
    uint alu59 = ((alu57==0u)?0u:alu58);
    float cast23 = as_float((uint)(((((uint)((val11&((ushort)(32768u)))))<<16u)|alu59)));
    *(buf0+0) = ((*(buf0+0))+(val14.x*cast23)+(val14.y*cast14)+(val14.z*cast17)+(val14.w*cast20));
    *(buf0+1) = ((*(buf0+1))+(val14.x*cast12)+(val14.y*cast15)+(val14.z*cast18)+(val14.w*cast21));
    *(buf0+2) = ((*(buf0+2))+(val14.x*cast13)+(val14.y*cast16)+(val14.z*cast19)+(val14.w*cast22));
    *(buf0+3) = ((*(buf0+3))+(val12.x*cast23)+(val12.y*cast14)+(val12.z*cast17)+(val12.w*cast20));
    *(buf0+4) = ((*(buf0+4))+(val12.x*cast12)+(val12.y*cast15)+(val12.z*cast18)+(val12.w*cast21));
    *(buf0+5) = ((*(buf0+5))+(val12.x*cast13)+(val12.y*cast16)+(val12.z*cast19)+(val12.w*cast22));
    *(buf0+6) = ((*(buf0+6))+(val13.x*cast23)+(val13.y*cast14)+(val13.z*cast17)+(val13.w*cast20));
    *(buf0+7) = ((*(buf0+7))+(val13.x*cast12)+(val13.y*cast15)+(val13.z*cast18)+(val13.w*cast21));
    *(buf0+8) = ((*(buf0+8))+(val13.x*cast13)+(val13.y*cast16)+(val13.z*cast19)+(val13.w*cast22));
  }
  ushort val15 = (*(data3_1536+(alu0+1)));
  ushort val16 = (*(data3_1536+(alu0+2)));
  ushort val17 = (*(data3_1536+alu0));
  int alu70 = (alu0+(idx1*4608));
  uint cast24 = ((uint)((val15&((ushort)(32767u)))));
  uint cast25 = ((uint)((val16&((ushort)(32767u)))));
  uint cast26 = ((uint)((val17&((ushort)(32767u)))));
  uint alu71 = (cast24<<13u);
  uint alu72 = (cast24>>10u);
  uint alu73 = ((alu72==31u)?(alu71|2139095040u):(alu71+939524096u));
  uint alu74 = ((alu72==0u)?0u:alu73);
  float cast27 = as_float((uint)(((((uint)((val15&((ushort)(32768u)))))<<16u)|alu74)));
  uint alu75 = (cast25<<13u);
  uint alu76 = (cast25>>10u);
  uint alu77 = ((alu76==31u)?(alu75|2139095040u):(alu75+939524096u));
  uint alu78 = ((alu76==0u)?0u:alu77);
  float cast28 = as_float((uint)(((((uint)((val16&((ushort)(32768u)))))<<16u)|alu78)));
  uint alu79 = (cast26<<13u);
  uint alu80 = (cast26>>10u);
  uint alu81 = ((alu80==31u)?(alu79|2139095040u):(alu79+939524096u));
  uint alu82 = ((alu80==0u)?0u:alu81);
  float cast29 = as_float((uint)(((((uint)((val17&((ushort)(32768u)))))<<16u)|alu82)));
  *(data0_13824+(alu70+1)) = ((*(buf0+1))+cast27);
  *(data0_13824+(alu70+2)) = ((*(buf0+2))+cast28);
  *(data0_13824+(alu70+1536)) = ((*(buf0+3))+cast29);
  *(data0_13824+(alu70+1537)) = ((*(buf0+4))+cast27);
  *(data0_13824+(alu70+1538)) = ((*(buf0+5))+cast28);
  *(data0_13824+(alu70+3072)) = ((*(buf0+6))+cast29);
  *(data0_13824+(alu70+3073)) = ((*(buf0+7))+cast27);
  *(data0_13824+(alu70+3074)) = ((*(buf0+8))+cast28);
  *(data0_13824+alu70) = ((*(buf0+0))+cast29);
}

__kernel void r_8_9_9_16_4(__global float* data0_648, __global uchar* data1_81, __global float* data2_13824) {
  int idx0 = get_global_id(0); /* 9 */
  int idx2 = get_global_id(2); /* 8 */
  for (int Ridx0 = 0; Ridx0 < 16; Ridx0++) {
    int alu1 = ((idx2<<6)+(Ridx0<<2));
    float4 val0 = (*((__global float4*)((data2_13824+(alu1+(idx0*1536)+512)))));
    float4 val1 = (*((__global float4*)((data2_13824+(alu1+(idx1*1536))))));
    *(buf0+0) = ((*(buf0+0))+(val1.x*val0.x)+(val1.y*val0.y)+(val1.z*val0.z)+(val1.w*val0.w));
  }
  int alu4 = (idx0+(idx1*9));
  bool val2 = (*(data1_81+alu4));
  float alu5 = (val2?((float)(-INFINITY)):((*(buf0+0))*0.125f));
  *(data0_648+(alu4+(idx2*81))) = alu5;
}

__kernel void r_72_9(__global float* data0_72, __global float* data1_648) {
  int idx0 = get_global_id(0); /* 72 */
  int alu0 = (idx0*9);
  float val0 = (*(data1_648+(alu0+1)));
  float val1 = (*(data1_648+(alu0+2)));
  float val2 = (*(data1_648+(alu0+3)));
  float val3 = (*(data1_648+(alu0+4)));
  float val4 = (*(data1_648+(alu0+5)));
  float val5 = (*(data1_648+(alu0+6)));
  float val6 = (*(data1_648+(alu0+7)));
  float val7 = (*(data1_648+(alu0+8)));
  float val8 = (*(data1_648+alu0));
  float alu1 = ((val8<val0)?val0:val8);
  float alu2 = ((alu1<val1)?val1:alu1);
  float alu3 = ((alu2<val2)?val2:alu2);
  float alu4 = ((alu3<val3)?val3:alu3);
  float alu5 = ((alu4<val4)?val4:alu4);
  float alu6 = ((alu5<val5)?val5:alu5);
  float alu7 = ((alu6<val6)?val6:alu6);
  float alu8 = ((alu7<val7)?val7:alu7);
  *(data0_72+idx0) = alu8;
}

__kernel void r_72_9n1(__global float* data0_72, __global float* data1_648, __global float* data2_72) {
  float val9 = (*(data2_72+idx0));
  *(data0_72+idx0) = (exp2(((val8-val9)*1.4426950216293335f))+exp2(((val0-val9)*1.4426950216293335f))+exp2(((val1-val9)*1.4426950216293335f))+exp2(((val2-val9)*1.4426950216293335f))+exp2(((val3-val9)*1.4426950216293335f))+exp2(((val4-val9)*1.4426950216293335f))+exp2(((val5-val9)*1.4426950216293335f))+exp2(((val6-val9)*1.4426950216293335f))+exp2(((val7-val9)*1.4426950216293335f)));
}

__kernel void r_8_3_16_4_3_9(__global float* data0_4608, __global float* data1_648, __global float* data2_72, __global float* data3_72, __global float* data4_13824) {
  int alu0 = ((idx1*27)+(idx2*81));
  float val8 = (*(data1_648+(alu0+9)));
  float val9 = (*(data1_648+(alu0+10)));
  float val10 = (*(data1_648+(alu0+11)));
  float val11 = (*(data1_648+(alu0+12)));
  float val12 = (*(data1_648+(alu0+13)));
  float val13 = (*(data1_648+(alu0+14)));
  float val14 = (*(data1_648+(alu0+15)));
  float val15 = (*(data1_648+(alu0+16)));
  float val16 = (*(data1_648+(alu0+17)));
  float val17 = (*(data1_648+(alu0+18)));
  float val18 = (*(data1_648+(alu0+19)));
  float val19 = (*(data1_648+(alu0+20)));
  float val20 = (*(data1_648+(alu0+21)));
  float val21 = (*(data1_648+(alu0+22)));
  float val22 = (*(data1_648+(alu0+23)));
  float val23 = (*(data1_648+(alu0+24)));
  float val24 = (*(data1_648+(alu0+25)));
  float val25 = (*(data1_648+(alu0+26)));
  float val26 = (*(data1_648+alu0));
  int alu1 = ((idx1*3)+(idx2*9));
  int alu2 = (alu1+1);
  float val27 = (*(data2_72+alu2));
  int alu3 = (alu1+2);
  float val28 = (*(data2_72+alu3));
  float val29 = (*(data2_72+alu1));
  float val30 = (*(data3_72+alu2));
  float val31 = (*(data3_72+alu3));
  float val32 = (*(data3_72+alu1));
  int idx0 = get_global_id(0); /* 16 */
  int alu4 = (idx0<<2);
  int alu5 = (alu4+(idx2<<6));
  float4 val33 = (*((__global float4*)((data4_13824+(alu5+1024)))));
  float4 val34 = (*((__global float4*)((data4_13824+(alu5+2560)))));
  float4 val35 = (*((__global float4*)((data4_13824+(alu5+4096)))));
  float4 val36 = (*((__global float4*)((data4_13824+(alu5+5632)))));
  float4 val37 = (*((__global float4*)((data4_13824+(alu5+7168)))));
  float4 val38 = (*((__global float4*)((data4_13824+(alu5+8704)))));
  float4 val39 = (*((__global float4*)((data4_13824+(alu5+10240)))));
  float4 val40 = (*((__global float4*)((data4_13824+(alu5+11776)))));
  float4 val41 = (*((__global float4*)((data4_13824+(alu5+13312)))));
  float alu6 = exp2(((val8-val27)*1.4426950216293335f));
  float alu7 = exp2(((val9-val27)*1.4426950216293335f));
  float alu8 = exp2(((val10-val27)*1.4426950216293335f));
  float alu9 = exp2(((val11-val27)*1.4426950216293335f));
  float alu10 = exp2(((val12-val27)*1.4426950216293335f));
  float alu11 = exp2(((val13-val27)*1.4426950216293335f));
  float alu12 = exp2(((val14-val27)*1.4426950216293335f));
  float alu13 = exp2(((val15-val27)*1.4426950216293335f));
  float alu14 = exp2(((val16-val27)*1.4426950216293335f));
  float alu15 = (1/val30);
  float alu16 = exp2(((val17-val28)*1.4426950216293335f));
  float alu17 = exp2(((val18-val28)*1.4426950216293335f));
  float alu18 = exp2(((val19-val28)*1.4426950216293335f));
  float alu19 = exp2(((val20-val28)*1.4426950216293335f));
  float alu20 = exp2(((val21-val28)*1.4426950216293335f));
  float alu21 = exp2(((val22-val28)*1.4426950216293335f));
  float alu22 = exp2(((val23-val28)*1.4426950216293335f));
  float alu23 = exp2(((val24-val28)*1.4426950216293335f));
  float alu24 = exp2(((val25-val28)*1.4426950216293335f));
  float alu25 = (1/val31);
  float alu26 = exp2(((val0-val29)*1.4426950216293335f));
  float alu27 = exp2(((val1-val29)*1.4426950216293335f));
  float alu28 = exp2(((val2-val29)*1.4426950216293335f));
  float alu29 = exp2(((val3-val29)*1.4426950216293335f));
  float alu30 = exp2(((val4-val29)*1.4426950216293335f));
  float alu31 = exp2(((val5-val29)*1.4426950216293335f));
  float alu32 = exp2(((val6-val29)*1.4426950216293335f));
  float alu33 = exp2(((val7-val29)*1.4426950216293335f));
  float alu34 = exp2(((val26-val29)*1.4426950216293335f));
  float alu35 = (1/val32);
  int alu36 = (alu4+(idx1*192)+(idx2*576));
  *((__global float4*)((data0_4608+(alu36+64)))) = (float4)((((alu6*val33.x)+(alu7*val34.x)+(alu8*val35.x)+(alu9*val36.x)+(alu10*val37.x)+(alu11*val38.x)+(alu12*val39.x)+(alu13*val40.x)+(alu14*val41.x))*alu15),(((alu6*val33.y)+(alu7*val34.y)+(alu8*val35.y)+(alu9*val36.y)+(alu10*val37.y)+(alu11*val38.y)+(alu12*val39.y)+(alu13*val40.y)+(alu14*val41.y))*alu15),(((alu6*val33.z)+(alu7*val34.z)+(alu8*val35.z)+(alu9*val36.z)+(alu10*val37.z)+(alu11*val38.z)+(alu12*val39.z)+(alu13*val40.z)+(alu14*val41.z))*alu15),(((alu6*val33.w)+(alu7*val34.w)+(alu8*val35.w)+(alu9*val36.w)+(alu10*val37.w)+(alu11*val38.w)+(alu12*val39.w)+(alu13*val40.w)+(alu14*val41.w))*alu15));
  *((__global float4*)((data0_4608+(alu36+128)))) = (float4)((((alu16*val33.x)+(alu17*val34.x)+(alu18*val35.x)+(alu19*val36.x)+(alu20*val37.x)+(alu21*val38.x)+(alu22*val39.x)+(alu23*val40.x)+(alu24*val41.x))*alu25),(((alu16*val33.y)+(alu17*val34.y)+(alu18*val35.y)+(alu19*val36.y)+(alu20*val37.y)+(alu21*val38.y)+(alu22*val39.y)+(alu23*val40.y)+(alu24*val41.y))*alu25),(((alu16*val33.z)+(alu17*val34.z)+(alu18*val35.z)+(alu19*val36.z)+(alu20*val37.z)+(alu21*val38.z)+(alu22*val39.z)+(alu23*val40.z)+(alu24*val41.z))*alu25),(((alu16*val33.w)+(alu17*val34.w)+(alu18*val35.w)+(alu19*val36.w)+(alu20*val37.w)+(alu21*val38.w)+(alu22*val39.w)+(alu23*val40.w)+(alu24*val41.w))*alu25));
  *((__global float4*)((data0_4608+alu36))) = (float4)((((alu34*val33.x)+(alu26*val34.x)+(alu27*val35.x)+(alu28*val36.x)+(alu29*val37.x)+(alu30*val38.x)+(alu31*val39.x)+(alu32*val40.x)+(alu33*val41.x))*alu35),(((alu34*val33.y)+(alu26*val34.y)+(alu27*val35.y)+(alu28*val36.y)+(alu29*val37.y)+(alu30*val38.y)+(alu31*val39.y)+(alu32*val40.y)+(alu33*val41.y))*alu35),(((alu34*val33.z)+(alu26*val34.z)+(alu27*val35.z)+(alu28*val36.z)+(alu29*val37.z)+(alu30*val38.z)+(alu31*val39.z)+(alu32*val40.z)+(alu33*val41.z))*alu35),(((alu34*val33.w)+(alu26*val34.w)+(alu27*val35.w)+(alu28*val36.w)+(alu29*val37.w)+(alu30*val38.w)+(alu31*val39.w)+(alu32*val40.w)+(alu33*val41.w))*alu35));
}

__kernel void r_3_128_4_3_8_16_4(__global float* data0_4608, __global float* data1_4608, __global float* data2_4608, __global ushort* data3_262144, __global ushort* data4_512) {
  for (int Ridx0_0 = 0; Ridx0_0 < 8; Ridx0_0++) {
    for (int Ridx0_1 = 0; Ridx0_1 < 16; Ridx0_1++) {
      int alu13 = ((Ridx0_0<<15)+(Ridx0_1<<11)+alu0);
      int alu14 = (alu13+512);
      ushort val0 = (*(data3_262144+(alu14+1)));
      ushort val1 = (*(data3_262144+(alu14+2)));
      ushort val2 = (*(data3_262144+(alu14+3)));
      int alu15 = (alu13+1024);
      ushort val3 = (*(data3_262144+(alu15+1)));
      ushort val4 = (*(data3_262144+(alu15+2)));
      ushort val5 = (*(data3_262144+(alu15+3)));
      int alu16 = (alu13+1536);
      ushort val6 = (*(data3_262144+(alu16+1)));
      ushort val7 = (*(data3_262144+(alu16+2)));
      ushort val8 = (*(data3_262144+(alu16+3)));
      ushort val9 = (*(data3_262144+(alu13+1)));
      ushort val10 = (*(data3_262144+(alu13+2)));
      ushort val11 = (*(data3_262144+(alu13+3)));
      ushort val12 = (*(data3_262144+alu14));
      ushort val13 = (*(data3_262144+alu15));
      ushort val14 = (*(data3_262144+alu16));
      ushort val15 = (*(data3_262144+alu13));
      int alu17 = ((idx1*192)+(Ridx0_1<<2)+(Ridx0_0*576));
      float4 val16 = (*((__global float4*)((data2_4608+(alu17+64)))));
      float4 val17 = (*((__global float4*)((data2_4608+(alu17+128)))));
      float4 val18 = (*((__global float4*)((data2_4608+alu17))));
      uint cast0 = ((uint)((val0&((ushort)(32767u)))));
      uint cast1 = ((uint)((val1&((ushort)(32767u)))));
      uint cast2 = ((uint)((val2&((ushort)(32767u)))));
      uint cast3 = ((uint)((val3&((ushort)(32767u)))));
      uint cast4 = ((uint)((val4&((ushort)(32767u)))));
      uint cast5 = ((uint)((val5&((ushort)(32767u)))));
      uint cast6 = ((uint)((val6&((ushort)(32767u)))));
      uint cast7 = ((uint)((val7&((ushort)(32767u)))));
      uint cast8 = ((uint)((val8&((ushort)(32767u)))));
      uint cast9 = ((uint)((val9&((ushort)(32767u)))));
      uint cast10 = ((uint)((val10&((ushort)(32767u)))));
      uint cast11 = ((uint)((val11&((ushort)(32767u)))));
      uint cast12 = ((uint)((val12&((ushort)(32767u)))));
      uint cast13 = ((uint)((val13&((ushort)(32767u)))));
      uint cast14 = ((uint)((val14&((ushort)(32767u)))));
      uint cast15 = ((uint)((val15&((ushort)(32767u)))));
      uint alu18 = (cast0<<13u);
      uint alu19 = (cast0>>10u);
      uint alu20 = ((alu19==31u)?(alu18|2139095040u):(alu18+939524096u));
      uint alu21 = ((alu19==0u)?0u:alu20);
      float cast16 = as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu21)));
      uint alu22 = (cast1<<13u);
      uint alu23 = (cast1>>10u);
      uint alu24 = ((alu23==31u)?(alu22|2139095040u):(alu22+939524096u));
      uint alu25 = ((alu23==0u)?0u:alu24);
      float cast17 = as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu25)));
      uint alu26 = (cast2<<13u);
      uint alu27 = (cast2>>10u);
      uint alu28 = ((alu27==31u)?(alu26|2139095040u):(alu26+939524096u));
      uint alu29 = ((alu27==0u)?0u:alu28);
      float cast18 = as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu29)));
      uint alu30 = (cast3<<13u);
      uint alu31 = (cast3>>10u);
      uint alu32 = ((alu31==31u)?(alu30|2139095040u):(alu30+939524096u));
      uint alu33 = ((alu31==0u)?0u:alu32);
      float cast19 = as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu33)));
      uint alu34 = (cast4<<13u);
      uint alu35 = (cast4>>10u);
      uint alu36 = ((alu35==31u)?(alu34|2139095040u):(alu34+939524096u));
      uint alu37 = ((alu35==0u)?0u:alu36);
      float cast20 = as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu37)));
      uint alu38 = (cast5<<13u);
      uint alu39 = (cast5>>10u);
      uint alu40 = ((alu39==31u)?(alu38|2139095040u):(alu38+939524096u));
      uint alu41 = ((alu39==0u)?0u:alu40);
      float cast21 = as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu41)));
      uint alu42 = (cast6<<13u);
      uint alu43 = (cast6>>10u);
      uint alu44 = ((alu43==31u)?(alu42|2139095040u):(alu42+939524096u));
      uint alu45 = ((alu43==0u)?0u:alu44);
      float cast22 = as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu45)));
      uint alu46 = (cast7<<13u);
      uint alu47 = (cast7>>10u);
      uint alu48 = ((alu47==31u)?(alu46|2139095040u):(alu46+939524096u));
      uint alu49 = ((alu47==0u)?0u:alu48);
      float cast23 = as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu49)));
      uint alu50 = (cast8<<13u);
      uint alu51 = (cast8>>10u);
      uint alu52 = ((alu51==31u)?(alu50|2139095040u):(alu50+939524096u));
      uint alu53 = ((alu51==0u)?0u:alu52);
      float cast24 = as_float((uint)(((((uint)((val8&((ushort)(32768u)))))<<16u)|alu53)));
      uint alu54 = (cast9<<13u);
      uint alu55 = (cast9>>10u);
      uint alu56 = ((alu55==31u)?(alu54|2139095040u):(alu54+939524096u));
      uint alu57 = ((alu55==0u)?0u:alu56);
      float cast25 = as_float((uint)(((((uint)((val9&((ushort)(32768u)))))<<16u)|alu57)));
      uint alu58 = (cast10<<13u);
      uint alu59 = (cast10>>10u);
      uint alu60 = ((alu59==31u)?(alu58|2139095040u):(alu58+939524096u));
      uint alu61 = ((alu59==0u)?0u:alu60);
      float cast26 = as_float((uint)(((((uint)((val10&((ushort)(32768u)))))<<16u)|alu61)));
      uint alu62 = (cast11<<13u);
      uint alu63 = (cast11>>10u);
      uint alu64 = ((alu63==31u)?(alu62|2139095040u):(alu62+939524096u));
      uint alu65 = ((alu63==0u)?0u:alu64);
      float cast27 = as_float((uint)(((((uint)((val11&((ushort)(32768u)))))<<16u)|alu65)));
      uint alu66 = (cast12<<13u);
      uint alu67 = (cast12>>10u);
      uint alu68 = ((alu67==31u)?(alu66|2139095040u):(alu66+939524096u));
      uint alu69 = ((alu67==0u)?0u:alu68);
      float cast28 = as_float((uint)(((((uint)((val12&((ushort)(32768u)))))<<16u)|alu69)));
      uint alu70 = (cast13<<13u);
      uint alu71 = (cast13>>10u);
      uint alu72 = ((alu71==31u)?(alu70|2139095040u):(alu70+939524096u));
      uint alu73 = ((alu71==0u)?0u:alu72);
      float cast29 = as_float((uint)(((((uint)((val13&((ushort)(32768u)))))<<16u)|alu73)));
      uint alu74 = (cast14<<13u);
      uint alu75 = (cast14>>10u);
      uint alu76 = ((alu75==31u)?(alu74|2139095040u):(alu74+939524096u));
      uint alu77 = ((alu75==0u)?0u:alu76);
      float cast30 = as_float((uint)(((((uint)((val14&((ushort)(32768u)))))<<16u)|alu77)));
      uint alu78 = (cast15<<13u);
      uint alu79 = (cast15>>10u);
      uint alu80 = ((alu79==31u)?(alu78|2139095040u):(alu78+939524096u));
      uint alu81 = ((alu79==0u)?0u:alu80);
      float cast31 = as_float((uint)(((((uint)((val15&((ushort)(32768u)))))<<16u)|alu81)));
      *(buf0+0) = ((*(buf0+0))+(val18.x*cast31)+(val18.y*cast28)+(val18.z*cast29)+(val18.w*cast30));
      *(buf0+1) = ((*(buf0+1))+(val18.x*cast25)+(val18.y*cast16)+(val18.z*cast19)+(val18.w*cast22));
      *(buf0+2) = ((*(buf0+2))+(val18.x*cast26)+(val18.y*cast17)+(val18.z*cast20)+(val18.w*cast23));
      *(buf0+3) = ((*(buf0+3))+(val18.x*cast27)+(val18.y*cast18)+(val18.z*cast21)+(val18.w*cast24));
      *(buf0+4) = ((*(buf0+4))+(val16.x*cast31)+(val16.y*cast28)+(val16.z*cast29)+(val16.w*cast30));
      *(buf0+5) = ((*(buf0+5))+(val16.x*cast25)+(val16.y*cast16)+(val16.z*cast19)+(val16.w*cast22));
      *(buf0+6) = ((*(buf0+6))+(val16.x*cast26)+(val16.y*cast17)+(val16.z*cast20)+(val16.w*cast23));
      *(buf0+7) = ((*(buf0+7))+(val16.x*cast27)+(val16.y*cast18)+(val16.z*cast21)+(val16.w*cast24));
      *(buf0+8) = ((*(buf0+8))+(val17.x*cast31)+(val17.y*cast28)+(val17.z*cast29)+(val17.w*cast30));
      *(buf0+9) = ((*(buf0+9))+(val17.x*cast25)+(val17.y*cast16)+(val17.z*cast19)+(val17.w*cast22));
      *(buf0+10) = ((*(buf0+10))+(val17.x*cast26)+(val17.y*cast17)+(val17.z*cast20)+(val17.w*cast23));
      *(buf0+11) = ((*(buf0+11))+(val17.x*cast27)+(val17.y*cast18)+(val17.z*cast21)+(val17.w*cast24));
    }
  }
  ushort val19 = (*(data4_512+(alu0+1)));
  ushort val20 = (*(data4_512+(alu0+2)));
  ushort val21 = (*(data4_512+(alu0+3)));
  ushort val22 = (*(data4_512+alu0));
  int alu96 = (alu0+(idx1*1536));
  float4 val23 = (*((__global float4*)((data1_4608+alu97))));
  float4 val24 = (*((__global float4*)((data1_4608+alu98))));
  float4 val25 = (*((__global float4*)((data1_4608+alu96))));
  float cast36 = as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu102)));
  float cast37 = as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu106)));
  float cast38 = as_float((uint)(((((uint)((val21&((ushort)(32768u)))))<<16u)|alu110)));
  float cast39 = as_float((uint)(((((uint)((val22&((ushort)(32768u)))))<<16u)|alu114)));
  *((__global float4*)((data0_4608+alu97))) = (float4)((val23.x+(*(buf0+4))+cast39),(val23.y+(*(buf0+5))+cast36),(val23.z+(*(buf0+6))+cast37),(val23.w+(*(buf0+7))+cast38));
  *((__global float4*)((data0_4608+alu98))) = (float4)((val24.x+(*(buf0+8))+cast39),(val24.y+(*(buf0+9))+cast36),(val24.z+(*(buf0+10))+cast37),(val24.w+(*(buf0+11))+cast38));
  *((__global float4*)((data0_4608+alu96))) = (float4)((val25.x+(*(buf0+0))+cast39),(val25.y+(*(buf0+1))+cast36),(val25.z+(*(buf0+2))+cast37),(val25.w+(*(buf0+3))+cast38));
}

__kernel void r_3_512_4_3_128_4(__global float* data0_18432, __global float* data1_4608, __global ushort* data2_1048576, __global ushort* data3_2048) {
    int alu13 = (alu0+(Ridx0<<13));
    int alu14 = (alu13+2048);
    ushort val0 = (*(data2_1048576+(alu14+1)));
    ushort val1 = (*(data2_1048576+(alu14+2)));
    ushort val2 = (*(data2_1048576+(alu14+3)));
    int alu15 = (alu13+4096);
    ushort val3 = (*(data2_1048576+(alu15+1)));
    ushort val4 = (*(data2_1048576+(alu15+2)));
    ushort val5 = (*(data2_1048576+(alu15+3)));
    int alu16 = (alu13+6144);
    ushort val6 = (*(data2_1048576+(alu16+1)));
    ushort val7 = (*(data2_1048576+(alu16+2)));
    ushort val8 = (*(data2_1048576+(alu16+3)));
    ushort val9 = (*(data2_1048576+(alu13+1)));
    ushort val10 = (*(data2_1048576+(alu13+2)));
    ushort val11 = (*(data2_1048576+(alu13+3)));
    ushort val12 = (*(data2_1048576+alu14));
    ushort val13 = (*(data2_1048576+alu15));
    ushort val14 = (*(data2_1048576+alu16));
    ushort val15 = (*(data2_1048576+alu13));
    int alu17 = ((idx1*1536)+(Ridx0<<2));
    float4 val16 = (*((__global float4*)((data1_4608+(alu17+512)))));
    float4 val17 = (*((__global float4*)((data1_4608+(alu17+1024)))));
    float4 val18 = (*((__global float4*)((data1_4608+alu17))));
    uint alu18 = (cast0<<13u);
    uint alu19 = (cast0>>10u);
    uint alu20 = ((alu19==31u)?(alu18|2139095040u):(alu18+939524096u));
    uint alu21 = ((alu19==0u)?0u:alu20);
    float cast16 = as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu21)));
    uint alu22 = (cast1<<13u);
    uint alu23 = (cast1>>10u);
    uint alu24 = ((alu23==31u)?(alu22|2139095040u):(alu22+939524096u));
    uint alu25 = ((alu23==0u)?0u:alu24);
    float cast17 = as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu25)));
    uint alu26 = (cast2<<13u);
    uint alu27 = (cast2>>10u);
    uint alu28 = ((alu27==31u)?(alu26|2139095040u):(alu26+939524096u));
    uint alu29 = ((alu27==0u)?0u:alu28);
    float cast18 = as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu29)));
    uint alu30 = (cast3<<13u);
    uint alu31 = (cast3>>10u);
    uint alu32 = ((alu31==31u)?(alu30|2139095040u):(alu30+939524096u));
    uint alu33 = ((alu31==0u)?0u:alu32);
    float cast19 = as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu33)));
    uint alu34 = (cast4<<13u);
    uint alu35 = (cast4>>10u);
    uint alu36 = ((alu35==31u)?(alu34|2139095040u):(alu34+939524096u));
    uint alu37 = ((alu35==0u)?0u:alu36);
    float cast20 = as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu37)));
    uint alu38 = (cast5<<13u);
    uint alu39 = (cast5>>10u);
    uint alu40 = ((alu39==31u)?(alu38|2139095040u):(alu38+939524096u));
    uint alu41 = ((alu39==0u)?0u:alu40);
    float cast21 = as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu41)));
    uint alu42 = (cast6<<13u);
    uint alu43 = (cast6>>10u);
    uint alu44 = ((alu43==31u)?(alu42|2139095040u):(alu42+939524096u));
    uint alu45 = ((alu43==0u)?0u:alu44);
    float cast22 = as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu45)));
    uint alu46 = (cast7<<13u);
    uint alu47 = (cast7>>10u);
    uint alu48 = ((alu47==31u)?(alu46|2139095040u):(alu46+939524096u));
    uint alu49 = ((alu47==0u)?0u:alu48);
    float cast23 = as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu49)));
    uint alu50 = (cast8<<13u);
    uint alu51 = (cast8>>10u);
    uint alu52 = ((alu51==31u)?(alu50|2139095040u):(alu50+939524096u));
    uint alu53 = ((alu51==0u)?0u:alu52);
    float cast24 = as_float((uint)(((((uint)((val8&((ushort)(32768u)))))<<16u)|alu53)));
    uint alu54 = (cast9<<13u);
    uint alu55 = (cast9>>10u);
    uint alu56 = ((alu55==31u)?(alu54|2139095040u):(alu54+939524096u));
    uint alu57 = ((alu55==0u)?0u:alu56);
    float cast25 = as_float((uint)(((((uint)((val9&((ushort)(32768u)))))<<16u)|alu57)));
    uint alu58 = (cast10<<13u);
    uint alu59 = (cast10>>10u);
    uint alu60 = ((alu59==31u)?(alu58|2139095040u):(alu58+939524096u));
    uint alu61 = ((alu59==0u)?0u:alu60);
    float cast26 = as_float((uint)(((((uint)((val10&((ushort)(32768u)))))<<16u)|alu61)));
    uint alu62 = (cast11<<13u);
    uint alu63 = (cast11>>10u);
    uint alu64 = ((alu63==31u)?(alu62|2139095040u):(alu62+939524096u));
    uint alu65 = ((alu63==0u)?0u:alu64);
    float cast27 = as_float((uint)(((((uint)((val11&((ushort)(32768u)))))<<16u)|alu65)));
    uint alu66 = (cast12<<13u);
    uint alu67 = (cast12>>10u);
    uint alu68 = ((alu67==31u)?(alu66|2139095040u):(alu66+939524096u));
    uint alu69 = ((alu67==0u)?0u:alu68);
    float cast28 = as_float((uint)(((((uint)((val12&((ushort)(32768u)))))<<16u)|alu69)));
    uint alu70 = (cast13<<13u);
    uint alu71 = (cast13>>10u);
    uint alu72 = ((alu71==31u)?(alu70|2139095040u):(alu70+939524096u));
    uint alu73 = ((alu71==0u)?0u:alu72);
    float cast29 = as_float((uint)(((((uint)((val13&((ushort)(32768u)))))<<16u)|alu73)));
    uint alu74 = (cast14<<13u);
    uint alu75 = (cast14>>10u);
    uint alu76 = ((alu75==31u)?(alu74|2139095040u):(alu74+939524096u));
    uint alu77 = ((alu75==0u)?0u:alu76);
    float cast30 = as_float((uint)(((((uint)((val14&((ushort)(32768u)))))<<16u)|alu77)));
    uint alu78 = (cast15<<13u);
    uint alu79 = (cast15>>10u);
    uint alu80 = ((alu79==31u)?(alu78|2139095040u):(alu78+939524096u));
    uint alu81 = ((alu79==0u)?0u:alu80);
    float cast31 = as_float((uint)(((((uint)((val15&((ushort)(32768u)))))<<16u)|alu81)));
  }
  ushort val19 = (*(data3_2048+(alu0+1)));
  ushort val20 = (*(data3_2048+(alu0+2)));
  ushort val21 = (*(data3_2048+(alu0+3)));
  ushort val22 = (*(data3_2048+alu0));
  uint alu95 = (cast32<<13u);
  uint alu96 = (cast32>>10u);
  uint alu97 = ((alu96==31u)?(alu95|2139095040u):(alu95+939524096u));
  uint alu98 = ((alu96==0u)?0u:alu97);
  float cast36 = as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu98)));
  uint alu99 = (cast33<<13u);
  uint alu100 = (cast33>>10u);
  float cast37 = as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu102)));
  uint alu103 = (cast34<<13u);
  uint alu104 = (cast34>>10u);
  float cast38 = as_float((uint)(((((uint)((val21&((ushort)(32768u)))))<<16u)|alu106)));
  uint alu107 = (cast35<<13u);
  uint alu108 = (cast35>>10u);
  float cast39 = as_float((uint)(((((uint)((val22&((ushort)(32768u)))))<<16u)|alu110)));
  float alu111 = ((*(buf0+0))+cast39);
  float alu112 = ((*(buf0+1))+cast36);
  float alu113 = ((*(buf0+2))+cast37);
  float alu114 = ((*(buf0+3))+cast38);
  float alu115 = ((*(buf0+4))+cast39);
  float alu116 = ((*(buf0+5))+cast36);
  float alu117 = ((*(buf0+6))+cast37);
  float alu118 = ((*(buf0+7))+cast38);
  float alu119 = ((*(buf0+8))+cast39);
  float alu120 = ((*(buf0+9))+cast36);
  float alu121 = ((*(buf0+10))+cast37);
  float alu122 = ((*(buf0+11))+cast38);
  int alu123 = (alu0+(idx1*6144));
  *((__global float4*)((data0_18432+(alu123+2048)))) = (float4)(((1/(1.0f+exp2(((alu115+(0.044714998453855515f*alu115*alu115*alu115))*-2.302208185195923f))))*alu115),((1/(1.0f+exp2(((alu116+(0.044714998453855515f*alu116*alu116*alu116))*-2.302208185195923f))))*alu116),((1/(1.0f+exp2(((alu117+(0.044714998453855515f*alu117*alu117*alu117))*-2.302208185195923f))))*alu117),((1/(1.0f+exp2(((alu118+(0.044714998453855515f*alu118*alu118*alu118))*-2.302208185195923f))))*alu118));
  *((__global float4*)((data0_18432+(alu123+4096)))) = (float4)(((1/(1.0f+exp2(((alu119+(0.044714998453855515f*alu119*alu119*alu119))*-2.302208185195923f))))*alu119),((1/(1.0f+exp2(((alu120+(0.044714998453855515f*alu120*alu120*alu120))*-2.302208185195923f))))*alu120),((1/(1.0f+exp2(((alu121+(0.044714998453855515f*alu121*alu121*alu121))*-2.302208185195923f))))*alu121),((1/(1.0f+exp2(((alu122+(0.044714998453855515f*alu122*alu122*alu122))*-2.302208185195923f))))*alu122));
  *((__global float4*)((data0_18432+alu123))) = (float4)(((1/(1.0f+exp2(((alu111+(0.044714998453855515f*alu111*alu111*alu111))*-2.302208185195923f))))*alu111),((1/(1.0f+exp2(((alu112+(0.044714998453855515f*alu112*alu112*alu112))*-2.302208185195923f))))*alu112),((1/(1.0f+exp2(((alu113+(0.044714998453855515f*alu113*alu113*alu113))*-2.302208185195923f))))*alu113),((1/(1.0f+exp2(((alu114+(0.044714998453855515f*alu114*alu114*alu114))*-2.302208185195923f))))*alu114));
}

__kernel void r_3_128_4_3_512_4(__global float* data0_4608, __global float* data1_4608, __global float* data2_18432, __global ushort* data3_1048576, __global ushort* data4_512) {
  for (int Ridx0 = 0; Ridx0 < 512; Ridx0++) {
    int alu13 = (alu0+(Ridx0<<11));
    int alu14 = (alu13+512);
    ushort val0 = (*(data3_1048576+(alu14+1)));
    ushort val1 = (*(data3_1048576+(alu14+2)));
    ushort val2 = (*(data3_1048576+(alu14+3)));
    int alu15 = (alu13+1024);
    ushort val3 = (*(data3_1048576+(alu15+1)));
    ushort val4 = (*(data3_1048576+(alu15+2)));
    ushort val5 = (*(data3_1048576+(alu15+3)));
    int alu16 = (alu13+1536);
    ushort val6 = (*(data3_1048576+(alu16+1)));
    ushort val7 = (*(data3_1048576+(alu16+2)));
    ushort val8 = (*(data3_1048576+(alu16+3)));
    ushort val9 = (*(data3_1048576+(alu13+1)));
    ushort val10 = (*(data3_1048576+(alu13+2)));
    ushort val11 = (*(data3_1048576+(alu13+3)));
    ushort val12 = (*(data3_1048576+alu14));
    ushort val13 = (*(data3_1048576+alu15));
    ushort val14 = (*(data3_1048576+alu16));
    ushort val15 = (*(data3_1048576+alu13));
    int alu17 = ((idx1*6144)+(Ridx0<<2));
    float4 val16 = (*((__global float4*)((data2_18432+(alu17+2048)))));
    float4 val17 = (*((__global float4*)((data2_18432+(alu17+4096)))));
    float4 val18 = (*((__global float4*)((data2_18432+alu17))));
  }
  int alu95 = (alu0+(idx1*1536));
  int alu96 = (alu95+512);
  float4 val23 = (*((__global float4*)((data1_4608+alu96))));
  int alu97 = (alu95+1024);
  float4 val24 = (*((__global float4*)((data1_4608+alu97))));
  float4 val25 = (*((__global float4*)((data1_4608+alu95))));
  uint alu98 = (cast32<<13u);
  uint alu99 = (cast32>>10u);
  uint alu100 = ((alu99==31u)?(alu98|2139095040u):(alu98+939524096u));
  uint alu101 = ((alu99==0u)?0u:alu100);
  float cast36 = as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu101)));
  uint alu102 = (cast33<<13u);
  uint alu103 = (cast33>>10u);
  uint alu104 = ((alu103==31u)?(alu102|2139095040u):(alu102+939524096u));
  uint alu105 = ((alu103==0u)?0u:alu104);
  float cast37 = as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu105)));
  uint alu106 = (cast34<<13u);
  uint alu107 = (cast34>>10u);
  uint alu108 = ((alu107==31u)?(alu106|2139095040u):(alu106+939524096u));
  uint alu109 = ((alu107==0u)?0u:alu108);
  float cast38 = as_float((uint)(((((uint)((val21&((ushort)(32768u)))))<<16u)|alu109)));
  uint alu110 = (cast35<<13u);
  uint alu111 = (cast35>>10u);
  uint alu112 = ((alu111==31u)?(alu110|2139095040u):(alu110+939524096u));
  uint alu113 = ((alu111==0u)?0u:alu112);
  float cast39 = as_float((uint)(((((uint)((val22&((ushort)(32768u)))))<<16u)|alu113)));
  *((__global float4*)((data0_4608+alu96))) = (float4)((val23.x+(*(buf0+4))+cast39),(val23.y+(*(buf0+5))+cast36),(val23.z+(*(buf0+6))+cast37),(val23.w+(*(buf0+7))+cast38));
  *((__global float4*)((data0_4608+alu97))) = (float4)((val24.x+(*(buf0+8))+cast39),(val24.y+(*(buf0+9))+cast36),(val24.z+(*(buf0+10))+cast37),(val24.w+(*(buf0+11))+cast38));
  *((__global float4*)((data0_4608+alu95))) = (float4)((val25.x+(*(buf0+0))+cast39),(val25.y+(*(buf0+1))+cast36),(val25.z+(*(buf0+2))+cast37),(val25.w+(*(buf0+3))+cast38));
}

__kernel void r_256_4_128_4(__global float* data0_1024, __global float* data1_4608, __global ushort* data2_524288, __global ushort* data3_1024) {
  float buf0[4];
  int idx0 = get_global_id(0); /* 256 */
    int alu4 = (Ridx0<<2);
    int alu5 = ((idx0<<11)+alu4);
    int alu6 = (alu5+512);
    ushort val0 = (*(data2_524288+(alu6+1)));
    ushort val1 = (*(data2_524288+(alu6+2)));
    ushort val2 = (*(data2_524288+(alu6+3)));
    int alu7 = (alu5+1024);
    ushort val3 = (*(data2_524288+(alu7+1)));
    ushort val4 = (*(data2_524288+(alu7+2)));
    ushort val5 = (*(data2_524288+(alu7+3)));
    int alu8 = (alu5+1536);
    ushort val6 = (*(data2_524288+(alu8+1)));
    ushort val7 = (*(data2_524288+(alu8+2)));
    ushort val8 = (*(data2_524288+(alu8+3)));
    ushort val9 = (*(data2_524288+(alu5+1)));
    ushort val10 = (*(data2_524288+(alu5+2)));
    ushort val11 = (*(data2_524288+(alu5+3)));
    ushort val12 = (*(data2_524288+alu6));
    ushort val13 = (*(data2_524288+alu7));
    ushort val14 = (*(data2_524288+alu8));
    ushort val15 = (*(data2_524288+alu5));
    float4 val16 = (*((__global float4*)((data1_4608+(alu4+4096)))));
    uint alu9 = (cast0<<13u);
    uint alu10 = (cast0>>10u);
    uint alu11 = ((alu10==31u)?(alu9|2139095040u):(alu9+939524096u));
    uint alu12 = ((alu10==0u)?0u:alu11);
    uint alu13 = (cast1<<13u);
    uint alu14 = (cast1>>10u);
    uint alu15 = ((alu14==31u)?(alu13|2139095040u):(alu13+939524096u));
    uint alu16 = ((alu14==0u)?0u:alu15);
    uint alu17 = (cast2<<13u);
    uint alu18 = (cast2>>10u);
    uint alu19 = ((alu18==31u)?(alu17|2139095040u):(alu17+939524096u));
    uint alu20 = ((alu18==0u)?0u:alu19);
    uint alu21 = (cast3<<13u);
    uint alu22 = (cast3>>10u);
    uint alu23 = ((alu22==31u)?(alu21|2139095040u):(alu21+939524096u));
    uint alu24 = ((alu22==0u)?0u:alu23);
    uint alu25 = (cast4<<13u);
    uint alu26 = (cast4>>10u);
    uint alu27 = ((alu26==31u)?(alu25|2139095040u):(alu25+939524096u));
    uint alu28 = ((alu26==0u)?0u:alu27);
    uint alu29 = (cast5<<13u);
    uint alu30 = (cast5>>10u);
    uint alu31 = ((alu30==31u)?(alu29|2139095040u):(alu29+939524096u));
    uint alu32 = ((alu30==0u)?0u:alu31);
    uint alu33 = (cast6<<13u);
    uint alu34 = (cast6>>10u);
    uint alu35 = ((alu34==31u)?(alu33|2139095040u):(alu33+939524096u));
    uint alu36 = ((alu34==0u)?0u:alu35);
    uint alu37 = (cast7<<13u);
    uint alu38 = (cast7>>10u);
    uint alu39 = ((alu38==31u)?(alu37|2139095040u):(alu37+939524096u));
    uint alu40 = ((alu38==0u)?0u:alu39);
    uint alu41 = (cast8<<13u);
    uint alu42 = (cast8>>10u);
    uint alu43 = ((alu42==31u)?(alu41|2139095040u):(alu41+939524096u));
    uint alu44 = ((alu42==0u)?0u:alu43);
    uint alu45 = (cast9<<13u);
    uint alu46 = (cast9>>10u);
    uint alu47 = ((alu46==31u)?(alu45|2139095040u):(alu45+939524096u));
    uint alu48 = ((alu46==0u)?0u:alu47);
    uint alu49 = (cast10<<13u);
    uint alu50 = (cast10>>10u);
    uint alu51 = ((alu50==31u)?(alu49|2139095040u):(alu49+939524096u));
    uint alu52 = ((alu50==0u)?0u:alu51);
    uint alu53 = (cast11<<13u);
    uint alu54 = (cast11>>10u);
    uint alu55 = ((alu54==31u)?(alu53|2139095040u):(alu53+939524096u));
    uint alu56 = ((alu54==0u)?0u:alu55);
    uint alu57 = (cast12<<13u);
    uint alu58 = (cast12>>10u);
    uint alu59 = ((alu58==31u)?(alu57|2139095040u):(alu57+939524096u));
    uint alu60 = ((alu58==0u)?0u:alu59);
    uint alu61 = (cast13<<13u);
    uint alu62 = (cast13>>10u);
    uint alu63 = ((alu62==31u)?(alu61|2139095040u):(alu61+939524096u));
    uint alu64 = ((alu62==0u)?0u:alu63);
    uint alu65 = (cast14<<13u);
    uint alu66 = (cast14>>10u);
    uint alu67 = ((alu66==31u)?(alu65|2139095040u):(alu65+939524096u));
    uint alu68 = ((alu66==0u)?0u:alu67);
    uint alu69 = (cast15<<13u);
    uint alu70 = (cast15>>10u);
    uint alu71 = ((alu70==31u)?(alu69|2139095040u):(alu69+939524096u));
    uint alu72 = ((alu70==0u)?0u:alu71);
    *(buf0+0) = ((*(buf0+0))+(val16.x*as_float((uint)(((((uint)((val15&((ushort)(32768u)))))<<16u)|alu72))))+(val16.y*as_float((uint)(((((uint)((val9&((ushort)(32768u)))))<<16u)|alu48))))+(val16.z*as_float((uint)(((((uint)((val10&((ushort)(32768u)))))<<16u)|alu52))))+(val16.w*as_float((uint)(((((uint)((val11&((ushort)(32768u)))))<<16u)|alu56)))));
    *(buf0+1) = ((*(buf0+1))+(val16.x*as_float((uint)(((((uint)((val12&((ushort)(32768u)))))<<16u)|alu60))))+(val16.y*as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu12))))+(val16.z*as_float((uint)(((((uint)((val1&((ushort)(32768u)))))<<16u)|alu16))))+(val16.w*as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu20)))));
    *(buf0+2) = ((*(buf0+2))+(val16.x*as_float((uint)(((((uint)((val13&((ushort)(32768u)))))<<16u)|alu64))))+(val16.y*as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu24))))+(val16.z*as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu28))))+(val16.w*as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu32)))));
    *(buf0+3) = ((*(buf0+3))+(val16.x*as_float((uint)(((((uint)((val14&((ushort)(32768u)))))<<16u)|alu68))))+(val16.y*as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu36))))+(val16.z*as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu40))))+(val16.w*as_float((uint)(((((uint)((val8&((ushort)(32768u)))))<<16u)|alu44)))));
  }
  int alu78 = (idx0<<2);
  ushort val17 = (*(data3_1024+(alu78+1)));
  ushort val18 = (*(data3_1024+(alu78+2)));
  ushort val19 = (*(data3_1024+(alu78+3)));
  ushort val20 = (*(data3_1024+alu78));
  uint cast16 = ((uint)((val17&((ushort)(32767u)))));
  uint cast17 = ((uint)((val18&((ushort)(32767u)))));
  uint cast18 = ((uint)((val19&((ushort)(32767u)))));
  uint cast19 = ((uint)((val20&((ushort)(32767u)))));
  uint alu79 = (cast16<<13u);
  uint alu80 = (cast16>>10u);
  uint alu83 = (cast17<<13u);
  uint alu84 = (cast17>>10u);
  uint alu85 = ((alu84==31u)?(alu83|2139095040u):(alu83+939524096u));
  uint alu86 = ((alu84==0u)?0u:alu85);
  uint alu87 = (cast18<<13u);
  uint alu88 = (cast18>>10u);
  uint alu89 = ((alu88==31u)?(alu87|2139095040u):(alu87+939524096u));
  uint alu90 = ((alu88==0u)?0u:alu89);
  uint alu91 = (cast19<<13u);
  uint alu92 = (cast19>>10u);
  uint alu93 = ((alu92==31u)?(alu91|2139095040u):(alu91+939524096u));
  uint alu94 = ((alu92==0u)?0u:alu93);
  float alu95 = ((*(buf0+0))+as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu94))));
  float alu96 = ((*(buf0+1))+as_float((uint)(((((uint)((val17&((ushort)(32768u)))))<<16u)|alu82))));
  float alu97 = ((*(buf0+2))+as_float((uint)(((((uint)((val18&((ushort)(32768u)))))<<16u)|alu86))));
  float alu98 = ((*(buf0+3))+as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu90))));
  float alu99 = ((0.0f<alu95)?alu95:0.0f);
  float alu100 = ((0.0f<alu96)?alu96:0.0f);
  float alu101 = ((0.0f<alu97)?alu97:0.0f);
  float alu102 = ((0.0f<alu98)?alu98:0.0f);
  *((__global float4*)((data0_1024+alu78))) = (float4)(alu99,alu100,alu101,alu102);
}

__kernel void r_512_256_4(__global float* data0_512, __global float* data1_4608, __global float* data2_1024, __global ushort* data3_524288, __global ushort* data4_512) {
  for (int Ridx0 = 0; Ridx0 < 256; Ridx0++) {
    int alu2 = ((idx0<<10)+alu1);
    ushort val0 = (*(data3_524288+(alu2+1)));
    ushort val1 = (*(data3_524288+(alu2+2)));
    ushort val2 = (*(data3_524288+(alu2+3)));
    ushort val3 = (*(data3_524288+alu2));
    float4 val4 = (*((__global float4*)((data2_1024+alu1))));
  }
  ushort val5 = (*(data4_512+idx0));
  float val6 = (*(data1_4608+(idx0+4096)));
  float alu25 = (val6+(*(buf0+0))+as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu24))));
  float alu26 = ((0.0f<alu25)?alu25:0.0f);
  *(data0_512+idx0) = alu26;
}

__kernel void r_256_4_128_4n1(__global float* data0_1024, __global float* data1_512, __global ushort* data2_524288, __global ushort* data3_1024) {
    float4 val16 = (*((__global float4*)((data1_512+alu4))));
  }
}

__kernel void r_512_256_4n1(__global float* data0_512, __global float* data1_512, __global float* data2_1024, __global ushort* data3_524288, __global ushort* data4_512) {
  }
  float val6 = (*(data1_512+idx0));
}

__kernel void r_256_128_4(__global float* data0_256, __global float* data1_512, __global ushort* data2_131072, __global ushort* data3_256) {
    ushort val0 = (*(data2_131072+(alu2+1)));
    ushort val1 = (*(data2_131072+(alu2+2)));
    ushort val2 = (*(data2_131072+(alu2+3)));
    ushort val3 = (*(data2_131072+alu2));
  }
  ushort val5 = (*(data3_256+idx0));
  *(data0_256+idx0) = alu26;
}

__kernel void r_32_16_32(__global float* data0_32, __global float* data1_512, __global ushort* data2_16384, __global ushort* data3_32) {
  int gidx0 = get_group_id(0); /* 32 */
    int alu1 = ((lidx0<<5)+Ridx0);
    ushort val0 = (*(data2_16384+(alu1+(gidx0<<9))));
    float val1 = (*(data1_512+alu1));
    uint alu2 = (cast0<<13u);
    uint alu3 = (cast0>>10u);
    uint alu4 = ((alu3==31u)?(alu2|2139095040u):(alu2+939524096u));
    uint alu5 = ((alu3==0u)?0u:alu4);
    *(buf0+0) = ((*(buf0+0))+(val1*as_float((uint)(((((uint)((val0&((ushort)(32768u)))))<<16u)|alu5)))));
  }
  }
  ushort val3 = (*(data3_32+gidx0));
  uint cast1 = ((uint)((val3&((ushort)(32767u)))));
  uint alu13 = (cast1<<13u);
  uint alu14 = (cast1>>10u);
  uint alu15 = ((alu14==31u)?(alu13|2139095040u):(alu13+939524096u));
  uint alu16 = ((alu14==0u)?0u:alu15);
  float alu17 = ((*(buf1+0))+as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu16))));
  float alu18 = ((0.0f<alu17)?alu17:0.0f);
    *(data0_32+gidx0) = alu18;
  }
}

__kernel void r_256_64_4(__global float* data0_256, __global float* data1_256, __global ushort* data2_65536, __global ushort* data3_256) {
  for (int Ridx0 = 0; Ridx0 < 64; Ridx0++) {
    int alu2 = ((idx0<<8)+alu1);
    ushort val0 = (*(data2_65536+(alu2+1)));
    ushort val1 = (*(data2_65536+(alu2+2)));
    ushort val2 = (*(data2_65536+(alu2+3)));
    ushort val3 = (*(data2_65536+alu2));
    float4 val4 = (*((__global float4*)((data1_256+alu1))));
  }
}

__kernel void r_32_16_2(__global float* data0_32, __global float* data1_32, __global ushort* data2_1024, __global ushort* data3_32) {
  for (int Ridx0 = 0; Ridx0 < 2; Ridx0++) {
    int alu1 = ((lidx0<<1)+Ridx0);
    ushort val0 = (*(data2_1024+(alu1+(gidx0<<5))));
    float val1 = (*(data1_32+alu1));
  }
  }
  }
}

__kernel void r_256_64_4n1(__global float* data0_256, __global float* data1_256, __global float* data2_256, __global ushort* data3_65536, __global ushort* data4_256) {
    ushort val0 = (*(data3_65536+(alu2+1)));
    ushort val1 = (*(data3_65536+(alu2+2)));
    ushort val2 = (*(data3_65536+(alu2+3)));
    ushort val3 = (*(data3_65536+alu2));
    float4 val4 = (*((__global float4*)((data2_256+alu1))));
  }
  ushort val5 = (*(data4_256+idx0));
  float val6 = (*(data1_256+idx0));
}

__kernel void r_32_16_2n1(__global float* data0_32, __global float* data1_32, __global float* data2_32, __global ushort* data3_1024, __global ushort* data4_32) {
    ushort val0 = (*(data3_1024+(alu1+(gidx0<<5))));
    float val1 = (*(data2_32+alu1));
  }
  }
  ushort val3 = (*(data4_32+gidx0));
  float val4 = (*(data1_32+gidx0));
  float alu17 = (val4+(*(buf1+0))+as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu16))));
  }
}

__kernel void r_1000_256_32(__global float* data0_1000, __global float* data1_256, __global ushort* data2_253440, __global ushort* data3_990, __global ushort* data4_990, __global float* data5_32, __global ushort* data6_256, __global ushort* data7_8, __global ushort* data8_2) {
  int idx0 = get_global_id(0); /* 1000 */
  bool alu0 = (idx0<990);
    ushort val0 = (alu0?*(data2_253440+((idx0<<8)+Ridx0)):((ushort)(0u)));
    float val1 = (*(data1_256+Ridx0));
  }
  ushort val2 = (alu0?*(data3_990+idx0):((ushort)(0u)));
  ushort val3 = (alu0?*(data4_990+idx0):((ushort)(0u)));
  int alu8 = (idx0<<5);
  int alu9 = (alu8+-31680);
  bool alu10 = ((989<idx0)&(idx0<998));
  ushort val4 = (alu10?*(data6_256+(alu9+1)):((ushort)(0u)));
  ushort val5 = (alu10?*(data6_256+(alu9+2)):((ushort)(0u)));
  ushort val6 = (alu10?*(data6_256+(alu9+3)):((ushort)(0u)));
  int alu11 = (alu8+-31676);
  ushort val7 = (alu10?*(data6_256+(alu11+1)):((ushort)(0u)));
  ushort val8 = (alu10?*(data6_256+(alu11+2)):((ushort)(0u)));
  ushort val9 = (alu10?*(data6_256+(alu11+3)):((ushort)(0u)));
  int alu12 = (alu8+-31672);
  ushort val10 = (alu10?*(data6_256+(alu12+1)):((ushort)(0u)));
  ushort val11 = (alu10?*(data6_256+(alu12+2)):((ushort)(0u)));
  ushort val12 = (alu10?*(data6_256+(alu12+3)):((ushort)(0u)));
  int alu13 = (alu8+-31668);
  ushort val13 = (alu10?*(data6_256+(alu13+1)):((ushort)(0u)));
  ushort val14 = (alu10?*(data6_256+(alu13+2)):((ushort)(0u)));
  ushort val15 = (alu10?*(data6_256+(alu13+3)):((ushort)(0u)));
  int alu14 = (alu8+-31664);
  ushort val16 = (alu10?*(data6_256+(alu14+1)):((ushort)(0u)));
  ushort val17 = (alu10?*(data6_256+(alu14+2)):((ushort)(0u)));
  ushort val18 = (alu10?*(data6_256+(alu14+3)):((ushort)(0u)));
  int alu15 = (alu8+-31660);
  ushort val19 = (alu10?*(data6_256+(alu15+1)):((ushort)(0u)));
  ushort val20 = (alu10?*(data6_256+(alu15+2)):((ushort)(0u)));
  ushort val21 = (alu10?*(data6_256+(alu15+3)):((ushort)(0u)));
  int alu16 = (alu8+-31656);
  ushort val22 = (alu10?*(data6_256+(alu16+1)):((ushort)(0u)));
  ushort val23 = (alu10?*(data6_256+(alu16+2)):((ushort)(0u)));
  ushort val24 = (alu10?*(data6_256+(alu16+3)):((ushort)(0u)));
  int alu17 = (alu8+-31652);
  ushort val25 = (alu10?*(data6_256+(alu17+1)):((ushort)(0u)));
  ushort val26 = (alu10?*(data6_256+(alu17+2)):((ushort)(0u)));
  ushort val27 = (alu10?*(data6_256+(alu17+3)):((ushort)(0u)));
  ushort val28 = (alu10?*(data6_256+alu9):((ushort)(0u)));
  ushort val29 = (alu10?*(data6_256+alu11):((ushort)(0u)));
  ushort val30 = (alu10?*(data6_256+alu12):((ushort)(0u)));
  ushort val31 = (alu10?*(data6_256+alu13):((ushort)(0u)));
  ushort val32 = (alu10?*(data6_256+alu14):((ushort)(0u)));
  ushort val33 = (alu10?*(data6_256+alu15):((ushort)(0u)));
  ushort val34 = (alu10?*(data6_256+alu16):((ushort)(0u)));
  ushort val35 = (alu10?*(data6_256+alu17):((ushort)(0u)));
  ushort val36 = (alu10?*(data7_8+(idx0+-990)):((ushort)(0u)));
  ushort val37 = ((997<idx0)?*(data8_2+(idx0+-998)):((ushort)(0u)));
  float4 val38 = (*((__global float4*)((data5_32+0))));
  float4 val39 = (*((__global float4*)((data5_32+4))));
  float4 val40 = (*((__global float4*)((data5_32+8))));
  float4 val41 = (*((__global float4*)((data5_32+12))));
  float4 val42 = (*((__global float4*)((data5_32+16))));
  float4 val43 = (*((__global float4*)((data5_32+20))));
  float4 val44 = (*((__global float4*)((data5_32+24))));
  float4 val45 = (*((__global float4*)((data5_32+28))));
  uint cast1 = ((uint)((val2&((ushort)(32767u)))));
  uint cast2 = ((uint)((val3&((ushort)(32767u)))));
  uint cast3 = ((uint)((val4&((ushort)(32767u)))));
  uint cast5 = ((uint)((val6&((ushort)(32767u)))));
  uint cast6 = ((uint)((val7&((ushort)(32767u)))));
  uint cast7 = ((uint)((val8&((ushort)(32767u)))));
  uint cast8 = ((uint)((val9&((ushort)(32767u)))));
  uint cast9 = ((uint)((val10&((ushort)(32767u)))));
  uint cast10 = ((uint)((val11&((ushort)(32767u)))));
  uint cast11 = ((uint)((val12&((ushort)(32767u)))));
  uint cast12 = ((uint)((val13&((ushort)(32767u)))));
  uint cast13 = ((uint)((val14&((ushort)(32767u)))));
  uint cast14 = ((uint)((val15&((ushort)(32767u)))));
  uint cast15 = ((uint)((val16&((ushort)(32767u)))));
  uint cast20 = ((uint)((val21&((ushort)(32767u)))));
  uint cast21 = ((uint)((val22&((ushort)(32767u)))));
  uint cast22 = ((uint)((val23&((ushort)(32767u)))));
  uint cast23 = ((uint)((val24&((ushort)(32767u)))));
  uint cast24 = ((uint)((val25&((ushort)(32767u)))));
  uint cast25 = ((uint)((val26&((ushort)(32767u)))));
  uint cast26 = ((uint)((val27&((ushort)(32767u)))));
  uint cast27 = ((uint)((val28&((ushort)(32767u)))));
  uint cast28 = ((uint)((val29&((ushort)(32767u)))));
  uint cast29 = ((uint)((val30&((ushort)(32767u)))));
  uint cast30 = ((uint)((val31&((ushort)(32767u)))));
  uint cast31 = ((uint)((val32&((ushort)(32767u)))));
  uint cast32 = ((uint)((val33&((ushort)(32767u)))));
  uint cast33 = ((uint)((val34&((ushort)(32767u)))));
  uint cast34 = ((uint)((val35&((ushort)(32767u)))));
  uint cast35 = ((uint)((val36&((ushort)(32767u)))));
  uint cast36 = ((uint)((val37&((ushort)(32767u)))));
  uint alu18 = (cast1<<13u);
  uint alu19 = (cast1>>10u);
  uint alu22 = (cast2<<13u);
  uint alu23 = (cast2>>10u);
  uint alu26 = (cast3<<13u);
  uint alu27 = (cast3>>10u);
  uint alu30 = (cast4<<13u);
  uint alu31 = (cast4>>10u);
  uint alu34 = (cast5<<13u);
  uint alu35 = (cast5>>10u);
  uint alu38 = (cast6<<13u);
  uint alu39 = (cast6>>10u);
  uint alu42 = (cast7<<13u);
  uint alu43 = (cast7>>10u);
  uint alu44 = ((alu43==31u)?(alu42|2139095040u):(alu42+939524096u));
  uint alu45 = ((alu43==0u)?0u:alu44);
  uint alu46 = (cast8<<13u);
  uint alu47 = (cast8>>10u);
  uint alu48 = ((alu47==31u)?(alu46|2139095040u):(alu46+939524096u));
  uint alu49 = ((alu47==0u)?0u:alu48);
  uint alu50 = (cast9<<13u);
  uint alu51 = (cast9>>10u);
  uint alu52 = ((alu51==31u)?(alu50|2139095040u):(alu50+939524096u));
  uint alu53 = ((alu51==0u)?0u:alu52);
  uint alu54 = (cast10<<13u);
  uint alu55 = (cast10>>10u);
  uint alu56 = ((alu55==31u)?(alu54|2139095040u):(alu54+939524096u));
  uint alu57 = ((alu55==0u)?0u:alu56);
  uint alu58 = (cast11<<13u);
  uint alu59 = (cast11>>10u);
  uint alu60 = ((alu59==31u)?(alu58|2139095040u):(alu58+939524096u));
  uint alu61 = ((alu59==0u)?0u:alu60);
  uint alu62 = (cast12<<13u);
  uint alu63 = (cast12>>10u);
  uint alu64 = ((alu63==31u)?(alu62|2139095040u):(alu62+939524096u));
  uint alu65 = ((alu63==0u)?0u:alu64);
  uint alu66 = (cast13<<13u);
  uint alu67 = (cast13>>10u);
  uint alu68 = ((alu67==31u)?(alu66|2139095040u):(alu66+939524096u));
  uint alu69 = ((alu67==0u)?0u:alu68);
  uint alu70 = (cast14<<13u);
  uint alu71 = (cast14>>10u);
  uint alu72 = ((alu71==31u)?(alu70|2139095040u):(alu70+939524096u));
  uint alu73 = ((alu71==0u)?0u:alu72);
  uint alu74 = (cast15<<13u);
  uint alu75 = (cast15>>10u);
  uint alu76 = ((alu75==31u)?(alu74|2139095040u):(alu74+939524096u));
  uint alu77 = ((alu75==0u)?0u:alu76);
  uint alu78 = (cast16<<13u);
  uint alu79 = (cast16>>10u);
  uint alu80 = ((alu79==31u)?(alu78|2139095040u):(alu78+939524096u));
  uint alu81 = ((alu79==0u)?0u:alu80);
  uint alu82 = (cast17<<13u);
  uint alu83 = (cast17>>10u);
  uint alu84 = ((alu83==31u)?(alu82|2139095040u):(alu82+939524096u));
  uint alu85 = ((alu83==0u)?0u:alu84);
  uint alu86 = (cast18<<13u);
  uint alu87 = (cast18>>10u);
  uint alu88 = ((alu87==31u)?(alu86|2139095040u):(alu86+939524096u));
  uint alu89 = ((alu87==0u)?0u:alu88);
  uint alu90 = (cast19<<13u);
  uint alu91 = (cast19>>10u);
  uint alu92 = ((alu91==31u)?(alu90|2139095040u):(alu90+939524096u));
  uint alu93 = ((alu91==0u)?0u:alu92);
  uint alu94 = (cast20<<13u);
  uint alu95 = (cast20>>10u);
  uint alu96 = ((alu95==31u)?(alu94|2139095040u):(alu94+939524096u));
  uint alu97 = ((alu95==0u)?0u:alu96);
  uint alu98 = (cast21<<13u);
  uint alu99 = (cast21>>10u);
  uint alu102 = (cast22<<13u);
  uint alu103 = (cast22>>10u);
  uint alu106 = (cast23<<13u);
  uint alu107 = (cast23>>10u);
  uint alu110 = (cast24<<13u);
  uint alu111 = (cast24>>10u);
  uint alu114 = (cast25<<13u);
  uint alu115 = (cast25>>10u);
  uint alu116 = ((alu115==31u)?(alu114|2139095040u):(alu114+939524096u));
  uint alu117 = ((alu115==0u)?0u:alu116);
  uint alu118 = (cast26<<13u);
  uint alu119 = (cast26>>10u);
  uint alu120 = ((alu119==31u)?(alu118|2139095040u):(alu118+939524096u));
  uint alu121 = ((alu119==0u)?0u:alu120);
  uint alu122 = (cast27<<13u);
  uint alu123 = (cast27>>10u);
  uint alu124 = ((alu123==31u)?(alu122|2139095040u):(alu122+939524096u));
  uint alu125 = ((alu123==0u)?0u:alu124);
  uint alu126 = (cast28<<13u);
  uint alu127 = (cast28>>10u);
  uint alu128 = ((alu127==31u)?(alu126|2139095040u):(alu126+939524096u));
  uint alu129 = ((alu127==0u)?0u:alu128);
  uint alu130 = (cast29<<13u);
  uint alu131 = (cast29>>10u);
  uint alu132 = ((alu131==31u)?(alu130|2139095040u):(alu130+939524096u));
  uint alu133 = ((alu131==0u)?0u:alu132);
  uint alu134 = (cast30<<13u);
  uint alu135 = (cast30>>10u);
  uint alu136 = ((alu135==31u)?(alu134|2139095040u):(alu134+939524096u));
  uint alu137 = ((alu135==0u)?0u:alu136);
  uint alu138 = (cast31<<13u);
  uint alu139 = (cast31>>10u);
  uint alu140 = ((alu139==31u)?(alu138|2139095040u):(alu138+939524096u));
  uint alu141 = ((alu139==0u)?0u:alu140);
  uint alu142 = (cast32<<13u);
  uint alu143 = (cast32>>10u);
  uint alu144 = ((alu143==31u)?(alu142|2139095040u):(alu142+939524096u));
  uint alu145 = ((alu143==0u)?0u:alu144);
  uint alu146 = (cast33<<13u);
  uint alu147 = (cast33>>10u);
  uint alu148 = ((alu147==31u)?(alu146|2139095040u):(alu146+939524096u));
  uint alu149 = ((alu147==0u)?0u:alu148);
  uint alu150 = (cast34<<13u);
  uint alu151 = (cast34>>10u);
  uint alu152 = ((alu151==31u)?(alu150|2139095040u):(alu150+939524096u));
  uint alu153 = ((alu151==0u)?0u:alu152);
  uint alu154 = (cast35<<13u);
  uint alu155 = (cast35>>10u);
  uint alu156 = ((alu155==31u)?(alu154|2139095040u):(alu154+939524096u));
  uint alu157 = ((alu155==0u)?0u:alu156);
  uint alu158 = (cast36<<13u);
  uint alu159 = (cast36>>10u);
  uint alu160 = ((alu159==31u)?(alu158|2139095040u):(alu158+939524096u));
  uint alu161 = ((alu159==0u)?0u:alu160);
  float alu162 = (alu0?(((*(buf0+0))+as_float((uint)(((((uint)((val2&((ushort)(32768u)))))<<16u)|alu21))))*as_float((uint)(((((uint)((val3&((ushort)(32768u)))))<<16u)|alu25)))):0.0f);
  float alu163 = (alu10?((val38.x*as_float((uint)(((((uint)((val28&((ushort)(32768u)))))<<16u)|alu125))))+(val38.y*as_float((uint)(((((uint)((val4&((ushort)(32768u)))))<<16u)|alu29))))+(val38.z*as_float((uint)(((((uint)((val5&((ushort)(32768u)))))<<16u)|alu33))))+(val38.w*as_float((uint)(((((uint)((val6&((ushort)(32768u)))))<<16u)|alu37))))+(val39.x*as_float((uint)(((((uint)((val29&((ushort)(32768u)))))<<16u)|alu129))))+(val39.y*as_float((uint)(((((uint)((val7&((ushort)(32768u)))))<<16u)|alu41))))+(val39.z*as_float((uint)(((((uint)((val8&((ushort)(32768u)))))<<16u)|alu45))))+(val39.w*as_float((uint)(((((uint)((val9&((ushort)(32768u)))))<<16u)|alu49))))+(val40.x*as_float((uint)(((((uint)((val30&((ushort)(32768u)))))<<16u)|alu133))))+(val40.y*as_float((uint)(((((uint)((val10&((ushort)(32768u)))))<<16u)|alu53))))+(val40.z*as_float((uint)(((((uint)((val11&((ushort)(32768u)))))<<16u)|alu57))))+(val40.w*as_float((uint)(((((uint)((val12&((ushort)(32768u)))))<<16u)|alu61))))+(val41.x*as_float((uint)(((((uint)((val31&((ushort)(32768u)))))<<16u)|alu137))))+(val41.y*as_float((uint)(((((uint)((val13&((ushort)(32768u)))))<<16u)|alu65))))+(val41.z*as_float((uint)(((((uint)((val14&((ushort)(32768u)))))<<16u)|alu69))))+(val41.w*as_float((uint)(((((uint)((val15&((ushort)(32768u)))))<<16u)|alu73))))+(val42.x*as_float((uint)(((((uint)((val32&((ushort)(32768u)))))<<16u)|alu141))))+(val42.y*as_float((uint)(((((uint)((val16&((ushort)(32768u)))))<<16u)|alu77))))+(val42.z*as_float((uint)(((((uint)((val17&((ushort)(32768u)))))<<16u)|alu81))))+(val42.w*as_float((uint)(((((uint)((val18&((ushort)(32768u)))))<<16u)|alu85))))+(val43.x*as_float((uint)(((((uint)((val33&((ushort)(32768u)))))<<16u)|alu145))))+(val43.y*as_float((uint)(((((uint)((val19&((ushort)(32768u)))))<<16u)|alu89))))+(val43.z*as_float((uint)(((((uint)((val20&((ushort)(32768u)))))<<16u)|alu93))))+(val43.w*as_float((uint)(((((uint)((val21&((ushort)(32768u)))))<<16u)|alu97))))+(val44.x*as_float((uint)(((((uint)((val34&((ushort)(32768u)))))<<16u)|alu149))))+(val44.y*as_float((uint)(((((uint)((val22&((ushort)(32768u)))))<<16u)|alu101))))+(val44.z*as_float((uint)(((((uint)((val23&((ushort)(32768u)))))<<16u)|alu105))))+(val44.w*as_float((uint)(((((uint)((val24&((ushort)(32768u)))))<<16u)|alu109))))+(val45.x*as_float((uint)(((((uint)((val35&((ushort)(32768u)))))<<16u)|alu153))))+(val45.y*as_float((uint)(((((uint)((val25&((ushort)(32768u)))))<<16u)|alu113))))+(val45.z*as_float((uint)(((((uint)((val26&((ushort)(32768u)))))<<16u)|alu117))))+(val45.w*as_float((uint)(((((uint)((val27&((ushort)(32768u)))))<<16u)|alu121))))+as_float((uint)(((((uint)((val36&((ushort)(32768u)))))<<16u)|alu157)))):0.0f);
  *(data0_1000+idx0) = (alu162+alu163+as_float((uint)(((((uint)((val37&((ushort)(32768u)))))<<16u)|alu161))));
}