Changeset View
Changeset View
Standalone View
Standalone View
test/Transforms/LoopUnroll/X86/partial.ll
Show First 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | entry: | ||||
%cmp25 = icmp eq i32 %n, 0 | %cmp25 = icmp eq i32 %n, 0 | ||||
br i1 %cmp25, label %for.end, label %for.body | br i1 %cmp25, label %for.end, label %for.body | ||||
for.body: ; preds = %entry, %for.body | for.body: ; preds = %entry, %for.body | ||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ] | %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ] | ||||
%reduction.026 = phi i16 [ %add14, %for.body ], [ 0, %entry ] | %reduction.026 = phi i16 [ %add14, %for.body ], [ 0, %entry ] | ||||
%arrayidx = getelementptr inbounds i16, i16* %arr, i64 %indvars.iv | %arrayidx = getelementptr inbounds i16, i16* %arr, i64 %indvars.iv | ||||
%0 = load i16, i16* %arrayidx, align 2 | %0 = load i16, i16* %arrayidx, align 2 | ||||
%add = add i16 %0, %reduction.026 | %mul = shl i16 %0, 1 | ||||
%add = add i16 %mul, %reduction.026 | |||||
%sext = mul i64 %indvars.iv, 12884901888 | %sext = mul i64 %indvars.iv, 12884901888 | ||||
%idxprom3 = ashr exact i64 %sext, 32 | %idxprom3 = ashr exact i64 %sext, 32 | ||||
%arrayidx4 = getelementptr inbounds i16, i16* %arr, i64 %idxprom3 | %arrayidx4 = getelementptr inbounds i16, i16* %arr, i64 %idxprom3 | ||||
%1 = load i16, i16* %arrayidx4, align 2 | %1 = load i16, i16* %arrayidx4, align 2 | ||||
%add7 = add i16 %add, %1 | %mul2 = shl i16 %1, 1 | ||||
%add7 = add i16 %add, %mul2 | |||||
%sext28 = mul i64 %indvars.iv, 21474836480 | %sext28 = mul i64 %indvars.iv, 21474836480 | ||||
%idxprom10 = ashr exact i64 %sext28, 32 | %idxprom10 = ashr exact i64 %sext28, 32 | ||||
%arrayidx11 = getelementptr inbounds i16, i16* %arr, i64 %idxprom10 | %arrayidx11 = getelementptr inbounds i16, i16* %arr, i64 %idxprom10 | ||||
%2 = load i16, i16* %arrayidx11, align 2 | %2 = load i16, i16* %arrayidx11, align 2 | ||||
%add14 = add i16 %add7, %2 | %mul3 = shl i16 %2, 1 | ||||
%add14 = add i16 %add7, %mul3 | |||||
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 | %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 | ||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32 | %lftr.wideiv = trunc i64 %indvars.iv.next to i32 | ||||
%exitcond = icmp eq i32 %lftr.wideiv, %n | %exitcond = icmp eq i32 %lftr.wideiv, %n | ||||
br i1 %exitcond, label %for.end, label %for.body | br i1 %exitcond, label %for.end, label %for.body | ||||
for.end: ; preds = %for.body, %entry | for.end: ; preds = %for.body, %entry | ||||
%reduction.0.lcssa = phi i16 [ 0, %entry ], [ %add14, %for.body ] | %reduction.0.lcssa = phi i16 [ 0, %entry ], [ %add14, %for.body ] | ||||
ret i16 %reduction.0.lcssa | ret i16 %reduction.0.lcssa | ||||
Show All 20 Lines |