1 /** 2 * Author......: See docs/credits.txt 3 * License.....: MIT 4 */ 5 6 #ifdef KERNEL_STATIC 7 #include M2S(INCLUDE_PATH/inc_vendor.h) 8 #include M2S(INCLUDE_PATH/inc_types.h) 9 #include M2S(INCLUDE_PATH/inc_platform.cl) 10 #include M2S(INCLUDE_PATH/inc_common.cl) 11 #include M2S(INCLUDE_PATH/inc_amp.h) 12 #endif 13 14 KERNEL_FQ void amp (KERN_ATTR_AMP) 15 { 16 const u64 gid = get_global_id (0); 17 18 if (gid >= gid_max) return; 19 20 pw_t pw = pws_amp[gid]; 21 22 pw_t comb = combs_buf[0]; 23 24 const u32 pw_len = pw.pw_len; 25 26 const u32 comb_len = comb.pw_len; 27 28 if (combs_mode == COMBINATOR_MODE_BASE_LEFT) 29 { 30 switch_buffer_by_offset_1x64_le_S (comb.i, pw_len); 31 } 32 33 if (combs_mode == COMBINATOR_MODE_BASE_RIGHT) 34 { 35 switch_buffer_by_offset_1x64_le_S (pw.i, comb_len); 36 } 37 38 pw.i[ 0] |= comb.i[ 0]; 39 pw.i[ 1] |= comb.i[ 1]; 40 pw.i[ 2] |= comb.i[ 2]; 41 pw.i[ 3] |= comb.i[ 3]; 42 pw.i[ 4] |= comb.i[ 4]; 43 pw.i[ 5] |= comb.i[ 5]; 44 pw.i[ 6] |= comb.i[ 6]; 45 pw.i[ 7] |= comb.i[ 7]; 46 pw.i[ 8] |= comb.i[ 8]; 47 pw.i[ 9] |= comb.i[ 9]; 48 pw.i[10] |= comb.i[10]; 49 pw.i[11] |= comb.i[11]; 50 pw.i[12] |= comb.i[12]; 51 pw.i[13] |= comb.i[13]; 52 pw.i[14] |= comb.i[14]; 53 pw.i[15] |= comb.i[15]; 54 pw.i[16] |= comb.i[16]; 55 pw.i[17] |= comb.i[17]; 56 pw.i[18] |= comb.i[18]; 57 pw.i[19] |= comb.i[19]; 58 pw.i[20] |= comb.i[20]; 59 pw.i[21] |= comb.i[21]; 60 pw.i[22] |= comb.i[22]; 61 pw.i[23] |= comb.i[23]; 62 pw.i[24] |= comb.i[24]; 63 pw.i[25] |= comb.i[25]; 64 pw.i[26] |= comb.i[26]; 65 pw.i[27] |= comb.i[27]; 66 pw.i[28] |= comb.i[28]; 67 pw.i[29] |= comb.i[29]; 68 pw.i[30] |= comb.i[30]; 69 pw.i[31] |= comb.i[31]; 70 pw.i[32] |= comb.i[32]; 71 pw.i[33] |= comb.i[33]; 72 pw.i[34] |= comb.i[34]; 73 pw.i[35] |= comb.i[35]; 74 pw.i[36] |= comb.i[36]; 75 pw.i[37] |= comb.i[37]; 76 pw.i[38] |= comb.i[38]; 77 pw.i[39] |= comb.i[39]; 78 pw.i[40] |= comb.i[40]; 79 pw.i[41] |= comb.i[41]; 80 pw.i[42] |= comb.i[42]; 81 pw.i[43] |= comb.i[43]; 82 pw.i[44] |= comb.i[44]; 83 pw.i[45] |= comb.i[45]; 84 pw.i[46] |= comb.i[46]; 85 pw.i[47] |= comb.i[47]; 86 pw.i[48] |= comb.i[48]; 87 pw.i[49] |= comb.i[49]; 88 pw.i[50] |= comb.i[50]; 89 pw.i[51] |= comb.i[51]; 90 pw.i[52] |= comb.i[52]; 91 pw.i[53] |= comb.i[53]; 92 pw.i[54] |= comb.i[54]; 93 pw.i[55] |= comb.i[55]; 94 pw.i[56] |= comb.i[56]; 95 pw.i[57] |= comb.i[57]; 96 pw.i[58] |= comb.i[58]; 97 pw.i[59] |= comb.i[59]; 98 pw.i[60] |= comb.i[60]; 99 pw.i[61] |= comb.i[61]; 100 pw.i[62] |= comb.i[62]; 101 pw.i[63] |= comb.i[63]; 102 103 pw.pw_len = pw_len + comb_len; 104 105 pws[gid] = pw; 106 }