__kernel void E_51_4(write_only image2d_t data0_204, __global float* data1_200, __global float* data2_2) {
const sampler_t smp = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST;
  int idx0 = get_global_id(0); /* 51 */
  float4 val0 = ((idx0<50)?*((__global float4*)((data1_200+(idx0<<2)))):(float4)(0.0f,0.0f,0.0f,0.0f));
  float2 val1 = ((49<idx0)?*((__global float2*)((data2_2+0))):(float2)(0.0f,0.0f));
  write_imagef(data0_204, (int2)(idx0,0), (float4)((val0.x+val1.x),(val0.y+val1.y),val0.z,val0.w));
}

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

#pragma OPENCL EXTENSION cl_khr_fp16 : enable
__kernel void r_128_4_51_4(write_only image2d_t data0_512, read_only image2d_t data1_204, read_only image2d_t data2_104448, __global half* data3_512) {
  float acc0[4];
  *(acc0+0) = 0.0f;
  *(acc0+1) = 0.0f;
  *(acc0+2) = 0.0f;
  *(acc0+3) = 0.0f;
  for (int ridx1007 = 0; ridx1007 < 51; ridx1007++) {
    float4 val0 = read_imagef(data1_204, smp, (int2)(ridx1007,0));
    int alu4 = (ridx1007<<2);
    float4 val1 = read_imagef(data2_104448, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data2_104448, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data2_104448, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data2_104448, 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_512+(idx0<<2)))));
  write_imagef(data0_512, (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 E_10_128_4(write_only image2d_t data0_5120, read_only image2d_t data1_512, __global float* data2_4608) {
  int idx1 = get_global_id(1); /* 10 */
  float4 cast0 = (float4)(0.0f,0.0f,0.0f,0.0f);
  float4 val0 = ((idx1<1)?read_imagef(data1_512, smp, (int2)(idx0,0)):cast0);
  float4 val1 = ((0<idx1)?*((__global float4*)((data2_4608+((idx0<<2)+(idx1<<9)+-512)))):cast0);
  float alu0 = ((0.0f<val0.x)?val0.x:0.0f);
  float alu1 = ((0.0f<val0.y)?val0.y:0.0f);
  float alu2 = ((0.0f<val0.z)?val0.z:0.0f);
  float alu3 = ((0.0f<val0.w)?val0.w:0.0f);
  write_imagef(data0_5120, (int2)(idx0,idx1), (float4)((alu0+val1.x),(alu1+val1.y),(alu2+val1.z),(alu3+val1.w)));
}

__kernel void r_10_128_4_128_4(write_only image2d_t data0_5120, __global float* data1_512, read_only image2d_t data2_5120, read_only image2d_t data3_262144) {
  for (int ridx1007 = 0; ridx1007 < 128; ridx1007++) {
    float4 val0 = read_imagef(data2_5120, smp, (int2)(ridx1007,idx1));
    float4 val1 = read_imagef(data3_262144, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data3_262144, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data3_262144, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data3_262144, smp, (int2)((alu4+3),idx0));
    *(acc0+0) = ((*(acc0+0))+(val0.x*val1.x)+(val0.y*val2.x)+(val0.z*val3.x)+(val0.w*val4.x));
    *(acc0+1) = ((*(acc0+1))+(val0.x*val1.y)+(val0.y*val2.y)+(val0.z*val3.y)+(val0.w*val4.y));
    *(acc0+2) = ((*(acc0+2))+(val0.x*val1.z)+(val0.y*val2.z)+(val0.z*val3.z)+(val0.w*val4.z));
    *(acc0+3) = ((*(acc0+3))+(val0.x*val1.w)+(val0.y*val2.w)+(val0.z*val3.w)+(val0.w*val4.w));
  }
  float4 val5 = (*((__global float4*)((data1_512+(idx0<<2)))));
  write_imagef(data0_5120, (int2)(idx0,idx1), (float4)((val5.x+(*(acc0+0))),(val5.y+(*(acc0+1))),(val5.z+(*(acc0+2))),(val5.w+(*(acc0+3)))));
}

__kernel void r_10_16_8_4(__global float* data0_10, read_only image2d_t data1_5120, __global half* data2_5120) {
  __attribute__ ((aligned (16))) __local float temp0[16];
  float acc0[1];
  float acc1[1];
  int gidx0 = get_group_id(0); /* 10 */
  int lidx0 = get_local_id(0); /* 16 */
  *(acc1+0) = 0.0f;
  for (int ridx1002 = 0; ridx1002 < 8; ridx1002++) {
    float4 val0 = read_imagef(data1_5120, smp, (int2)(((lidx0<<3)+ridx1002),gidx0));
    half4 val1 = (*((__global half4*)((data2_5120+((lidx0<<5)+(ridx1002<<2)+(gidx0<<9))))));
    float alu2 = ((0.0f<val0.x)?val0.x:0.0f);
    float alu3 = ((0.0f<val0.y)?val0.y:0.0f);
    float alu4 = ((0.0f<val0.z)?val0.z:0.0f);
    float alu5 = ((0.0f<val0.w)?val0.w:0.0f);
    *(acc0+0) = ((*(acc0+0))+alu2+((float)(val1.x))+alu3+((float)(val1.y))+alu4+((float)(val1.z))+alu5+((float)(val1.w)));
  }
  *(temp0+lidx0) = (*(acc0+0));
  barrier(CLK_LOCAL_MEM_FENCE);
  if ((((bool)(lidx0))!=1)) {
    for (int ridx1103 = 0; ridx1103 < 16; ridx1103++) {
      float val2 = (*(temp0+ridx1103));
      *(acc1+0) = ((*(acc1+0))+val2);
    }
    *(data0_10+gidx0) = ((*(acc1+0))*0.001953125f);
  }
}

__kernel void r_10_16_8_4n1(__global float* data0_10, read_only image2d_t data1_5120, __global half* data2_5120, __global float* data3_10) {
  float val0 = (*(data3_10+gidx0));
    float4 val1 = read_imagef(data1_5120, smp, (int2)(((lidx0<<3)+ridx1002),gidx0));
    half4 val2 = (*((__global half4*)((data2_5120+((lidx0<<5)+(ridx1002<<2)+(gidx0<<9))))));
    float alu2 = ((0.0f<val1.x)?val1.x:0.0f);
    float alu3 = ((alu2+((float)(val2.x)))-val0);
    float alu4 = ((0.0f<val1.y)?val1.y:0.0f);
    float alu5 = ((alu4+((float)(val2.y)))-val0);
    float alu6 = ((0.0f<val1.z)?val1.z:0.0f);
    float alu7 = ((alu6+((float)(val2.z)))-val0);
    float alu8 = ((0.0f<val1.w)?val1.w:0.0f);
    float alu9 = ((alu8+((float)(val2.w)))-val0);
    *(acc0+0) = ((*(acc0+0))+(alu3*alu3)+(alu5*alu5)+(alu7*alu7)+(alu9*alu9));
  }
      float val3 = (*(temp0+ridx1103));
      *(acc1+0) = ((*(acc1+0))+val3);
    }
    *(data0_10+gidx0) = (1/sqrt((((*(acc1+0))*0.001953125f)+9.999999747378752e-06f)));
  }
}

__kernel void E_10_128_4n1(write_only image2d_t data0_5120, read_only image2d_t data1_5120, __global half* data2_5120, __global float* data3_10, __global float* data4_10, __global float* data5_512, __global float* data6_512) {
  int2 cast0 = (int2)(idx0,idx1);
  float val0 = (*(data3_10+idx1));
  float val1 = (*(data4_10+idx1));
  float4 val2 = read_imagef(data1_5120, smp, cast0);
  float4 val3 = (*((__global float4*)((data5_512+alu0))));
  float4 val4 = (*((__global float4*)((data6_512+alu0))));
  half4 val5 = (*((__global half4*)((data2_5120+(alu0+(idx1<<9))))));
  float alu1 = ((0.0f<val2.x)?val2.x:0.0f);
  float alu2 = ((0.0f<val2.y)?val2.y:0.0f);
  float alu3 = ((0.0f<val2.z)?val2.z:0.0f);
  float alu4 = ((0.0f<val2.w)?val2.w:0.0f);
  write_imagef(data0_5120, cast0, (float4)(((((alu1+((float)(val5.x)))-val0)*val1*val3.x)+val4.x),((((alu2+((float)(val5.y)))-val0)*val1*val3.y)+val4.y),((((alu3+((float)(val5.z)))-val0)*val1*val3.z)+val4.z),((((alu4+((float)(val5.w)))-val0)*val1*val3.w)+val4.w)));
}

__kernel void r_10_384_4_128_4(write_only image2d_t data0_15360, __global float* data1_1536, read_only image2d_t data2_5120, read_only image2d_t data3_786432) {
  int idx0 = get_global_id(0); /* 384 */
    float4 val1 = read_imagef(data3_786432, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data3_786432, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data3_786432, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data3_786432, smp, (int2)((alu4+3),idx0));
  }
  float4 val5 = (*((__global float4*)((data1_1536+(idx0<<2)))));
  write_imagef(data0_15360, (int2)(idx0,idx1), (float4)((val5.x+(*(acc0+0))),(val5.y+(*(acc0+1))),(val5.z+(*(acc0+2))),(val5.w+(*(acc0+3)))));
}

__kernel void E_10_128_4n2(write_only image2d_t data0_5120, read_only image2d_t data1_15360) {
  float4 val0 = read_imagef(data1_15360, smp, cast0);
  write_imagef(data0_5120, cast0, (float4)((val0.x*0.353515625f),(val0.y*0.353515625f),(val0.z*0.353515625f),(val0.w*0.353515625f)));
}

__kernel void E_128_10_4(__global float* data0_5120, read_only image2d_t data1_15360) {
  int idx0 = get_global_id(0); /* 10 */
  int idx1 = get_global_id(1); /* 128 */
  float4 val0 = read_imagef(data1_15360, smp, (int2)((idx1+128),idx0));
  int alu0 = (idx0+(idx1*40));
  *(data0_5120+alu0) = (val0.x*0.353515625f);
  *(data0_5120+(alu0+10)) = (val0.y*0.353515625f);
  *(data0_5120+(alu0+20)) = (val0.z*0.353515625f);
  *(data0_5120+(alu0+30)) = (val0.w*0.353515625f);
}

__kernel void E_128_12_4(write_only image2d_t data0_6144, read_only image2d_t data1_15360) {
  int idx0 = get_global_id(0); /* 12 */
  float4 val0 = read_imagef(data1_15360, smp, (int2)((idx1+256),idx0));
  write_imagef(data0_6144, (int2)(idx0,idx1), val0);
}

__kernel void E_24_64_4(write_only image2d_t data0_6144, __global float* data1_5120) {
  int idx0 = get_global_id(0); /* 64 */
  int idx1 = get_global_id(1); /* 24 */
  int alu0 = ((idx1*11)>>5);
  int alu1 = (idx1-(3*alu0));
  int alu2 = ((alu0*640)+(alu1<<2)+(idx0*10));
  float2 val0 = (*((__global float2*)((data1_5120+alu2))));
  float2 val1 = ((alu1<2)?*((__global float2*)((data1_5120+(alu2+2)))):(float2)(0.0f,0.0f));
  write_imagef(data0_6144, (int2)(idx0,idx1), (float4)(val0.x,val0.y,val1.x,val1.y));
}

__kernel void r_10_8_3_16_4_4(write_only image2d_t data0_960, read_only image2d_t data1_5120, read_only image2d_t data2_6144) {
  __attribute__ ((aligned (16))) __local float temp0[64];
  int gidx0 = get_group_id(0); /* 3 */
  int gidx1 = get_group_id(1); /* 8 */
  int gidx2 = get_group_id(2); /* 10 */
  int alu0 = (gidx0+(gidx1*3));
  float4 val0 = read_imagef(data1_5120, smp, (int2)((lidx0+(gidx1<<4)),gidx2));
  int alu5 = (lidx0<<2);
  float4 val1 = read_imagef(data2_6144, smp, (int2)(alu5,alu0));
  float4 val2 = read_imagef(data2_6144, smp, (int2)((alu5+1),alu0));
  float4 val3 = read_imagef(data2_6144, smp, (int2)((alu5+2),alu0));
  float4 val4 = read_imagef(data2_6144, smp, (int2)((alu5+3),alu0));
  *((__local float4*)((temp0+alu5))) = (float4)(((val0.x*val1.x)+(val0.y*val2.x)+(val0.z*val3.x)+(val0.w*val4.x)),((val0.x*val1.y)+(val0.y*val2.y)+(val0.z*val3.y)+(val0.w*val4.y)),((val0.x*val1.z)+(val0.y*val2.z)+(val0.z*val3.z)+(val0.w*val4.z)),((val0.x*val1.w)+(val0.y*val2.w)+(val0.z*val3.w)+(val0.w*val4.w)));
    for (int ridx1108 = 0; ridx1108 < 16; ridx1108++) {
      float4 val5 = (*((__local float4*)((temp0+(ridx1108<<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_960, (int2)(alu0,gidx2), (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3))));
  }
}

__kernel void r_8_10_10(__global float* data0_80, read_only image2d_t data1_960) {
  int idx1 = get_global_id(1); /* 8 */
  int alu0 = (idx1*3);
  float4 val0 = read_imagef(data1_960, smp, (int2)(alu0,idx0));
  float4 val1 = read_imagef(data1_960, smp, (int2)((alu0+1),idx0));
  float4 val2 = read_imagef(data1_960, smp, (int2)((alu0+2),idx0));
  float alu1 = ((val0.x<val0.y)?val0.y:val0.x);
  float alu2 = ((alu1<val0.z)?val0.z:alu1);
  float alu3 = ((alu2<val0.w)?val0.w:alu2);
  float alu4 = ((alu3<val1.x)?val1.x:alu3);
  float alu5 = ((alu4<val1.y)?val1.y:alu4);
  float alu6 = ((alu5<val1.z)?val1.z:alu5);
  float alu7 = ((alu6<val1.w)?val1.w:alu6);
  float alu8 = ((alu7<val2.x)?val2.x:alu7);
  float alu9 = ((alu8<val2.y)?val2.y:alu8);
  *(data0_80+(idx0+(idx1*10))) = alu9;
}

__kernel void r_8_10_10n1(__global float* data0_80, read_only image2d_t data1_960, __global float* data2_80) {
  int alu1 = (idx0+(idx1*10));
  float val3 = (*(data2_80+alu1));
  *(data0_80+alu1) = (1/(exp2(((val0.x-val3)*1.4426950408889634f))+exp2(((val0.y-val3)*1.4426950408889634f))+exp2(((val0.z-val3)*1.4426950408889634f))+exp2(((val0.w-val3)*1.4426950408889634f))+exp2(((val1.x-val3)*1.4426950408889634f))+exp2(((val1.y-val3)*1.4426950408889634f))+exp2(((val1.z-val3)*1.4426950408889634f))+exp2(((val1.w-val3)*1.4426950408889634f))+exp2(((val2.x-val3)*1.4426950408889634f))+exp2(((val2.y-val3)*1.4426950408889634f))));
}

__kernel void E_8_10_10(__global float* data0_800, read_only image2d_t data1_960, __global float* data2_80, __global float* data3_80) {
  int idx2 = get_global_id(2); /* 8 */
  int alu0 = (idx1+(idx2*10));
  float val0 = (*(data2_80+alu0));
  float val1 = (*(data3_80+alu0));
  float4 val2 = read_imagef(data1_960, smp, (int2)(((idx2*3)+(idx0>>2)),idx1));
  int alu1 = (idx0&3);
  float alu2 = (((bool)(alu1))?((float)(NAN)):val2.x);
  float alu3 = ((alu1!=1)?alu2:val2.y);
  float alu4 = ((alu1!=2)?alu3:val2.z);
  float alu5 = ((alu1!=3)?alu4:val2.w);
  *(data0_800+(idx0+(idx1*10)+(idx2*100))) = (exp2(((alu5-val0)*1.4426950408889634f))*val1);
}

__kernel void E_10_24_4(write_only image2d_t data0_960, __global float* data1_800) {
  int idx0 = get_global_id(0); /* 24 */
  int alu0 = ((idx0*11)>>5);
  int alu1 = (idx0-(3*alu0));
  int alu2 = ((alu0*100)+(alu1<<2)+(idx1*10));
  float2 val0 = (*((__global float2*)((data1_800+alu2))));
  float2 val1 = ((alu1<2)?*((__global float2*)((data1_800+(alu2+2)))):(float2)(0.0f,0.0f));
  write_imagef(data0_960, (int2)(idx0,idx1), (float4)(val0.x,val0.y,val1.x,val1.y));
}

__kernel void r_10_8_16_4_3_4(write_only image2d_t data0_5120, read_only image2d_t data1_960, read_only image2d_t data2_6144) {
  int idx0 = get_global_id(0); /* 16 */
  int idx2 = get_global_id(2); /* 10 */
  int alu0 = (idx0+(idx1<<4));
  for (int ridx1007 = 0; ridx1007 < 3; ridx1007++) {
    float4 val0 = read_imagef(data1_960, smp, (int2)(((idx1*3)+ridx1007),idx2));
    int alu5 = (ridx1007<<2);
    float4 val1 = read_imagef(data2_6144, smp, (int2)(alu5,alu0));
    float4 val2 = read_imagef(data2_6144, smp, (int2)((alu5+1),alu0));
    float4 val3 = read_imagef(data2_6144, smp, (int2)((alu5+2),alu0));
    float4 val4 = read_imagef(data2_6144, smp, (int2)((alu5+3),alu0));
  }
  write_imagef(data0_5120, (int2)(alu0,idx2), (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3))));
}

__kernel void r_10_128_4_128_4n1(write_only image2d_t data0_5120, read_only image2d_t data1_5120, __global half* data2_5120, __global float* data3_512, read_only image2d_t data4_5120, read_only image2d_t data5_262144) {
    float4 val0 = read_imagef(data4_5120, smp, (int2)(ridx1007,idx1));
    float4 val1 = read_imagef(data5_262144, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data5_262144, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data5_262144, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data5_262144, smp, (int2)((alu4+3),idx0));
  }
  float4 val5 = read_imagef(data1_5120, smp, cast0);
  int alu10 = (idx0<<2);
  float4 val6 = (*((__global float4*)((data3_512+alu10))));
  half4 val7 = (*((__global half4*)((data2_5120+(alu10+(idx1<<9))))));
  float alu11 = ((0.0f<val5.x)?val5.x:0.0f);
  float alu12 = ((0.0f<val5.y)?val5.y:0.0f);
  float alu13 = ((0.0f<val5.z)?val5.z:0.0f);
  float alu14 = ((0.0f<val5.w)?val5.w:0.0f);
  write_imagef(data0_5120, cast0, (float4)((alu11+((float)(val7.x))+val6.x+(*(acc0+0))),(alu12+((float)(val7.y))+val6.y+(*(acc0+1))),(alu13+((float)(val7.z))+val6.z+(*(acc0+2))),(alu14+((float)(val7.w))+val6.w+(*(acc0+3)))));
}

__kernel void r_10_16_8_4n2(__global float* data0_10, read_only image2d_t data1_5120) {
    *(acc0+0) = ((*(acc0+0))+val0.x+val0.y+val0.z+val0.w);
  }
      float val1 = (*(temp0+ridx1103));
      *(acc1+0) = ((*(acc1+0))+val1);
    }
  }
}

__kernel void r_10_16_8_4n3(__global float* data0_10, read_only image2d_t data1_5120, __global float* data2_10) {
  float val0 = (*(data2_10+gidx0));
    float alu2 = (val1.x-val0);
    float alu3 = (val1.y-val0);
    float alu4 = (val1.z-val0);
    float alu5 = (val1.w-val0);
    *(acc0+0) = ((*(acc0+0))+(alu2*alu2)+(alu3*alu3)+(alu4*alu4)+(alu5*alu5));
  }
    }
  }
}

__kernel void E_10_128_4n3(write_only image2d_t data0_5120, read_only image2d_t data1_5120, __global float* data2_10, __global float* data3_10, __global float* data4_512, __global float* data5_512) {
  float val0 = (*(data2_10+idx1));
  float val1 = (*(data3_10+idx1));
  float4 val3 = (*((__global float4*)((data4_512+alu0))));
  float4 val4 = (*((__global float4*)((data5_512+alu0))));
  write_imagef(data0_5120, cast0, (float4)((((val2.x-val0)*val1*val3.x)+val4.x),(((val2.y-val0)*val1*val3.y)+val4.y),(((val2.z-val0)*val1*val3.z)+val4.z),(((val2.w-val0)*val1*val3.w)+val4.w)));
}

