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

45 lines
1.9 KiB
LLVM

; RUN: opt -disable-basic-aa -passes=loop-rotate -verify-memoryssa -S %s | FileCheck %s
; REQUIRES: asserts
; CHECK-LABEL: @f_w4_i2
define void @f_w4_i2(i1 %arg) {
entry:
br label %for.cond
for.cond: ; preds = %for.body, %entry
%i.0 = phi i16 [ 0, %entry ], [ %inc, %for.body ]
call void @llvm.dbg.value(metadata i16 %i.0, metadata !32, metadata !DIExpression()), !dbg !31
br i1 %arg, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
ret void
for.body: ; preds = %for.cond
store i32 undef, ptr undef, align 1
%inc = add i16 %i.0, 1
call void @llvm.dbg.value(metadata i16 %inc, metadata !32, metadata !DIExpression()), !dbg !31
br label %for.cond
}
; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
attributes #1 = { nounwind readnone speculatable willreturn }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!14}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 10.0.0s", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, nameTableKind: None)
!1 = !DIFile(filename: "vec.c", directory: "test")
!2 = !{}
!3 = !{!4}
!4 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed)
!14 = !{i32 2, !"Debug Info Version", i32 3}
!15 = distinct !DISubprogram(name: "f_w4_i2", scope: !1, file: !1, line: 36, type: !16, scopeLine: 38, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !23)
!16 = !DISubroutineType(types: !17)
!17 = !{null}
!23 = !{}
!30 = distinct !DILexicalBlock(scope: !15, file: !1, line: 43, column: 5)
!31 = !DILocation(line: 0, scope: !30)
!32 = !DILocalVariable(name: "i", scope: !30, file: !1, line: 43, type: !4)