llvm-project/llvm/test/Analysis/MemorySSA/loop-rotate-valuemap.ll
Lee Wei 1469d82e1c
Remove br i1 undef from some regression tests [NFC] (#115130)
As defined in LangRef, branching on `undef` is undefined behavior.
This PR aims to remove undefined behavior from tests. As UB tests break
Alive2 and may be the root cause of breaking future optimizations.

Here's an Alive2 proof for one of the examples:
https://alive2.llvm.org/ce/z/TncxhP
2024-11-07 08:11:15 +00:00

27 lines
786 B
LLVM

; RUN: opt -passes=loop-rotate %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(i1 %arg) {
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 ptr, ptr undef, align 8
br i1 %arg, label %for.cond.cleanup15, label %for.body16.for.body16_crit_edge
for.body16.for.body16_crit_edge: ; preds = %for.body16
%.pre = load float, ptr undef, align 8
br label %for.body16
}
declare float @expf(float)