brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · ac8d8e2 Raw
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