• Russell Graves's avatar
    arm neon qdmull: Fix SQDMULL implementation for 32-bit inputs. (#1255) · d95bd9d7
    Russell Graves authored
    The non-vectorized SQDMULL implementation was wrong for 32-bit
    inputs.  It incorrectly checked one of the operands to see if the
    value would overflow before doubling it, not the result of the
    initial multiplication.  It now matches the 16-bit operand version,
    and also matches hardware.  A test has been added for the scalar
    form of the function, testing a range of values that will saturate
    when multiplied and doubled.  This set of test vectors was produced
    on an ARMv9 machine (Google Cloud box), failed tests on x86 with the
    existing code, and passes with the modified code.
    d95bd9d7
qdmull.h 6.61 KB