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
29 changes: 15 additions & 14 deletions bench/abc/optimized/acecRe.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3025,10 +3025,10 @@ define void @Ree_ManRemoveTrivial(ptr noundef %0, ptr noundef captures(none) %1)
br label %11

11: ; preds = %.lr.ph, %48
%.val3343 = phi i32 [ %.val3339, %.lr.ph ], [ %.val33, %48 ]
%indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %48 ]
%12 = phi i64 [ 0, %.lr.ph ], [ %49, %48 ]
%.041 = phi i32 [ 0, %.lr.ph ], [ %.1, %48 ]
%.val3343 = phi i32 [ %.val3339, %.lr.ph ], [ %.val33, %45 ]
%indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %45 ]
%12 = phi i64 [ 0, %.lr.ph ], [ %49, %45 ]
%.041 = phi i32 [ 0, %.lr.ph ], [ %.1, %45 ]
%.val36 = load ptr, ptr %9, align 8, !tbaa !23
%13 = and i64 %12, 4294967294
%14 = getelementptr inbounds nuw i32, ptr %.val36, i64 %13
Expand All @@ -3042,24 +3042,25 @@ define void @Ree_ManRemoveTrivial(ptr noundef %0, ptr noundef captures(none) %1)
%20 = load i32, ptr %19, align 4, !tbaa !16
%.val32 = load ptr, ptr %10, align 8, !tbaa !30
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val32, i64 %21
%.idx39 = mul nsw i64 %21, 12
%22 = getelementptr inbounds i8, ptr %.val32, i64 %.idx39
%23 = getelementptr inbounds nuw i8, ptr %14, i64 16
%24 = load i32, ptr %23, align 4, !tbaa !16
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val32, i64 %25
%.idx = mul nsw i64 %25, 12
%27 = load i64, ptr %22, align 4
%28 = and i64 %27, 536870911
%29 = sub nsw i64 0, %28
%30 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %22, i64 %29
%31 = icmp eq ptr %26, %30
%.idx40 = mul nsw i64 %28, -12
%28 = add nsw i64 %.idx40, %.idx39
%31 = icmp eq i64 %.idx, %28
br i1 %31, label %38, label %32

32: ; preds = %18
%33 = lshr i64 %27, 32
%34 = and i64 %33, 536870911
%35 = sub nsw i64 0, %34
%36 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %22, i64 %35
%37 = icmp eq ptr %26, %36
%.idx41 = mul nsw i64 %34, -12
%33 = add nsw i64 %.idx41, %.idx39
%37 = icmp eq i64 %.idx, %33
br i1 %37, label %38, label %43

38: ; preds = %32, %18
Expand All @@ -3080,8 +3081,8 @@ define void @Ree_ManRemoveTrivial(ptr noundef %0, ptr noundef captures(none) %1)
br label %48

48: ; preds = %38, %43
%.val33 = phi i32 [ %.val3343, %38 ], [ %.val33.pre, %43 ]
%.1 = phi i32 [ %.041, %38 ], [ %44, %43 ]
%.val33 = phi i32 [ %.val3343, %35 ], [ %.val33.pre, %40 ]
%.1 = phi i32 [ %.041, %35 ], [ %44, %40 ]
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%49 = mul nuw nsw i64 %indvars.iv.next, 6
%50 = trunc nuw i64 %49 to i32
Expand Down
22 changes: 12 additions & 10 deletions bench/abc/optimized/giaIso2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,8 @@ define void @Gia_Iso2ManPropagate(ptr noundef readonly captures(none) %0) local_
%11 = getelementptr i8, ptr %.val53, i64 8
%.val55.val = load ptr, ptr %11, align 8, !tbaa !32
%.not38 = icmp eq ptr %.val54, null
br i1 %.not38, label %.critedge2, label %.lr.ph62.split
%invariant.gep = getelementptr i8, ptr %.val54, i64 8
br i1 %.not38, label %.critedge2, label %.lr.ph64.split

