1; RUN: llc -enable-machine-outliner -mtriple=x86_64-unknown-linux < %s | FileCheck %s 2@x = dso_local global i32 0, align 4 3 4define dso_local i32 @check_boundaries() #0 { 5 %1 = alloca i32, align 4 6 %2 = alloca i32, align 4 7 %3 = alloca i32, align 4 8 %4 = alloca i32, align 4 9 %5 = alloca i32, align 4 10 store i32 0, i32* %1, align 4 11 store i32 0, i32* %2, align 4 12 %6 = load i32, i32* %2, align 4 13 %7 = icmp ne i32 %6, 0 14 br i1 %7, label %9, label %8 15 16 store i32 1, i32* %2, align 4 17 store i32 2, i32* %3, align 4 18 store i32 3, i32* %4, align 4 19 store i32 4, i32* %5, align 4 20 br label %10 21 22 store i32 1, i32* %4, align 4 23 br label %10 24 25 %11 = load i32, i32* %2, align 4 26 %12 = icmp ne i32 %11, 0 27 br i1 %12, label %14, label %13 28 29 store i32 1, i32* %2, align 4 30 store i32 2, i32* %3, align 4 31 store i32 3, i32* %4, align 4 32 store i32 4, i32* %5, align 4 33 br label %15 34 35 store i32 1, i32* %4, align 4 36 br label %15 37 38 ret i32 0 39} 40 41define dso_local i32 @main() #0 { 42 %1 = alloca i32, align 4 43 %2 = alloca i32, align 4 44 %3 = alloca i32, align 4 45 %4 = alloca i32, align 4 46 %5 = alloca i32, align 4 47 48 store i32 0, i32* %1, align 4 49 store i32 0, i32* @x, align 4 50 store i32 1, i32* %2, align 4 51 store i32 2, i32* %3, align 4 52 store i32 3, i32* %4, align 4 53 store i32 4, i32* %5, align 4 54 store i32 1, i32* @x, align 4 55 call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() 56 store i32 1, i32* %2, align 4 57 store i32 2, i32* %3, align 4 58 store i32 3, i32* %4, align 4 59 store i32 4, i32* %5, align 4 60 ret i32 0 61} 62 63attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" } 64