[PATCH] D119661: [LV] Support chained phis as incoming values for first-order recurs.

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 23 10:09:51 PDT 2022


aeubanks added a comment.

  $ cat /tmp/c.ll
  target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-grtev4-linux-gnu"
  
  define void @gen_interp(ptr %0) {
    br label %2
  
  2:                                                ; preds = %2, %1
    %3 = phi double [ %9, %2 ], [ 0.000000e+00, %1 ]
    %4 = phi double [ %11, %2 ], [ 0.000000e+00, %1 ]
    %5 = phi double [ %4, %2 ], [ 0.000000e+00, %1 ]
    %6 = phi i64 [ %10, %2 ], [ 0, %1 ]
    %7 = fdiv double %5, %3
    %8 = fdiv double 0.000000e+00, %3
    %9 = load double, ptr null, align 8
    %10 = add nuw nsw i64 %6, 1
    %11 = load double, ptr null, align 8
    store double %8, ptr %0, align 8
    %12 = icmp eq i64 %10, 0
    br i1 %12, label %13, label %2
  
  13:                                               ; preds = %2
    ret void
  }
  $ ./build/rel/bin/opt -passes='loop-vectorize' -disable-output /tmp/c.ll
  Use before def!                                                                                                                                                                                    
  opt: ../../llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:9136: VPlanPtr llvm::LoopVectorizationPlanner::buildVPlanWithVPRecipes(VFRange &, SmallPtrSetImpl<Instruction *> &, const MapVector<Inst
  ruction *, Instruction *> &): Assertion `VPlanVerifier::verifyPlanIsValid(*Plan) && "VPlan is invalid"' failed.                                                                                    


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119661/new/

https://reviews.llvm.org/D119661



More information about the llvm-commits mailing list