.lr.ph62.split: ; preds = %.lr.ph62
%12 = getelementptr i8, ptr %0, i64 64
Expand Down Expand Up @@ -410,31 +411,32 @@ define void @Gia_Iso2ManPropagate(ptr noundef readonly captures(none) %0) local_
br i1 %exitcond.not, label %.critedge.preheader, label %15, !llvm.loop !42

64: ; preds = %.lr.ph62.split, %.critedge
%indvars.iv66 = phi i64 [ 0, %.lr.ph62.split ], [ %indvars.iv.next67, %.critedge ]
%indvars.iv66 = phi i64 [ 0, %.lr.ph64.split ], [ %indvars.iv.next67, %.critedge ]
%65 = trunc nuw nsw i64 %indvars.iv66 to i32
%.reass = add i32 %invariant.op, %65
%66 = sext i32 %.reass to i64
%67 = getelementptr inbounds i32, ptr %.val55.val, i64 %66
%68 = load i32, ptr %67, align 4, !tbaa !34
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val54, i64 %69
%.reass64 = add i32 %invariant.op63, %65
%71 = sext i32 %.reass64 to i64
%.idx60 = mul nsw i64 %69, 12
%70 = getelementptr inbounds i8, ptr %.val54, i64 %.idx60
%.reass66 = add i32 %invariant.op65, %65
%71 = sext i32 %.reass66 to i64
%72 = getelementptr inbounds i32, ptr %.val57.val, i64 %71
%73 = load i32, ptr %72, align 4, !tbaa !34
%74 = sext i32 %73 to i64
%75 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val54, i64 %74
%.idx = mul nsw i64 %74, 12
%76 = getelementptr inbounds nuw i8, ptr %70, i64 8
%77 = load i32, ptr %76, align 4, !tbaa !37
%78 = getelementptr inbounds nuw i8, ptr %75, i64 8
%78 = getelementptr i8, ptr %invariant.gep, i64 %.idx
%79 = load i32, ptr %78, align 4, !tbaa !37
%80 = add i32 %79, %77
store i32 %80, ptr %78, align 4, !tbaa !37
%81 = load i64, ptr %70, align 4
%82 = and i64 %81, 536870911
%83 = sub nsw i64 0, %82
%84 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %70, i64 %83
%85 = icmp eq ptr %75, %84
%.idx61 = mul nsw i64 %80, -12
%81 = add nsw i64 %.idx61, %.idx60
%85 = icmp eq i64 %.idx, %81
br i1 %85, label %86, label %.critedge

