3 static bool check_data64( ulong data_i, ulong expect );
7 __attribute__ ((reqd_work_group_size(1,1,1)))
8 void check_cnt(__global ulong8 * __restrict input0,
9 __global uint16 * __restrict pStatus,
39 checkStatus = *pStatus;
41 blockRd = checkStatus.s1;
42 blockOk = checkStatus.s2;
43 blockError = checkStatus.s3;
44 //printf( "krnl - %.4x %d %d %d \n", checkStatus.s0, blockRd, blockOk, blockError );
49 // printf( "krnl: input0=%p\n", input0 );
50 // printf( "krnl: pStatus=%p\n", pStatus);
51 // printf( "krnl: size=%d\n", size);
53 // //for( int ii=0; ii<8; ii++ )
54 // printf( "krnl: expect(%X)= %lX\n", 0, temp1.s0 );
55 // printf( "krnl: expect(%X)= %lX\n", 1, temp1.s1 );
56 // printf( "krnl: expect(%X)= %lX\n", 2, temp1.s2 );
57 // printf( "krnl: expect(%X)= %lX\n", 3, temp1.s3 );
58 // printf( "krnl: expect(%X)= %lX\n", 4, temp1.s4 );
59 // printf( "krnl: expect(%X)= %lX\n", 5, temp1.s5 );
60 // printf( "krnl: expect(%X)= %lX\n", 6, temp1.s6 );
61 // printf( "krnl: expect(%X)= %lX\n", 7, temp1.s7 );
64 __attribute__((xcl_pipeline_loop))
66 for (ii=0; ii<size; ii++)
72 flag0 = check_data64( temp0.s0, temp1.s0 );
73 flag1 = check_data64( temp0.s1, temp1.s1 );
74 flag2 = check_data64( temp0.s2, temp1.s2 );
75 flag3 = check_data64( temp0.s3, temp1.s3 );
76 flag4 = check_data64( temp0.s4, temp1.s4 );
77 flag5 = check_data64( temp0.s5, temp1.s5 );
78 flag6 = check_data64( temp0.s6, temp1.s6 );
79 flag7 = check_data64( temp0.s7, temp1.s7 );
81 if( flag0 || flag1 || flag2 || flag3 || flag4 || flag5 || flag6 || flag7 )
90 // if( word_error && cnt_error<4 )
92 // printf( "0: %.4X %.4X %.4X %.4X %.4X %.4X %.4X %.4X ii=%d\n",
104 // printf( "1: %.4X %.4X %.4X %.4X %.4X %.4X %.4X %.4X %d\n\n",
135 checkStatus.s0 = 0xAA55;
136 checkStatus.s1 = blockRd;
137 checkStatus.s2 = blockOk;
138 checkStatus.s3 = blockError;
140 *pStatus = checkStatus;
142 //printf( "krnl - %.4x %d %d %d - Ok\n", checkStatus.s0, blockRd, blockOk, blockError );
147 static bool check_data64( ulong data_i, ulong expect )