Test Failure: Transforms/PhaseOrdering/X86/pr38280.ll

Test source: git

Log:

Source: <stdin>
-- 1. Annotation2MetadataPass
-- 2. Annotation2MetadataPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 3. ForceFunctionAttrsPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 4. ForceFunctionAttrsPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 5. InferFunctionAttrsPass : Skipping unsupported
-- 6. InferFunctionAttrsPass : Skipping unsupported
-- 7. CoroEarlyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 8. CoroEarlyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 9. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 1. PassManager<Function> : Skipping NOP
-- 2. LowerExpectIntrinsicPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 3. LowerExpectIntrinsicPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 4. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 5. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 6. SROAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 7. SROAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 8. EarlyCSEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 9. EarlyCSEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 10. PassManager<Function> : Skipping NOP
-- 10. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 11. OpenMPOptPass : Skipping unsupported
-- 12. OpenMPOptPass : Skipping unsupported
-- 13. IPSCCPPass : Skipping unsupported
-- 14. IPSCCPPass : Skipping unsupported
-- 15. CalledValuePropagationPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 16. CalledValuePropagationPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 17. GlobalOptPass : Skipping unsupported
-- 18. GlobalOptPass : Skipping unsupported
-- 19. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 11. PromotePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 12. PromotePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 20. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 21. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 13. PassManager<Function> : Skipping NOP
-- 14. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 15. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 16. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 17. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 18. PassManager<Function> : Skipping NOP
-- 22. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 23. ModuleInlinerWrapperPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 24. RequireAnalysisPass<GlobalsAA, Module> : Skipping unsupported
-- 25. RequireAnalysisPass<GlobalsAA, Module> : Skipping unsupported
-- 26. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 19. InvalidateAnalysisPass<AAManager> : Skipping NOP
-- 20. InvalidateAnalysisPass<AAManager> : Skipping NOP
-- 27. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 28. RequireAnalysisPass<ProfileSummaryAnalysis, Module> : Skipping NOP
-- 29. RequireAnalysisPass<ProfileSummaryAnalysis, Module> : Skipping NOP
-- 30. ModuleToPostOrderCGSCCPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 31. DevirtSCCRepeatedPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 32. PassManager<LazyCallGraph::SCC, AnalysisManager<LazyCallGraph::SCC, LazyCallGraph&>, LazyCallGraph&, CGSCCUpdateResult&> : Skipping NOP
-- 33. InlinerPass : Skipping unsupported
-- 34. InlinerPass : Skipping unsupported
-- 35. InlinerPass : Skipping unsupported
-- 36. InlinerPass : Skipping unsupported
-- 37. PostOrderFunctionAttrsPass : Skipping unsupported
-- 38. PostOrderFunctionAttrsPass : Skipping unsupported
-- 39. OpenMPOptCGSCCPass : Skipping unsupported
-- 40. OpenMPOptCGSCCPass : Skipping unsupported
-- 41. CGSCCToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 21. PassManager<Function> : Skipping NOP
-- 22. SROAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 23. SROAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 24. EarlyCSEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 25. EarlyCSEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 26. SpeculativeExecutionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 27. SpeculativeExecutionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 28. JumpThreadingPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 29. JumpThreadingPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 30. CorrelatedValuePropagationPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 31. CorrelatedValuePropagationPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 32. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 33. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 34. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 35. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 36. LibCallsShrinkWrapPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 37. LibCallsShrinkWrapPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 38. TailCallElimPass : Skipping unsupported
-- 39. TailCallElimPass : Skipping unsupported
-- 40. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 41. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 42. ReassociatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 43. ReassociatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 44. RequireAnalysisPass<OptimizationRemarkEmitterAnalysis, Function> : Skipping NOP
-- 45. RequireAnalysisPass<OptimizationRemarkEmitterAnalysis, Function> : Skipping NOP
-- 46. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 47. PassManager<Function> : Skipping NOP
-- 48. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 49. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 50. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 51. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 52. PassManager<Function> : Skipping NOP
-- 53. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 54. LoopInstSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 55. LoopInstSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 56. LoopSimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 57. LoopSimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 58. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 59. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 60. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 61. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 62. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 63. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 64. SimpleLoopUnswitchPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 65. SimpleLoopUnswitchPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 66. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 67. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 68. LoopInstSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 69. LoopInstSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 70. LoopSimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 71. LoopSimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 72. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 73. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 74. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 75. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 76. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 77. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 78. SimpleLoopUnswitchPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 79. SimpleLoopUnswitchPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 80. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 81. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 82. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 83. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 84. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 85. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 86. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 87. PassManager<Function> : Skipping NOP
-- 88. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 89. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 90. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 91. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 92. PassManager<Function> : Skipping NOP
-- 93. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 94. LoopIdiomRecognizePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 95. LoopIdiomRecognizePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 96. IndVarSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 97. IndVarSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 98. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 99. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 100. LoopFullUnrollPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 101. LoopFullUnrollPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 102. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 103. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 104. LoopIdiomRecognizePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 105. LoopIdiomRecognizePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 106. IndVarSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 107. IndVarSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 108. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 109. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 110. LoopFullUnrollPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 111. LoopFullUnrollPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 112. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 113. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 114. SROAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 115. SROAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 116. VectorCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 117. VectorCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 118. MergedLoadStoreMotionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 119. MergedLoadStoreMotionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 120. GVNPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 121. GVNPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 122. SCCPPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 123. SCCPPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 124. BDCEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 125. BDCEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 126. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 127. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 128. JumpThreadingPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 129. JumpThreadingPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 130. CorrelatedValuePropagationPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 131. CorrelatedValuePropagationPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 132. ADCEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 133. ADCEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 134. MemCpyOptPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 135. MemCpyOptPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 136. DSEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 137. DSEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 138. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 139. PassManager<Function> : Skipping NOP
-- 140. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 141. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 142. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 143. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 144. PassManager<Function> : Skipping NOP
-- 145. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 146. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 147. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 148. LICMPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 149. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 150. CoroElidePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 151. CoroElidePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 152. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 153. SimplifyCFGPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 154. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 155. InstCombinePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 156. PassManager<Function> : Skipping NOP
-- 42. CGSCCToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 43. CoroSplitPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 44. CoroSplitPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 45. PassManager<LazyCallGraph::SCC, AnalysisManager<LazyCallGraph::SCC, LazyCallGraph&>, LazyCallGraph&, CGSCCUpdateResult&> : Skipping NOP
-- 46. DevirtSCCRepeatedPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 47. ModuleToPostOrderCGSCCPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 48. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 157. InvalidateAnalysisPass<ShouldNotRunFunctionPassesAnalysis> : Skipping NOP
-- 158. InvalidateAnalysisPass<ShouldNotRunFunctionPassesAnalysis> : Skipping NOP
-- 49. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 50. ModuleInlinerWrapperPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 51. DeadArgumentEliminationPass : Skipping unsupported
-- 52. DeadArgumentEliminationPass : Skipping unsupported
-- 53. CoroCleanupPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 54. CoroCleanupPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 55. GlobalOptPass : Skipping unsupported
-- 56. GlobalOptPass : Skipping unsupported
-- 57. GlobalDCEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 58. GlobalDCEPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 59. EliminateAvailableExternallyPass : Skipping unsupported
-- 60. EliminateAvailableExternallyPass : Skipping unsupported
-- 61. ReversePostOrderFunctionAttrsPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 62. ReversePostOrderFunctionAttrsPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 63. RecomputeGlobalsAAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 64. RecomputeGlobalsAAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 65. ModuleToFunctionPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 159. PassManager<Function> : Skipping NOP
-- 160. Float2IntPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 161. Float2IntPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 162. LowerConstantIntrinsicsPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 163. LowerConstantIntrinsicsPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 164. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 165. PassManager<Function> : Skipping NOP
-- 166. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 167. LoopSimplifyPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body, label %while.cond3.preheader

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %entry ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %entry ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %entry ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.body ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.body ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.body ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.cond3.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.cond3.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.cond3.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9, label %while.body4

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 168. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 169. LCSSAPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct!

