Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bench/abc/optimized/abcPart.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4615,7 +4615,7 @@ define ptr @Abc_NtkPartStartHop(ptr noundef %0) local_unnamed_addr #4 {
%.val55.val = load i32, ptr %4, align 4, !tbaa !12
%5 = tail call noalias dereferenceable_or_null(16) ptr @malloc(i64 noundef 16) #24
%6 = tail call i32 @llvm.umax.i32(i32 %.val55.val, i32 7)
%spec.store.select.i = add i32 %6, 1
%spec.store.select.i = add nsw i32 %6, 1
%7 = getelementptr inbounds nuw i8, ptr %5, i64 4
store i32 %spec.store.select.i, ptr %5, align 8, !tbaa !14
%.not.i = icmp eq i32 %spec.store.select.i, 0
Expand Down
18 changes: 10 additions & 8 deletions bench/casadi/optimized/integrator.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14931,11 +14931,13 @@ _ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread: ; preds = %801, %.loopexit8
%.not.not24.i = icmp sgt i64 %.fr.i564, 0
%smin.i = call i64 @llvm.smin.i64(i64 %901, i64 0)
%912 = add i64 %smin.i, -1
br i1 %.not.not24.i, label %.preheader.split.us.preheader.i569, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread

.preheader.split.us.preheader.i569: ; preds = %.preheader.i566
%913 = icmp sgt i64 %901, 0
%or.cond1646 = and i1 %.not.not24.i, %913
br i1 %or.cond1646, label %.lr.ph.us.i571.preheader, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit
br i1 %913, label %.lr.ph.us.i571.preheader, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit

.lr.ph.us.i571.preheader: ; preds = %.preheader.i566
.lr.ph.us.i571.preheader: ; preds = %.preheader.split.us.preheader.i569
%.pre1578 = load double, ptr %784, align 8, !tbaa !342
br label %.lr.ph.us.i571

Expand Down Expand Up @@ -14967,8 +14969,8 @@ _ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread: ; preds = %801, %.loopexit8
%927 = add nuw i64 %920, 1
br i1 %926, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit, label %.lr.ph34.i, !llvm.loop !397

_ZNK6casadi10Integrator10next_stopBExPKd.exit: ; preds = %.preheader.split.us.i570.loopexit, %921, %.preheader.i566, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread
%.3208 = phi i64 [ %.22071491, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread ], [ %912, %.preheader.i566 ], [ %916, %921 ], [ %912, %.preheader.split.us.i570.loopexit ]
_ZNK6casadi10Integrator10next_stopBExPKd.exit: ; preds = %.preheader.split.us.i570.loopexit, %921, %.preheader.split.us.preheader.i569, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread
%.3208 = phi i64 [ %.22071491, %_ZN6casadi10Integrator8all_zeroEPKdx.exit519.thread ], [ %912, %.preheader.split.us.preheader.i569 ], [ %916, %921 ], [ %912, %.preheader.split.us.i570.loopexit ]
%928 = icmp slt i64 %.3208, 0
br i1 %928, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread, label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848

Expand All @@ -14978,9 +14980,9 @@ _ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848: ; preds = %.lr.ph.us.i5
%930 = getelementptr inbounds nuw double, ptr %929, i64 %.3208850
br label %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread

_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread: ; preds = %907, %_ZNK6casadi10Integrator10next_stopBExPKd.exit, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848
%.3208847 = phi i64 [ %.3208850, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %.3208, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ -1, %907 ]
%.in260 = phi ptr [ %930, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %114, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ %114, %907 ]
_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread: ; preds = %.preheader.i566, %907, %_ZNK6casadi10Integrator10next_stopBExPKd.exit, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848
%.3208847 = phi i64 [ %.3208850, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %.3208, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ -1, %907 ], [ %912, %.preheader.i566 ]
%.in260 = phi ptr [ %930, %_ZNK6casadi10Integrator10next_stopBExPKd.exit.thread848 ], [ %114, %_ZNK6casadi10Integrator10next_stopBExPKd.exit ], [ %114, %907 ], [ %114, %.preheader.i566 ]
%931 = load double, ptr %.in260, align 8, !tbaa !342
store double %931, ptr %723, align 8, !tbaa !360
%932 = load i8, ptr %713, align 8, !tbaa !366, !range !364, !noundef !365
Expand Down
55 changes: 31 additions & 24 deletions bench/chibicc/optimized/codegen.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3230,18 +3230,20 @@ define internal fastcc void @copy_struct_reg() unnamed_addr #4 {
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.41)
%11 = getelementptr inbounds nuw i8, ptr %5, i64 4
%12 = load i32, ptr %11, align 4, !tbaa !32
%13 = tail call i32 @llvm.smin.i32(i32 %12, i32 8)
%.02532 = add i32 %13, -1
%14 = icmp sgt i32 %.02532, -1
br i1 %14, label %select.unfold, label %.loopexit31
%13 = icmp sgt i32 %12, 0
br i1 %13, label %select.unfold, label %.loopexit31