__kernel void r_10_512_4_128_4(write_only image2d_t data0_20480, __global float* data1_2048, read_only image2d_t data2_5120, read_only image2d_t data3_1048576) {
  int idx0 = get_global_id(0); /* 512 */
    float4 val1 = read_imagef(data3_1048576, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data3_1048576, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data3_1048576, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data3_1048576, smp, (int2)((alu4+3),idx0));
  }
  float4 val5 = (*((__global float4*)((data1_2048+(idx0<<2)))));
  float alu10 = (val5.x+(*(acc0+0)));
  float alu11 = (val5.y+(*(acc0+1)));
  float alu12 = (val5.z+(*(acc0+2)));
  float alu13 = (val5.w+(*(acc0+3)));
  float alu14 = (1.0f-exp2((alu10*1.4426950408889634f)));
  float alu15 = (1.0f-exp2((alu11*1.4426950408889634f)));
  float alu16 = (1.0f-exp2((alu12*1.4426950408889634f)));
  float alu17 = (1.0f-exp2((alu13*1.4426950408889634f)));
  float alu18 = ((0.0f<alu10)?alu10:0.0f);
  float alu19 = ((0.0f<alu11)?alu11:0.0f);
  float alu20 = ((0.0f<alu12)?alu12:0.0f);
  float alu21 = ((0.0f<alu13)?alu13:0.0f);
  float alu22 = ((0.0f<alu14)?alu14:0.0f);
  float alu23 = ((0.0f<alu15)?alu15:0.0f);
  float alu24 = ((0.0f<alu16)?alu16:0.0f);
  float alu25 = ((0.0f<alu17)?alu17:0.0f);
  write_imagef(data0_20480, (int2)(idx0,idx1), (float4)((alu18-alu22),(alu19-alu23),(alu20-alu24),(alu21-alu25)));
}

__kernel void r_10_128_4_512_4(write_only image2d_t data0_5120, read_only image2d_t data1_5120, __global float* data2_512, read_only image2d_t data3_20480, read_only image2d_t data4_1048576) {
  for (int ridx1007 = 0; ridx1007 < 512; ridx1007++) {
    float4 val0 = read_imagef(data3_20480, smp, (int2)(ridx1007,idx1));
    float4 val1 = read_imagef(data4_1048576, smp, (int2)(alu4,idx0));
    float4 val2 = read_imagef(data4_1048576, smp, (int2)((alu4+1),idx0));
    float4 val3 = read_imagef(data4_1048576, smp, (int2)((alu4+2),idx0));
    float4 val4 = read_imagef(data4_1048576, smp, (int2)((alu4+3),idx0));
  }
  float4 val6 = (*((__global float4*)((data2_512+(idx0<<2)))));
  write_imagef(data0_5120, cast0, (float4)((val5.x+val6.x+(*(acc0+0))),(val5.y+val6.y+(*(acc0+1))),(val5.z+val6.z+(*(acc0+2))),(val5.w+val6.w+(*(acc0+3)))));
}

__kernel void E_128_4n1(write_only image2d_t data0_512, read_only image2d_t data1_5120) {
  float4 val0 = read_imagef(data1_5120, smp, (int2)(idx0,9));
  write_imagef(data0_512, (int2)(idx0,0), val0);
}

__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) {
  float acc1[4];
  int gidx0 = get_group_id(0); /* 256 */
  *(acc1+1) = 0.0f;
  *(acc1+2) = 0.0f;
  *(acc1+3) = 0.0f;
  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));
    *(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));
  }
  *((__local float4*)((temp0+(lidx0<<2)))) = (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3)));
    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_1024, (int2)(gidx0,0), (float4)(alu26,alu27,alu28,alu29));
  }
}

