[crypto/ec] Remove unreachable AVX2 code in NISTZ256 implementation
authorNicola Tuveri <nic.tuv@gmail.com>
Tue, 2 Jun 2020 18:06:48 +0000 (21:06 +0300)
committerNicola Tuveri <nic.tuv@gmail.com>
Thu, 4 Jun 2020 15:35:28 +0000 (18:35 +0300)
commit00da0f69890874feaa555fafb99b967b861e9118
tree4944cb3dbbc87f908f8923bb1172fc3642daff9b
parentc1fd005bfc80412efd7d0807256ef5815997edef
[crypto/ec] Remove unreachable AVX2 code in NISTZ256 implementation

`crypto/ec/ecp_nistz256.c` contained code sections guarded by a
`ECP_NISTZ256_AVX2` define.

The relevant comment read:

> /*
>  * Note that by default ECP_NISTZ256_AVX2 is undefined. While it's great
>  * code processing 4 points in parallel, corresponding serial operation
>  * is several times slower, because it uses 29x29=58-bit multiplication
>  * as opposite to 64x64=128-bit in integer-only scalar case. As result
>  * it doesn't provide *significant* performance improvement. Note that
>  * just defining ECP_NISTZ256_AVX2 is not sufficient to make it work,
>  * you'd need to compile even asm/ecp_nistz256-avx.pl module.
>  */

Without diminishing the quality of the original submission, it's evident
that this code has been basically unreachable without modifications to
the library source code and is under-tested.

This commit removes these sections from the codebase.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/12019)
crypto/ec/asm/ecp_nistz256-avx2.pl [deleted file]
crypto/ec/ecp_nistz256.c