-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Assertion `hasPlanWithVF(ScalarVF) && "More than a single plan/VF w/o any plan having scalar VF"' failed. #106523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Comments
fhahn
added a commit
to fhahn/llvm-project
that referenced
this issue
Sep 17, 2024
In some cases, Previous (and its operands) can be hoisted. This allows supporting additional cases where sinking of all users of to FOR fails, e.g. due having to sink recipes with side-effects. This fixes a crash where we fail to create a scalar VPlan for a first-order recurrence, but can create a vector VPlan, because the trunc instruction of an IV which generates the previous value of the recurrence has been optimized to a truncated induction recipe, thus hoisting it to the beginning. Fixes llvm#106523.
Very interesting issue thanks! Proposed fix #106523 |
fhahn
added a commit
to fhahn/llvm-project
that referenced
this issue
Oct 6, 2024
In some cases, Previous (and its operands) can be hoisted. This allows supporting additional cases where sinking of all users of to FOR fails, e.g. due having to sink recipes with side-effects. This fixes a crash where we fail to create a scalar VPlan for a first-order recurrence, but can create a vector VPlan, because the trunc instruction of an IV which generates the previous value of the recurrence has been optimized to a truncated induction recipe, thus hoisting it to the beginning. Fixes llvm#106523.
fhahn
added a commit
to fhahn/llvm-project
that referenced
this issue
Oct 8, 2024
In some cases, Previous (and its operands) can be hoisted. This allows supporting additional cases where sinking of all users of to FOR fails, e.g. due having to sink recipes with side-effects. This fixes a crash where we fail to create a scalar VPlan for a first-order recurrence, but can create a vector VPlan, because the trunc instruction of an IV which generates the previous value of the recurrence has been optimized to a truncated induction recipe, thus hoisting it to the beginning. Fixes llvm#106523.
fhahn
added a commit
that referenced
this issue
Oct 23, 2024
…Rs. (#108945) In some cases, Previous (and its operands) can be hoisted. This allows supporting additional cases where sinking of all users of to FOR fails, e.g. due having to sink recipes with side-effects. This fixes a crash where we fail to create a scalar VPlan for a first-order recurrence, but can create a vector VPlan, because the trunc instruction of an IV which generates the previous value of the recurrence has been optimized to a truncated induction recipe, thus hoisting it to the beginning. Fixes #106523. PR: #108945
NoumanAmir657
pushed a commit
to NoumanAmir657/llvm-project
that referenced
this issue
Nov 4, 2024
…Rs. (llvm#108945) In some cases, Previous (and its operands) can be hoisted. This allows supporting additional cases where sinking of all users of to FOR fails, e.g. due having to sink recipes with side-effects. This fixes a crash where we fail to create a scalar VPlan for a first-order recurrence, but can create a vector VPlan, because the trunc instruction of an IV which generates the previous value of the recurrence has been optimized to a truncated induction recipe, thus hoisting it to the beginning. Fixes llvm#106523. PR: llvm#108945
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To reproduce run the following test with -passes=loop-vectorize
Reproducer: https://godbolt.org/z/e14eWvxMb
Stack dump:
The text was updated successfully, but these errors were encountered: