i965/vec4: Optimize sqrt+inv into rsq.
authorMatt Turner <mattst88@gmail.com>
Sat, 27 Sep 2014 17:34:27 +0000 (10:34 -0700)
committerMatt Turner <mattst88@gmail.com>
Wed, 1 Oct 2014 00:09:34 +0000 (17:09 -0700)
commitb52126b44f40643aa2c0986c1d51330f4e4130b5
treeb672ec0a1b2a26dc611c44d951772c7b78f5ffaa
parent189ac077644c4ef2c6c15080b6d094410c74abdc
i965/vec4: Optimize sqrt+inv into rsq.

Transform

   sqrt a, b
   rcp  c, a

into

   sqrt a, b
   rsq  c, b

In most cases the sqrt's result is still used, so the improvement here
is that we've broken a dependency between these instructions. Leads to
80 fewer INV instructions and 80 more RSQ.

Occasionally the sqrt's result is no longer used, leading to:

instructions in affected programs:     5005 -> 4949 (-1.12%)

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/dri/i965/brw_vec4.cpp