Skip to content
  • Ian Romanick's avatar
    nir: Be more conservative about rearranging or-compounded compares · 3941cba0
    Ian Romanick authored
    
    
    If both comparisons are used as sources for instructions other than the
    ior, this transformation is detrimental.  If the non-identical value in
    both compares is constant, the fmin or fmax will be constant-folded
    away, so the transformation is always a win.
    
    shader-db results:
    
    Skylake
    total instructions in shared programs: 14526147 -> 14525898 (<.01%)
    instructions in affected programs: 70239 -> 69990 (-0.35%)
    helped: 102
    HURT: 0
    helped stats (abs) min: 1 max: 8 x̄: 2.44 x̃: 1
    helped stats (rel) min: 0.07% max: 2.30% x̄: 0.38% x̃: 0.20%
    95% mean confidence interval for instructions value: -2.86 -2.02
    95% mean confidence interval for instructions %-change: -0.46% -0.31%
    Instructions are helped.
    
    total cycles in shared programs: 533120531 -> 533119892 (<.01%)
    cycles in affected programs: 994875 -> 994236 (-0.06%)
    helped: 76
    HURT: 26
    helped stats (abs) min: 1 max: 324 x̄: 27.09 x̃: 13
    helped stats (rel) min: <.01% max: 4.21% x̄: 0.45% x̃: 0.18%
    HURT stats (abs)   min: 1 max: 167 x̄: 54.62 x̃: 26
    HURT stats (rel)   min: <.01% max: 4.36% x̄: 1.01% x̃: 0.39%
    95% mean confidence interval for cycles value: -19.44 6.91
    95% mean confidence interval for cycles %-change: -0.30% 0.15%
    Inconclusive result (value mean confidence interval includes 0).
    
    Broadwell
    total instructions in shared programs: 14816005 -> 14815787 (<.01%)
    instructions in affected programs: 64658 -> 64440 (-0.34%)
    helped: 97
    HURT: 0
    helped stats (abs) min: 1 max: 8 x̄: 2.25 x̃: 1
    helped stats (rel) min: 0.07% max: 2.30% x̄: 0.38% x̃: 0.20%
    95% mean confidence interval for instructions value: -2.62 -1.87
    95% mean confidence interval for instructions %-change: -0.45% -0.30%
    Instructions are helped.
    
    total cycles in shared programs: 559340386 -> 559339907 (<.01%)
    cycles in affected programs: 1090491 -> 1090012 (-0.04%)
    helped: 66
    HURT: 28
    helped stats (abs) min: 2 max: 198 x̄: 23.83 x̃: 16
    helped stats (rel) min: 0.01% max: 4.21% x̄: 0.47% x̃: 0.27%
    HURT stats (abs)   min: 2 max: 226 x̄: 39.07 x̃: 11
    HURT stats (rel)   min: <.01% max: 4.61% x̄: 0.64% x̃: 0.20%
    95% mean confidence interval for cycles value: -15.94 5.75
    95% mean confidence interval for cycles %-change: -0.35% 0.07%
    Inconclusive result (value mean confidence interval includes 0).
    
    LOST:   0
    GAINED: 1
    
    Haswell
    total instructions in shared programs: 9034106 -> 9033948 (<.01%)
    instructions in affected programs: 24096 -> 23938 (-0.66%)
    helped: 38
    HURT: 0
    helped stats (abs) min: 1 max: 8 x̄: 4.16 x̃: 4
    helped stats (rel) min: 0.42% max: 2.29% x̄: 0.71% x̃: 0.64%
    95% mean confidence interval for instructions value: -4.71 -3.60
    95% mean confidence interval for instructions %-change: -0.84% -0.58%
    Instructions are helped.
    
    total cycles in shared programs: 84631628 -> 84631402 (<.01%)
    cycles in affected programs: 148674 -> 148448 (-0.15%)
    helped: 14
    HURT: 14
    helped stats (abs) min: 1 max: 114 x̄: 22.14 x̃: 12
    helped stats (rel) min: 0.02% max: 2.98% x̄: 0.66% x̃: 0.21%
    HURT stats (abs)   min: 1 max: 10 x̄: 6.00 x̃: 5
    HURT stats (rel)   min: 0.01% max: 0.20% x̄: 0.12% x̃: 0.11%
    95% mean confidence interval for cycles value: -19.42 3.28
    95% mean confidence interval for cycles %-change: -0.59% 0.05%
    Inconclusive result (value mean confidence interval includes 0).
    
    Ivy Bridge
    total instructions in shared programs: 10015456 -> 10015293 (<.01%)
    instructions in affected programs: 27701 -> 27538 (-0.59%)
    helped: 38
    HURT: 0
    helped stats (abs) min: 1 max: 9 x̄: 4.29 x̃: 4
    helped stats (rel) min: 0.33% max: 2.79% x̄: 0.66% x̃: 0.52%
    95% mean confidence interval for instructions value: -4.87 -3.71
    95% mean confidence interval for instructions %-change: -0.82% -0.51%
    Instructions are helped.
    
    total cycles in shared programs: 87524771 -> 87524569 (<.01%)
    cycles in affected programs: 112324 -> 112122 (-0.18%)
    helped: 6
    HURT: 12
    helped stats (abs) min: 2 max: 111 x̄: 44.67 x̃: 20
    helped stats (rel) min: 0.02% max: 2.94% x̄: 1.45% x̃: 1.26%
    HURT stats (abs)   min: 1 max: 16 x̄: 5.50 x̃: 5
    HURT stats (rel)   min: <.01% max: 0.16% x̄: 0.08% x̃: 0.08%
    95% mean confidence interval for cycles value: -29.14 6.69
    95% mean confidence interval for cycles %-change: -0.93% 0.08%
    Inconclusive result (value mean confidence interval includes 0).
    
    LOST:   0
    GAINED: 2
    
    Sandy Bridge
    total instructions in shared programs: 10545655 -> 10545465 (<.01%)
    instructions in affected programs: 37198 -> 37008 (-0.51%)
    helped: 42
    HURT: 0
    helped stats (abs) min: 1 max: 8 x̄: 4.52 x̃: 4
    helped stats (rel) min: 0.31% max: 2.15% x̄: 0.58% x̃: 0.49%
    95% mean confidence interval for instructions value: -5.14 -3.91
    95% mean confidence interval for instructions %-change: -0.68% -0.47%
    Instructions are helped.
    
    total cycles in shared programs: 146113059 -> 146112427 (<.01%)
    cycles in affected programs: 423514 -> 422882 (-0.15%)
    helped: 32
    HURT: 10
    helped stats (abs) min: 4 max: 162 x̄: 24.34 x̃: 12
    helped stats (rel) min: 0.06% max: 2.74% x̄: 0.37% x̃: 0.11%
    HURT stats (abs)   min: 12 max: 19 x̄: 14.70 x̃: 14
    HURT stats (rel)   min: 0.10% max: 0.18% x̄: 0.16% x̃: 0.14%
    95% mean confidence interval for cycles value: -26.03 -4.07
    95% mean confidence interval for cycles %-change: -0.43% -0.05%
    Cycles are helped.
    
    Iron Lake
    total instructions in shared programs: 7886959 -> 7886925 (<.01%)
    instructions in affected programs: 1340 -> 1306 (-2.54%)
    helped: 4
    HURT: 0
    helped stats (abs) min: 2 max: 15 x̄: 8.50 x̃: 8
    helped stats (rel) min: 0.63% max: 4.30% x̄: 2.45% x̃: 2.43%
    95% mean confidence interval for instructions value: -20.44 3.44
    95% mean confidence interval for instructions %-change: -5.78% 0.89%
    Inconclusive result (value mean confidence interval includes 0).
    
    total cycles in shared programs: 178116996 -> 178116888 (<.01%)
    cycles in affected programs: 6262 -> 6154 (-1.72%)
    helped: 2
    HURT: 2
    helped stats (abs) min: 44 max: 78 x̄: 61.00 x̃: 61
    helped stats (rel) min: 3.31% max: 3.94% x̄: 3.62% x̃: 3.62%
    HURT stats (abs)   min: 6 max: 8 x̄: 7.00 x̃: 7
    HURT stats (rel)   min: 0.34% max: 0.68% x̄: 0.51% x̃: 0.51%
    95% mean confidence interval for cycles value: -93.27 39.27
    95% mean confidence interval for cycles %-change: -5.38% 2.27%
    Inconclusive result (value mean confidence interval includes 0).
    
    GM45
    total instructions in shared programs: 4857887 -> 4857870 (<.01%)
    instructions in affected programs: 674 -> 657 (-2.52%)
    helped: 2
    HURT: 0
    
    total cycles in shared programs: 122180816 -> 122180744 (<.01%)
    cycles in affected programs: 3764 -> 3692 (-1.91%)
    helped: 1
    HURT: 1
    helped stats (abs) min: 78 max: 78 x̄: 78.00 x̃: 78
    helped stats (rel) min: 3.94% max: 3.94% x̄: 3.94% x̃: 3.94%
    HURT stats (abs)   min: 6 max: 6 x̄: 6.00 x̃: 6
    HURT stats (rel)   min: 0.34% max: 0.34% x̄: 0.34% x̃: 0.34%
    
    Signed-off-by: default avatarIan Romanick <ian.d.romanick@intel.com>
    Reviewed-by: default avatarSamuel Iglesias Gonsálvez <siglesias@igalia.com>
    Reviewed-by: default avatarElie Tournier <elie.tournier@collabora.com>
    3941cba0