The register `vZZ.16b` is expected to be always 0 throughout the macros in `cipher/cipher-gcm-armv8-aarch64-ce.S`. The `PMUL_128x128` and `REDUCTION` macros are used in `gcry_ghash_setup_armv8_ce_pmull` function, however that function does not set `vZZ.16b` to zero. If previous use left ``vZZ.16b` non-zero before `gcry_ghash_setup_armv8_ce_pmull` is called, this will cause invalid GCM auth tag results.
The patch resets `vZZ.16b` to 0 at the beginning of `gcry_ghash_setup_armv8_ce_pmull`.