; RUN: opt -mtriple=s390x-linux-gnu -mcpu=z13 -verify-memoryssa -sroa -globalopt -function-attrs -simplifycfg -licm -simple-loop-unswitch %s -S | FileCheck %s
; REQUIRES: asserts

target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
target triple = "s390x-ibm-linux"

@0 = internal global i32 -9, align 4
@1 = internal global i64 9, align 8
@g_1042 = external dso_local global [5 x i16], align 2

; CHECK-LABEL: @main()
; Function Attrs: nounwind
define dso_local void @main() #0 {
  call void @func_1()
  unreachable
}

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1

; Function Attrs: nounwind
define dso_local void @func_1() #0 {
  %1 = alloca i32*, align 8
  %2 = call signext i32 @func_2()
  %3 = icmp ne i32 %2, 0
  br i1 %3, label %4, label %9

; <label>:4:                                      ; preds = %0
  %5 = load i16, i16* getelementptr inbounds ([5 x i16], [5 x i16]* @g_1042, i64 0, i64 0), align 2, !tbaa !1
  %6 = zext i16 %5 to i64
  %7 = load i64, i64* @1, align 8, !tbaa !5
  %8 = and i64 %7, %6
  store i64 %8, i64* @1, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0i8(i64 4, i8* undef) #2
  unreachable

; <label>:9:                                      ; preds = %0
  store i32* @0, i32** %1, align 8, !tbaa !7
  br label %10

; <label>:10:                                     ; preds = %23, %9
  %11 = load i64, i64* @1, align 8, !tbaa !5
  %12 = icmp eq i64 %11, 65535
  br i1 %12, label %13, label %14

; <label>:13:                                     ; preds = %10
  store i32* null, i32** %1, align 8, !tbaa !7
  br label %14

; <label>:14:                                     ; preds = %13, %10
  %15 = load i32*, i32** %1, align 8, !tbaa !7
  %16 = load i32, i32* %15, align 4, !tbaa !9
  %17 = trunc i32 %16 to i16
  %18 = call signext i16 @safe_sub_func_int16_t_s_s(i16 signext %17)
  %19 = sext i16 %18 to i32
  %20 = icmp ne i32 %19, 0
  br i1 %20, label %23, label %21

; <label>:21:                                     ; preds = %14
  %22 = load volatile i8, i8* null, align 1, !tbaa !11
  br label %23

; <label>:23:                                     ; preds = %21, %14
  br label %10
}

; Function Attrs: nounwind
declare dso_local signext i32 @func_2() #0

; Function Attrs: nounwind
define dso_local void @safe_sub_func_uint8_t_u_u() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_add_func_int64_t_s_s() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_rshift_func_int16_t_s_u() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_div_func_uint8_t_u_u() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_mul_func_uint16_t_u_u() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_mul_func_int16_t_s_s() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_div_func_int32_t_s_s() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local signext i16 @safe_sub_func_int16_t_s_s(i16 signext) #0 {
  %2 = alloca i16, align 2
  store i16 %0, i16* %2, align 2, !tbaa !1
  %3 = load i16, i16* %2, align 2, !tbaa !1
  %4 = sext i16 %3 to i32
  %5 = sub nsw i32 %4, 0
  %6 = trunc i32 %5 to i16
  ret i16 %6
}

; Function Attrs: nounwind
define dso_local void @safe_add_func_uint16_t_u_u() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_div_func_int8_t_s_s() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_add_func_int16_t_s_s() #0 {
  ret void
}

; Function Attrs: nounwind
define dso_local void @safe_add_func_uint8_t_u_u() #0 {
  ret void
}

attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="z13" "target-features"="+transactional-execution,+vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
attributes #2 = { nounwind }

!llvm.ident = !{!0}

!0 = !{!"clang version 8.0.0 (http://llvm.org/git/clang.git 7cda4756fc9713d98fd3513b8df172700f267bad) (http://llvm.org/git/llvm.git 199c0d32e96b646bd8cf6beeaf0f99f8a434b56a)"}
!1 = !{!2, !2, i64 0}
!2 = !{!"short", !3, i64 0}
!3 = !{!"omnipotent char", !4, i64 0}
!4 = !{!"Simple C/C++ TBAA"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !3, i64 0}
!7 = !{!8, !8, i64 0}
!8 = !{!"any pointer", !3, i64 0}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !3, i64 0}
!11 = !{!3, !3, i64 0}