-- 170. PassManager<Function> : Skipping NOP
-- 171. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 172. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 173. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 174. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 175. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 176. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 177. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 178. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 179. LoopRotatePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 180. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 181. LoopDeletionPass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 182. PassManager<Loop, AnalysisManager<Loop, LoopStandardAnalysisResults&>, LoopStandardAnalysisResults&, LPMUpdater&> : Skipping NOP
-- 183. FunctionToLoopPassAdaptor

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 184. LoopDistributePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 185. LoopDistributePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 186. InjectTLIMappings

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 187. InjectTLIMappings

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 188. LoopVectorizePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation seems to be correct! (syntactically equal)

-- 189. LoopVectorizePass

----------------------------------------
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %while.body4.preheader

%while.body4.preheader:
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %dst.addr.0.lcssa, %while.body4.preheader ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %src.addr.0.lcssa, %while.body4.preheader ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %count.addr.0.lcssa, %while.body4.preheader ]
  %dec = add i64 %count.addr.128, -1
  %2 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %3 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %3, %2
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
=>
define void @apply_delta(ptr nocapture noundef %dst, ptr nocapture nowrite noundef %src, i64 noundef %neg_offs, i64 noundef %count) nofree memory(argmem: readwrite, errno: readwrite, other: readwrite) {
%entry:
  %cmp21 = icmp ugt i64 noundef %count, 7
  br i1 %cmp21, label %while.body.preheader, label %while.cond3.preheader

%while.body.preheader:
  br label %while.body

%while.body:
  %dst.addr.024 = phi ptr [ %add.ptr1, %while.body ], [ nocapture noundef %dst, %while.body.preheader ]
  %src.addr.023 = phi ptr [ %add.ptr2, %while.body ], [ nocapture nowrite noundef %src, %while.body.preheader ]
  %count.addr.022 = phi i64 [ %sub, %while.body ], [ noundef %count, %while.body.preheader ]
  %0 = load <8 x i8>, ptr %src.addr.023, align 1
  %add.ptr = gep inbounds ptr %dst.addr.024, 1 x i64 noundef %neg_offs
  %1 = load <8 x i8>, ptr %add.ptr, align 1
  %add = add <8 x i8> %1, %0
  store <8 x i8> %add, ptr %dst.addr.024, align 1
  %add.ptr1 = gep inbounds ptr %dst.addr.024, 1 x i64 8
  %add.ptr2 = gep inbounds ptr %src.addr.023, 1 x i64 8
  %sub = add i64 %count.addr.022, -8
  %cmp = icmp ugt i64 %sub, 7
  br i1 %cmp, label %while.body, label %while.cond3.preheader.loopexit

%while.cond3.preheader.loopexit:
  %add.ptr1.lcssa = phi ptr [ %add.ptr1, %while.body ]
  %add.ptr2.lcssa = phi ptr [ %add.ptr2, %while.body ]
  %sub.lcssa = phi i64 [ %sub, %while.body ]
  br label %while.cond3.preheader

%while.cond3.preheader:
  %count.addr.0.lcssa = phi i64 [ noundef %count, %entry ], [ %sub.lcssa, %while.cond3.preheader.loopexit ]
  %src.addr.0.lcssa = phi ptr [ nocapture nowrite noundef %src, %entry ], [ %add.ptr2.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa = phi ptr [ nocapture noundef %dst, %entry ], [ %add.ptr1.lcssa, %while.cond3.preheader.loopexit ]
  %dst.addr.0.lcssa1 = ptrtoint ptr %dst.addr.0.lcssa to i64
  %src.addr.0.lcssa2 = ptrtoint ptr %src.addr.0.lcssa to i64
  %tobool.not27 = icmp eq i64 %count.addr.0.lcssa, 0
  br i1 %tobool.not27, label %while.end9, label %iter.check

%iter.check:
  %min.iters.check = icmp ult i64 %count.addr.0.lcssa, 8
  br i1 %min.iters.check, label %vec.epilog.scalar.ph, label %vector.memcheck

%vector.memcheck:
  %2 = sub i64 %dst.addr.0.lcssa1, %src.addr.0.lcssa2
  %diff.check = icmp ult i64 %2, 32
  %3 = sub i64 %dst.addr.0.lcssa1, %src.addr.0.lcssa2
  %diff.check3 = icmp ult i64 %3, 32
  %conflict.rdx = or i1 %diff.check, %diff.check3
  %4 = add i64 noundef %neg_offs, %dst.addr.0.lcssa1
  %5 = sub i64 %dst.addr.0.lcssa1, %4
  %diff.check4 = icmp ult i64 %5, 32
  %conflict.rdx5 = or i1 %conflict.rdx, %diff.check4
  br i1 %conflict.rdx5, label %vec.epilog.scalar.ph, label %vector.main.loop.iter.check

%vector.main.loop.iter.check:
  %min.iters.check6 = icmp ult i64 %count.addr.0.lcssa, 32
  br i1 %min.iters.check6, label %vec.epilog.ph, label %vector.ph

%vector.ph:
  %n.mod.vf = urem i64 %count.addr.0.lcssa, 32
  %n.vec = sub i64 %count.addr.0.lcssa, %n.mod.vf
  br label %vector.body

%vector.body:
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %6 = add i64 %index, 0
  %next.gep = gep ptr %dst.addr.0.lcssa, 1 x i64 %6
  %7 = add i64 %index, 16
  %8 = add i64 %index, 0
  %next.gep8 = gep ptr %src.addr.0.lcssa, 1 x i64 %8
  %9 = add i64 %index, 16
  %10 = gep ptr %next.gep8, 1 x i32 0
  %wide.load = load <16 x i8>, ptr %10, align 1
  %11 = gep ptr %next.gep8, 1 x i32 16
  %wide.load10 = load <16 x i8>, ptr %11, align 1
  %12 = gep inbounds ptr %next.gep, 1 x i64 noundef %neg_offs
  %14 = gep inbounds ptr %12, 1 x i32 0
  %wide.load11 = load <16 x i8>, ptr %14, align 1
  %15 = gep inbounds ptr %12, 1 x i32 16
  %wide.load12 = load <16 x i8>, ptr %15, align 1
  %16 = add <16 x i8> %wide.load11, %wide.load
  %17 = add <16 x i8> %wide.load12, %wide.load10
  %18 = gep ptr %next.gep, 1 x i32 0
  store <16 x i8> %16, ptr %18, align 1
  %19 = gep ptr %next.gep, 1 x i32 16
  store <16 x i8> %17, ptr %19, align 1
  %index.next = add nuw i64 %index, 32
  %20 = icmp eq i64 %index.next, %n.vec
  br i1 %20, label %middle.block, label %vector.body

%middle.block:
  %cmp.n = icmp eq i64 %count.addr.0.lcssa, %n.vec
  br i1 %cmp.n, label %while.end9.loopexit, label %vec.epilog.iter.check

%vec.epilog.iter.check:
  %ind.end20 = sub i64 %count.addr.0.lcssa, %n.vec
  %ind.end17 = gep ptr %src.addr.0.lcssa, 1 x i64 %n.vec
  %ind.end15 = gep ptr %dst.addr.0.lcssa, 1 x i64 %n.vec
  %n.vec.remaining = sub i64 %count.addr.0.lcssa, %n.vec
  %min.epilog.iters.check = icmp ult i64 %n.vec.remaining, 8
  br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph, label %vec.epilog.ph

%vec.epilog.ph:
  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.mod.vf13 = urem i64 %count.addr.0.lcssa, 8
  %n.vec14 = sub i64 %count.addr.0.lcssa, %n.mod.vf13
  %ind.end = gep ptr %dst.addr.0.lcssa, 1 x i64 %n.vec14
  %ind.end16 = gep ptr %src.addr.0.lcssa, 1 x i64 %n.vec14
  %ind.end19 = sub i64 %count.addr.0.lcssa, %n.vec14
  br label %vec.epilog.vector.body

%vec.epilog.vector.body:
  %index23 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next28, %vec.epilog.vector.body ]
  %21 = add i64 %index23, 0
  %next.gep24 = gep ptr %dst.addr.0.lcssa, 1 x i64 %21
  %22 = add i64 %index23, 0
  %next.gep25 = gep ptr %src.addr.0.lcssa, 1 x i64 %22
  %23 = gep ptr %next.gep25, 1 x i32 0
  %wide.load26 = load <8 x i8>, ptr %23, align 1
  %24 = gep inbounds ptr %next.gep24, 1 x i64 noundef %neg_offs
  %25 = gep inbounds ptr %24, 1 x i32 0
  %wide.load27 = load <8 x i8>, ptr %25, align 1
  %26 = add <8 x i8> %wide.load27, %wide.load26
  %27 = gep ptr %next.gep24, 1 x i32 0
  store <8 x i8> %26, ptr %27, align 1
  %index.next28 = add nuw i64 %index23, 8
  %28 = icmp eq i64 %index.next28, %n.vec14
  br i1 %28, label %vec.epilog.middle.block, label %vec.epilog.vector.body

%vec.epilog.middle.block:
  %cmp.n22 = icmp eq i64 %count.addr.0.lcssa, %n.vec14
  br i1 %cmp.n22, label %while.end9.loopexit, label %vec.epilog.scalar.ph

%vec.epilog.scalar.ph:
  %bc.resume.val = phi ptr [ %ind.end, %vec.epilog.middle.block ], [ %ind.end15, %vec.epilog.iter.check ], [ %dst.addr.0.lcssa, %vector.memcheck ], [ %dst.addr.0.lcssa, %iter.check ]
  %bc.resume.val18 = phi ptr [ %ind.end16, %vec.epilog.middle.block ], [ %ind.end17, %vec.epilog.iter.check ], [ %src.addr.0.lcssa, %vector.memcheck ], [ %src.addr.0.lcssa, %iter.check ]
  %bc.resume.val21 = phi i64 [ %ind.end19, %vec.epilog.middle.block ], [ %ind.end20, %vec.epilog.iter.check ], [ %count.addr.0.lcssa, %vector.memcheck ], [ %count.addr.0.lcssa, %iter.check ]
  br label %while.body4

%while.body4:
  %dst.addr.130 = phi ptr [ %incdec.ptr, %while.body4 ], [ %bc.resume.val, %vec.epilog.scalar.ph ]
  %src.addr.129 = phi ptr [ %incdec.ptr8, %while.body4 ], [ %bc.resume.val18, %vec.epilog.scalar.ph ]
  %count.addr.128 = phi i64 [ %dec, %while.body4 ], [ %bc.resume.val21, %vec.epilog.scalar.ph ]
  %dec = add i64 %count.addr.128, -1
  %29 = load i8, ptr %src.addr.129, align 1
  %arrayidx = gep inbounds ptr %dst.addr.130, 1 x i64 noundef %neg_offs
  %30 = load i8, ptr %arrayidx, align 1
  %add6 = add i8 %30, %29
  store i8 %add6, ptr %dst.addr.130, align 1
  %incdec.ptr = gep inbounds ptr %dst.addr.130, 1 x i64 1
  %incdec.ptr8 = gep inbounds ptr %src.addr.129, 1 x i64 1
  %tobool.not = icmp eq i64 %dec, 0
  br i1 %tobool.not, label %while.end9.loopexit, label %while.body4

%while.end9.loopexit:
  br label %while.end9

%while.end9:
  ret void
}
Transformation doesn't verify! (unsound)
ERROR: Source is more defined than target