select.unfold: ; preds = %10, %select.unfold
%.02533 = phi i32 [ %.025, %select.unfold ], [ %.02532, %10 ]
select.unfold: ; preds = %10
%14 = tail call i32 @llvm.umin.i32(i32 %12, i32 8)
br label %select.unfold

select.unfold: ; preds = %select.unfold.preheader, %select.unfold
%.025.in32 = phi i32 [ %.025, %select.unfold ], [ %14, %select.unfold.preheader ]
%.025 = add nsw i32 %.025.in32, -1
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.271)
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.272, i32 noundef %.02533)
%.025 = add nsw i32 %.02533, -1
%.not = icmp eq i32 %.02533, 0
br i1 %.not, label %.loopexit31, label %select.unfold, !llvm.loop !126
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.272, i32 noundef %.025)
%15 = icmp samesign ugt i32 %.025.in32, 1
br i1 %15, label %select.unfold, label %.loopexit31, !llvm.loop !126

.loopexit31: ; preds = %select.unfold, %.loopexit31.sink.split, %10
%.024 = phi i32 [ 0, %10 ], [ 1, %.loopexit31.sink.split ], [ 0, %select.unfold ]
Expand All @@ -3263,20 +3265,22 @@ select.unfold: ; preds = %10, %select.unfold
%23 = select i1 %6, ptr @.str.85, ptr @.str.72
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.182, ptr noundef nonnull %23)
%24 = load i32, ptr %15, align 4, !tbaa !32
%25 = tail call i32 @llvm.smin.i32(i32 %24, i32 16)
%.034 = add i32 %25, -1
%26 = icmp sgt i32 %.034, 7
br i1 %26, label %select.unfold29, label %.loopexit

select.unfold29: ; preds = %21, %select.unfold29
%.035 = phi i32 [ %.0, %select.unfold29 ], [ %.034, %21 ]
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.275, ptr noundef nonnull %23)
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.276, i32 noundef %.035, ptr noundef nonnull %22)
%.0 = add nsw i32 %.035, -1
%27 = icmp samesign ugt i32 %.035, 8
br i1 %27, label %select.unfold29, label %.loopexit, !llvm.loop !127

.loopexit: ; preds = %select.unfold29, %21, %20, %.loopexit31
%26 = icmp sgt i32 %24, 8
br i1 %26, label %select.unfold29.preheader, label %.loopexit

select.unfold29.preheader:; preds = %22
%27 = tail call i32 @llvm.umin.i32(i32 %25, i32 16)
br label %select.unfold29

select.unfold29:; preds = %select.unfold29.preheader, %select.unfold29
%.0.in33 = phi i32 [ %.0, %select.unfold29 ], [ %27, %select.unfold29.preheader ]
%.0 = add nsw i32 %.0.in33, -1
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.275, ptr noundef nonnull %24)
tail call void (ptr, ...) @println(ptr noundef nonnull @.str.276, i32 noundef %.0, ptr noundef nonnull %23)
%28 = icmp samesign ugt i32 %.0.in33, 9
br i1 %28, label %select.unfold29, label %.loopexit, !llvm.loop !127

.loopexit: ; preds = %select.unfold29, %22, %21, %.loopexit31
ret void
}

Expand Down Expand Up @@ -3822,6 +3826,9 @@ declare i32 @llvm.smax.i32(i32, i32) #12
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #12

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #12

attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
Expand Down
137 changes: 66 additions & 71 deletions bench/ffmpeg/optimized/fic.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1176,10 +1176,8 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none)
%86 = getelementptr inbounds nuw i8, ptr %0, i64 116
%87 = load i32, ptr %86, align 4, !tbaa !34
%88 = sub nsw i32 %87, %2
%89 = tail call i32 @llvm.smin.i32(i32 %88, i32 32)
%spec.select110 = add i32 %89, -1
%90 = icmp sgt i32 %spec.select110, 0
br i1 %90, label %.lr.ph112, label %._crit_edge
%89 = icmp sgt i32 %88, 1
br i1 %89, label %.lr.ph112, label %._crit_edge