86: ; preds = %64
Expand Down
21 changes: 8 additions & 13 deletions bench/abc/optimized/mvcUtils.ll
Original file line number Diff line number Diff line change
Expand Up @@ -882,17 +882,13 @@ define noundef i32 @Mvc_CoverSetCubeSizes(ptr noundef readonly captures(none) %0

7: ; preds = %.lr.ph22, %._crit_edge
%.01420 = phi ptr [ %.01418, %.lr.ph22 ], [ %.014, %._crit_edge ]
%8 = getelementptr i8, ptr %.01420, i64 %5
%.ptr24 = getelementptr i8, ptr %8, i64 16
br i1 %6, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader: ; preds = %7
%.ptr = getelementptr inbounds nuw i8, ptr %.01420, i64 16
br label %.lr.ph
%8 = getelementptr inbounds nuw i8, ptr %.01420, i64 16
%.ptr24 = getelementptr inbounds i8, ptr %8, i64 %5
br i1 %6, label %.lr.ph, label %._crit_edge

.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph
%.017 = phi i32 [ %13, %.lr.ph ], [ 0, %.lr.ph.preheader ]
%.01516 = phi ptr [ %14, %.lr.ph ], [ %.ptr, %.lr.ph.preheader ]
.lr.ph: ; preds = %7, %.lr.ph
%.017 = phi i32 [ %13, %.lr.ph ], [ 0, %7 ]
%.01516 = phi ptr [ %14, %.lr.ph ], [ %8, %7 ]
%9 = load i8, ptr %.01516, align 1, !tbaa !35
%10 = zext i8 %9 to i64
%11 = getelementptr inbounds nuw [256 x i32], ptr @bit_count, i64 0, i64 %10
Expand Down Expand Up @@ -929,8 +925,7 @@ define noundef i32 @Mvc_CoverCountCubePairDiffs(ptr noundef %0, ptr noundef writ
%7 = getelementptr inbounds nuw i8, ptr %3, i64 16
%8 = getelementptr inbounds nuw i8, ptr %3, i64 20
%9 = sext i32 %6 to i64
%10 = getelementptr i8, ptr %3, i64 %9
%.ptr63 = getelementptr i8, ptr %10, i64 16
%10 = getelementptr inbounds i8, ptr %7, i64 %9
%11 = icmp sgt i32 %6, 0
br i1 %11, label %.preheader48.us, label %.preheader48

Expand Down Expand Up @@ -997,7 +992,7 @@ define noundef i32 @Mvc_CoverCountCubePairDiffs(ptr noundef %0, ptr noundef writ
%36 = load i32, ptr %35, align 4, !tbaa !3
%37 = add nsw i32 %36, %.04252.us.us
%38 = getelementptr inbounds nuw i8, ptr %.04551.us.us, i64 1
%39 = icmp ult ptr %38, %.ptr63
%39 = icmp ult ptr %38, %.ptr24
br i1 %39, label %.lr.ph.us.us, label %._crit_edge.us.us, !llvm.loop !40

40: ; preds = %.preheader.us.us, %40
Expand Down
8 changes: 4 additions & 4 deletions bench/abseil-cpp/optimized/exception_safety_testing_test.ll
Original file line number Diff line number Diff line change
Expand Up @@ -29336,14 +29336,14 @@ _ZN7testing8internal14TrueWithStringD2Ev.exit42.i: ; preds = %_ZNKSt7__cxx1112ba
br label %182

182: ; preds = %183, %.noexc15.i.i33
%.idx.i.i.i.i = phi i64 [ 8, %.noexc15.i.i33 ], [ %.add.i.i.i.i, %183 ]
%.idx.i.i.i.i = phi i64 [ %.add.i.i.i.i, %183 ], [ 8, %.noexc15.i.i33 ]
%.ptr.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %181, i64 %.idx.i.i.i.i
invoke void @_ZN7testing13ThrowingValueILNS_8TypeSpecE0EEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %.ptr.ptr.i.i.i.i)
to label %183 unwind label %185, !noalias !243

183: ; preds = %182
%.add.i.i.i.i = add nuw nsw i64 %.idx.i.i.i.i, 4
%184 = icmp samesign eq i64 %.add.i.i.i.i, 16
%184 = icmp eq i64 %.idx.i.i.i.i, 12
br i1 %184, label %192, label %182

185: ; preds = %182
Expand Down Expand Up @@ -29560,14 +29560,14 @@ _ZN7testing7MessageD2Ev.exit22.i.i: ; preds = %_ZNKSt14default_del
br label %250

250: ; preds = %251, %.noexc32.i31
%.idx.i.i.i = phi i64 [ 8, %.noexc32.i31 ], [ %.add.i.i.i, %251 ]
%.idx.i.i.i = phi i64 [ %.add.i.i.i, %251 ], [ 8, %.noexc32.i31 ]
%.ptr.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %249, i64 %.idx.i.i.i
invoke void @_ZN7testing13ThrowingValueILNS_8TypeSpecE0EEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %.ptr.ptr.i.i.i)
to label %251 unwind label %253, !noalias !248

251: ; preds = %250
%.add.i.i.i = add nuw nsw i64 %.idx.i.i.i, 4
%252 = icmp samesign eq i64 %.add.i.i.i, 16
%252 = icmp eq i64 %.idx.i.i.i, 12
br i1 %252, label %260, label %250

253: ; preds = %250
Expand Down
7 changes: 3 additions & 4 deletions bench/actix-rs/optimized/19s5ghr2x6s6bmh4.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1422,16 +1422,15 @@ define hidden void @"_ZN68_$LT$sha1..Sha1Core$u20$as$u20$digest..core_api..Fixed
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %9, ptr noundef nonnull align 8 dereferenceable(20) %18, i64 20, i1 false)
%19 = tail call i64 @llvm.bswap.i64(i64 %17)
tail call void @llvm.experimental.noalias.scope.decl(metadata !191)
%20 = getelementptr inbounds nuw [0 x i8], ptr %1, i64 0, i64 %12
%20 = getelementptr [0 x i8], ptr %1, i64 0, i64 %12
store i8 -128, ptr %20, align 1, !alias.scope !191, !noalias !194
%21 = icmp eq i8 %11, 63
br i1 %21, label %._crit_edge.thread, label %._crit_edge

