88 lines · plain
1; RUN: opt -passes=globalopt -S < %s | FileCheck %s2 3@a = internal global i32 0, align 44@b = internal global i32 0, align 45@c = internal global i32 0, align 46@d = internal constant [4 x i8] c"foo\00", align 17@e = linkonce_odr global i32 08@f = internal addrspace(3) global float undef, align 49 10; CHECK: @a = internal global i32 0, align 411; CHECK: @b = internal global i32 0, align 412; CHECK: @c = internal unnamed_addr global i32 0, align 413; CHECK: @d = internal unnamed_addr constant [4 x i8] c"foo\00", align 114; CHECK: @e = linkonce_odr local_unnamed_addr global i32 015; CHECK: @f = internal unnamed_addr addrspace(3) global float undef, align 416 17; CHECK: define internal fastcc void @used_internal() unnamed_addr {18define internal void @used_internal() {19 ret void20}21 22define i32 @get_e() {23 call void @used_internal()24 %t = load i32, ptr @e25 ret i32 %t26}27 28define void @set_e(i32 %x) {29 store i32 %x, ptr @e30 ret void31}32 33define i1 @bah(i64 %i) nounwind readonly optsize ssp {34entry:35 %arrayidx4 = getelementptr inbounds [4 x i8], ptr @d, i64 0, i64 %i36 %tmp5 = load i8, ptr %arrayidx4, align 137 %tmp6 = load i8, ptr @d, align 138 %cmp = icmp eq i8 %tmp5, %tmp639 ret i1 %cmp40}41 42define void @baz(i32 %x) {43entry:44 store i32 %x, ptr @a, align 445 store i32 %x, ptr @b, align 446 store i32 %x, ptr @c, align 447 ret void48}49 50define i32 @foo(ptr %x) nounwind readnone optsize ssp {51entry:52 %cmp = icmp eq ptr %x, @a53 %conv = zext i1 %cmp to i3254 ret i32 %conv55}56 57define i32 @bar() {58entry:59 switch i64 ptrtoint (ptr @b to i64), label %sw.epilog [60 i64 1, label %return61 i64 0, label %return62 ]63 64sw.epilog:65 ret i32 066 67return:68 ret i32 169}70 71define i32 @zed() {72entry:73 %tmp1 = load i32, ptr @c, align 474 ret i32 %tmp175}76 77define float @use_addrspace_cast_for_load() {78 %p = addrspacecast ptr addrspace(3) @f to ptr79 %v = load float, ptr %p80 ret float %v81}82 83define void @use_addrspace_cast_for_store(float %x) {84 %p = addrspacecast ptr addrspace(3) @f to ptr85 store float %x, ptr %p86 ret void87}88