Skip to content

Instantly share code, notes, and snippets.

@japaric
Created March 22, 2018 08:10
Show Gist options
  • Save japaric/e168c412b57bedeea9fd361317c73ccc to your computer and use it in GitHub Desktop.
Save japaric/e168c412b57bedeea9fd361317c73ccc to your computer and use it in GitHub Desktop.
; ModuleID = 'minimal0-849056be0feeb400e8126e9239e08cc8.rs'
source_filename = "minimal0-849056be0feeb400e8126e9239e08cc8.rs"
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv7m-none--eabi"
@RESET_VECTOR = local_unnamed_addr constant void ()* @reset, section ".vector_table.reset_vector", align 4
@_sbss = external global i32
@_ebss = external global i32
@_sdata = external global i32
@_sidata = external local_unnamed_addr global i32
@EXCEPTIONS = local_unnamed_addr constant { void ()*, void ()*, void ()*, void ()*, void ()*, {}*, {}*, {}*, {}*, void ()*, {}*, {}*, void ()*, void ()* } { void ()* @nmi, void ()* @hard_fault, void ()* @mem_manage, void ()* @bus_fault, void ()* @usage_fault, {}* null, {}* null, {}* null, {}* null, void ()* @svcall, {}* null, {}* null, void ()* @pendsv, void ()* @systick }, section ".vector_table.exceptions", align 4
; Function Attrs: norecurse noreturn nounwind readnone
define void @main() unnamed_addr #0 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind readnone
define void @default_handler() unnamed_addr #0 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind
define void @reset() unnamed_addr #1 {
br i1 icmp ult (i32* @_sbss, i32* @_ebss), label %.preheader1, label %.preheader
.preheader1: ; preds = %0, %.preheader1
%1 = phi i32* [ %2, %.preheader1 ], [ @_sbss, %0 ]
store volatile i32 0, i32* %1, align 4
%2 = getelementptr inbounds i32, i32* %1, i32 1
%3 = icmp ult i32* %2, @_ebss
br i1 %3, label %.preheader1, label %.preheader
.preheader: ; preds = %0, %.preheader1, %.preheader
%4 = phi i32* [ %7, %.preheader ], [ @_sdata, %.preheader1 ], [ @_sdata, %0 ]
%5 = phi i32* [ %8, %.preheader ], [ @_sidata, %.preheader1 ], [ @_sidata, %0 ]
%6 = load i32, i32* %5, align 4
store i32 %6, i32* %4, align 4
%7 = getelementptr inbounds i32, i32* %4, i32 1
%8 = getelementptr inbounds i32, i32* %5, i32 1
br label %.preheader
}
; Function Attrs: nounwind
declare void @nmi() unnamed_addr #2
; Function Attrs: nounwind
declare void @hard_fault() unnamed_addr #2
; Function Attrs: nounwind
declare void @mem_manage() unnamed_addr #2
; Function Attrs: nounwind
declare void @bus_fault() unnamed_addr #2
; Function Attrs: nounwind
declare void @usage_fault() unnamed_addr #2
; Function Attrs: nounwind
declare void @svcall() unnamed_addr #2
; Function Attrs: nounwind
declare void @pendsv() unnamed_addr #2
; Function Attrs: nounwind
declare void @systick() unnamed_addr #2
attributes #0 = { norecurse noreturn nounwind readnone }
attributes #1 = { norecurse noreturn nounwind }
attributes #2 = { nounwind }
; ModuleID = 'minimal0-37be8e5d97d8c23677d77e9f2037545a.rs'
source_filename = "minimal0-37be8e5d97d8c23677d77e9f2037545a.rs"
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv7m-none--eabi"
@EXCEPTIONS = local_unnamed_addr constant <{ void ()*, void ()*, void ()*, void ()*, void ()*, [16 x i8], void ()*, [8 x i8], void ()*, void ()*, [0 x i8] }> <{ void ()* @nmi, void ()* @hard_fault, void ()* @mem_manage, void ()* @bus_fault, void ()* @usage_fault, [16 x i8] zeroinitializer, void ()* @svcall, [8 x i8] zeroinitializer, void ()* @pendsv, void ()* @systick, [0 x i8] zeroinitializer }>, section ".vector_table.exceptions", align 4
@RESET_VECTOR = local_unnamed_addr constant <{ void ()*, [0 x i8] }> <{ void ()* @reset, [0 x i8] zeroinitializer }>, section ".vector_table.reset_vector", align 4
@_sbss = external global i32
@_ebss = external global i32
@_sdata = external global i32
@_edata = external global i32
@_sidata = external local_unnamed_addr global i32
; Function Attrs: norecurse noreturn nounwind readnone
define void @main() unnamed_addr #0 {
start:
unreachable
}
; Function Attrs: norecurse noreturn nounwind readnone
define void @default_handler() unnamed_addr #0 {
start:
unreachable
}
; Function Attrs: nounwind
declare void @nmi() unnamed_addr #1
; Function Attrs: nounwind
declare void @hard_fault() unnamed_addr #1
; Function Attrs: nounwind
declare void @mem_manage() unnamed_addr #1
; Function Attrs: nounwind
declare void @bus_fault() unnamed_addr #1
; Function Attrs: nounwind
declare void @usage_fault() unnamed_addr #1
; Function Attrs: nounwind
declare void @svcall() unnamed_addr #1
; Function Attrs: nounwind
declare void @pendsv() unnamed_addr #1
; Function Attrs: nounwind
declare void @systick() unnamed_addr #1
; Function Attrs: norecurse noreturn nounwind
define void @reset() unnamed_addr #2 {
br i1 icmp ult (i32* @_sbss, i32* @_ebss), label %1, label %.loopexit1
; <label>:1: ; preds = %0
br i1 icmp ne (i32 and (i32 add (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sbss, i32 1), i32* @_ebss), i32* @_ebss, i32* getelementptr inbounds (i32, i32* @_sbss, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sbss to i32))) to i32), i32 2), i32 1), i32 3), i32 0), label %2, label %3
; <label>:2: ; preds = %1
store volatile i32 0, i32* @_sbss, align 4
br i1 icmp ne (i32 sub (i32 and (i32 add (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sbss, i32 1), i32* @_ebss), i32* @_ebss, i32* getelementptr inbounds (i32, i32* @_sbss, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sbss to i32))) to i32), i32 2), i32 1), i32 3), i32 1), i32 0), label %298, label %3
; <label>:3: ; preds = %299, %298, %2, %1
%4 = phi i32* [ @_sbss, %1 ], [ getelementptr inbounds (i32, i32* @_sbss, i32 1), %2 ], [ getelementptr (i32, i32* @_sbss, i32 2), %298 ], [ getelementptr (i32, i32* @_sbss, i32 3), %299 ]
br i1 icmp ult (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sbss, i32 1), i32* @_ebss), i32* @_ebss, i32* getelementptr inbounds (i32, i32* @_sbss, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sbss to i32))) to i32), i32 2), i32 3), label %.loopexit1, label %5
; <label>:5: ; preds = %3
br label %6
; <label>:6: ; preds = %339, %5
%7 = phi i32* [ %4, %5 ], [ %343, %339 ]
store volatile i32 0, i32* %7, align 4
%8 = getelementptr inbounds i32, i32* %7, i32 1
store volatile i32 0, i32* %8, align 4
%9 = getelementptr inbounds i32, i32* %7, i32 2
store volatile i32 0, i32* %9, align 4
%10 = getelementptr inbounds i32, i32* %7, i32 3
store volatile i32 0, i32* %10, align 4
%11 = getelementptr inbounds i32, i32* %7, i32 4
%12 = icmp ult i32* %11, @_ebss
br i1 %12, label %327, label %.loopexit1
.loopexit1: ; preds = %0, %3, %6, %327, %333, %339
br i1 icmp ne (i32 and (i32 add (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sdata, i32 1), i32* @_edata), i32* @_edata, i32* getelementptr inbounds (i32, i32* @_sdata, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sdata to i32))) to i32), i32 2), i32 1), i32 3), i32 0), label %13, label %15
; <label>:13: ; preds = %.loopexit1
%14 = load i32, i32* @_sidata, align 4
store i32 %14, i32* @_sdata, align 4
br i1 icmp ne (i32 sub (i32 and (i32 add (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sdata, i32 1), i32* @_edata), i32* @_edata, i32* getelementptr inbounds (i32, i32* @_sdata, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sdata to i32))) to i32), i32 2), i32 1), i32 3), i32 1), i32 0), label %294, label %15
; <label>:15: ; preds = %.loopexit1, %13, %294, %296
%16 = phi i32* [ @_sdata, %.loopexit1 ], [ getelementptr inbounds (i32, i32* @_sdata, i32 1), %13 ], [ getelementptr (i32, i32* @_sdata, i32 2), %294 ], [ getelementptr (i32, i32* @_sdata, i32 3), %296 ]
%17 = phi i32* [ @_sidata, %.loopexit1 ], [ getelementptr inbounds (i32, i32* @_sidata, i32 1), %13 ], [ getelementptr (i32, i32* @_sidata, i32 2), %294 ], [ getelementptr (i32, i32* @_sidata, i32 3), %296 ]
%18 = ptrtoint i32* %16 to i32
%19 = getelementptr i32, i32* %16, i32 4
%20 = icmp ugt i32* %19, @_edata
%21 = select i1 %20, i32* %19, i32* @_edata
%22 = bitcast i32* %21 to i8*
%23 = xor i32 %18, -1
%24 = getelementptr i8, i8* %22, i32 %23
%25 = ptrtoint i8* %24 to i32
%26 = lshr i32 %25, 4
%27 = add nuw nsw i32 %26, 1
%28 = and i32 %27, 3
%29 = icmp eq i32 %28, 0
br i1 %29, label %43, label %30
; <label>:30: ; preds = %15
%31 = load i32, i32* %17, align 4
store i32 %31, i32* %16, align 4
%32 = getelementptr inbounds i32, i32* %16, i32 1
%33 = getelementptr inbounds i32, i32* %17, i32 1
%34 = load i32, i32* %33, align 4
store i32 %34, i32* %32, align 4
%35 = getelementptr inbounds i32, i32* %16, i32 2
%36 = getelementptr inbounds i32, i32* %17, i32 2
%37 = load i32, i32* %36, align 4
store i32 %37, i32* %35, align 4
%38 = getelementptr inbounds i32, i32* %16, i32 3
%39 = getelementptr inbounds i32, i32* %17, i32 3
%40 = load i32, i32* %39, align 4
store i32 %40, i32* %38, align 4
%41 = getelementptr inbounds i32, i32* %17, i32 4
%42 = icmp eq i32 %28, 1
br i1 %42, label %43, label %300
; <label>:43: ; preds = %15, %30, %300, %314
%44 = phi i32* [ %16, %15 ], [ %19, %30 ], [ %311, %300 ], [ %325, %314 ]
%45 = phi i32* [ %17, %15 ], [ %41, %30 ], [ %312, %300 ], [ %326, %314 ]
%46 = ptrtoint i32* %44 to i32
%scevgep = getelementptr i32, i32* %44, i32 16
%47 = icmp ugt i32* %scevgep, @_edata
%umax = select i1 %47, i32* %scevgep, i32* @_edata
%umax2 = bitcast i32* %umax to i8*
%48 = xor i32 %46, -1
%uglygep = getelementptr i8, i8* %umax2, i32 %48
%uglygep3 = ptrtoint i8* %uglygep to i32
%49 = lshr i32 %uglygep3, 6
%50 = add nuw nsw i32 %49, 1
%xtraiter = and i32 %50, 3
%lcmp.mod = icmp eq i32 %xtraiter, 0
br i1 %lcmp.mod, label %.new, label %.prol.preheader
.prol.preheader: ; preds = %43
%51 = load i32, i32* %45, align 4
store i32 %51, i32* %44, align 4
%52 = getelementptr inbounds i32, i32* %44, i32 1
%53 = getelementptr inbounds i32, i32* %45, i32 1
%54 = load i32, i32* %53, align 4
store i32 %54, i32* %52, align 4
%55 = getelementptr inbounds i32, i32* %44, i32 2
%56 = getelementptr inbounds i32, i32* %45, i32 2
%57 = load i32, i32* %56, align 4
store i32 %57, i32* %55, align 4
%58 = getelementptr inbounds i32, i32* %44, i32 3
%59 = getelementptr inbounds i32, i32* %45, i32 3
%60 = load i32, i32* %59, align 4
store i32 %60, i32* %58, align 4
%61 = getelementptr inbounds i32, i32* %44, i32 4
%62 = getelementptr inbounds i32, i32* %45, i32 4
%63 = load i32, i32* %62, align 4
store i32 %63, i32* %61, align 4
%64 = getelementptr inbounds i32, i32* %44, i32 5
%65 = getelementptr inbounds i32, i32* %45, i32 5
%66 = load i32, i32* %65, align 4
store i32 %66, i32* %64, align 4
%67 = getelementptr inbounds i32, i32* %44, i32 6
%68 = getelementptr inbounds i32, i32* %45, i32 6
%69 = load i32, i32* %68, align 4
store i32 %69, i32* %67, align 4
%70 = getelementptr inbounds i32, i32* %44, i32 7
%71 = getelementptr inbounds i32, i32* %45, i32 7
%72 = load i32, i32* %71, align 4
store i32 %72, i32* %70, align 4
%73 = getelementptr inbounds i32, i32* %44, i32 8
%74 = getelementptr inbounds i32, i32* %45, i32 8
%75 = load i32, i32* %74, align 4
store i32 %75, i32* %73, align 4
%76 = getelementptr inbounds i32, i32* %44, i32 9
%77 = getelementptr inbounds i32, i32* %45, i32 9
%78 = load i32, i32* %77, align 4
store i32 %78, i32* %76, align 4
%79 = getelementptr inbounds i32, i32* %44, i32 10
%80 = getelementptr inbounds i32, i32* %45, i32 10
%81 = load i32, i32* %80, align 4
store i32 %81, i32* %79, align 4
%82 = getelementptr inbounds i32, i32* %44, i32 11
%83 = getelementptr inbounds i32, i32* %45, i32 11
%84 = load i32, i32* %83, align 4
store i32 %84, i32* %82, align 4
%85 = getelementptr inbounds i32, i32* %44, i32 12
%86 = getelementptr inbounds i32, i32* %45, i32 12
%87 = load i32, i32* %86, align 4
store i32 %87, i32* %85, align 4
%88 = getelementptr inbounds i32, i32* %44, i32 13
%89 = getelementptr inbounds i32, i32* %45, i32 13
%90 = load i32, i32* %89, align 4
store i32 %90, i32* %88, align 4
%91 = getelementptr inbounds i32, i32* %44, i32 14
%92 = getelementptr inbounds i32, i32* %45, i32 14
%93 = load i32, i32* %92, align 4
store i32 %93, i32* %91, align 4
%94 = getelementptr inbounds i32, i32* %44, i32 15
%95 = getelementptr inbounds i32, i32* %45, i32 15
%96 = load i32, i32* %95, align 4
store i32 %96, i32* %94, align 4
%97 = getelementptr inbounds i32, i32* %44, i32 16
%98 = getelementptr inbounds i32, i32* %45, i32 16
%prol.iter.cmp = icmp eq i32 %xtraiter, 1
br i1 %prol.iter.cmp, label %.new, label %345
.new: ; preds = %43, %345, %.prol.preheader, %394
%.unr = phi i32* [ %44, %43 ], [ %97, %.prol.preheader ], [ %392, %345 ], [ %441, %394 ]
%.unr4 = phi i32* [ %45, %43 ], [ %98, %.prol.preheader ], [ %393, %345 ], [ %442, %394 ]
br label %99
; <label>:99: ; preds = %99, %.new
%100 = phi i32* [ %.unr, %.new ], [ %292, %99 ]
%101 = phi i32* [ %.unr4, %.new ], [ %293, %99 ]
%102 = load i32, i32* %101, align 4
store i32 %102, i32* %100, align 4
%103 = getelementptr inbounds i32, i32* %100, i32 1
%104 = getelementptr inbounds i32, i32* %101, i32 1
%105 = load i32, i32* %104, align 4
store i32 %105, i32* %103, align 4
%106 = getelementptr inbounds i32, i32* %100, i32 2
%107 = getelementptr inbounds i32, i32* %101, i32 2
%108 = load i32, i32* %107, align 4
store i32 %108, i32* %106, align 4
%109 = getelementptr inbounds i32, i32* %100, i32 3
%110 = getelementptr inbounds i32, i32* %101, i32 3
%111 = load i32, i32* %110, align 4
store i32 %111, i32* %109, align 4
%112 = getelementptr inbounds i32, i32* %100, i32 4
%113 = getelementptr inbounds i32, i32* %101, i32 4
%114 = load i32, i32* %113, align 4
store i32 %114, i32* %112, align 4
%115 = getelementptr inbounds i32, i32* %100, i32 5
%116 = getelementptr inbounds i32, i32* %101, i32 5
%117 = load i32, i32* %116, align 4
store i32 %117, i32* %115, align 4
%118 = getelementptr inbounds i32, i32* %100, i32 6
%119 = getelementptr inbounds i32, i32* %101, i32 6
%120 = load i32, i32* %119, align 4
store i32 %120, i32* %118, align 4
%121 = getelementptr inbounds i32, i32* %100, i32 7
%122 = getelementptr inbounds i32, i32* %101, i32 7
%123 = load i32, i32* %122, align 4
store i32 %123, i32* %121, align 4
%124 = getelementptr inbounds i32, i32* %100, i32 8
%125 = getelementptr inbounds i32, i32* %101, i32 8
%126 = load i32, i32* %125, align 4
store i32 %126, i32* %124, align 4
%127 = getelementptr inbounds i32, i32* %100, i32 9
%128 = getelementptr inbounds i32, i32* %101, i32 9
%129 = load i32, i32* %128, align 4
store i32 %129, i32* %127, align 4
%130 = getelementptr inbounds i32, i32* %100, i32 10
%131 = getelementptr inbounds i32, i32* %101, i32 10
%132 = load i32, i32* %131, align 4
store i32 %132, i32* %130, align 4
%133 = getelementptr inbounds i32, i32* %100, i32 11
%134 = getelementptr inbounds i32, i32* %101, i32 11
%135 = load i32, i32* %134, align 4
store i32 %135, i32* %133, align 4
%136 = getelementptr inbounds i32, i32* %100, i32 12
%137 = getelementptr inbounds i32, i32* %101, i32 12
%138 = load i32, i32* %137, align 4
store i32 %138, i32* %136, align 4
%139 = getelementptr inbounds i32, i32* %100, i32 13
%140 = getelementptr inbounds i32, i32* %101, i32 13
%141 = load i32, i32* %140, align 4
store i32 %141, i32* %139, align 4
%142 = getelementptr inbounds i32, i32* %100, i32 14
%143 = getelementptr inbounds i32, i32* %101, i32 14
%144 = load i32, i32* %143, align 4
store i32 %144, i32* %142, align 4
%145 = getelementptr inbounds i32, i32* %100, i32 15
%146 = getelementptr inbounds i32, i32* %101, i32 15
%147 = load i32, i32* %146, align 4
store i32 %147, i32* %145, align 4
%148 = getelementptr inbounds i32, i32* %100, i32 16
%149 = getelementptr inbounds i32, i32* %101, i32 16
%150 = load i32, i32* %149, align 4
store i32 %150, i32* %148, align 4
%151 = getelementptr inbounds i32, i32* %100, i32 17
%152 = getelementptr inbounds i32, i32* %101, i32 17
%153 = load i32, i32* %152, align 4
store i32 %153, i32* %151, align 4
%154 = getelementptr inbounds i32, i32* %100, i32 18
%155 = getelementptr inbounds i32, i32* %101, i32 18
%156 = load i32, i32* %155, align 4
store i32 %156, i32* %154, align 4
%157 = getelementptr inbounds i32, i32* %100, i32 19
%158 = getelementptr inbounds i32, i32* %101, i32 19
%159 = load i32, i32* %158, align 4
store i32 %159, i32* %157, align 4
%160 = getelementptr inbounds i32, i32* %100, i32 20
%161 = getelementptr inbounds i32, i32* %101, i32 20
%162 = load i32, i32* %161, align 4
store i32 %162, i32* %160, align 4
%163 = getelementptr inbounds i32, i32* %100, i32 21
%164 = getelementptr inbounds i32, i32* %101, i32 21
%165 = load i32, i32* %164, align 4
store i32 %165, i32* %163, align 4
%166 = getelementptr inbounds i32, i32* %100, i32 22
%167 = getelementptr inbounds i32, i32* %101, i32 22
%168 = load i32, i32* %167, align 4
store i32 %168, i32* %166, align 4
%169 = getelementptr inbounds i32, i32* %100, i32 23
%170 = getelementptr inbounds i32, i32* %101, i32 23
%171 = load i32, i32* %170, align 4
store i32 %171, i32* %169, align 4
%172 = getelementptr inbounds i32, i32* %100, i32 24
%173 = getelementptr inbounds i32, i32* %101, i32 24
%174 = load i32, i32* %173, align 4
store i32 %174, i32* %172, align 4
%175 = getelementptr inbounds i32, i32* %100, i32 25
%176 = getelementptr inbounds i32, i32* %101, i32 25
%177 = load i32, i32* %176, align 4
store i32 %177, i32* %175, align 4
%178 = getelementptr inbounds i32, i32* %100, i32 26
%179 = getelementptr inbounds i32, i32* %101, i32 26
%180 = load i32, i32* %179, align 4
store i32 %180, i32* %178, align 4
%181 = getelementptr inbounds i32, i32* %100, i32 27
%182 = getelementptr inbounds i32, i32* %101, i32 27
%183 = load i32, i32* %182, align 4
store i32 %183, i32* %181, align 4
%184 = getelementptr inbounds i32, i32* %100, i32 28
%185 = getelementptr inbounds i32, i32* %101, i32 28
%186 = load i32, i32* %185, align 4
store i32 %186, i32* %184, align 4
%187 = getelementptr inbounds i32, i32* %100, i32 29
%188 = getelementptr inbounds i32, i32* %101, i32 29
%189 = load i32, i32* %188, align 4
store i32 %189, i32* %187, align 4
%190 = getelementptr inbounds i32, i32* %100, i32 30
%191 = getelementptr inbounds i32, i32* %101, i32 30
%192 = load i32, i32* %191, align 4
store i32 %192, i32* %190, align 4
%193 = getelementptr inbounds i32, i32* %100, i32 31
%194 = getelementptr inbounds i32, i32* %101, i32 31
%195 = load i32, i32* %194, align 4
store i32 %195, i32* %193, align 4
%196 = getelementptr inbounds i32, i32* %100, i32 32
%197 = getelementptr inbounds i32, i32* %101, i32 32
%198 = load i32, i32* %197, align 4
store i32 %198, i32* %196, align 4
%199 = getelementptr inbounds i32, i32* %100, i32 33
%200 = getelementptr inbounds i32, i32* %101, i32 33
%201 = load i32, i32* %200, align 4
store i32 %201, i32* %199, align 4
%202 = getelementptr inbounds i32, i32* %100, i32 34
%203 = getelementptr inbounds i32, i32* %101, i32 34
%204 = load i32, i32* %203, align 4
store i32 %204, i32* %202, align 4
%205 = getelementptr inbounds i32, i32* %100, i32 35
%206 = getelementptr inbounds i32, i32* %101, i32 35
%207 = load i32, i32* %206, align 4
store i32 %207, i32* %205, align 4
%208 = getelementptr inbounds i32, i32* %100, i32 36
%209 = getelementptr inbounds i32, i32* %101, i32 36
%210 = load i32, i32* %209, align 4
store i32 %210, i32* %208, align 4
%211 = getelementptr inbounds i32, i32* %100, i32 37
%212 = getelementptr inbounds i32, i32* %101, i32 37
%213 = load i32, i32* %212, align 4
store i32 %213, i32* %211, align 4
%214 = getelementptr inbounds i32, i32* %100, i32 38
%215 = getelementptr inbounds i32, i32* %101, i32 38
%216 = load i32, i32* %215, align 4
store i32 %216, i32* %214, align 4
%217 = getelementptr inbounds i32, i32* %100, i32 39
%218 = getelementptr inbounds i32, i32* %101, i32 39
%219 = load i32, i32* %218, align 4
store i32 %219, i32* %217, align 4
%220 = getelementptr inbounds i32, i32* %100, i32 40
%221 = getelementptr inbounds i32, i32* %101, i32 40
%222 = load i32, i32* %221, align 4
store i32 %222, i32* %220, align 4
%223 = getelementptr inbounds i32, i32* %100, i32 41
%224 = getelementptr inbounds i32, i32* %101, i32 41
%225 = load i32, i32* %224, align 4
store i32 %225, i32* %223, align 4
%226 = getelementptr inbounds i32, i32* %100, i32 42
%227 = getelementptr inbounds i32, i32* %101, i32 42
%228 = load i32, i32* %227, align 4
store i32 %228, i32* %226, align 4
%229 = getelementptr inbounds i32, i32* %100, i32 43
%230 = getelementptr inbounds i32, i32* %101, i32 43
%231 = load i32, i32* %230, align 4
store i32 %231, i32* %229, align 4
%232 = getelementptr inbounds i32, i32* %100, i32 44
%233 = getelementptr inbounds i32, i32* %101, i32 44
%234 = load i32, i32* %233, align 4
store i32 %234, i32* %232, align 4
%235 = getelementptr inbounds i32, i32* %100, i32 45
%236 = getelementptr inbounds i32, i32* %101, i32 45
%237 = load i32, i32* %236, align 4
store i32 %237, i32* %235, align 4
%238 = getelementptr inbounds i32, i32* %100, i32 46
%239 = getelementptr inbounds i32, i32* %101, i32 46
%240 = load i32, i32* %239, align 4
store i32 %240, i32* %238, align 4
%241 = getelementptr inbounds i32, i32* %100, i32 47
%242 = getelementptr inbounds i32, i32* %101, i32 47
%243 = load i32, i32* %242, align 4
store i32 %243, i32* %241, align 4
%244 = getelementptr inbounds i32, i32* %100, i32 48
%245 = getelementptr inbounds i32, i32* %101, i32 48
%246 = load i32, i32* %245, align 4
store i32 %246, i32* %244, align 4
%247 = getelementptr inbounds i32, i32* %100, i32 49
%248 = getelementptr inbounds i32, i32* %101, i32 49
%249 = load i32, i32* %248, align 4
store i32 %249, i32* %247, align 4
%250 = getelementptr inbounds i32, i32* %100, i32 50
%251 = getelementptr inbounds i32, i32* %101, i32 50
%252 = load i32, i32* %251, align 4
store i32 %252, i32* %250, align 4
%253 = getelementptr inbounds i32, i32* %100, i32 51
%254 = getelementptr inbounds i32, i32* %101, i32 51
%255 = load i32, i32* %254, align 4
store i32 %255, i32* %253, align 4
%256 = getelementptr inbounds i32, i32* %100, i32 52
%257 = getelementptr inbounds i32, i32* %101, i32 52
%258 = load i32, i32* %257, align 4
store i32 %258, i32* %256, align 4
%259 = getelementptr inbounds i32, i32* %100, i32 53
%260 = getelementptr inbounds i32, i32* %101, i32 53
%261 = load i32, i32* %260, align 4
store i32 %261, i32* %259, align 4
%262 = getelementptr inbounds i32, i32* %100, i32 54
%263 = getelementptr inbounds i32, i32* %101, i32 54
%264 = load i32, i32* %263, align 4
store i32 %264, i32* %262, align 4
%265 = getelementptr inbounds i32, i32* %100, i32 55
%266 = getelementptr inbounds i32, i32* %101, i32 55
%267 = load i32, i32* %266, align 4
store i32 %267, i32* %265, align 4
%268 = getelementptr inbounds i32, i32* %100, i32 56
%269 = getelementptr inbounds i32, i32* %101, i32 56
%270 = load i32, i32* %269, align 4
store i32 %270, i32* %268, align 4
%271 = getelementptr inbounds i32, i32* %100, i32 57
%272 = getelementptr inbounds i32, i32* %101, i32 57
%273 = load i32, i32* %272, align 4
store i32 %273, i32* %271, align 4
%274 = getelementptr inbounds i32, i32* %100, i32 58
%275 = getelementptr inbounds i32, i32* %101, i32 58
%276 = load i32, i32* %275, align 4
store i32 %276, i32* %274, align 4
%277 = getelementptr inbounds i32, i32* %100, i32 59
%278 = getelementptr inbounds i32, i32* %101, i32 59
%279 = load i32, i32* %278, align 4
store i32 %279, i32* %277, align 4
%280 = getelementptr inbounds i32, i32* %100, i32 60
%281 = getelementptr inbounds i32, i32* %101, i32 60
%282 = load i32, i32* %281, align 4
store i32 %282, i32* %280, align 4
%283 = getelementptr inbounds i32, i32* %100, i32 61
%284 = getelementptr inbounds i32, i32* %101, i32 61
%285 = load i32, i32* %284, align 4
store i32 %285, i32* %283, align 4
%286 = getelementptr inbounds i32, i32* %100, i32 62
%287 = getelementptr inbounds i32, i32* %101, i32 62
%288 = load i32, i32* %287, align 4
store i32 %288, i32* %286, align 4
%289 = getelementptr inbounds i32, i32* %100, i32 63
%290 = getelementptr inbounds i32, i32* %101, i32 63
%291 = load i32, i32* %290, align 4
store i32 %291, i32* %289, align 4
%292 = getelementptr inbounds i32, i32* %100, i32 64
%293 = getelementptr inbounds i32, i32* %101, i32 64
br label %99
; <label>:294: ; preds = %13
%295 = load i32, i32* getelementptr inbounds (i32, i32* @_sidata, i32 1), align 4
store i32 %295, i32* getelementptr inbounds (i32, i32* @_sdata, i32 1), align 4
br i1 icmp ne (i32 sub (i32 sub (i32 and (i32 add (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sdata, i32 1), i32* @_edata), i32* @_edata, i32* getelementptr inbounds (i32, i32* @_sdata, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sdata to i32))) to i32), i32 2), i32 1), i32 3), i32 1), i32 1), i32 0), label %296, label %15
; <label>:296: ; preds = %294
%297 = load i32, i32* getelementptr (i32, i32* @_sidata, i32 2), align 4
store i32 %297, i32* getelementptr (i32, i32* @_sdata, i32 2), align 4
br label %15
; <label>:298: ; preds = %2
store volatile i32 0, i32* getelementptr inbounds (i32, i32* @_sbss, i32 1), align 4
br i1 icmp ne (i32 sub (i32 sub (i32 and (i32 add (i32 lshr (i32 ptrtoint (i8* getelementptr (i8, i8* bitcast (i32* select (i1 icmp ult (i32* getelementptr inbounds (i32, i32* @_sbss, i32 1), i32* @_ebss), i32* @_ebss, i32* getelementptr inbounds (i32, i32* @_sbss, i32 1)) to i8*), i32 sub (i32 -1, i32 ptrtoint (i32* @_sbss to i32))) to i32), i32 2), i32 1), i32 3), i32 1), i32 1), i32 0), label %299, label %3
; <label>:299: ; preds = %298
store volatile i32 0, i32* getelementptr (i32, i32* @_sbss, i32 2), align 4
br label %3
; <label>:300: ; preds = %30
%301 = load i32, i32* %41, align 4
store i32 %301, i32* %19, align 4
%302 = getelementptr inbounds i32, i32* %16, i32 5
%303 = getelementptr inbounds i32, i32* %17, i32 5
%304 = load i32, i32* %303, align 4
store i32 %304, i32* %302, align 4
%305 = getelementptr inbounds i32, i32* %16, i32 6
%306 = getelementptr inbounds i32, i32* %17, i32 6
%307 = load i32, i32* %306, align 4
store i32 %307, i32* %305, align 4
%308 = getelementptr inbounds i32, i32* %16, i32 7
%309 = getelementptr inbounds i32, i32* %17, i32 7
%310 = load i32, i32* %309, align 4
store i32 %310, i32* %308, align 4
%311 = getelementptr inbounds i32, i32* %16, i32 8
%312 = getelementptr inbounds i32, i32* %17, i32 8
%313 = icmp eq i32 %28, 2
br i1 %313, label %43, label %314
; <label>:314: ; preds = %300
%315 = load i32, i32* %312, align 4
store i32 %315, i32* %311, align 4
%316 = getelementptr inbounds i32, i32* %16, i32 9
%317 = getelementptr inbounds i32, i32* %17, i32 9
%318 = load i32, i32* %317, align 4
store i32 %318, i32* %316, align 4
%319 = getelementptr inbounds i32, i32* %16, i32 10
%320 = getelementptr inbounds i32, i32* %17, i32 10
%321 = load i32, i32* %320, align 4
store i32 %321, i32* %319, align 4
%322 = getelementptr inbounds i32, i32* %16, i32 11
%323 = getelementptr inbounds i32, i32* %17, i32 11
%324 = load i32, i32* %323, align 4
store i32 %324, i32* %322, align 4
%325 = getelementptr inbounds i32, i32* %16, i32 12
%326 = getelementptr inbounds i32, i32* %17, i32 12
br label %43
; <label>:327: ; preds = %6
store volatile i32 0, i32* %11, align 4
%328 = getelementptr inbounds i32, i32* %7, i32 5
store volatile i32 0, i32* %328, align 4
%329 = getelementptr inbounds i32, i32* %7, i32 6
store volatile i32 0, i32* %329, align 4
%330 = getelementptr inbounds i32, i32* %7, i32 7
store volatile i32 0, i32* %330, align 4
%331 = getelementptr inbounds i32, i32* %7, i32 8
%332 = icmp ult i32* %331, @_ebss
br i1 %332, label %333, label %.loopexit1
; <label>:333: ; preds = %327
store volatile i32 0, i32* %331, align 4
%334 = getelementptr inbounds i32, i32* %7, i32 9
store volatile i32 0, i32* %334, align 4
%335 = getelementptr inbounds i32, i32* %7, i32 10
store volatile i32 0, i32* %335, align 4
%336 = getelementptr inbounds i32, i32* %7, i32 11
store volatile i32 0, i32* %336, align 4
%337 = getelementptr inbounds i32, i32* %7, i32 12
%338 = icmp ult i32* %337, @_ebss
br i1 %338, label %339, label %.loopexit1
; <label>:339: ; preds = %333
store volatile i32 0, i32* %337, align 4
%340 = getelementptr inbounds i32, i32* %7, i32 13
store volatile i32 0, i32* %340, align 4
%341 = getelementptr inbounds i32, i32* %7, i32 14
store volatile i32 0, i32* %341, align 4
%342 = getelementptr inbounds i32, i32* %7, i32 15
store volatile i32 0, i32* %342, align 4
%343 = getelementptr inbounds i32, i32* %7, i32 16
%344 = icmp ult i32* %343, @_ebss
br i1 %344, label %6, label %.loopexit1
; <label>:345: ; preds = %.prol.preheader
%346 = load i32, i32* %98, align 4
store i32 %346, i32* %97, align 4
%347 = getelementptr inbounds i32, i32* %44, i32 17
%348 = getelementptr inbounds i32, i32* %45, i32 17
%349 = load i32, i32* %348, align 4
store i32 %349, i32* %347, align 4
%350 = getelementptr inbounds i32, i32* %44, i32 18
%351 = getelementptr inbounds i32, i32* %45, i32 18
%352 = load i32, i32* %351, align 4
store i32 %352, i32* %350, align 4
%353 = getelementptr inbounds i32, i32* %44, i32 19
%354 = getelementptr inbounds i32, i32* %45, i32 19
%355 = load i32, i32* %354, align 4
store i32 %355, i32* %353, align 4
%356 = getelementptr inbounds i32, i32* %44, i32 20
%357 = getelementptr inbounds i32, i32* %45, i32 20
%358 = load i32, i32* %357, align 4
store i32 %358, i32* %356, align 4
%359 = getelementptr inbounds i32, i32* %44, i32 21
%360 = getelementptr inbounds i32, i32* %45, i32 21
%361 = load i32, i32* %360, align 4
store i32 %361, i32* %359, align 4
%362 = getelementptr inbounds i32, i32* %44, i32 22
%363 = getelementptr inbounds i32, i32* %45, i32 22
%364 = load i32, i32* %363, align 4
store i32 %364, i32* %362, align 4
%365 = getelementptr inbounds i32, i32* %44, i32 23
%366 = getelementptr inbounds i32, i32* %45, i32 23
%367 = load i32, i32* %366, align 4
store i32 %367, i32* %365, align 4
%368 = getelementptr inbounds i32, i32* %44, i32 24
%369 = getelementptr inbounds i32, i32* %45, i32 24
%370 = load i32, i32* %369, align 4
store i32 %370, i32* %368, align 4
%371 = getelementptr inbounds i32, i32* %44, i32 25
%372 = getelementptr inbounds i32, i32* %45, i32 25
%373 = load i32, i32* %372, align 4
store i32 %373, i32* %371, align 4
%374 = getelementptr inbounds i32, i32* %44, i32 26
%375 = getelementptr inbounds i32, i32* %45, i32 26
%376 = load i32, i32* %375, align 4
store i32 %376, i32* %374, align 4
%377 = getelementptr inbounds i32, i32* %44, i32 27
%378 = getelementptr inbounds i32, i32* %45, i32 27
%379 = load i32, i32* %378, align 4
store i32 %379, i32* %377, align 4
%380 = getelementptr inbounds i32, i32* %44, i32 28
%381 = getelementptr inbounds i32, i32* %45, i32 28
%382 = load i32, i32* %381, align 4
store i32 %382, i32* %380, align 4
%383 = getelementptr inbounds i32, i32* %44, i32 29
%384 = getelementptr inbounds i32, i32* %45, i32 29
%385 = load i32, i32* %384, align 4
store i32 %385, i32* %383, align 4
%386 = getelementptr inbounds i32, i32* %44, i32 30
%387 = getelementptr inbounds i32, i32* %45, i32 30
%388 = load i32, i32* %387, align 4
store i32 %388, i32* %386, align 4
%389 = getelementptr inbounds i32, i32* %44, i32 31
%390 = getelementptr inbounds i32, i32* %45, i32 31
%391 = load i32, i32* %390, align 4
store i32 %391, i32* %389, align 4
%392 = getelementptr inbounds i32, i32* %44, i32 32
%393 = getelementptr inbounds i32, i32* %45, i32 32
%prol.iter.cmp.1 = icmp eq i32 %xtraiter, 2
br i1 %prol.iter.cmp.1, label %.new, label %394
; <label>:394: ; preds = %345
%395 = load i32, i32* %393, align 4
store i32 %395, i32* %392, align 4
%396 = getelementptr inbounds i32, i32* %44, i32 33
%397 = getelementptr inbounds i32, i32* %45, i32 33
%398 = load i32, i32* %397, align 4
store i32 %398, i32* %396, align 4
%399 = getelementptr inbounds i32, i32* %44, i32 34
%400 = getelementptr inbounds i32, i32* %45, i32 34
%401 = load i32, i32* %400, align 4
store i32 %401, i32* %399, align 4
%402 = getelementptr inbounds i32, i32* %44, i32 35
%403 = getelementptr inbounds i32, i32* %45, i32 35
%404 = load i32, i32* %403, align 4
store i32 %404, i32* %402, align 4
%405 = getelementptr inbounds i32, i32* %44, i32 36
%406 = getelementptr inbounds i32, i32* %45, i32 36
%407 = load i32, i32* %406, align 4
store i32 %407, i32* %405, align 4
%408 = getelementptr inbounds i32, i32* %44, i32 37
%409 = getelementptr inbounds i32, i32* %45, i32 37
%410 = load i32, i32* %409, align 4
store i32 %410, i32* %408, align 4
%411 = getelementptr inbounds i32, i32* %44, i32 38
%412 = getelementptr inbounds i32, i32* %45, i32 38
%413 = load i32, i32* %412, align 4
store i32 %413, i32* %411, align 4
%414 = getelementptr inbounds i32, i32* %44, i32 39
%415 = getelementptr inbounds i32, i32* %45, i32 39
%416 = load i32, i32* %415, align 4
store i32 %416, i32* %414, align 4
%417 = getelementptr inbounds i32, i32* %44, i32 40
%418 = getelementptr inbounds i32, i32* %45, i32 40
%419 = load i32, i32* %418, align 4
store i32 %419, i32* %417, align 4
%420 = getelementptr inbounds i32, i32* %44, i32 41
%421 = getelementptr inbounds i32, i32* %45, i32 41
%422 = load i32, i32* %421, align 4
store i32 %422, i32* %420, align 4
%423 = getelementptr inbounds i32, i32* %44, i32 42
%424 = getelementptr inbounds i32, i32* %45, i32 42
%425 = load i32, i32* %424, align 4
store i32 %425, i32* %423, align 4
%426 = getelementptr inbounds i32, i32* %44, i32 43
%427 = getelementptr inbounds i32, i32* %45, i32 43
%428 = load i32, i32* %427, align 4
store i32 %428, i32* %426, align 4
%429 = getelementptr inbounds i32, i32* %44, i32 44
%430 = getelementptr inbounds i32, i32* %45, i32 44
%431 = load i32, i32* %430, align 4
store i32 %431, i32* %429, align 4
%432 = getelementptr inbounds i32, i32* %44, i32 45
%433 = getelementptr inbounds i32, i32* %45, i32 45
%434 = load i32, i32* %433, align 4
store i32 %434, i32* %432, align 4
%435 = getelementptr inbounds i32, i32* %44, i32 46
%436 = getelementptr inbounds i32, i32* %45, i32 46
%437 = load i32, i32* %436, align 4
store i32 %437, i32* %435, align 4
%438 = getelementptr inbounds i32, i32* %44, i32 47
%439 = getelementptr inbounds i32, i32* %45, i32 47
%440 = load i32, i32* %439, align 4
store i32 %440, i32* %438, align 4
%441 = getelementptr inbounds i32, i32* %44, i32 48
%442 = getelementptr inbounds i32, i32* %45, i32 48
br label %.new
}
attributes #0 = { norecurse noreturn nounwind readnone }
attributes #1 = { nounwind }
attributes #2 = { norecurse noreturn nounwind }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment