Reland "align the different implementations of 1/x"
Reland "align the different implementations of 1/x"

This is a reland of 828987893bff5008fcbd15e343485b708d673b33

Addendum: I failed to make the distinction between AVX and FMA.
A machine can have AVX, but not have FMA. We encapsulate this
difference where HSW and SKX are assumed to have FMA while plain
AVX does not.

Original change's description:
> align the different implementations of 1/x
>
> Before this CL, the current rcp (1/x) calculation has enough precision
> for color calculations, but not enough for positional calculations.
>
> Introduce a new reciprocal called recip that has more precision for
> positions. On Intel, this requires the addition of a Newton-Raphson
> iterations, and ARM requires two NR iterations.
>
> Bug = skia:12453
> Change-Id: Ib04d71a653ad1326dc114316c1e909fe4d3d364c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/449194
> Reviewed-by: Brian Osman <794c0b5534edf5601d88e1d41975d0262da12894@google.com>
> Commit-Queue: Herb Derby <9e12a3d2bbf73546e47cc9958f6ba8f3215b7eaf@google.com>

Change-Id: If87764cc57319ddd3254aab2190e0a2b31af099b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451737
Reviewed-by: Brian Osman <794c0b5534edf5601d88e1d41975d0262da12894@google.com>
Commit-Queue: Herb Derby <9e12a3d2bbf73546e47cc9958f6ba8f3215b7eaf@google.com>

google/skia,aosp-mirror/platform_external_skia,google/skia,google/skia,google/skia,aosp-mirror/platform_external_skia,google/skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,aosp-mirror/platform_external_skia,google/skia,google/skia