; ModuleID = '' target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: nounwind uwtable define i32 @main() #0 { entry: %retval = alloca i32, align 4 %a = alloca i32, align 4 %b = alloca i32, align 4 %ptra = alloca i32*, align 8 %ptrb = alloca i32*, align 8 %temp = alloca i32, align 4 %sum = alloca i32, align 4 store i32 0, i32* %retval store i32 9, i32* %a, align 4 store i32 7, i32* %b, align 4 store i32* %a, i32** %ptra, align 8 store i32* %a, i32** %ptrb, align 8 %0 = load i32** %ptrb, align 8 %1 = load i32* %0, align 4 store i32 %1, i32* %b, align 4 %2 = load i32** %ptrb, align 8 store i32 4, i32* %2, align 4 %3 = load i32* %a, align 4 %4 = load i32** %ptrb, align 8 %5 = load i32* %4, align 4 %call = call i32 @addNumbers(i32 %3, i32 %5) store i32 %call, i32* %sum, align 4 %6 = load i32* %sum, align 4 ret i32 %6 } ; Function Attrs: nounwind uwtable define i32 @addNumbers(i32 %a, i32 %b) #0 { entry: %a.addr = alloca i32, align 4 %b.addr = alloca i32, align 4 %result = alloca i32, align 4 %notResult = alloca i32*, align 8 store i32 %a, i32* %a.addr, align 4 store i32 %b, i32* %b.addr, align 4 store i32* %b.addr, i32** %notResult, align 8 %0 = load i32* %a.addr, align 4 %1 = load i32** %notResult, align 8 %2 = load i32* %1, align 4 %add = add nsw i32 %0, %2 store i32 %add, i32* %result, align 4 %3 = load i32* %result, align 4 ret i32 %3 }