; ModuleID = 'example.bc'
target datalayout = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
target triple = "mips--linux-gnu"
@str = private unnamed_addr
constant [56 x
i8] c
"This function exists just to examine inlining behaviour\00"
; Function Attrs: nounwind
define void @main_loop(i32 signext %len, i8* noalias nocapture readonly %input_buf, i8* noalias nocapture %output_buf) #
0 {
%1 = icmp sgt
i32 %len, 0
br i1 %1, label %.lr.ph.preheader, label %._crit_edge
.lr.ph.preheader: ; preds = %0
%xtraiter = and i32 %len, 7
%lcmp.mod = icmp eq
i32 %xtraiter, 0
br i1 %lcmp.mod, label %.lr.ph.preheader.split, label %.lr.ph.prol.preheader
.lr.ph.prol.preheader: ; preds = %.lr.ph.preheader
br label %.lr.ph.prol
.lr.ph.prol: ; preds = %.lr.ph.prol.preheader, %.lr.ph.prol
%.04.prol = phi i8* [ %7, %.lr.ph.prol ], [ %input_buf, %.lr.ph.prol.preheader ]
%.013.prol = phi i8* [ %20, %.lr.ph.prol ], [ %output_buf, %.lr.ph.prol.preheader ]
%i.02.prol = phi i32 [ %21, %.lr.ph.prol ], [ 0, %.lr.ph.prol.preheader ]
%prol.iter = phi i32 [ %prol.iter.sub, %.lr.ph.prol ], [ %xtraiter, %.lr.ph.prol.preheader ]
%3 = getelementptr inbounds i8, i8* %.04.prol, i32 1
%4 = load i8, i8* %.04.prol, align 1, !tbaa
!1
%5 = getelementptr inbounds i8, i8* %.04.prol, i32 2
%6 = load i8, i8* %3, align 1, !tbaa
!1
%7 = getelementptr inbounds i8, i8* %.04.prol, i32 3
%8 = load i8, i8* %5, align 1, !tbaa
!1
%10 = add nuw nsw i32 %9, 246
%11 = trunc i32 %10 to i8
%13 = add nuw nsw i32 %12, 236
%14 = trunc i32 %13 to i8
%16 = add nuw nsw i32 %15, 226
%17 = trunc i32 %16 to i8
%18 = getelementptr inbounds i8, i8* %.013.prol, i32 1
store i8 %11, i8* %.013.prol, align 1, !tbaa
!1
%19 = getelementptr inbounds i8, i8* %.013.prol, i32 2
store i8 %14, i8* %18, align 1, !tbaa
!1
%20 = getelementptr inbounds i8, i8* %.013.prol, i32 3
store i8 %17, i8* %19, align 1, !tbaa
!1
%21 = add nuw nsw i32 %i.02.prol, 1
%prol.iter.sub = add i32 %prol.iter, -1
%prol.iter.cmp = icmp eq
i32 %prol.iter.sub, 0
br i1 %prol.iter.cmp, label %.lr.ph.preheader.split.loopexit, label %.lr.ph.prol, !llvm
.loop
!4
.lr.ph.preheader.split.loopexit: ; preds = %.lr.ph.prol
%.lcssa15 = phi i32 [ %21, %.lr.ph.prol ]
%.lcssa14 = phi i8* [ %20, %.lr.ph.prol ]
%.lcssa = phi i8* [ %7, %.lr.ph.prol ]
br label %.lr.ph.preheader.split
.lr.ph.preheader.split: ; preds = %.lr.ph.preheader.split.loopexit, %.lr.ph.preheader
%.04.unr = phi i8* [ %input_buf, %.lr.ph.preheader ], [ %.lcssa, %.lr.ph.preheader.split.loopexit ]
%.013.unr = phi i8* [ %output_buf, %.lr.ph.preheader ], [ %.lcssa14, %.lr.ph.preheader.split.loopexit ]
%i.02.unr = phi i32 [ 0, %.lr.ph.preheader ], [ %.lcssa15, %.lr.ph.preheader.split.loopexit ]
br i1 %22, label %._crit_edge, label %.lr.ph.preheader11
.lr.ph.preheader11: ; preds = %.lr.ph.preheader.split
br label %.lr.ph
.lr.ph: ; preds = %.lr.ph.preheader11, %.lr.ph
%.04 = phi i8* [ %153, %.lr.ph ], [ %.04.unr, %.lr.ph.preheader11 ]
%.013 = phi i8* [ %166, %.lr.ph ], [ %.013.unr, %.lr.ph.preheader11 ]
%i.02 = phi i32 [ %167, %.lr.ph ], [ %i.02.unr, %.lr.ph.preheader11 ]
%23 = getelementptr inbounds i8, i8* %.04, i32 1
%24 = load i8, i8* %.04, align 1, !tbaa
!1
%25 = getelementptr inbounds i8, i8* %.04, i32 2
%26 = load i8, i8* %23, align 1, !tbaa
!1
%27 = getelementptr inbounds i8, i8* %.04, i32 3
%28 = load i8, i8* %25, align 1, !tbaa
!1
%30 = add nuw nsw i32 %29, 246
%31 = trunc i32 %30 to i8
%33 = add nuw nsw i32 %32, 236
%34 = trunc i32 %33 to i8
%36 = add nuw nsw i32 %35, 226
%37 = trunc i32 %36 to i8
%38 = getelementptr inbounds i8, i8* %.013, i32 1
store i8 %31, i8* %.013, align 1, !tbaa
!1
%39 = getelementptr inbounds i8, i8* %.013, i32 2
store i8 %34, i8* %38, align 1, !tbaa
!1
%40 = getelementptr inbounds i8, i8* %.013, i32 3
store i8 %37, i8* %39, align 1, !tbaa
!1
%41 = getelementptr inbounds i8, i8* %.04, i32 4
%42 = load i8, i8* %27, align 1, !tbaa
!1
%43 = getelementptr inbounds i8, i8* %.04, i32 5
%44 = load i8, i8* %41, align 1, !tbaa
!1
%45 = getelementptr inbounds i8, i8* %.04, i32 6
%46 = load i8, i8* %43, align 1, !tbaa
!1
%48 = add nuw nsw i32 %47, 246
%49 = trunc i32 %48 to i8
%51 = add nuw nsw i32 %50, 236
%52 = trunc i32 %51 to i8
%54 = add nuw nsw i32 %53, 226
%55 = trunc i32 %54 to i8
%56 = getelementptr inbounds i8, i8* %.013, i32 4
store i8 %49, i8* %40, align 1, !tbaa
!1
%57 = getelementptr inbounds i8, i8* %.013, i32 5
store i8 %52, i8* %56, align 1, !tbaa
!1
%58 = getelementptr inbounds i8, i8* %.013, i32 6
store i8 %55, i8* %57, align 1, !tbaa
!1
%59 = getelementptr inbounds i8, i8* %.04, i32 7
%60 = load i8, i8* %45, align 1, !tbaa
!1
%61 = getelementptr inbounds i8, i8* %.04, i32 8
%62 = load i8, i8* %59, align 1, !tbaa
!1
%63 = getelementptr inbounds i8, i8* %.04, i32 9
%64 = load i8, i8* %61, align 1, !tbaa
!1
%66 = add nuw nsw i32 %65, 246
%67 = trunc i32 %66 to i8
%69 = add nuw nsw i32 %68, 236
%70 = trunc i32 %69 to i8
%72 = add nuw nsw i32 %71, 226
%73 = trunc i32 %72 to i8
%74 = getelementptr inbounds i8, i8* %.013, i32 7
store i8 %67, i8* %58, align 1, !tbaa
!1
%75 = getelementptr inbounds i8, i8* %.013, i32 8
store i8 %70, i8* %74, align 1, !tbaa
!1
%76 = getelementptr inbounds i8, i8* %.013, i32 9
store i8 %73, i8* %75, align 1, !tbaa
!1
%77 = getelementptr inbounds i8, i8* %.04, i32 10
%78 = load i8, i8* %63, align 1, !tbaa
!1
%79 = getelementptr inbounds i8, i8* %.04, i32 11
%80 = load i8, i8* %77, align 1, !tbaa
!1
%81 = getelementptr inbounds i8, i8* %.04, i32 12
%82 = load i8, i8* %79, align 1, !tbaa
!1
%84 = add nuw nsw i32 %83, 246
%85 = trunc i32 %84 to i8
%87 = add nuw nsw i32 %86, 236
%88 = trunc i32 %87 to i8
%90 = add nuw nsw i32 %89, 226
%91 = trunc i32 %90 to i8
%92 = getelementptr inbounds i8, i8* %.013, i32 10
store i8 %85, i8* %76, align 1, !tbaa
!1
%93 = getelementptr inbounds i8, i8* %.013, i32 11
store i8 %88, i8* %92, align 1, !tbaa
!1
%94 = getelementptr inbounds i8, i8* %.013, i32 12
store i8 %91, i8* %93, align 1, !tbaa
!1
%95 = getelementptr inbounds i8, i8* %.04, i32 13
%96 = load i8, i8* %81, align 1, !tbaa
!1
%97 = getelementptr inbounds i8, i8* %.04, i32 14
%98 = load i8, i8* %95, align 1, !tbaa
!1
%99 = getelementptr inbounds i8, i8* %.04, i32 15
%100 = load i8, i8* %97, align 1, !tbaa
!1
%101 = zext i8 %96 to i32
%102 = add nuw nsw i32 %101, 246
%103 = trunc i32 %102 to i8
%104 = zext i8 %98 to i32
%105 = add nuw nsw i32 %104, 236
%106 = trunc i32 %105 to i8
%107 = zext i8 %100 to i32
%108 = add nuw nsw i32 %107, 226
%109 = trunc i32 %108 to i8
%110 = getelementptr inbounds i8, i8* %.013, i32 13
store i8 %103, i8* %94, align 1, !tbaa
!1
%111 = getelementptr inbounds i8, i8* %.013, i32 14
store i8 %106, i8* %110, align 1, !tbaa
!1
%112 = getelementptr inbounds i8, i8* %.013, i32 15
store i8 %109, i8* %111, align 1, !tbaa
!1
%113 = getelementptr inbounds i8, i8* %.04, i32 16
%114 = load i8, i8* %99, align 1, !tbaa
!1
%115 = getelementptr inbounds i8, i8* %.04, i32 17
%116 = load i8, i8* %113, align 1, !tbaa
!1
%117 = getelementptr inbounds i8, i8* %.04, i32 18
%118 = load i8, i8* %115, align 1, !tbaa
!1
%119 = zext i8 %114 to i32
%120 = add nuw nsw i32 %119, 246
%121 = trunc i32 %120 to i8
%122 = zext i8 %116 to i32
%123 = add nuw nsw i32 %122, 236
%124 = trunc i32 %123 to i8
%125 = zext i8 %118 to i32
%126 = add nuw nsw i32 %125, 226
%127 = trunc i32 %126 to i8
%128 = getelementptr inbounds i8, i8* %.013, i32 16
store i8 %121, i8* %112, align 1, !tbaa
!1
%129 = getelementptr inbounds i8, i8* %.013, i32 17
store i8 %124, i8* %128, align 1, !tbaa
!1
%130 = getelementptr inbounds i8, i8* %.013, i32 18
store i8 %127, i8* %129, align 1, !tbaa
!1
%131 = getelementptr inbounds i8, i8* %.04, i32 19
%132 = load i8, i8* %117, align 1, !tbaa
!1
%133 = getelementptr inbounds i8, i8* %.04, i32 20
%134 = load i8, i8* %131, align 1, !tbaa
!1
%135 = getelementptr inbounds i8, i8* %.04, i32 21
%136 = load i8, i8* %133, align 1, !tbaa
!1
%137 = zext i8 %132 to i32
%138 = add nuw nsw i32 %137, 246
%139 = trunc i32 %138 to i8
%140 = zext i8 %134 to i32
%141 = add nuw nsw i32 %140, 236
%142 = trunc i32 %141 to i8
%143 = zext i8 %136 to i32
%144 = add nuw nsw i32 %143, 226
%145 = trunc i32 %144 to i8
%146 = getelementptr inbounds i8, i8* %.013, i32 19
store i8 %139, i8* %130, align 1, !tbaa
!1
%147 = getelementptr inbounds i8, i8* %.013, i32 20
store i8 %142, i8* %146, align 1, !tbaa
!1
%148 = getelementptr inbounds i8, i8* %.013, i32 21
store i8 %145, i8* %147, align 1, !tbaa
!1
%149 = getelementptr inbounds i8, i8* %.04, i32 22
%150 = load i8, i8* %135, align 1, !tbaa
!1
%151 = getelementptr inbounds i8, i8* %.04, i32 23
%152 = load i8, i8* %149, align 1, !tbaa
!1
%153 = getelementptr inbounds i8, i8* %.04, i32 24
%154 = load i8, i8* %151, align 1, !tbaa
!1
%155 = zext i8 %150 to i32
%156 = add nuw nsw i32 %155, 246
%157 = trunc i32 %156 to i8
%158 = zext i8 %152 to i32
%159 = add nuw nsw i32 %158, 236
%160 = trunc i32 %159 to i8
%161 = zext i8 %154 to i32
%162 = add nuw nsw i32 %161, 226
%163 = trunc i32 %162 to i8
%164 = getelementptr inbounds i8, i8* %.013, i32 22
store i8 %157, i8* %148, align 1, !tbaa
!1
%165 = getelementptr inbounds i8, i8* %.013, i32 23
store i8 %160, i8* %164, align 1, !tbaa
!1
%166 = getelementptr inbounds i8, i8* %.013, i32 24
store i8 %163, i8* %165, align 1, !tbaa
!1
%167 = add nsw i32 %i.02, 8
%exitcond.7 = icmp eq
i32 %167, %len
br i1 %exitcond.7, label %._crit_edge.loopexit, label %.lr.ph, !llvm
.loop
!6
._crit_edge.loopexit: ; preds = %.lr.ph
br label %._crit_edge
._crit_edge: ; preds = %._crit_edge.loopexit, %.lr.ph.preheader.split, %0
ret void
}
; Function Attrs: nounwind
%1 = icmp sgt
i32 %len, 0
br i1 %1, label %.lr.ph.preheader.i, label %main_loop.exit
.lr.ph.preheader.i: ; preds = %0
%xtraiter.i = and i32 %len, 7
%lcmp.mod.i = icmp eq
i32 %xtraiter.i, 0
br i1 %lcmp.mod.i, label %.lr.ph.preheader.split.i, label %.lr.ph.prol.i.preheader
.lr.ph.prol.i.preheader: ; preds = %.lr.ph.preheader.i
%4 = mul nuw nsw i32 %3, 3
%scevgep = getelementptr i8, i8* %output_buf, i32 %4
br label %.lr.ph.prol.i
.lr.ph.prol.i: ; preds = %.lr.ph.prol.i.preheader, %.lr.ph.prol.i
%.04.prol.i = phi i8* [ %9, %.lr.ph.prol.i ], [ %input_buf, %.lr.ph.prol.i.preheader ]
%.013.prol.i = phi i8* [ %22, %.lr.ph.prol.i ], [ %output_buf, %.lr.ph.prol.i.preheader ]
%prol.iter.i = phi i32 [ %prol.iter.sub.i
, %.lr.ph.prol.i ], [ %xtraiter.i, %.lr.ph.prol.i.preheader ]
%5 = getelementptr inbounds i8, i8* %.04.prol.i, i32 1
%6 = load i8, i8* %.04.prol.i, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%7 = getelementptr inbounds i8, i8* %.04.prol.i, i32 2
%8 = load i8, i8* %5, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%9 = getelementptr inbounds i8, i8* %.04.prol.i, i32 3
%10 = load i8, i8* %7, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%12 = add nuw nsw i32 %11, 246
%13 = trunc i32 %12 to i8
%15 = add nuw nsw i32 %14, 236
%16 = trunc i32 %15 to i8
%18 = add nuw nsw i32 %17, 226
%19 = trunc i32 %18 to i8
%20 = getelementptr inbounds i8, i8* %.013.prol.i, i32 1
store i8 %13, i8* %.013.prol.i, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%21 = getelementptr inbounds i8, i8* %.013.prol.i, i32 2
store i8 %16, i8* %20, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%22 = getelementptr inbounds i8, i8* %.013.prol.i, i32 3
store i8 %19, i8* %21, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%prol.iter.sub.i
= add i32 %prol.iter.i, -1
%prol.iter.cmp.i = icmp eq
i32 %prol.iter.sub.i
, 0
br i1 %prol.iter.cmp.i, label %.lr.ph.preheader.split.i.loopexit, label %.lr.ph.prol.i, !llvm
.loop
!4
.lr.ph.preheader.split.i.loopexit: ; preds = %.lr.ph.prol.i
%scevgep5 = getelementptr i8, i8* %input_buf, i32 %4
br label %.lr.ph.preheader.split.i
.lr.ph.preheader.split.i: ; preds = %.lr.ph.preheader.split.i.loopexit, %.lr.ph.preheader.i
%.04.unr.i = phi i8* [ %input_buf, %.lr.ph.preheader.i ], [ %scevgep5, %.lr.ph.preheader.split.i.loopexit ]
%.013.unr.i = phi i8* [ %output_buf, %.lr.ph.preheader.i ], [ %scevgep, %.lr.ph.preheader.split.i.loopexit ]
%i.02.unr.i = phi i32 [ 0, %.lr.ph.preheader.i ], [ %3, %.lr.ph.preheader.split.i.loopexit ]
br i1 %23, label %main_loop.exit, label %.lr.ph.i.preheader
.lr.ph.i.preheader: ; preds = %.lr.ph.preheader.split.i
br label %.lr.ph.i
.lr.ph.i: ; preds = %.lr.ph.i.preheader, %.lr.ph.i
%.04.i = phi i8* [ %154, %.lr.ph.i ], [ %.04.unr.i, %.lr.ph.i.preheader ]
%.013.i = phi i8* [ %167, %.lr.ph.i ], [ %.013.unr.i, %.lr.ph.i.preheader ]
%i.02.i = phi i32 [ %168, %.lr.ph.i ], [ %i.02.unr.i, %.lr.ph.i.preheader ]
%24 = getelementptr inbounds i8, i8* %.04.i, i32 1
%25 = load i8, i8* %.04.i, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%26 = getelementptr inbounds i8, i8* %.04.i, i32 2
%27 = load i8, i8* %24, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%28 = getelementptr inbounds i8, i8* %.04.i, i32 3
%29 = load i8, i8* %26, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%31 = add nuw nsw i32 %30, 246
%32 = trunc i32 %31 to i8
%34 = add nuw nsw i32 %33, 236
%35 = trunc i32 %34 to i8
%37 = add nuw nsw i32 %36, 226
%38 = trunc i32 %37 to i8
%39 = getelementptr inbounds i8, i8* %.013.i, i32 1
store i8 %32, i8* %.013.i, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%40 = getelementptr inbounds i8, i8* %.013.i, i32 2
store i8 %35, i8* %39, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%41 = getelementptr inbounds i8, i8* %.013.i, i32 3
store i8 %38, i8* %40, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%42 = getelementptr inbounds i8, i8* %.04.i, i32 4
%43 = load i8, i8* %28, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%44 = getelementptr inbounds i8, i8* %.04.i, i32 5
%45 = load i8, i8* %42, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%46 = getelementptr inbounds i8, i8* %.04.i, i32 6
%47 = load i8, i8* %44, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%49 = add nuw nsw i32 %48, 246
%50 = trunc i32 %49 to i8
%52 = add nuw nsw i32 %51, 236
%53 = trunc i32 %52 to i8
%55 = add nuw nsw i32 %54, 226
%56 = trunc i32 %55 to i8
%57 = getelementptr inbounds i8, i8* %.013.i, i32 4
store i8 %50, i8* %41, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%58 = getelementptr inbounds i8, i8* %.013.i, i32 5
store i8 %53, i8* %57, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%59 = getelementptr inbounds i8, i8* %.013.i, i32 6
store i8 %56, i8* %58, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%60 = getelementptr inbounds i8, i8* %.04.i, i32 7
%61 = load i8, i8* %46, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%62 = getelementptr inbounds i8, i8* %.04.i, i32 8
%63 = load i8, i8* %60, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%64 = getelementptr inbounds i8, i8* %.04.i, i32 9
%65 = load i8, i8* %62, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%67 = add nuw nsw i32 %66, 246
%68 = trunc i32 %67 to i8
%70 = add nuw nsw i32 %69, 236
%71 = trunc i32 %70 to i8
%73 = add nuw nsw i32 %72, 226
%74 = trunc i32 %73 to i8
%75 = getelementptr inbounds i8, i8* %.013.i, i32 7
store i8 %68, i8* %59, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%76 = getelementptr inbounds i8, i8* %.013.i, i32 8
store i8 %71, i8* %75, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%77 = getelementptr inbounds i8, i8* %.013.i, i32 9
store i8 %74, i8* %76, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%78 = getelementptr inbounds i8, i8* %.04.i, i32 10
%79 = load i8, i8* %64, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%80 = getelementptr inbounds i8, i8* %.04.i, i32 11
%81 = load i8, i8* %78, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%82 = getelementptr inbounds i8, i8* %.04.i, i32 12
%83 = load i8, i8* %80, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%85 = add nuw nsw i32 %84, 246
%86 = trunc i32 %85 to i8
%88 = add nuw nsw i32 %87, 236
%89 = trunc i32 %88 to i8
%91 = add nuw nsw i32 %90, 226
%92 = trunc i32 %91 to i8
%93 = getelementptr inbounds i8, i8* %.013.i, i32 10
store i8 %86, i8* %77, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%94 = getelementptr inbounds i8, i8* %.013.i, i32 11
store i8 %89, i8* %93, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%95 = getelementptr inbounds i8, i8* %.013.i, i32 12
store i8 %92, i8* %94, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%96 = getelementptr inbounds i8, i8* %.04.i, i32 13
%97 = load i8, i8* %82, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%98 = getelementptr inbounds i8, i8* %.04.i, i32 14
%99 = load i8, i8* %96, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%100 = getelementptr inbounds i8, i8* %.04.i, i32 15
%101 = load i8, i8* %98, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%102 = zext i8 %97 to i32
%103 = add nuw nsw i32 %102, 246
%104 = trunc i32 %103 to i8
%105 = zext i8 %99 to i32
%106 = add nuw nsw i32 %105, 236
%107 = trunc i32 %106 to i8
%108 = zext i8 %101 to i32
%109 = add nuw nsw i32 %108, 226
%110 = trunc i32 %109 to i8
%111 = getelementptr inbounds i8, i8* %.013.i, i32 13
store i8 %104, i8* %95, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%112 = getelementptr inbounds i8, i8* %.013.i, i32 14
store i8 %107, i8* %111, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%113 = getelementptr inbounds i8, i8* %.013.i, i32 15
store i8 %110, i8* %112, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%114 = getelementptr inbounds i8, i8* %.04.i, i32 16
%115 = load i8, i8* %100, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%116 = getelementptr inbounds i8, i8* %.04.i, i32 17
%117 = load i8, i8* %114, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%118 = getelementptr inbounds i8, i8* %.04.i, i32 18
%119 = load i8, i8* %116, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%120 = zext i8 %115 to i32
%121 = add nuw nsw i32 %120, 246
%122 = trunc i32 %121 to i8
%123 = zext i8 %117 to i32
%124 = add nuw nsw i32 %123, 236
%125 = trunc i32 %124 to i8
%126 = zext i8 %119 to i32
%127 = add nuw nsw i32 %126, 226
%128 = trunc i32 %127 to i8
%129 = getelementptr inbounds i8, i8* %.013.i, i32 16
store i8 %122, i8* %113, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%130 = getelementptr inbounds i8, i8* %.013.i, i32 17
store i8 %125, i8* %129, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%131 = getelementptr inbounds i8, i8* %.013.i, i32 18
store i8 %128, i8* %130, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%132 = getelementptr inbounds i8, i8* %.04.i, i32 19
%133 = load i8, i8* %118, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%134 = getelementptr inbounds i8, i8* %.04.i, i32 20
%135 = load i8, i8* %132, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%136 = getelementptr inbounds i8, i8* %.04.i, i32 21
%137 = load i8, i8* %134, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%138 = zext i8 %133 to i32
%139 = add nuw nsw i32 %138, 246
%140 = trunc i32 %139 to i8
%141 = zext i8 %135 to i32
%142 = add nuw nsw i32 %141, 236
%143 = trunc i32 %142 to i8
%144 = zext i8 %137 to i32
%145 = add nuw nsw i32 %144, 226
%146 = trunc i32 %145 to i8
%147 = getelementptr inbounds i8, i8* %.013.i, i32 19
store i8 %140, i8* %131, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%148 = getelementptr inbounds i8, i8* %.013.i, i32 20
store i8 %143, i8* %147, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%149 = getelementptr inbounds i8, i8* %.013.i, i32 21
store i8 %146, i8* %148, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%150 = getelementptr inbounds i8, i8* %.04.i, i32 22
%151 = load i8, i8* %136, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%152 = getelementptr inbounds i8, i8* %.04.i, i32 23
%153 = load i8, i8* %150, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%154 = getelementptr inbounds i8, i8* %.04.i, i32 24
%155 = load i8, i8* %152, align 1, !tbaa
!1, !alias
.scope
!7, !noalias !10
%156 = zext i8 %151 to i32
%157 = add nuw nsw i32 %156, 246
%158 = trunc i32 %157 to i8
%159 = zext i8 %153 to i32
%160 = add nuw nsw i32 %159, 236
%161 = trunc i32 %160 to i8
%162 = zext i8 %155 to i32
%163 = add nuw nsw i32 %162, 226
%164 = trunc i32 %163 to i8
%165 = getelementptr inbounds i8, i8* %.013.i, i32 22
store i8 %158, i8* %149, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%166 = getelementptr inbounds i8, i8* %.013.i, i32 23
store i8 %161, i8* %165, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%167 = getelementptr inbounds i8, i8* %.013.i, i32 24
store i8 %164, i8* %166, align 1, !tbaa
!1, !alias
.scope
!10, !noalias !7
%168 = add nsw i32 %i.02.i, 8
%exitcond.7.i = icmp eq
i32 %168, %len
br i1 %exitcond.7.i, label %main_loop.exit.loopexit, label %.lr.ph.i, !llvm
.loop
!6
main_loop.exit.loopexit: ; preds = %.lr.ph.i
br label %main_loop.exit
main_loop.exit: ; preds = %main_loop.exit.loopexit, %0, %.lr.ph.preheader.split.i
ret void
}
; Function Attrs: nounwind
attributes #0 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="mips32r2" "target-features"="+mips32r2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind }
!llvm.ident = !{!0}
!0 = !{!"Ubuntu clang version 3.8.0-svn251522-1~exp1 (trunk) (based on LLVM 3.8.0)"}
!2 = !{!"omnipotent char", !3, i64 0}
!3 = !{!"Simple C/C++ TBAA"}
!4 = distinct !{!4, !5}
!5 = !{!"llvm.loop.unroll.disable"}
!6 = distinct !{!6, !5}
!7 = !{!8}
!8 = distinct !{!8, !9, !"main_loop: %input_buf"}
!9 = distinct !{!9, !"main_loop"}
!10 = !{!11}
!11 = distinct !{!11, !9, !"main_loop: %output_buf"}