Skip to content

Instantly share code, notes, and snippets.

@angerman
Created November 28, 2017 12:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save angerman/a5a97577705bd4acc45c9ac72d4470ae to your computer and use it in GitHub Desktop.
Save angerman/a5a97577705bd4acc45c9ac72d4470ae to your computer and use it in GitHub Desktop.
; ModuleID = '<stdin>'
source_filename = "Main.ll"
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "arm-unknown-linux-gnueabihf"
@Main_f_closure = local_unnamed_addr global { i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_f_info to i32) }
@Main_zdtrModule4_bytes = global { [5 x i8] } { [5 x i8] c"main\00" }
@Main_zdtrModule3_closure = global { i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_TrNameS_con_info to i32), i32 ptrtoint ({ [5 x i8] }* @Main_zdtrModule4_bytes to i32) }
@Main_zdtrModule2_bytes = global { [5 x i8] } { [5 x i8] c"Main\00" }
@Main_zdtrModule1_closure = global { i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_TrNameS_con_info to i32), i32 ptrtoint ({ [5 x i8] }* @Main_zdtrModule2_bytes to i32) }
@Main_zdtrModule_closure = local_unnamed_addr global { i32, i32, i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_Module_con_info to i32), i32 add (i32 ptrtoint ({ i32, i32 }* @Main_zdtrModule3_closure to i32), i32 1), i32 add (i32 ptrtoint ({ i32, i32 }* @Main_zdtrModule1_closure to i32), i32 1), i32 3 }
@Main_y_closure = global { i32, i64 } { i32 ptrtoint (i32* @base_GHCziWord_W64zh_con_info to i32), i64 128 }
@Main_mainzuzz_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_mainzuzz_info to i32), i32 0, i32 0, i32 0 }
@Main_main2_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main2_info to i32), i32 0, i32 0, i32 0 }
@Main_main3_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main3_info to i32), i32 0, i32 0, i32 0 }
@Main_main1_closure = global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main1_info to i32), i32 0 }
@Main_main_closure = local_unnamed_addr global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main_info to i32), i32 0 }
@Main_main4_closure = global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main4_info to i32), i32 0 }
@ZCMain_main_closure = local_unnamed_addr global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ZCMain_main_info to i32), i32 0 }
@S4A1_srt = private global { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } { i32 ptrtoint (i32* @base_GHCziShow_zdwzdcshowsPrec4_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to i32), i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool4_closure to i32), i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool2_closure to i32), i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint (i32* @base_GHCziIOziHandleziText_hPutStr2_closure to i32), i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main2_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main3_closure to i32), i32 ptrtoint (i32* @base_GHCziTopHandler_runMainIO1_closure to i32), i32 ptrtoint ({ i32, i32 }* @Main_main4_closure to i32) }
@base_GHCziIOziHandleziFD_stdout_closure = external constant i32
@base_GHCziIOziHandleziText_hPutStr2_closure = external constant i32
@base_GHCziShow_zdfShowBool2_closure = external constant i32
@base_GHCziShow_zdfShowBool4_closure = external constant i32
@base_GHCziShow_zdwzdcshowsPrec4_closure = external constant i32
@base_GHCziTopHandler_runMainIO1_closure = external constant i32
@base_GHCziWord_W64zh_con_info = external constant i32
@ghczmprim_GHCziTypes_Module_con_info = external constant i32
@ghczmprim_GHCziTypes_TrNameS_con_info = external constant i32
@ghczmprim_GHCziTypes_True_closure = external constant i32
@ghczmprim_GHCziTypes_ZC_con_info = external constant i32
@ghczmprim_GHCziTypes_ZMZN_closure = external constant i32
@stg_bh_upd_frame_info = external constant i32
declare ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @base_GHCziShow_zdwzdcshowsPrec4_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @base_GHCziTopHandler_runMainIO1_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare i32 @hs_eqWord64(i64, i64) local_unnamed_addr
declare i64 @hs_int64ToWord64(i64) local_unnamed_addr
declare i64 @hs_plusInt64(i64, i64) local_unnamed_addr
declare i64 @hs_word64ToInt64(i64) local_unnamed_addr
declare ghccc void @integerzmsimple_GHCziIntegerziType_word64ToInteger_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare i8* @newCAF(i8*, i8*) local_unnamed_addr
declare ghccc void @stg_ap_0_fast(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @stg_gc_pp(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @stg_gc_unpt_r1(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
define ghccc void @Main_f_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 65541, i32 0, i32 14 } {
tail call ghccc void @stg_ap_0_fast(i32* %0, i32* %1, i32* %2, i32 %4, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @Main_mainzuzz_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32 } { i32 0, i32 21 } {
%9 = getelementptr inbounds i32, i32* %1, i32 -3
%10 = ptrtoint i32* %9 to i32
%11 = icmp ult i32 %10, %7
br i1 %11, label %24, label %12
; <label>:12: ; preds = %8
%13 = bitcast i32* %0 to i8*
%14 = inttoptr i32 %3 to i8*
%15 = tail call i8* @newCAF(i8* %13, i8* %14)
%16 = icmp eq i8* %15, null
br i1 %16, label %21, label %17
; <label>:17: ; preds = %12
%18 = ptrtoint i8* %15 to i32
%19 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %19, align 4
%20 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %18, i32* %20, align 4
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zg_info to i32), i32* %9, align 4
tail call ghccc void @stg_ap_0_fast(i32* %0, i32* %9, i32* %2, i32 add (i32 ptrtoint ({ i32, i64 }* @Main_y_closure to i32), i32 1), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:21: ; preds = %12
%22 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%23 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %22, align 4
tail call ghccc void %23(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:24: ; preds = %8
%25 = getelementptr inbounds i32, i32* %0, i32 -3
%26 = bitcast i32* %25 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%27 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %26, align 4
tail call ghccc void %27(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @c4zg_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32 } { i32 0, i32 30 } {
%9 = getelementptr inbounds i32, i32* %2, i32 3
%10 = ptrtoint i32* %9 to i32
%11 = getelementptr inbounds i32, i32* %0, i32 201
%12 = load i32, i32* %11, align 4
%13 = icmp ult i32 %12, %10
br i1 %13, label %29, label %14
; <label>:14: ; preds = %8
%15 = add i32 %3, 3
%16 = inttoptr i32 %15 to i64*
%17 = load i64, i64* %16, align 8
%18 = tail call i64 @hs_word64ToInt64(i64 %17)
%19 = tail call i64 @hs_word64ToInt64(i64 %17)
%20 = tail call i64 @hs_plusInt64(i64 %19, i64 %18)
%21 = tail call i64 @hs_int64ToWord64(i64 %20)
%22 = getelementptr inbounds i32, i32* %2, i32 1
store i32 ptrtoint (i32* @base_GHCziWord_W64zh_con_info to i32), i32* %22, align 4
%23 = getelementptr inbounds i32, i32* %2, i32 2
%24 = bitcast i32* %23 to i64*
store i64 %21, i64* %24, align 8
%25 = add i32 %10, -7
%26 = getelementptr inbounds i32, i32* %1, i32 1
%27 = bitcast i32* %26 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%28 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %27, align 4
tail call ghccc void %28(i32* nonnull %0, i32* %26, i32* %9, i32 %25, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:29: ; preds = %8
%30 = getelementptr inbounds i32, i32* %0, i32 207
store i32 12, i32* %30, align 4
tail call ghccc void @stg_gc_unpt_r1(i32* nonnull %0, i32* %1, i32* %9, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @Main_main2_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main2_info to i32)), i32 0, i32 196629 } {
%9 = getelementptr inbounds i32, i32* %1, i32 -5
%10 = ptrtoint i32* %9 to i32
%11 = icmp ult i32 %10, %7
br i1 %11, label %26, label %12
; <label>:12: ; preds = %8
%13 = bitcast i32* %0 to i8*
%14 = inttoptr i32 %3 to i8*
%15 = tail call i8* @newCAF(i8* %13, i8* %14)
%16 = icmp eq i8* %15, null
br i1 %16, label %23, label %17
; <label>:17: ; preds = %12
%18 = ptrtoint i8* %15 to i32
%19 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %19, align 4
%20 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %18, i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zG_info to i32), i32* %21, align 4
%22 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4
tail call ghccc void %22(i32* %0, i32* %21, i32* %2, i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:23: ; preds = %12
%24 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%25 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %24, align 4
tail call ghccc void %25(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:26: ; preds = %8
%27 = getelementptr inbounds i32, i32* %0, i32 -3
%28 = bitcast i32* %27 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%29 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %28, align 4
tail call ghccc void %29(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @c4zG_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zG_info to i32)), i32 0, i32 65566 } {
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zM_info to i32), i32* %1, align 4
%9 = add i32 %3, 3
%10 = inttoptr i32 %9 to i64*
%11 = load i64, i64* %10, align 8
%12 = getelementptr inbounds i32, i32* %1, i32 -2
%13 = bitcast i32* %12 to i64*
store i64 %11, i64* %13, align 8
tail call ghccc void @integerzmsimple_GHCziIntegerziType_word64ToInteger_info(i32* %0, i32* %12, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @c4zM_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zM_info to i32)), i32 0, i32 65566 } {
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zQ_info to i32), i32* %1, align 4
tail call ghccc void @base_GHCziShow_zdwzdcshowsPrec4_info(i32* %0, i32* %1, i32* %2, i32 %3, i32 0, i32 %3, i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZMZN_closure to i32), i32 1), i32 %7)
ret void
}
define private ghccc void @c4zQ_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32 } { i32 0, i32 30 } {
%9 = getelementptr inbounds i32, i32* %2, i32 3
%10 = ptrtoint i32* %9 to i32
%11 = getelementptr inbounds i32, i32* %0, i32 201
%12 = load i32, i32* %11, align 4
%13 = icmp ult i32 %12, %10
br i1 %13, label %21, label %14
; <label>:14: ; preds = %8
%15 = getelementptr inbounds i32, i32* %2, i32 1
store i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZC_con_info to i32), i32* %15, align 4
%16 = getelementptr inbounds i32, i32* %2, i32 2
store i32 %3, i32* %16, align 4
store i32 %4, i32* %9, align 4
%17 = add i32 %10, -6
%18 = getelementptr inbounds i32, i32* %1, i32 1
%19 = bitcast i32* %18 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%20 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %19, align 4
tail call ghccc void %20(i32* nonnull %0, i32* %18, i32* %9, i32 %17, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:21: ; preds = %8
%22 = getelementptr inbounds i32, i32* %0, i32 207
store i32 12, i32* %22, align 4
tail call ghccc void @stg_gc_pp(i32* nonnull %0, i32* %1, i32* %9, i32 %3, i32 %4, i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @Main_main3_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main3_info to i32)), i32 4), i32 0, i32 458773 } {
%9 = getelementptr inbounds i32, i32* %1, i32 -3
%10 = ptrtoint i32* %9 to i32
%11 = icmp ult i32 %10, %7
br i1 %11, label %25, label %12
; <label>:12: ; preds = %8
%13 = bitcast i32* %0 to i8*
%14 = inttoptr i32 %3 to i8*
%15 = tail call i8* @newCAF(i8* %13, i8* %14)
%16 = icmp eq i8* %15, null
br i1 %16, label %22, label %17
; <label>:17: ; preds = %12
%18 = ptrtoint i8* %15 to i32
%19 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %19, align 4
%20 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %18, i32* %20, align 4
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4A8_info to i32), i32* %9, align 4
%21 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4
tail call ghccc void %21(i32* %0, i32* %9, i32* %2, i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:22: ; preds = %12
%23 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%24 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %23, align 4
tail call ghccc void %24(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %8
%26 = getelementptr inbounds i32, i32* %0, i32 -3
%27 = bitcast i32* %26 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%28 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %27, align 4
tail call ghccc void %28(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @c4A8_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4A8_info to i32)), i32 8), i32 0, i32 196638 } {
%9 = add i32 %3, 3
%10 = inttoptr i32 %9 to i64*
%11 = load i64, i64* %10, align 8
%12 = tail call i64 @hs_word64ToInt64(i64 128)
%13 = tail call i64 @hs_word64ToInt64(i64 128)
%14 = tail call i64 @hs_plusInt64(i64 %13, i64 %12)
%15 = tail call i64 @hs_int64ToWord64(i64 %14)
%16 = tail call i32 @hs_eqWord64(i64 %11, i64 %15)
%cond = icmp eq i32 %16, 1
%17 = getelementptr inbounds i32, i32* %1, i32 1
br i1 %cond, label %20, label %18
; <label>:18: ; preds = %8
%19 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast (i32* @base_GHCziShow_zdfShowBool4_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4
tail call ghccc void %19(i32* %0, i32* %17, i32* %2, i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool4_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:20: ; preds = %8
%21 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast (i32* @base_GHCziShow_zdfShowBool2_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4
tail call ghccc void %21(i32* %0, i32* %17, i32* %2, i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool2_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @Main_main1_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main1_info to i32)), i32 16), i32 65539, i32 0, i32 2031630 } {
%9 = getelementptr inbounds i32, i32* %1, i32 -1
%10 = ptrtoint i32* %9 to i32
%11 = icmp ult i32 %10, %7
br i1 %11, label %13, label %12
; <label>:12: ; preds = %8
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4AC_info to i32), i32* %9, align 4
tail call ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32* %0, i32* %9, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main3_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %7)
ret void
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %0, i32 -2
%15 = bitcast i32* %14 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%16 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %15, align 4
tail call ghccc void %16(i32* %0, i32* %1, i32* %2, i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @c4AC_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4AC_info to i32)), i32 16), i32 0, i32 720926 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
tail call ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32* %0, i32* %9, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main2_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %7)
ret void
}
define ghccc void @Main_main_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main_info to i32)), i32 24), i32 65539, i32 0, i32 65550 } {
%9 = getelementptr inbounds i32, i32* %1, i32 -1
%10 = ptrtoint i32* %9 to i32
%11 = icmp ult i32 %10, %7
br i1 %11, label %13, label %12
; <label>:12: ; preds = %8
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4AC_info to i32), i32* %9, align 4
tail call ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32* %0, i32* %9, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main3_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %7)
br label %Main_main1_info.exit
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %0, i32 -2
%15 = bitcast i32* %14 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%16 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %15, align 4
tail call ghccc void %16(i32* %0, i32* %1, i32* %2, i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
br label %Main_main1_info.exit
Main_main1_info.exit: ; preds = %13, %12
ret void
}
define ghccc void @Main_main4_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main4_info to i32)), i32 24), i32 65539, i32 0, i32 589838 } {
tail call ghccc void @base_GHCziTopHandler_runMainIO1_info(i32* %0, i32* %1, i32* %2, i32 %3, i32 add (i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 1), i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @ZCMain_main_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ZCMain_main_info to i32)), i32 40), i32 65539, i32 0, i32 65550 } {
tail call ghccc void @base_GHCziTopHandler_runMainIO1_info(i32* %0, i32* %1, i32* %2, i32 %3, i32 add (i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 1), i32 undef, i32 undef, i32 %7)
ret void
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment