1. 10 Mar, 2018 2 commits
  2. 09 Mar, 2018 37 commits
  3. 08 Mar, 2018 1 commit
    • Ian Romanick's avatar
      nir: Don't i2b a value that is already Boolean · 6878c9aa
      Ian Romanick authored
      A bunch of shaders have sequences like:
      
          i2b(u2i(floatBitsToUint(intBitsToFloat(x == y ? -1 : 0))))
      
      Other optimizations (and NIR's typeless nature) reduce this to
      
          i2b(x == y)
      
      which is silly.
      
      Skylake
      total instructions in shared programs: 14498698 -> 14497948 (<.01%)
      instructions in affected programs: 74480 -> 73730 (-1.01%)
      helped: 277
      HURT: 0
      helped stats (abs) min: 1 max: 32 x̄: 2.71 x̃: 2
      helped stats (rel) min: 0.04% max: 13.79% x̄: 1.45% x̃: 0.68%
      95% mean confidence interval for instructions value: -3.35 -2.06
      95% mean confidence interval for instructions %-change: -1.74% -1.16%
      Instructions are helped.
      
      total cycles in shared programs: 532015500 -> 531999238 (<.01%)
      cycles in affected programs: 5943878 -> 5927616 (-0.27%)
      helped: 251
      HURT: 74
      helped stats (abs) min: 1 max: 13149 x̄: 127.89 x̃: 14
      helped stats (rel) min: 0.01% max: 17.31% x̄: 1.55% x̃: 0.53%
      HURT stats (abs)   min: 1 max: 4550 x̄: 214.04 x̃: 15
      HURT stats (rel)   min: <.01% max: 44.43% x̄: 2.81% x̃: 0.33%
      95% mean confidence interval for cycles value: -158.51 58.43
      95% mean confidence interval for cycles %-change: -1.07% -0.04%
      Inconclusive result (value mean confidence interval includes 0).
      
      total loops in shared programs: 4753 -> 4735 (-0.38%)
      loops in affected programs: 18 -> 0
      helped: 18
      HURT: 0
      helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
      helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
      95% mean confidence interval for loops value: -1.00 -1.00
      95% mean confidence interval for loops %-change: -100.00% -100.00%
      Loops are helped.
      
      Haswell and Broadwell had simliar results. (Broadwell shown)
      total instructions in shared programs: 14791877 -> 14791127 (<.01%)
      instructions in affected programs: 77326 -> 76576 (-0.97%)
      helped: 278
      HURT: 1
      helped stats (abs) min: 1 max: 32 x̄: 2.70 x̃: 2
      helped stats (rel) min: 0.04% max: 13.79% x̄: 1.42% x̃: 0.68%
      HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
      HURT stats (rel)   min: 0.49% max: 0.49% x̄: 0.49% x̃: 0.49%
      95% mean confidence interval for instructions value: -3.33 -2.05
      95% mean confidence interval for instructions %-change: -1.70% -1.13%
      Instructions are helped.
      
      total cycles in shared programs: 558250067 -> 558252872 (<.01%)
      cycles in affected programs: 5806328 -> 5809133 (0.05%)
      helped: 235
      HURT: 83
      helped stats (abs) min: 1 max: 10630 x̄: 81.73 x̃: 16
      helped stats (rel) min: 0.03% max: 18.58% x̄: 1.60% x̃: 0.51%
      HURT stats (abs)   min: 1 max: 10590 x̄: 265.19 x̃: 20
      HURT stats (rel)   min: <.01% max: 15.28% x̄: 1.89% x̃: 0.54%
      95% mean confidence interval for cycles value: -89.87 107.51
      95% mean confidence interval for cycles %-change: -1.06% -0.32%
      Inconclusive result (value mean confidence interval includes 0).
      
      total loops in shared programs: 4735 -> 4717 (-0.38%)
      loops in affected programs: 18 -> 0
      helped: 18
      HURT: 0
      helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
      helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
      95% mean confidence interval for loops value: -1.00 -1.00
      95% mean confidence interval for loops %-change: -100.00% -100.00%
      Loops are helped.
      
      total fills in shared programs: 83111 -> 83110 (<.01%)
      fills in affected programs: 28 -> 27 (-3.57%)
      helped: 1
      HURT: 0
      
      Ivy Bridge
      total instructions in shared programs: 11774173 -> 11773436 (<.01%)
      instructions in affected programs: 70819 -> 70082 (-1.04%)
      helped: 267
      HURT: 0
      helped stats (abs) min: 1 max: 48 x̄: 2.76 x̃: 2
      helped stats (rel) min: 0.21% max: 19.51% x̄: 1.57% x̃: 0.63%
      95% mean confidence interval for instructions value: -3.51 -2.01
      95% mean confidence interval for instructions %-change: -1.94% -1.21%
      Instructions are helped.
      
      total cycles in shared programs: 257153833 -> 257148932 (<.01%)
      cycles in affected programs: 585341 -> 580440 (-0.84%)
      helped: 167
      HURT: 100
      helped stats (abs) min: 1 max: 1327 x̄: 44.89 x̃: 16
      helped stats (rel) min: 0.04% max: 26.54% x̄: 2.41% x̃: 0.88%
      HURT stats (abs)   min: 1 max: 200 x̄: 25.95 x̃: 16
      HURT stats (rel)   min: 0.04% max: 9.81% x̄: 1.34% x̃: 0.65%
      95% mean confidence interval for cycles value: -33.25 -3.46
      95% mean confidence interval for cycles %-change: -1.47% -0.54%
      Cycles are helped.
      
      total loops in shared programs: 3416 -> 3398 (-0.53%)
      loops in affected programs: 18 -> 0
      helped: 18
      HURT: 0
      helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
      helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
      95% mean confidence interval for loops value: -1.00 -1.00
      95% mean confidence interval for loops %-change: -100.00% -100.00%
      Loops are helped.
      
      LOST:   2
      GAINED: 0
      
      Sandy Bridge
      total instructions in shared programs: 10499306 -> 10499094 (<.01%)
      instructions in affected programs: 6051 -> 5839 (-3.50%)
      helped: 43
      HURT: 0
      helped stats (abs) min: 1 max: 32 x̄: 4.93 x̃: 2
      helped stats (rel) min: 0.39% max: 12.90% x̄: 4.29% x̃: 2.45%
      95% mean confidence interval for instructions value: -7.66 -2.20
      95% mean confidence interval for instructions %-change: -5.47% -3.12%
      Instructions are helped.
      
      total cycles in shared programs: 145862568 -> 145861370 (<.01%)
      cycles in affected programs: 61733 -> 60535 (-1.94%)
      helped: 36
      HURT: 2
      helped stats (abs) min: 16 max: 66 x̄: 36.61 x̃: 35
      helped stats (rel) min: 0.45% max: 17.31% x̄: 4.92% x̃: 2.81%
      HURT stats (abs)   min: 18 max: 102 x̄: 60.00 x̃: 60
      HURT stats (rel)   min: 1.10% max: 1.85% x̄: 1.48% x̃: 1.48%
      95% mean confidence interval for cycles value: -41.28 -21.77
      95% mean confidence interval for cycles %-change: -6.16% -3.00%
      Cycles are helped.
      
      total loops in shared programs: 1803 -> 1785 (-1.00%)
      loops in affected programs: 18 -> 0
      helped: 18
      HURT: 0
      helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
      helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
      95% mean confidence interval for loops value: -1.00 -1.00
      95% mean confidence interval for loops %-change: -100.00% -100.00%
      Loops are helped.
      
      LOST:   4
      GAINED: 0
      
      No changes on Iron Lake of GM45.
      Signed-off-by: default avatarIan Romanick <ian.d.romanick@intel.com>
      Reviewed-by: Samuel Iglesias Gonsálvez's avatarSamuel Iglesias Gonsálvez <siglesias@igalia.com>
      6878c9aa