summaryrefslogtreecommitdiffstats
path: root/src/glsl/nir/nir_live_variables.c
diff options
context:
space:
mode:
authorThomas Helland <[email protected]>2015-08-06 13:36:04 +0200
committerMatt Turner <[email protected]>2015-08-18 11:34:44 -0700
commita39167d5949c76dfb48994caead4b59ab5f80318 (patch)
tree4315cc93fbb82078da4295dd299643aff2e5bab1 /src/glsl/nir/nir_live_variables.c
parent29264d0d0cd5ca24314630d9dc22b3f971344a34 (diff)
nir: Simplify fne(fneg(a), a) -> fne(a, 0.0)
-NaN != NaN, and -Inf != Inf, so this should be safe. Found while working on my VRP pass. Shader-db results on my IVB: total instructions in shared programs: 1698267 -> 1698067 (-0.01%) instructions in affected programs: 15785 -> 15585 (-1.27%) helped: 36 HURT: 0 GAINED: 0 LOST: 0 Some shaders was found to have the following pattern in NIR: vec1 ssa_26 = fneg ssa_21 vec1 ssa_27 = fne ssa_21, ssa_26 Make that: vec1 ssa_27 = fne ssa_21, 0.0f This is found in Dota2 and Brutal Legend. One shader is cut by 8%, from 323 -> 296 instructons in SIMD8 Signed-off-by: Thomas Helland <[email protected]> Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/glsl/nir/nir_live_variables.c')
0 files changed, 0 insertions, 0 deletions