[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