<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - MultiSource/Benchmarks/TSVC/Reductions-flt tests beyond FLT_MIN"
   href="http://llvm.org/bugs/show_bug.cgi?id=15545">15545</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>MultiSource/Benchmarks/TSVC/Reductions-flt tests beyond FLT_MIN
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Test Suite
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Nightly Tester
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>renato.golin@linaro.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=10204" name="attach_10204" title="TSVC's s317 test case">attachment 10204</a> <a href="attachment.cgi?id=10204&action=edit" title="TSVC's s317 test case">[details]</a></span>
TSVC's s317 test case

A reduced test case (attached) shows that TSVC is testing beyond the FLT_MIN
(1.7e-38):

S317     0.00         7.0065e-44 

While VFP's VMUL.f32 and the SSE/AVX equivalent do go beyond the limit (I
believe, to be IEEE consistent), NEON's VMUL.f32 does not:

<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/CJAJBEAF.html">http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/CJAJBEAF.html</a>

Most of the time, flush-to-zero is desired (and it is enabled by default on
Cortex-A5/8 and Swift), but not always. Since A8 is the default target for the
triple "armv7a-*", simple runs of LNT fail on any ARMv7 target.

I have "fixed" it by forcing -mcpu=cortex-a15 on ARM's LNT bot, but it will
still fail on A8.

Question is:

 - Is this not-a-problem (tm) and we just need to disable the NEONFP flag when
running LNT on cortex-A8?
 - Or is this a problem (maybe other archs) and we need to stop when the loop
is getting close to FLT_MIN in that particular case?

I'm fine with either solution, but would like to register the problem, so that
other people don't have to dig through layers of code to find out it was simple
in the end. ;)

I'll open another bug on ARM lowering to make sure we want to use NEON FP32
even when unsafe maths is disable.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>