._crit_edge: ; preds = %3
%22 = getelementptr i8, ptr %1, i64 %12
%scevgep = getelementptr i8, ptr %22, i64 1
%22 = getelementptr i8, ptr %20, i64 1
%23 = xor i64 %12, 63
tail call void @llvm.memset.p0.i64(ptr align 1 %scevgep, i8 0, i64 %23, i1 false), !noalias !197
tail call void @llvm.memset.p0.i64(ptr align 1 %22, i8 0, i64 %23, i1 false), !noalias !197
%24 = xor i64 %12, 56
%25 = icmp samesign ult i64 %24, 8
br i1 %25, label %._crit_edge.thread, label %34
Expand Down
18 changes: 7 additions & 11 deletions bench/assimp/optimized/BlenderCustomData.ll
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ declare i32 @__gxx_personality_v0(...)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: mustprogress uwtable
define hidden noundef nonnull ptr @_ZN6Assimp7Blender11createMVertEm(i64 noundef %0) #0 personality ptr @__gxx_personality_v0 {
define hidden noalias noundef nonnull ptr @_ZN6Assimp7Blender11createMVertEm(i64 noundef %0) #0 personality ptr @__gxx_personality_v0 {
%2 = tail call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %0, i64 56)
%3 = extractvalue { i64, i1 } %2, 1
%4 = extractvalue { i64, i1 } %2, 0
Expand All @@ -507,16 +507,11 @@ define hidden noundef nonnull ptr @_ZN6Assimp7Blender11createMVertEm(i64 noundef
%9 = select i1 %7, i64 -1, i64 %8
%10 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %9) #25
store i64 %0, ptr %10, align 16
%.ptr5 = getelementptr inbounds nuw i8, ptr %10, i64 8
%11 = icmp eq i64 %0, 0
br i1 %11, label %.loopexit, label %12

12: ; preds = %1
%13 = getelementptr inbounds %"struct.Assimp::Blender::MVert", ptr %.ptr5, i64 %0
br label %14
br i1 %11, label %.loopexit, label %14

14: ; preds = %12, %14
%.idx = phi i64 [ 8, %12 ], [ %.add, %14 ]
14: ; preds = %1, %14
%.idx = phi i64 [ %.add, %.preheader ], [ 8, %1 ]
%.ptr.ptr = getelementptr inbounds nuw i8, ptr %10, i64 %.idx
%15 = getelementptr inbounds nuw i8, ptr %.ptr.ptr, i64 8
store ptr null, ptr %15, align 8
Expand All @@ -528,11 +523,12 @@ define hidden noundef nonnull ptr @_ZN6Assimp7Blender11createMVertEm(i64 noundef
%18 = getelementptr inbounds nuw i8, ptr %.ptr.ptr, i64 48
store i32 0, ptr %18, align 8
%.add = add nuw nsw i64 %.idx, 56
%.ptr4 = getelementptr inbounds nuw i8, ptr %10, i64 %.add
%19 = icmp eq ptr %.ptr4, %13
%16 = add nuw nsw i64 %.idx, 48
%19 = icmp eq i64 %16, %4
br i1 %19, label %.loopexit, label %14

.loopexit: ; preds = %14, %1
%.ptr5 = getelementptr inbounds nuw i8, ptr %10, i64 8
ret ptr %.ptr5
}