.lr.ph112: ; preds = %.preheader
%.promoted = load ptr, ptr %4, align 16
Expand All @@ -1193,7 +1191,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none)
br label %113

96: ; preds = %.preheader93, %96
%indvars.iv131 = phi i64 [ 0, %.preheader93 ], [ %indvars.iv.next132, %96 ]
%indvars.iv131 = phi i64 [ 0, %.preheader93 ], [ %indvars.iv.next132, %95 ]
%97 = getelementptr inbounds nuw [8 x ptr], ptr %55, i64 0, i64 %indvars.iv131
%98 = load ptr, ptr %97, align 8, !tbaa !66
%99 = getelementptr inbounds nuw [8 x i32], ptr %56, i64 0, i64 %indvars.iv131
Expand All @@ -1217,43 +1215,41 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none)

113: ; preds = %.lr.ph112, %fic_alpha_blend.exit89
%indvars.iv157 = phi i64 [ 0, %.lr.ph112 ], [ %indvars.iv.next158, %fic_alpha_blend.exit89 ]
%114 = phi ptr [ %.promoted115, %.lr.ph112 ], [ %207, %fic_alpha_blend.exit89 ]
%115 = phi ptr [ %.promoted113, %.lr.ph112 ], [ %203, %fic_alpha_blend.exit89 ]
%116 = phi ptr [ %.promoted, %.lr.ph112 ], [ %199, %fic_alpha_blend.exit89 ]
%114 = phi ptr [ %.promoted115, %.lr.ph112 ], [ %203, %fic_alpha_blend.exit89 ]
%115 = phi ptr [ %.promoted113, %.lr.ph112 ], [ %199, %fic_alpha_blend.exit89 ]
%116 = phi ptr [ %.promoted, %.lr.ph112 ], [ %195, %fic_alpha_blend.exit89 ]
%117 = load i32, ptr %91, align 8, !tbaa !32
%118 = sub nsw i32 %117, %1
%spec.select83 = tail call i32 @llvm.smin.i32(i32 %118, i32 32)
%119 = sdiv i32 %spec.select83, 2
%120 = trunc nuw nsw i64 %indvars.iv157 to i32
%121 = shl i32 %120, 5
%122 = zext nneg i32 %121 to i64
%123 = getelementptr inbounds nuw i8, ptr %5, i64 %122
%124 = getelementptr inbounds nuw i8, ptr %12, i64 %122
%125 = icmp sgt i32 %118, 0
br i1 %125, label %.lr.ph.preheader, label %fic_alpha_blend.exit89

.lr.ph.preheader: ; preds = %113
%119 = shl i64 %indvars.iv157, 5
%120 = getelementptr inbounds nuw i8, ptr %5, i64 %119
%121 = getelementptr inbounds nuw i8, ptr %12, i64 %119
%122 = icmp sgt i32 %117, 0
br i1 %122, label %.lr.ph.preheader, label %fic_alpha_blend.exit89

.lr.ph.preheader:; preds = %112
%smax = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1)
%wide.trip.count = zext nneg i32 %smax to i64
br label %.lr.ph

