Move a repeated calc to const

This commit is contained in:
Steven Roussey 2023-06-13 12:51:08 -07:00
parent e32089b2c2
commit 222c679842

View file

@ -1190,15 +1190,17 @@ kernel void kernel_mul_mat_q4_k_f32(
float sumf = 0;
for (int i = tpitg.x; i < nb; i += tptg.x) {
device const uint8_t * q1 = (x + i)->qs + q_offset;
device const block_q4_k * xi = x + i;
device const uint8_t * q1 = xi->qs + q_offset;
device const uint8_t * q2 = q1 + 64;
device const float * y1 = yy + i*QK_K + y_offset;
device const float * y2 = y1 + 128;
device const uint8_t * scales = xi->scales;
const float dall = (float)((x + i)->d);
const float dmin = (float)((x + i)->dmin);
const float dall = (float)(xi->d);
const float dmin = (float)(xi->dmin);
device const uint16_t * a = (device const uint16_t *)(x + i)->scales;
device const uint16_t * a = (device const uint16_t *)xi->scales;
sc1 = as_type<uchar2>((uint16_t)(a[im+0] & kmask1));
sc2 = as_type<uchar2>((uint16_t)(a[im+2] & kmask1));
sc3 = as_type<uchar2>((uint16_t)(((a[im+4] >> 0) & kmask2) | ((a[im+0] & kmask3) >> 2)));