Skip to content
  • Ian Romanick's avatar
    nir: Replace an odd comparison involving fmin of -b2f · f50400cc
    Ian Romanick authored
    
    
    I noticed the fge version while looking at a shader for an unrelated
    reason.  The feq version prevents a regression in a later change that
    performs strength reduction of some compares.
    
    Broadwell and Skylake had similar results. (Skylake shown)
    total instructions in shared programs: 14514808 -> 14514796 (<.01%)
    instructions in affected programs: 750 -> 738 (-1.60%)
    helped: 4
    HURT: 0
    helped stats (abs) min: 1 max: 5 x̄: 3.00 x̃: 3
    helped stats (rel) min: 0.83% max: 1.96% x̄: 1.40% x̃: 1.40%
    95% mean confidence interval for instructions value: -6.67 0.67
    95% mean confidence interval for instructions %-change: -2.43% -0.36%
    Inconclusive result (value mean confidence interval includes 0).
    
    total cycles in shared programs: 533144939 -> 533144853 (<.01%)
    cycles in affected programs: 8911 -> 8825 (-0.97%)
    helped: 4
    HURT: 0
    helped stats (abs) min: 16 max: 32 x̄: 21.50 x̃: 19
    helped stats (rel) min: 0.60% max: 1.89% x̄: 1.28% x̃: 1.31%
    95% mean confidence interval for cycles value: -32.94 -10.06
    95% mean confidence interval for cycles %-change: -2.30% -0.26%
    Cycles are helped.
    
    Haswell
    total instructions in shared programs: 13093785 -> 13093775 (<.01%)
    instructions in affected programs: 924 -> 914 (-1.08%)
    helped: 4
    HURT: 2
    helped stats (abs) min: 1 max: 5 x̄: 3.00 x̃: 3
    helped stats (rel) min: 0.82% max: 1.95% x̄: 1.39% x̃: 1.39%
    HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
    HURT stats (rel)   min: 1.19% max: 1.19% x̄: 1.19% x̃: 1.19%
    95% mean confidence interval for instructions value: -4.53 1.20
    95% mean confidence interval for instructions %-change: -2.02% 0.97%
    Inconclusive result (value mean confidence interval includes 0).
    
    total cycles in shared programs: 409580553 -> 409580118 (<.01%)
    cycles in affected programs: 10909 -> 10474 (-3.99%)
    helped: 5
    HURT: 1
    helped stats (abs) min: 6 max: 222 x̄: 89.60 x̃: 18
    helped stats (rel) min: 0.16% max: 24.72% x̄: 9.54% x̃: 1.78%
    HURT stats (abs)   min: 13 max: 13 x̄: 13.00 x̃: 13
    HURT stats (rel)   min: 0.39% max: 0.39% x̄: 0.39% x̃: 0.39%
    95% mean confidence interval for cycles value: -180.68 35.68
    95% mean confidence interval for cycles %-change: -19.55% 3.79%
    Inconclusive result (value mean confidence interval includes 0).
    
    Ivy Bridge
    total instructions in shared programs: 11811851 -> 11811840 (<.01%)
    instructions in affected programs: 1032 -> 1021 (-1.07%)
    helped: 5
    HURT: 1
    helped stats (abs) min: 1 max: 5 x̄: 2.40 x̃: 1
    helped stats (rel) min: 0.63% max: 1.95% x̄: 1.13% x̃: 0.97%
    HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
    HURT stats (rel)   min: 1.19% max: 1.19% x̄: 1.19% x̃: 1.19%
    95% mean confidence interval for instructions value: -4.17 0.51
    95% mean confidence interval for instructions %-change: -1.86% 0.36%
    Inconclusive result (value mean confidence interval includes 0).
    
    total cycles in shared programs: 257618403 -> 257618168 (<.01%)
    cycles in affected programs: 10784 -> 10549 (-2.18%)
    helped: 4
    HURT: 2
    helped stats (abs) min: 4 max: 220 x̄: 64.50 x̃: 17
    helped stats (rel) min: 0.50% max: 24.34% x̄: 7.07% x̃: 1.72%
    HURT stats (abs)   min: 9 max: 14 x̄: 11.50 x̃: 11
    HURT stats (rel)   min: 0.24% max: 0.42% x̄: 0.33% x̃: 0.33%
    95% mean confidence interval for cycles value: -133.11 54.78
    95% mean confidence interval for cycles %-change: -14.79% 5.59%
    Inconclusive result (value mean confidence interval includes 0).
    
    GM45, Iron Lake, and Sandy Bridge had similar results. (Sandy Bridge shown)
    total instructions in shared programs: 10533871 -> 10533859 (<.01%)
    instructions in affected programs: 865 -> 853 (-1.39%)
    helped: 4
    HURT: 0
    helped stats (abs) min: 1 max: 5 x̄: 3.00 x̃: 3
    helped stats (rel) min: 0.63% max: 1.83% x̄: 1.22% x̃: 1.21%
    95% mean confidence interval for instructions value: -6.67 0.67
    95% mean confidence interval for instructions %-change: -2.16% -0.29%
    Inconclusive result (value mean confidence interval includes 0).
    
    total cycles in shared programs: 146139904 -> 146139852 (<.01%)
    cycles in affected programs: 15213 -> 15161 (-0.34%)
    helped: 4
    HURT: 0
    helped stats (abs) min: 3 max: 18 x̄: 13.00 x̃: 15
    helped stats (rel) min: 0.15% max: 0.84% x̄: 0.39% x̃: 0.29%
    95% mean confidence interval for cycles value: -23.79 -2.21
    95% mean confidence interval for cycles %-change: -0.88% 0.09%
    Inconclusive result (%-change mean confidence interval includes 0).
    
    Signed-off-by: default avatarIan Romanick <ian.d.romanick@intel.com>
    Reviewed-by: default avatarSamuel Iglesias Gonsálvez <siglesias@igalia.com>
    f50400cc