.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph
%indvars.iv135 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next136, %.lr.ph ]
%126 = getelementptr inbounds nuw i8, ptr %123, i64 %indvars.iv135
%126 = getelementptr inbounds nuw i8, ptr %120, i64 %indvars.iv135
%124 = load i8, ptr %123, align 1, !tbaa !43
%125 = zext i8 %124 to i16
%126 = getelementptr inbounds nuw i8, ptr %115, i64 %indvars.iv135
%127 = load i8, ptr %126, align 1, !tbaa !43
%128 = zext i8 %127 to i16
%129 = getelementptr inbounds nuw i8, ptr %116, i64 %indvars.iv135
%130 = load i8, ptr %129, align 1, !tbaa !43
%131 = zext i8 %130 to i16
%132 = sub nsw i16 %128, %131
%133 = getelementptr inbounds nuw i8, ptr %124, i64 %indvars.iv135
%134 = load i8, ptr %133, align 1, !tbaa !43
%135 = zext i8 %134 to i16
%136 = mul i16 %132, %135
%137 = lshr i16 %136, 8
%138 = trunc nuw i16 %137 to i8
%139 = add i8 %130, %138
store i8 %139, ptr %129, align 1, !tbaa !43
%129 = sub nsw i16 %125, %128
%130 = getelementptr inbounds nuw i8, ptr %121, i64 %indvars.iv135
%131 = load i8, ptr %130, align 1, !tbaa !43
%132 = zext i8 %131 to i16
%133 = mul i16 %129, %132
%134 = lshr i16 %133, 8
%135 = trunc nuw i16 %134 to i8
%136 = add i8 %127, %135
store i8 %136, ptr %126, align 1, !tbaa !43
%indvars.iv.next136 = add nuw nsw i64 %indvars.iv135, 1
%exitcond138.not = icmp eq i64 %indvars.iv.next136, %wide.trip.count
br i1 %exitcond138.not, label %.lr.ph105.preheader, label %.lr.ph, !llvm.loop !82
Expand All @@ -1264,31 +1260,30 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none)
%141 = load i32, ptr %140, align 8, !tbaa !65
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds i8, ptr %116, i64 %142
%144 = or disjoint i32 %121, 32
%145 = sext i32 %144 to i64
%146 = getelementptr inbounds i8, ptr %5, i64 %145
%147 = getelementptr inbounds i8, ptr %12, i64 %145
%144 = or disjoint i64 %119, 32
%142 = getelementptr inbounds i8, ptr %5, i64 %144
%146 = getelementptr inbounds i8, ptr %12, i64 %141
%smax142 = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1)
%wide.trip.count143 = zext nneg i32 %smax142 to i64
br label %.lr.ph105

