<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:jfonseca@vmware.com" title="José Fonseca <jfonseca@vmware.com>"> <span class="fn">José Fonseca</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [llvmpipe] lp_test_arit fails on old CPUs"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=67672">bug 67672</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>jfonseca@vmware.com
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Assignee</td>
           <td>mesa-dev@lists.freedesktop.org
           </td>
           <td>sroland@vmware.com
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Summary</td>
           <td>9.2 git, Test failure in src/gallium/drivers/llvmpipe
           </td>
           <td>[llvmpipe] lp_test_arit fails on old CPUs
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [llvmpipe] lp_test_arit fails on old CPUs"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=67672#c26">Comment # 26</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [llvmpipe] lp_test_arit fails on old CPUs"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=67672">bug 67672</a>
              from <span class="vcard"><a class="email" href="mailto:jfonseca@vmware.com" title="José Fonseca <jfonseca@vmware.com>"> <span class="fn">José Fonseca</span></a>
</span></b>
        <pre>(In reply to Roland Scheidegger from <a href="show_bug.cgi?id=67672#c25">comment #25</a>)
<span class="quote">> Could you try this fix?</span >

It's straighfoward to repro the bug on any modern CPU with
<a href="https://software.intel.com/en-us/articles/intel-software-development-emulator">https://software.intel.com/en-us/articles/intel-software-development-emulator</a> :

$ GALLIUM_DUMP_CPU=1 /var/lib/hudson/tools/lin64/sde/sde64  -p4p --
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_arit
util_cpu_caps.nr_cpus = 8
util_cpu_caps.x86_cpu_type = 8
util_cpu_caps.cacheline = 64
util_cpu_caps.has_tsc = 1
util_cpu_caps.has_mmx = 1
util_cpu_caps.has_mmx2 = 1
util_cpu_caps.has_sse = 1
util_cpu_caps.has_sse2 = 1
util_cpu_caps.has_sse3 = 1
util_cpu_caps.has_ssse3 = 0
util_cpu_caps.has_sse4_1 = 0
util_cpu_caps.has_sse4_2 = 0
util_cpu_caps.has_avx = 0
util_cpu_caps.has_avx2 = 0
util_cpu_caps.has_f16c = 0
util_cpu_caps.has_popcnt = 0
util_cpu_caps.has_3dnow = 0
util_cpu_caps.has_3dnow_ext = 0
util_cpu_caps.has_xop = 0
util_cpu_caps.has_altivec = 0
util_cpu_caps.has_daz = 1
floor(-0): ref = -1, out = 0, precision = -0.000000 bits, FAIL
ceil(0): ref = 1, out = 0, precision = -0.000000 bits, FAIL
fract(-0): ref = 0.99999994, out = -0, precision = -0.000000 bits, FAIL


And I've verified that Roland's patch fixes it:

$ GALLIUM_DUMP_CPU=1 /var/lib/hudson/tools/lin64/sde/sde64  -p4p --
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_arit
util_cpu_caps.nr_cpus = 8
util_cpu_caps.x86_cpu_type = 8
util_cpu_caps.cacheline = 64
util_cpu_caps.has_tsc = 1
util_cpu_caps.has_mmx = 1
util_cpu_caps.has_mmx2 = 1
util_cpu_caps.has_sse = 1
util_cpu_caps.has_sse2 = 1
util_cpu_caps.has_sse3 = 1
util_cpu_caps.has_ssse3 = 0
util_cpu_caps.has_sse4_1 = 0
util_cpu_caps.has_sse4_2 = 0
util_cpu_caps.has_avx = 0
util_cpu_caps.has_avx2 = 0
util_cpu_caps.has_f16c = 0
util_cpu_caps.has_popcnt = 0
util_cpu_caps.has_3dnow = 0
util_cpu_caps.has_3dnow_ext = 0
util_cpu_caps.has_xop = 0
util_cpu_caps.has_altivec = 0
util_cpu_caps.has_daz = 1
$

Roland, I just have a few suggestiongs for the patch:
- let's move the FTZ/DAZ code two an helpers 
- we should call the helper also on the results
- we should leave the sign bit alone, ie, `val.ui &= 0xff800000` -> `val.ui &=
0x7f800000`.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>