radv: emit fmuladd instead of fma to llvm.
authorDave Airlie <airlied@redhat.com>
Wed, 4 Oct 2017 02:06:04 +0000 (03:06 +0100)
committerDave Airlie <airlied@redhat.com>
Wed, 4 Oct 2017 05:22:44 +0000 (06:22 +0100)
commit4e93d6baae2d00540b9bee0decff700d1aa6b247
tree869c8053b34dc92ea7cdae1dd0b07116d52707f7
parentb2dce27373ef40d841f86d7328c65b9a5802f4c1
radv: emit fmuladd instead of fma to llvm.

For Vulkan SPIR-V the spec states
fma() Inherited from OpFMul followed by OpFAdd.

Matt says the backend will do the right thing depending on the
hardware being compiled for, if you use the fmuladd intrinsic.

Using the Mad Max pts test, on high settings at 4K:
CHP: 55->60
HGDD: 46->50
LM: 55->60
No change on Stronghold.

Thanks to Feral for spending the time to track this down.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_nir_to_llvm.c