| ; RUN: opt -loop-rotate -enable-mssa-loop-dependency %s -S | FileCheck %s |
| ; REQUIRES: asserts |
| |
| ; Check that loop rotate keeps proper mapping between cloned instructions, |
| ; otherwise, MemorySSA will assert. |
| |
| ; CHECK-LABEL: @f |
| define void @f() { |
| entry: |
| br label %for.body16 |
| |
| for.cond.cleanup15: ; preds = %for.body16 |
| ret void |
| |
| for.body16: ; preds = %for.body16.for.body16_crit_edge, %entry |
| %call.i = tail call float @expf(float 0.000000e+00) #1 |
| %0 = load float*, float** undef, align 8 |
| br i1 undef, label %for.cond.cleanup15, label %for.body16.for.body16_crit_edge |
| |
| for.body16.for.body16_crit_edge: ; preds = %for.body16 |
| %.pre = load float, float* undef, align 8 |
| br label %for.body16 |
| } |
| |
| declare float @expf(float) |
| |