Example:
ptr nocapture noundef %dst = pointer(non-local, block_id=1, offset=-2, attrs=1)
ptr nocapture nowrite noundef %src = pointer(non-local, block_id=2, offset=-2, attrs=3)
i64 noundef %neg_offs = #xfffffffffffffffe (18446744073709551614, -2)
i64 noundef %count = #x0000000000000000 (0)

Source:
i1 %cmp21 = #x0 (0)
  >> Jump to %while.cond3.preheader
i64 %count.addr.0.lcssa = #x0000000000000000 (0)
ptr %src.addr.0.lcssa = pointer(non-local, block_id=2, offset=-2, attrs=3)
ptr %dst.addr.0.lcssa = pointer(non-local, block_id=1, offset=-2, attrs=1)
i1 %tobool.not27 = #x1 (1)
  >> Jump to %while.end9

SOURCE MEMORY STATE
===================
NON-LOCAL BLOCKS:
Block 0 >	size: 0	align: 1	alloc type: 0	address: 0
Block 1 >	size: 4611686018427387904	align: 2	alloc type: 0	address: 6917810502907268097
Block 2 >	size: 4611686018427387904	align: 4	alloc type: 0	address: 1153211775953472000

Target:
i1 %cmp21 = #x0 (0)
  >> Jump to %while.cond3.preheader
i64 %count.addr.0.lcssa = #x0000000000000000 (0)
ptr %src.addr.0.lcssa = pointer(non-local, block_id=2, offset=-2, attrs=3)
ptr %dst.addr.0.lcssa = pointer(non-local, block_id=1, offset=-2, attrs=1)
i64 %dst.addr.0.lcssa1 = UB triggered!


Pass: LoopVectorizePass
Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-load-pass-plugin=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-O2' '-S' '-mtriple=x86_64--' '-mattr=+sse2' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats'


------------------- SMT STATS -------------------
Num queries: 43
Num invalid: 0
Num skips:   0
Num trivial: 91 (67.9%)
Num timeout: 0 (0.0%)
Num errors:  0 (0.0%)
Num SAT:     43 (100.0%)
Num UNSAT:   0 (0.0%)
Alive2: Transform doesn't verify; aborting!

stderr:

+ : 'RUN: at line 2'
+ /home/nlopes/alive2/build/opt-alive.sh -O2 -S -mtriple=x86_64-- -mattr=+sse2
+ /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/X86/pr38280.ll

FileCheck error: '<stdin>' is empty.
FileCheck command line:  /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/PhaseOrdering/X86/pr38280.ll

 

<-- Back