teak-llvm/llvm/test/CodeGen/X86/codegen-prepare-collapse.ll
Valentin Churavy 5c29e8c65f [CodegenPrepare] Guard against degenerate branches
Summary:
Guard against a potential crash observed in https://github.com/JuliaLang/julia/issues/32994#issuecomment-524249628
If two branches are collapsed we can encounter a degenerate conditional branch `TBB==FBB`.
The subsequent code assumes that they differ, so we exit out early.

Reviewers: ributzka, spatel

Subscribers: loladiro, dexonsmith, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66657
2019-12-16 04:23:32 -05:00

19 lines
634 B
LLVM

; RUN: llc -fast-isel=true -O1 -mtriple=x86_64-unkown-linux-gnu -start-before=codegenprepare -stop-after=codegenprepare -o - < %s | FileCheck %s
; CHECK-LABEL: @foo
define void @foo() {
top:
; CHECK: br label %L34
br label %L34
L34: ; preds = %L34, %L34, %top
%.sroa.075.0 = phi i64 [ undef, %top ], [ undef, %L34 ], [ undef, %L34 ]
%0 = icmp sgt i8 undef, -1
%cond5896 = icmp eq i8 0, 2
%cond58 = and i1 %cond5896, %0
; During codegenprepare such degenerate branches can occur and should not
; lead to crashes.
; CHECK: br label %L34
br i1 %cond58, label %L34, label %L34
}