[PATCH] D159205: [SLP]Try to vectorize scalars, being vectorized already, but do not need to be scheduled.

Ivan Kelarev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 21 16:20:53 PDT 2023


ikelarev added a comment.

Hi Alexey,

The change causes a crash for this code:

  $ cat ~/test.ll
  target triple = "x86_64-unknown-linux-gnu"
  
  define void @f(i64 %0) {
    %2 = bitcast i64 0 to double
    %3 = bitcast i64 0 to double
    %4 = bitcast i64 %0 to double
    br label %5
  
  5:                                                ; preds = %1
    %6 = fmul double 0.000000e+00, %4
    %7 = fmul double 0.000000e+00, %3
    %8 = fmul double 0.000000e+00, %2
    br label %9
  
  9:                                                ; preds = %5
    %10 = fmul double 0.000000e+00, %7
    %11 = fmul double 0.000000e+00, %8
    %12 = fadd double %10, 0.000000e+00
    %13 = fadd double %12, %11
    %14 = fadd double %13, 0.000000e+00
    %15 = fadd double %14, 0.000000e+00
    %16 = fmul double 0.000000e+00, %15
    %17 = getelementptr double, ptr null, i64 1
    store double %16, ptr %17, align 1
    %18 = fmul double 0.000000e+00, %6
    %19 = fadd double %18, 0.000000e+00
    %20 = fmul double 0.000000e+00, %6
    %21 = fsub double %19, %20
    %22 = fmul double %21, 0.000000e+00
    %23 = fadd double %22, 0.000000e+00
    %24 = fmul double %23, 0.000000e+00
    %25 = getelementptr double, ptr null, i64 2
    store double %24, ptr %25, align 1
    ret void
  }
  
  $ bin/opt ~/test.ll -passes=slp-vectorizer -S
  opt: /llorg/llvm/llvm/lib/IR/Value.cpp:506: void llvm::Value::doRAUW(llvm::Value*, llvm::Value::ReplaceMetadataUses): Assertion `!contains(New, this) && "this->replaceAllUsesWith(expr(this)) is NOT valid!"' failed.
  PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
  ...

After applying later fixes the error message changes to "Instruction does not dominate all uses" but it still crashes. Could you please take a look?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D159205



More information about the llvm-commits mailing list