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

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 21 17:08:44 PDT 2023


ABataev added a comment.

In D159205#4649844 <https://reviews.llvm.org/D159205#4649844>, @ikelarev wrote:

> 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?

Hi, try to update the compiler, it should be fixed already


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