-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
srai_epi16 expects an immediate shift value, not a variable.
Here's it is called with a variable:
intgemm/kernels/implementations.inl
Lines 308 to 309 in 61bcbae
| auto low = srai_epi16(multiply<int16_t>(upcasted_a.first, upcasted_b.first), right_shift); | |
| auto hi = srai_epi16(multiply<int16_t>(upcasted_a.second, upcasted_b.second), right_shift); |
And the caller is very much using a variable:
intgemm/test/kernels/multiply_sat_test.cc
Lines 24 to 25 in 61bcbae
| for (std::size_t shift = 0; shift <= 2 * 8 * sizeof(Type_); ++shift) { | |
| *output.template as<vec_t>() = kernels::multiply_sat<Type_>(*input1.template as<vec_t>(), *input2.template as<vec_t>(), shift); |
I don't know how newer gcc was fixing it (perhaps srav?) but it's breaking gcc 6.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels