; RUN: opt -globals-aa -gvn -S < %s | FileCheck %s

target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@deallocCalled = internal global i8 0, align 1

; CHECK-LABEL: @main()
define dso_local i32 @main() {
entry:
  %tmp0 = call i8* @llvm.objc.autoreleasePoolPush() #1
  %tmp6 = load i8, i8* @deallocCalled, align 1
  %tobool = icmp ne i8 %tmp6, 0
  br i1 %tobool, label %if.else, label %if.end

if.else:                                          ; preds = %entry
  call void @__assert_fail() #0
  unreachable

; CHECK-LABEL: if.end:
; CHECK-NEXT: call void @llvm.objc.autoreleasePoolPop
; CHECK-NOT: load i8, i8* @deallocCalled
if.end:                                           ; preds = %entry
  call void @llvm.objc.autoreleasePoolPop(i8* %tmp0)
  %tmp7 = load i8, i8* @deallocCalled, align 1
  %tobool3 = icmp ne i8 %tmp7, 0
  br i1 %tobool3, label %if.end6, label %if.else5

if.else5:                                         ; preds = %if.end
  call void @__assert_fail() #0
  unreachable

if.end6:                                          ; preds = %if.end
  store i8 0, i8* @deallocCalled, align 1
  ret i32 0
}

declare i8* @llvm.objc.autoreleasePoolPush() #1
declare void @llvm.objc.autoreleasePoolPop(i8*) #1
declare dso_local void @__assert_fail() #0

attributes #0 = { noreturn nounwind }
attributes #1 = { nounwind }

