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

34 lines
1003 B
LLVM

; RUN: opt -passes=licm -verify-memoryssa -S < %s | FileCheck %s
; REQUIRES: asserts
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64"
; CHECK-LABEL: @e(i1 %arg)
define void @e(i1 %arg) {
entry:
br label %g
g: ; preds = %cleanup, %entry
%0 = load i32, ptr null, align 4
%and = and i32 %0, undef
store i32 %and, ptr null, align 4
br i1 %arg, label %if.end8, label %if.then
if.then: ; preds = %g
br i1 %arg, label %k, label %cleanup
k: ; preds = %if.end8, %if.then
br i1 %arg, label %if.end8, label %cleanup
if.end8: ; preds = %k, %g
br i1 %arg, label %for.cond.preheader, label %k
for.cond.preheader: ; preds = %if.end8
unreachable
cleanup: ; preds = %k, %if.then
br label %g
}