Expand Down
111 changes: 58 additions & 53 deletions bench/assimp/optimized/BlenderLoader.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8610,72 +8610,77 @@ _ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit: ; preds = %48, %_ZNSt6vect
%.add = add i64 %73, 1064
%.ptr59 = getelementptr inbounds i8, ptr %4, i64 %.add
%.not74 = icmp slt i64 %73, 0
br i1 %.not74, label %.critedge, label %.lr.ph.preheader
br i1 %.not74, label %.critedge.thread, label %.lr.ph.preheader

.lr.ph.preheader: ; preds = %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit
%smin = tail call i64 @llvm.smin.i64(i64 %.add, i64 1064)
%74 = getelementptr i8, ptr %4, i64 %smin
%scevgep = getelementptr i8, ptr %74, i64 -1
%74 = add i64 %smin, -1
%scevgep = getelementptr i8, ptr %4, i64 %74
br label %.lr.ph

75: ; preds = %.lr.ph
%.0.add = add nsw i64 %.0.idx75, -1
75: ; preds = %.lr.ph.preheader, %76
%.0.ptr77 = phi ptr [ %.0.ptr, %76 ], [ %.ptr59, %.lr.ph.preheader ]
%.0.idx76 = phi i64 [ %.0.add, %76 ], [ %.add, %.lr.ph.preheader ]
%75 = load i8, ptr %.0.ptr77, align 1
%.not60 = icmp eq i8 %75, 46
br i1 %.not60, label %.critedge, label %76

76: ; preds = %.lr.ph
%.0.add = add nsw i64 %.0.idx76, -1
%.0.ptr = getelementptr inbounds i8, ptr %4, i64 %.0.add
%.not = icmp slt i64 %.0.idx75, 1065
%.not = icmp slt i64 %.0.idx76, 1065
br i1 %.not, label %.critedge, label %.lr.ph, !llvm.loop !68

.lr.ph: ; preds = %.lr.ph.preheader, %75
%.0.ptr76 = phi ptr [ %.0.ptr, %75 ], [ %.ptr59, %.lr.ph.preheader ]
%.0.idx75 = phi i64 [ %.0.add, %75 ], [ %.add, %.lr.ph.preheader ]
%76 = load i8, ptr %.0.ptr76, align 1
%.not60 = icmp eq i8 %76, 46
br i1 %.not60, label %.critedge, label %75

.critedge: ; preds = %.lr.ph, %75, %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit
%.0.ptr.lcssa = phi ptr [ %.ptr59, %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit ], [ %scevgep, %75 ], [ %.0.ptr76, %.lr.ph ]
%77 = getelementptr inbounds nuw i8, ptr %.0.ptr.lcssa, i64 1
%78 = icmp ugt ptr %77, %.ptr59
br i1 %78, label %84, label %79

79: ; preds = %.critedge
%80 = load i8, ptr %77, align 1
%81 = zext i8 %80 to i32
%82 = tail call i32 @tolower(i32 noundef %81) #31
%83 = trunc i32 %82 to i8
br label %84

84: ; preds = %.critedge, %79
%85 = phi i8 [ %83, %79 ], [ 0, %.critedge ]
%86 = getelementptr inbounds nuw i8, ptr %72, i64 8
store i8 %85, ptr %86, align 8
%87 = getelementptr inbounds nuw i8, ptr %.0.ptr.lcssa, i64 2
%88 = icmp ugt ptr %87, %.ptr59
br i1 %88, label %94, label %89

