; RUN: opt -codegenprepare -S < %s | FileCheck %s

target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin10.0.0"

; CHECK-LABEL: @test1(
; objectsize should fold to a constant, which causes the branch to fold to an
; uncond branch. Next, we fold the control flow alltogether.
; rdar://8785296
define i32 @test1(i8* %ptr) nounwind ssp noredzone align 2 {
entry:
  %0 = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false, i1 false)
  %1 = icmp ugt i64 %0, 3
  br i1 %1, label %T, label %trap

; CHECK: T:
; CHECK-NOT: br label %

trap:                                             ; preds = %0, %entry
  tail call void @llvm.trap() noreturn nounwind
  unreachable

T:
; CHECK: ret i32 4
  ret i32 4
}

; CHECK-LABEL: @test_objectsize_null_flag(
define i64 @test_objectsize_null_flag(i8* %ptr) {
entry:
  ; CHECK: ret i64 -1
  %0 = tail call i64 @llvm.objectsize.i64(i8* null, i1 false, i1 true)
  ret i64 %0
}

; CHECK-LABEL: @test_objectsize_null_flag_min(
define i64 @test_objectsize_null_flag_min(i8* %ptr) {
entry:
  ; CHECK: ret i64 0
  %0 = tail call i64 @llvm.objectsize.i64(i8* null, i1 true, i1 true)
  ret i64 %0
}

; Test foldable null pointers because we evaluate them with non-exact modes in
; CodeGenPrepare.
; CHECK-LABEL: @test_objectsize_null_flag_noas0(
define i64 @test_objectsize_null_flag_noas0() {
entry:
  ; CHECK: ret i64 0
  %0 = tail call i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)* null, i1 false,
                                               i1 true)
  ret i64 %0
}

; CHECK-LABEL: @test_objectsize_null_flag_min_noas0(
define i64 @test_objectsize_null_flag_min_noas0() {
entry:
  ; CHECK: ret i64 0
  %0 = tail call i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)* null, i1 true,
                                               i1 true)
  ret i64 %0
}


declare i64 @llvm.objectsize.i64(i8*, i1, i1) nounwind readonly
declare i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)*, i1, i1) nounwind readonly

declare void @llvm.trap() nounwind