.lr.ph105: ; preds = %.lr.ph105.preheader, %.lr.ph105
%indvars.iv139 = phi i64 [ 0, %.lr.ph105.preheader ], [ %indvars.iv.next140, %.lr.ph105 ]
%148 = getelementptr inbounds nuw i8, ptr %146, i64 %indvars.iv139
%148 = getelementptr inbounds nuw i8, ptr %142, i64 %indvars.iv139
%149 = load i8, ptr %148, align 1, !tbaa !43
%150 = zext i8 %149 to i16
%147 = getelementptr inbounds nuw i8, ptr %140, i64 %indvars.iv139
%148 = load i8, ptr %147, align 1, !tbaa !43
%149 = zext i8 %148 to i16
%150 = sub nsw i16 %146, %149
%151 = getelementptr inbounds nuw i8, ptr %143, i64 %indvars.iv139
%152 = load i8, ptr %151, align 1, !tbaa !43
%153 = zext i8 %152 to i16
%154 = sub nsw i16 %150, %153
%155 = getelementptr inbounds nuw i8, ptr %147, i64 %indvars.iv139
%156 = load i8, ptr %155, align 1, !tbaa !43
%157 = zext i8 %156 to i16
%158 = mul i16 %154, %157
%159 = lshr i16 %158, 8
%160 = trunc nuw i16 %159 to i8
%161 = add i8 %152, %160
store i8 %161, ptr %151, align 1, !tbaa !43
%154 = mul i16 %150, %153
%155 = lshr i16 %154, 8
%156 = trunc nuw i16 %155 to i8
%157 = add i8 %148, %156
store i8 %157, ptr %147, align 1, !tbaa !43
%indvars.iv.next140 = add nuw nsw i64 %indvars.iv139, 1
%exitcond144.not = icmp eq i64 %indvars.iv.next140, %wide.trip.count143
br i1 %exitcond144.not, label %fic_alpha_blend.exit85, label %.lr.ph105, !llvm.loop !82
Expand All @@ -1311,17 +1306,17 @@ fic_alpha_blend.exit85: ; preds = %.lr.ph105
%166 = load i8, ptr %165, align 1, !tbaa !43
%167 = zext i8 %166 to i16
%168 = getelementptr inbounds nuw i8, ptr %115, i64 %indvars.iv145
%165 = load i8, ptr %164, align 1, !tbaa !43
%166 = zext i8 %165 to i16
%167 = sub nsw i16 %163, %166
%168 = getelementptr inbounds nuw i8, ptr %160, i64 %indvars.iv145
%169 = load i8, ptr %168, align 1, !tbaa !43
%170 = zext i8 %169 to i16
%171 = sub nsw i16 %167, %170
%172 = getelementptr inbounds nuw i8, ptr %164, i64 %indvars.iv145
%173 = load i8, ptr %172, align 1, !tbaa !43
%174 = zext i8 %173 to i16
%175 = mul i16 %171, %174
%176 = lshr i16 %175, 8
%177 = trunc nuw i16 %176 to i8
%178 = add i8 %169, %177
store i8 %178, ptr %168, align 1, !tbaa !43
%171 = mul i16 %167, %170
%172 = lshr i16 %171, 8
%173 = trunc nuw i16 %172 to i8
%174 = add i8 %165, %173
store i8 %174, ptr %164, align 1, !tbaa !43
%indvars.iv.next146 = add nuw nsw i64 %indvars.iv145, 1
%exitcond150.not = icmp eq i64 %indvars.iv.next146, %wide.trip.count149
br i1 %exitcond150.not, label %.lr.ph109.preheader, label %.lr.ph107, !llvm.loop !82
Expand All @@ -1338,17 +1333,17 @@ fic_alpha_blend.exit85: ; preds = %.lr.ph105
%181 = load i8, ptr %180, align 1, !tbaa !43
%182 = zext i8 %181 to i16
%183 = getelementptr inbounds nuw i8, ptr %114, i64 %indvars.iv151
%180 = load i8, ptr %179, align 1, !tbaa !43
%181 = zext i8 %180 to i16
%182 = sub nsw i16 %178, %181
%183 = getelementptr inbounds nuw i8, ptr %160, i64 %indvars.iv151
%184 = load i8, ptr %183, align 1, !tbaa !43
%185 = zext i8 %184 to i16
%186 = sub nsw i16 %182, %185
%187 = getelementptr inbounds nuw i8, ptr %164, i64 %indvars.iv151
%188 = load i8, ptr %187, align 1, !tbaa !43
%189 = zext i8 %188 to i16
%190 = mul i16 %186, %189
%191 = lshr i16 %190, 8
%192 = trunc nuw i16 %191 to i8
%193 = add i8 %184, %192
store i8 %193, ptr %183, align 1, !tbaa !43
%186 = mul i16 %182, %185
%187 = lshr i16 %186, 8
%188 = trunc nuw i16 %187 to i8
%189 = add i8 %180, %188
store i8 %189, ptr %179, align 1, !tbaa !43
%indvars.iv.next152 = add nuw nsw i64 %indvars.iv151, 1
%exitcond156.not = icmp eq i64 %indvars.iv.next152, %wide.trip.count155
br i1 %exitcond156.not, label %fic_alpha_blend.exit89, label %.lr.ph109, !llvm.loop !82
Expand All @@ -1358,21 +1353,21 @@ fic_alpha_blend.exit89: ; preds = %.lr.ph109, %113, %f
%195 = getelementptr inbounds nuw i8, ptr %194, i64 64
%196 = load i32, ptr %195, align 8, !tbaa !65
%197 = shl nsw i32 %196, 1
%194 = sext i32 %193 to i64
%195 = getelementptr inbounds i8, ptr %115, i64 %194
%196 = getelementptr inbounds nuw i8, ptr %190, i64 68
%197 = load i32, ptr %196, align 4, !tbaa !65
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds i8, ptr %116, i64 %198
%200 = getelementptr inbounds nuw i8, ptr %194, i64 68
%201 = load i32, ptr %200, align 4, !tbaa !65
%199 = getelementptr inbounds i8, ptr %114, i64 %198
%200 = getelementptr inbounds nuw i8, ptr %194, i64 72
%201 = load i32, ptr %200, align 8, !tbaa !65
%202 = sext i32 %201 to i64
%203 = getelementptr inbounds i8, ptr %115, i64 %202
%204 = getelementptr inbounds nuw i8, ptr %194, i64 72
%205 = load i32, ptr %204, align 8, !tbaa !65
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds i8, ptr %114, i64 %206
%203 = getelementptr inbounds i8, ptr %113, i64 %202
%indvars.iv.next158 = add nuw nsw i64 %indvars.iv157, 2
%208 = load i32, ptr %86, align 4, !tbaa !34
%209 = sub nsw i32 %208, %2
%210 = tail call i32 @llvm.smin.i32(i32 %209, i32 32)
%spec.select = add i32 %210, -1
%spec.select = add nsw i32 %210, -1
%211 = sext i32 %spec.select to i64
%212 = icmp slt i64 %indvars.iv.next158, %211
br i1 %212, label %113, label %._crit_edge, !llvm.loop !83
Expand Down
Loading