33 lines · plain
1; RUN: opt -passes=globalopt -S < %s | FileCheck %s2 3%sometype = type { ptr }4 5@map = internal unnamed_addr global ptr null, align 86 7define void @Init() {8; CHECK-LABEL: @Init(9; CHECK-NEXT: entry:10; CHECK-NEXT: store i1 true, ptr @map.init, align 111; CHECK-NEXT: ret void12;13entry:14 %call = tail call noalias nonnull dereferenceable(48) ptr @_Znwm(i64 48)15 store ptr %call, ptr @map, align 816 ret void17}18 19define void @Usage() {20; CHECK-LABEL: @Usage(21; CHECK-NEXT: entry:22; CHECK-NEXT: [[MAP_INIT_VAL:%.*]] = load i1, ptr @map.init, align 123; CHECK-NEXT: [[NOTINIT:%.*]] = xor i1 [[MAP_INIT_VAL]], true24; CHECK-NEXT: unreachable25;26entry:27 %0 = load ptr, ptr @map, align 828 %.not = icmp eq ptr %0, null29 unreachable30}31 32declare ptr @_Znwm(i64)33