Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save hughperkins/bdefd062f83fc3d2ad59add6480d2819 to your computer and use it in GitHub Desktop.
Save hughperkins/bdefd062f83fc3d2ad59add6480d2819 to your computer and use it in GitHub Desktop.
// origKernelName: _Z17run_bounded_array12BoundedArrayii
// uniqueKernelName: _Z17run_bounded_array12BoundedArrayii_1
// shortKernelName: _Z17run_bounded_arra
struct BoundedArray {
unsigned long f0[8];
};
struct GlobalVars {
local int *scratch;
global char *clmem0;
unsigned long clmem_vmem_offset0;
};
inline global float *getGlobalPointer(unsigned long vmemloc, struct GlobalVars *globalVars) {
return (global float *)(globalVars->clmem0 + vmemloc - globalVars->clmem_vmem_offset0);
}
kernel void _Z17run_bounded_arra(global char* clmem0, unsigned long clmem_vmem_offset0, global char* clmem1, unsigned long clmem_vmem_offset1, long v14_offset, int v15, int v16, local int *scratch);
kernel void _Z17run_bounded_arra(global char* clmem0, unsigned long clmem_vmem_offset0, global char* clmem1, unsigned long clmem_vmem_offset1, long v14_offset, int v15, int v16, local int *scratch) {
global struct BoundedArray* v14 = (global struct BoundedArray*)(clmem1 + v14_offset);
struct GlobalVars globalVars = { scratch, clmem0, clmem_vmem_offset0 };
struct GlobalVars *pGlobalVars = &globalVars;
float v31;
float v41;
float v51;
float v57;
float v64;
float v70;
global float* v36;
global float* v43;
global float* v53;
global float* v59;
global float* v66;
global float* v72;
int v23;
int v27;
int v37;
int v38;
int v39;
int v45;
int v47;
int v49;
int v55;
int v61;
int v68;
int v74;
int v77;
v1:;
/* bool v17 = icmp v15 <unk> */;
/* bool v19 = icmp v16 v18 */;
/* bool v20 = and v17 v19 */;
/* if(v20) */
if ((v15 > 0) & (v16 > 0)) {
goto v2;
} else {
goto v13;
}
v2:;
/* int v21 = add v16 <unk> */;
/* int v23 = and v16 <unk> */;
v23 = v16 & 3;
/* bool v25 = icmp v23 v18 */;
/* bool v26 = icmp v21 v24 */;
/* int v27 = phi v18 */
v27 = 0;
goto v3;
v3:;
/* float v28 = sitofp v27 */;
/* float v29 = fadd v28 <unk> */;
/* float v31 = fadd v29 <unk> */;
v31 = ((float)v27 + 123.0f) + 1.0f;
/* long v33 = sext v27 */;
/* float** v34 = getelementptr v14 <unk> v18 v33 */;
/* float* v36 = load v34 */;
global float* v36_gptrstep = getGlobalPointer((/* vmem */ unsigned long)(&(v14[0].f0[(long)v27]))[0], pGlobalVars);
v36 = v36_gptrstep;
/* if(v25) */
if ((v23) == (0)) {
/* int v37 = phi v18 */
v37 = 0;
goto v7;
} else {
goto v4;
}
v4:;
/* int v38 = phi v18 */
v38 = 0;
/* int v39 = phi v23 */
v39 = v23;
goto v5;
v5:;
/* float v40 = sitofp v38 */;
/* float v41 = fadd v31 v40 */;
v41 = v31 + (float)v38;
/* long v42 = sext v38 */;
/* float* v43 = getelementptr v36 v42 */;
v43 = (&(v36[(long)v38]));
/* void v44 = store v41 v43 */;
v43[0] = v41;
/* int v45 = add v38 <unk> */;
v45 = v38 + 1;
/* int v47 = add v39 v22 */;
v47 = v39 + -1;
/* bool v48 = icmp v47 v18 */;
/* if(v48) */
if ((v47) == (0)) {
goto v6;
} else {
/* int v38 = phi v45 */
v38 = v45;
/* int v39 = phi v47 */
v39 = v47;
goto v5;
}
v6:;
/* int v37 = phi v45 */
v37 = v45;
goto v7;
v7:;
/* if(v26) */
if (v16 + -1 < 3) {
goto v11;
} else {
goto v8;
}
v8:;
/* int v49 = phi v37 */
v49 = v37;
goto v9;
v9:;
/* float v50 = sitofp v49 */;
/* float v51 = fadd v31 v50 */;
v51 = v31 + (float)v49;
/* long v52 = sext v49 */;
/* float* v53 = getelementptr v36 v52 */;
v53 = (&(v36[(long)v49]));
/* void v54 = store v51 v53 */;
v53[0] = v51;
/* int v55 = add v49 v46 */;
v55 = v49 + 1;
/* float v56 = sitofp v55 */;
/* float v57 = fadd v31 v56 */;
v57 = v31 + (float)v55;
/* long v58 = sext v55 */;
/* float* v59 = getelementptr v36 v58 */;
v59 = (&(v36[(long)v55]));
/* void v60 = store v57 v59 */;
v59[0] = v57;
/* int v61 = add v49 <unk> */;
v61 = v49 + 2;
/* float v63 = sitofp v61 */;
/* float v64 = fadd v31 v63 */;
v64 = v31 + (float)v61;
/* long v65 = sext v61 */;
/* float* v66 = getelementptr v36 v65 */;
v66 = (&(v36[(long)v61]));
/* void v67 = store v64 v66 */;
v66[0] = v64;
/* int v68 = add v49 v24 */;
v68 = v49 + 3;
/* float v69 = sitofp v68 */;
/* float v70 = fadd v31 v69 */;
v70 = v31 + (float)v68;
/* long v71 = sext v68 */;
/* float* v72 = getelementptr v36 v71 */;
v72 = (&(v36[(long)v68]));
/* void v73 = store v70 v72 */;
v72[0] = v70;
/* int v74 = add v49 <unk> */;
v74 = v49 + 4;
/* bool v76 = icmp v74 v16 */;
/* if(v76) */
if ((v74) == (v16)) {
goto v10;
} else {
/* int v49 = phi v74 */
v49 = v74;
goto v9;
}
v10:;
goto v11;
v11:;
/* int v77 = add v27 v46 */;
v77 = v27 + 1;
/* bool v78 = icmp v77 v15 */;
/* if(v78) */
if ((v77) == (v15)) {
goto v12;
} else {
/* int v27 = phi v77 */
v27 = v77;
goto v3;
}
v12:;
goto v13;
v13:;
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment