@@ -336,8 +336,8 @@ void main() {
336
336
const uint iqs = idx & 0x07;
337
337
338
338
const float d = float(data_a_packed16[ib].d);
339
- const i8vec2 v0 = unpack8(data_a_packed16[ib].qs[2*iqs]);
340
- const i8vec2 v1 = unpack8(data_a_packed16[ib].qs[2*iqs + 1]);
339
+ const i8vec2 v0 = unpack8(int32_t( data_a_packed16[ib].qs[2*iqs])).xy; // vec4 used due to #12147
340
+ const i8vec2 v1 = unpack8(int32_t( data_a_packed16[ib].qs[2*iqs + 1])).xy ;
341
341
const vec4 v = vec4(v0.x, v0.y, v1.x, v1.y) * d;
342
342
343
343
buf_a[buf_idx ] = FLOAT_TYPE(v.x);
@@ -544,7 +544,7 @@ void main() {
544
544
const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4));
545
545
const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign))));
546
546
const uint grid = iq2xxs_grid[qs][(idx % 4) / 2] >> (16 * (idx & 1));
547
- const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy);
547
+ const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); // vec4 used due to #12147
548
548
549
549
buf_a[buf_idx ] = FLOAT_TYPE(v.x);
550
550
buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
@@ -564,7 +564,7 @@ void main() {
564
564
const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4));
565
565
const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign))));
566
566
const uint grid = iq2xs_grid[qs & 511][(idx % 4) / 2] >> (16 * (idx & 1));
567
- const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy);
567
+ const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); // vec4 used due to #12147
568
568
569
569
buf_a[buf_idx ] = FLOAT_TYPE(v.x);
570
570
buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
@@ -586,7 +586,7 @@ void main() {
586
586
const float db = d * 0.25 * (0.5 + scale);
587
587
const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign))));
588
588
const uint16_t grid = unpack16(iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(idx & 2) >> 1])[idx & 1];
589
- const vec2 v = db * vec2(sign01) * vec2(unpack8(grid));
589
+ const vec2 v = db * vec2(sign01) * vec2(unpack8(uint32_t( grid)).xy); // vec4 used due to #12147
590
590
591
591
buf_a[buf_idx ] = FLOAT_TYPE(v.x);
592
592
buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
@@ -611,7 +611,7 @@ void main() {
611
611
const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4));
612
612
const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign))));
613
613
const uint grid = iq3xxs_grid[qs] >> (16 * (idx & 1));
614
- const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy);
614
+ const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); // vec4 used due to #12147
615
615
616
616
buf_a[buf_idx ] = FLOAT_TYPE(v.x);
617
617
buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
@@ -631,7 +631,7 @@ void main() {
631
631
const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(sign << 1, sign)));
632
632
const float db = d * (1 + 2 * ((scale >> (4 * (iqh & 1))) & 0xf));
633
633
const uint32_t grid = iq3s_grid[qs | ((qh << (8 - (iqs % 8))) & 256)] >> (16 * (idx % 2));
634
- const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy);
634
+ const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); // vec4 used due to #12147
635
635
636
636
buf_a[buf_idx ] = FLOAT_TYPE(v.x);
637
637
buf_a[buf_idx + 1] = FLOAT_TYPE(v.y);
0 commit comments