| ; RUN: opt -reassociate %s -S -o - | FileCheck %s |
| |
| ; Reassociate pass used to crash on these example |
| |
| |
| define float @undef1() { |
| wrapper_entry: |
| ; CHECK-LABEL: @undef1 |
| ; CHECK: ret float fadd (float undef, float fadd (float undef, float fadd (float fsub (float -0.000000e+00, float undef), float fsub (float -0.000000e+00, float undef)))) |
| %0 = fadd fast float undef, undef |
| %1 = fsub fast float undef, %0 |
| %2 = fadd fast float undef, %1 |
| ret float %2 |
| } |
| |
| define void @undef2() { |
| wrapper_entry: |
| ; CHECK-LABEL: @undef2 |
| ; CHECK: unreachable |
| %0 = fadd fast float undef, undef |
| %1 = fadd fast float %0, 1.000000e+00 |
| %2 = fsub fast float %0, %1 |
| %3 = fmul fast float %2, 2.000000e+00 |
| unreachable |
| } |