89: ; preds = %84
%90 = load i8, ptr %87, align 1
%91 = zext i8 %90 to i32
%92 = tail call i32 @tolower(i32 noundef %91) #31
%93 = trunc i32 %92 to i8
br label %94

94: ; preds = %84, %89
%95 = phi i8 [ %93, %89 ], [ 0, %84 ]
%96 = getelementptr inbounds nuw i8, ptr %72, i64 9
store i8 %95, ptr %96, align 1
%97 = getelementptr inbounds nuw i8, ptr %.0.ptr.lcssa, i64 3
%98 = icmp ugt ptr %97, %.ptr59
br i1 %98, label %104, label %99

99: ; preds = %94
%100 = load i8, ptr %97, align 1
.lr.ph: ; preds = %.lr.ph, %76
%.0.ptr76 = phi i64 [ %.0.idx76, %.lr.ph ], [ %74, %76 ]
%.0.idx75 = phi ptr [ %.0.ptr77, %.lr.ph ], [ %scevgep, %76 ]
%.not61 = icmp slt i64 %.0.ptr76, %.add
br i1 %.not61, label %77, label %.critedge.thread

77: ; preds = %.critedge
%78 = getelementptr inbounds nuw i8, ptr %.0.idx75, i64 1
%79 = load i8, ptr %78, align 1
%80 = zext i8 %79 to i32
%81 = tail call i32 @tolower(i32 noundef %80) #31
%82 = trunc i32 %81 to i8
br label %.critedge.thread

.critedge.thread:; preds = %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit, %.lr.ph, %77
%.0.ptr.lcssa86 = phi ptr [ %.0.idx75, %77 ], [ %.0.idx75, %.critedge ], [ %.ptr59, %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit ]
%.0.idx.lcssa85 = phi i64 [ %.0.ptr76, %77 ], [ %.0.ptr76, %.critedge ], [ %.add, %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit ]
%83 = phi i8 [ %82, %77 ], [ 0, %.critedge ], [ 0, %_ZNSt6vectorIP9aiTextureSaIS1_EE9push_backEOS1_.exit ]
%84 = getelementptr inbounds nuw i8, ptr %72, i64 8
store i8 %83, ptr %84, align 8
%85 = add nsw i64 %73, 1062
%86 = icmp sgt i64 %.0.idx.lcssa85, %85
br i1 %86, label %93, label %87

87: ; preds = %.critedge.thread
%88 = getelementptr inbounds nuw i8, ptr %.0.ptr.lcssa86, i64 2
%89 = load i8, ptr %88, align 1
%90 = zext i8 %89 to i32
%91 = tail call i32 @tolower(i32 noundef %90) #31
%92 = trunc i32 %91 to i8
br label %93

93:; preds = %.critedge.thread, %87
%94 = phi i8 [ %92, %87 ], [ 0, %.critedge.thread ]
%95 = getelementptr inbounds nuw i8, ptr %72, i64 9
store i8 %94, ptr %95, align 1
%96 = add nsw i64 %73, 1061
%97 = icmp sgt i64 %.0.idx.lcssa85, %96
br i1 %97, label %104, label %98

98:; preds = %93
%99 = getelementptr inbounds nuw i8, ptr %.0.ptr.lcssa86, i64 3
%100 = load i8, ptr %99, align 1
%101 = zext i8 %100 to i32
%102 = tail call i32 @tolower(i32 noundef %101) #31
%103 = trunc i32 %102 to i8
br label %104

104: ; preds = %94, %99
%105 = phi i8 [ %103, %99 ], [ 0, %94 ]
104: ; preds = %93, %98
%105 = phi i8 [ %103, %98 ], [ 0, %93 ]
%106 = getelementptr inbounds nuw i8, ptr %72, i64 10
store i8 %105, ptr %106, align 2
%107 = getelementptr inbounds nuw i8, ptr %72, i64 11
Expand Down
Loading