__kernel void r_128_16_4_16_4(__global float* data0_512, read_only image2d_t data1_5120, read_only image2d_t data2_1024, read_only image2d_t data3_524288, __global half* data4_512) {
  int gidx0 = get_group_id(0); /* 128 */
  float4 val0 = read_imagef(data1_5120, smp, (int2)(gidx0,9));
  int alu4 = (gidx0<<2);
  half4 val1 = (*((__global half4*)((data4_512+alu4))));
  for (int ridx1007 = 0; ridx1007 < 16; ridx1007++) {
    float4 val2 = read_imagef(data2_1024, smp, (int2)(((lidx0<<4)+ridx1007),0));
    int alu9 = ((lidx0<<6)+(ridx1007<<2));
    float4 val3 = read_imagef(data3_524288, smp, (int2)(alu9,gidx0));
    float4 val4 = read_imagef(data3_524288, smp, (int2)((alu9+1),gidx0));
    float4 val5 = read_imagef(data3_524288, smp, (int2)((alu9+2),gidx0));
    float4 val6 = read_imagef(data3_524288, smp, (int2)((alu9+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);
    }
    *((__global float4*)((data0_512+alu4))) = (float4)((val0.x+(*(acc1+0))+((float)(val1.x))),(val0.y+(*(acc1+1))+((float)(val1.y))),(val0.z+(*(acc1+2))+((float)(val1.z))),(val0.w+(*(acc1+3))+((float)(val1.w))));
  }
}

__kernel void E_128_4n2(write_only image2d_t data0_512, __global float* data1_512) {
  float4 val0 = (*((__global float4*)((data1_512+(idx0<<2)))));
  write_imagef(data0_512, (int2)(idx0,0), (float4)(alu0,alu1,alu2,alu3));
}

__kernel void r_128_16_4_16_4n1(write_only image2d_t data0_512, __global float* data1_512, read_only image2d_t data2_1024, read_only image2d_t data3_524288, __global half* data4_512) {
  half4 val0 = (*((__global half4*)((data4_512+alu4))));
  float4 val1 = (*((__global float4*)((data1_512+alu4))));
  float alu5 = ((0.0f<val1.x)?val1.x:0.0f);
  float alu6 = ((0.0f<val1.y)?val1.y:0.0f);
  float alu7 = ((0.0f<val1.z)?val1.z:0.0f);
  float alu8 = ((0.0f<val1.w)?val1.w:0.0f);
    int alu13 = ((lidx0<<6)+(ridx1007<<2));
    float4 val3 = read_imagef(data3_524288, smp, (int2)(alu13,gidx0));
    float4 val4 = read_imagef(data3_524288, smp, (int2)((alu13+1),gidx0));
    float4 val5 = read_imagef(data3_524288, smp, (int2)((alu13+2),gidx0));
    float4 val6 = read_imagef(data3_524288, smp, (int2)((alu13+3),gidx0));
  }
    }
    float alu27 = (alu5+(*(acc1+0))+((float)(val0.x)));
    float alu28 = (alu6+(*(acc1+1))+((float)(val0.y)));
    float alu29 = (alu7+(*(acc1+2))+((float)(val0.z)));
    float alu30 = (alu8+(*(acc1+3))+((float)(val0.w)));
    float alu31 = ((0.0f<alu27)?alu27:0.0f);
    float alu32 = ((0.0f<alu28)?alu28:0.0f);
    float alu33 = ((0.0f<alu29)?alu29:0.0f);
    float alu34 = ((0.0f<alu30)?alu30:0.0f);
    write_imagef(data0_512, (int2)(gidx0,0), (float4)(alu31,alu32,alu33,alu34));
  }
}

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

__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_64_16_4_4_4(write_only image2d_t data0_256, read_only image2d_t data1_256, read_only image2d_t data2_65536, __global half* data3_256) {
  int alu4 = (lidx0<<2);
  for (int ridx1007 = 0; ridx1007 < 4; ridx1007++) {
    float4 val1 = read_imagef(data1_256, smp, (int2)((alu4+ridx1007),0));
    int alu9 = ((lidx0<<4)+(ridx1007<<2));
    float4 val2 = read_imagef(data2_65536, smp, (int2)(alu9,gidx0));
    float4 val3 = read_imagef(data2_65536, smp, (int2)((alu9+1),gidx0));
    float4 val4 = read_imagef(data2_65536, smp, (int2)((alu9+2),gidx0));
    float4 val5 = read_imagef(data2_65536, smp, (int2)((alu9+3),gidx0));
  }
  *((__local float4*)((temp0+alu4))) = (float4)((*(acc0+0)),(*(acc0+1)),(*(acc0+2)),(*(acc0+3)));
    }
    float alu23 = ((*(acc1+0))+((float)(val0.x)));
    float alu24 = ((*(acc1+1))+((float)(val0.y)));
    float alu25 = ((*(acc1+2))+((float)(val0.z)));
    float alu26 = ((*(acc1+3))+((float)(val0.w)));
    float alu30 = ((0.0f<alu26)?alu26:0.0f);
    write_imagef(data0_256, (int2)(gidx0,0), (float4)(alu27,alu28,alu29,alu30));
  }
}

