57 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes='default<O2>' -S < %s | FileCheck %s3@a = internal global i32 0, align 44@c = internal global ptr @b, align 85@b = internal global ptr null, align 86@e = internal global ptr @d, align 87@d = internal global i32 0, align 48 9define i32 @main() {10; CHECK-LABEL: @main(11; CHECK-NEXT: entry:12; CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr @e, align 813; CHECK-NEXT: store i32 0, ptr [[TMP0]], align 414; CHECK-NEXT: store ptr null, ptr @e, align 815; CHECK-NEXT: ret i32 016;17entry:18 %h = alloca ptr, align 819 %i = alloca ptr, align 820 %j = alloca ptr, align 821 store ptr @a, ptr %h, align 822 store ptr @a, ptr %j, align 823 %0 = load ptr, ptr %j, align 824 store i32 1, ptr %0, align 425 store ptr @a, ptr %i, align 826 %1 = load ptr, ptr %i, align 827 %2 = load ptr, ptr @c, align 828 store ptr %1, ptr %2, align 829 %3 = load ptr, ptr %h, align 830 %call = call ptr @bar(ptr %3)31 ret i32 032}33 34define internal ptr @bar(ptr %g) {35entry:36 %g.addr = alloca ptr, align 837 store ptr %g, ptr %g.addr, align 838 %0 = load ptr, ptr @e, align 839 store i32 0, ptr %0, align 440 %1 = load ptr, ptr %g.addr, align 841 %2 = load i32, ptr %1, align 442 %tobool = icmp ne i32 %2, 043 br i1 %tobool, label %if.end, label %if.then44 45if.then: ; preds = %entry46 call void @foo()47 br label %if.end48 49if.end: ; preds = %if.then, %entry50 store ptr null, ptr @e, align 851 %3 = load ptr, ptr @b, align 852 ret ptr %353}54 55declare void @foo()56 57