<html>
    <head>
      <base href="https://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 --- - Suboptimal across lane float min/max reduction"
   href="https://llvm.org/bugs/show_bug.cgi?id=25146">25146</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Suboptimal across lane float min/max reduction
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </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>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Backend: AArch64
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>charlesturner7c5@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=15056" name="attach_15056" title="LLVM function showing missed opportunity.">attachment 15056</a> <a href="attachment.cgi?id=15056&action=edit" title="LLVM function showing missed opportunity.">[details]</a></span>
LLVM function showing missed opportunity.

For the attached test case, I'm seeing codegen with some room for improvement.

oversized_f_fmaxvec:                    // @oversized_f_fmaxvec
        .cfi_startproc
// BB#0:
        ldp     q0, q1, [x0, #32]
        ldp             q3, q2, [x0]
        fmaxnm  v4.4s, v0.4s, v0.4s
        fmaxnm  v5.4s, v1.4s, v0.4s
        fmaxnm  v1.4s, v2.4s, v1.4s
        fmaxnm  v0.4s, v3.4s, v0.4s
        fmaxnm  v0.4s, v0.4s, v1.4s
        fmaxnm  v1.4s, v1.4s, v0.4s
        fmaxnm  v2.4s, v5.4s, v0.4s
        fmaxnm  v3.4s, v4.4s, v0.4s
        ext     v4.16b, v0.16b, v0.16b, #8
        fmaxnm  v3.4s, v3.4s, v0.4s
        fmaxnm  v2.4s, v2.4s, v0.4s
        fmaxnm  v1.4s, v1.4s, v0.4s
        fmaxnm  v0.4s, v0.4s, v4.4s
        fcmge   v1.4s, v1.4s, v0.4s
        fcmge   v2.4s, v2.4s, v0.4s
        fcmge   v3.4s, v3.4s, v0.4s
        dup     v4.4s, v0.s[1]
        xtn     v1.4h, v1.4s
        xtn     v2.4h, v2.4s
        xtn     v3.4h, v3.4s
        fcmge   v4.4s, v0.4s, v4.4s
        uzp1    v2.8b, v3.8b, v2.8b
        xtn     v3.4h, v4.4s
        shl     v2.8b, v2.8b, #7
        uzp1    v1.8b, v3.8b, v1.8b
        sshr    v2.8b, v2.8b, #7
        shl     v1.8b, v1.8b, #7
        sshr    v1.8b, v1.8b, #7
        ins     v1.d[1], v2.d[0]
        shl     v1.16b, v1.16b, #7
        sshr    v1.16b, v1.16b, #7
        umov    w8, v1.b[0]
        mov     s1, v0.s[1]
        tst      w8, #0x1
        fcsel   s0, s0, s1, ne
        ret

I expect to see the FMAXNMV used here instead. I think r249834 was moving in
this direction.</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>