__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));
    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));
  }
  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_64_16_4_4_4n1(write_only image2d_t data0_256, read_only image2d_t data1_256, read_only image2d_t data2_256, read_only image2d_t data3_65536, __global half* data4_256) {
  int2 cast0 = (int2)(gidx0,0);
  float4 val0 = read_imagef(data1_256, smp, cast0);
  half4 val1 = (*((__global half4*)((data4_256+(gidx0<<2)))));
    float4 val2 = read_imagef(data2_256, smp, (int2)((alu4+ridx1007),0));
    float4 val3 = read_imagef(data3_65536, smp, (int2)(alu9,gidx0));
    float4 val4 = read_imagef(data3_65536, smp, (int2)((alu9+1),gidx0));
    float4 val5 = read_imagef(data3_65536, smp, (int2)((alu9+2),gidx0));
    float4 val6 = read_imagef(data3_65536, smp, (int2)((alu9+3),gidx0));
  }
    }
    float alu23 = (val0.x+(*(acc1+0))+((float)(val1.x)));
    float alu24 = (val0.y+(*(acc1+1))+((float)(val1.y)));
    float alu25 = (val0.z+(*(acc1+2))+((float)(val1.z)));
    float alu26 = (val0.w+(*(acc1+3))+((float)(val1.w)));
    write_imagef(data0_256, cast0, (float4)(alu27,alu28,alu29,alu30));
  }
}

__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));
  }
  int2 cast0 = (int2)(idx0,0);
  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_248_16_4_4_4(write_only image2d_t data0_992, read_only image2d_t data1_256, read_only image2d_t data2_253952) {
  int gidx0 = get_group_id(0); /* 248 */
    float4 val0 = read_imagef(data1_256, smp, (int2)((alu4+ridx1007),0));
    float4 val1 = read_imagef(data2_253952, smp, (int2)(alu9,gidx0));
    float4 val2 = read_imagef(data2_253952, smp, (int2)((alu9+1),gidx0));
    float4 val3 = read_imagef(data2_253952, smp, (int2)((alu9+2),gidx0));
    float4 val4 = read_imagef(data2_253952, smp, (int2)((alu9+3),gidx0));
  }
      float4 val5 = (*((__local float4*)((temp0+(ridx1109<<2)))));
      *(acc1+0) = ((*(acc1+0))+val5.x);
      *(acc1+1) = ((*(acc1+1))+val5.y);
      *(acc1+2) = ((*(acc1+2))+val5.z);
      *(acc1+3) = ((*(acc1+3))+val5.w);
    }
    write_imagef(data0_992, (int2)(gidx0,0), (float4)((*(acc1+0)),(*(acc1+1)),(*(acc1+2)),(*(acc1+3))));
  }
}

__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, __global half* data3_8) {
  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));
  }
  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 E_250_4(__global float* data0_1000, read_only image2d_t data1_992, __global half* data2_990, __global half* data3_990, read_only image2d_t data4_8, __global half* data5_2) {
  int idx0 = get_global_id(0); /* 250 */
  half2 cast1 = (half2)(((half)(0.0f)),((half)(0.0f)));
  float4 val0 = read_imagef(data1_992, smp, cast0);
  float4 val1 = read_imagef(data4_8, smp, (int2)((idx0+-248),0));
  float4 val2 = read_imagef(data4_8, smp, (int2)((idx0+-247),0));
  int alu1 = (alu0+2);
  bool alu2 = (idx0<247);
  half2 val3 = (alu2?*((__global half2*)((data2_990+alu1))):cast1);
  half2 val4 = (alu2?*((__global half2*)((data3_990+alu1))):cast1);
  float4 val5 = (alu2?read_imagef(data1_992, smp, cast0):(float4)(0.0f,0.0f,0.0f,0.0f));
  bool alu3 = (idx0<248);
  half2 val6 = (alu3?*((__global half2*)((data2_990+alu0))):cast1);
  half2 val7 = (alu3?*((__global half2*)((data3_990+alu0))):cast1);
  half2 val8 = ((248<idx0)?*((__global half2*)((data5_2+0))):cast1);
  *((__global float4*)((data0_1000+alu0))) = (float4)((((val0.x+((float)(val6.x)))*((float)(val7.x)))+val1.z),(((val0.y+((float)(val6.y)))*((float)(val7.y)))+val1.w),(((val5.z+((float)(val3.x)))*((float)(val4.x)))+val2.x+((float)(val8.x))),(((val5.w+((float)(val3.y)))*((float)(val4.y)))+val2.y+((float)(val8.y))));
}