; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=gvn -S | FileCheck %s

; This test checks that we don't hang trying to split a critical edge in loadpre
; when the control flow uses a callbr instruction.

%struct.pluto = type <{ i8, i8 }>

define void @widget(ptr %tmp1) {
; CHECK-LABEL: @widget(
; CHECK-NEXT:  bb:
; CHECK-NEXT:    callbr void asm sideeffect "", "!i,!i"()
; CHECK-NEXT:    to label [[BB4:%.*]] [label [[BB5:%.*]], label %bb.bb8_crit_edge]
; CHECK:       bb.bb8_crit_edge:
; CHECK-NEXT:    [[TMP10_PRE:%.*]] = load ptr, ptr [[TMP1:%.*]], align 8
; CHECK-NEXT:    br label [[BB8:%.*]]
; CHECK:       bb4:
; CHECK-NEXT:    br label [[BB5]]
; CHECK:       bb5:
; CHECK-NEXT:    [[TMP6:%.*]] = load ptr, ptr [[TMP1]], align 8
; CHECK-NEXT:    [[TMP7:%.*]] = getelementptr inbounds [[STRUCT_PLUTO:%.*]], ptr [[TMP6]], i64 0, i32 1
; CHECK-NEXT:    br label [[BB8]]
; CHECK:       bb8:
; CHECK-NEXT:    [[TMP10:%.*]] = phi ptr [ [[TMP6]], [[BB5]] ], [ [[TMP10_PRE]], [[BB_BB8_CRIT_EDGE:%.*]] ]
; CHECK-NEXT:    [[TMP9:%.*]] = phi ptr [ [[TMP7]], [[BB5]] ], [ null, [[BB_BB8_CRIT_EDGE]] ]
; CHECK-NEXT:    [[TMP12:%.*]] = load i8, ptr [[TMP10]], align 1
; CHECK-NEXT:    tail call void @spam(ptr [[TMP9]], i8 [[TMP12]])
; CHECK-NEXT:    ret void
;
bb:
  callbr void asm sideeffect "", "!i,!i"()
  to label %bb4 [label %bb5, label %bb8]

bb4:                                              ; preds = %bb
  br label %bb5

bb5:                                              ; preds = %bb4, %bb
  %tmp6 = load ptr, ptr %tmp1
  %tmp7 = getelementptr inbounds %struct.pluto, ptr %tmp6, i64 0, i32 1
  br label %bb8

bb8:                                              ; preds = %bb5, %bb
  %tmp9 = phi ptr [ %tmp7, %bb5 ], [ null, %bb ]
  %tmp10 = load ptr, ptr %tmp1
  %tmp12 = load i8, ptr %tmp10
  tail call void @spam(ptr %tmp9, i8 %tmp12)
  ret void
}

declare void @spam(ptr, i8)
