Skip to content

Various kernels with 16i inputs do not handle integer overflow consistently #707

@argilo

Description

@argilo

In #77, the range of integers used when testing 16i inputs was reduced to -7 .. +7, to accommodate the volk_16ic_x2_dot_prod_16ic kernel which does not handle integer overflows consistently between its various protokernels. In fact, other kernels suffer from the same problem. If the testing range is increased to std::numeric_limits<int16_t>::min() .. std::numeric_limits<int16_t>::max(), then the following tests fail:

  • qa_volk_16i_32fc_dot_prod_32fc
  • qa_volk_16ic_magnitude_16i
  • qa_volk_16ic_x2_dot_prod_16ic
  • qa_volk_16ic_x2_multiply_16ic

Overflows in volk_16ic_x2_dot_prod_16ic cause sporadic test failures even with the reduced range, as documented in #676; #706 should improve the situation, but in the longer term, either these kernels should be improved to handle overflows consistently, or the limitations of these kernels should be documented and the test framework should ensure that inputs do not stray outside the documented limits.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions