Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- VPlan 'Final VPlan for VF={8,16},UF={1}' {
- Live-in ir<8> = VF * UF
- Live-in ir<%n.vec5> = vector-trip-count
- Live-in ir<%1> = original trip-count
- ir-bb<vec.epilog.iter.check>:
- IR %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
- IR %bc.merge.rdx = phi i64 [ %7, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
- IR %n.vec.remaining = sub i64 %1, %n.vec
- IR %min.epilog.iters.check = icmp ult i64 %n.vec.remaining, 8
- Successor(s): ir-bb<vec.epilog.scalar.ph>, ir-bb<vec.epilog.ph>
- ir-bb<vec.epilog.ph>:
- IR %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
- IR %bc.merge.rdx = phi i64 [ %7, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
- IR %n.mod.vf4 = urem i64 %1, 8
- IR %n.vec5 = sub i64 %1, %n.mod.vf4
- IR %ind.end = add i64 %idx.neg, %n.vec5
- WIDEN-CAST ir<%conv> = sext ir<%0> to i64
- Successor(s): vector loop
- <x1> vector loop: {
- vec.epilog.vector.body:
- SCALAR-PHI vp<%0> = phi ir<%vec.epilog.resume.val>, vp<%index.next>
- WIDEN-REDUCTION-PHI ir<%sum.1129> = phi ir<%bc.merge.rdx>, ir<%add99> (VF scaled by 1/8)
- CLONE ir<%9> = load ir<null>
- WIDEN-CAST ir<%conv97> = sext ir<%9> to i64
- WIDEN ir<%mul> = mul ir<%conv97>, ir<%conv>
- PARTIAL-REDUCE ir<%add99> = add ir<%mul>, ir<%sum.1129>
- EMIT vp<%index.next> = add nuw vp<%0>, ir<8>
- EMIT branch-on-count vp<%index.next>, ir<%n.vec5>
- No successors
- }
- Successor(s): ir-bb<vec.epilog.middle.block>
- ir-bb<vec.epilog.middle.block>:
- EMIT vp<%2> = compute-reduction-result ir<%sum.1129>, ir<%add99>
- EMIT vp<%3> = extract-from-end vp<%2>, ir<1>
- EMIT vp<%cmp.n> = icmp eq ir<%1>, ir<%n.vec5>
- EMIT branch-on-cond vp<%cmp.n>
- Successor(s): ir-bb<while.end.loopexit>, ir-bb<vec.epilog.scalar.ph>
- ir-bb<while.end.loopexit>:
- IR %add99.lcssa = phi i64 [ %add99, %while.body ], [ %7, %middle.block ] (extra operand: vp<%3> from ir-bb<vec.epilog.middle.block>)
- No successors
- ir-bb<vec.epilog.scalar.ph>:
- EMIT vp<%bc.resume.val> = resume-phi ir<%ind.end>, ir<%idx.neg>
- EMIT vp<%bc.resume.val>.1 = resume-phi ir<%n.vec5>.1, ir<0>
- EMIT vp<%bc.merge.rdx> = resume-phi vp<%2>, ir<0>
- Successor(s): ir-bb<while.body>
- ir-bb<while.body>:
- IR %n1ptr.0.idx131 = phi i64 [ %n1ptr.0.add, %while.body ], [ %idx.neg, %vec.epilog.scalar.ph ] (extra operand: vp<%bc.resume.val> from ir-bb<vec.epilog.scalar.ph>)
- IR %n2ptr.0.idx130 = phi i64 [ %n2ptr.0.add, %while.body ], [ 0, %vec.epilog.scalar.ph ] (extra operand: vp<%bc.resume.val>.1 from ir-bb<vec.epilog.scalar.ph>)
- IR %sum.1129 = phi i64 [ %add99, %while.body ], [ %bc.merge.rdx, %vec.epilog.scalar.ph ] (extra operand: vp<%bc.merge.rdx> from ir-bb<vec.epilog.scalar.ph>)
- IR %n1ptr.0.add = add i64 %n1ptr.0.idx131, 1
- IR %conv = sext i8 %0 to i64
- IR %n2ptr.0.add = add i64 %n2ptr.0.idx130, 1
- IR %9 = load i8, ptr null, align 1
- IR %conv97 = sext i8 %9 to i64
- IR %mul = mul i64 %conv97, %conv
- IR %add99 = add i64 %mul, %sum.1129
- IR %cmp94 = icmp ugt i64 %n1ptr.0.idx131, 0
- IR %cmp95 = icmp ne i64 %n2ptr.0.idx130, -1
- IR %10 = and i1 %cmp94, %cmp95
- No successors
- }
Advertisement
Add Comment
Please, Sign In to add comment