<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 --- - Infinite loop in DAGCombine trying to combine fmuls"
   href="http://llvm.org/bugs/show_bug.cgi?id=22698">22698</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Infinite loop in DAGCombine trying to combine fmuls
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.6
          </td>
        </tr>

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

        <tr>
          <th>OS</th>
          <td>Windows NT
          </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>Common Code Generator Code
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>michael.m.kuperstein@intel.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>hans@chromium.org, llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Happens both in 3.6 and trunk.

To reproduce, run through llc:

target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"

; Function Attrs: nounwind readnone uwtable
define <4 x float> @foo(<4 x float> %a) #0 {
entry:
  %add.i = fadd fast <4 x float> %a, %a
  %add.i13 = fadd fast <4 x float> %add.i, %add.i
  %add.i12 = fadd fast <4 x float> %add.i13, %add.i13
  %add.i11 = fadd fast <4 x float> %add.i12, %add.i12
  ret <4 x float> %add.i11
}

attributes #0 = { nounwind readnone uwtable "less-precise-fpmad"="false"
"no-frame-pointer-elim"="false" "no-infs-fp-math"="true"
"no-nans-fp-math"="true" "stack-protector-buffer-size"="8"
"unsafe-fp-math"="true" "use-soft-float"="false" }

!llvm.module.flags = !{!0}
!llvm.ident = !{!1}

!0 = !{i32 1, !"PIC Level", i32 2}
!1 = !{!"clang version 3.7.0 (trunk 229307) (llvm/trunk 229306)"}

I believe this is a regression from 3.5. 
At the very least, this is a regression on the Clang level (don't have 3.5
built right now, but tried running the C source that produced it through
gcc.godbolt, 3.5 succeeds, 3.6 rc2 and 3.7 fail).</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>