spirv: Use a simpler and more correct implementaiton of tanh()
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 9 Dec 2016 17:34:50 +0000 (09:34 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 10 Dec 2016 02:38:21 +0000 (18:38 -0800)
commitda1c49171d0df185545cfbbd600e287f7c6160fa
treef344d29affe732755dc68fdca2d06676e0e566e4
parent9807f502eb7a023be619a14119388b2a43271b0e
spirv: Use a simpler and more correct implementaiton of tanh()

The new implementation is more correct because it clamps the incoming value
to 10 to avoid floating-point overflow.  It also uses a much reduced
version of the formula which only requires 1 exp() rather than 2.  This
fixes all of the dEQP-VK.glsl.builtin.precision.tanh.* tests.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "13.0" <mesa-dev@lists.freedesktop.org>
src/compiler/spirv/vtn_glsl450.c