[RISCV][ISel] Allow opaque constants in hasAndNotCompare
#92926
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See the following code:
https://github.com/llvm/llvm-project/blob/4ae896fe979b7db501cabde4b6b3504478958682/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp#L9334-L9357
The assertion failed because both
X
andY
are constants.This patch allows opaque constants in
hasAndNotCompare
to fix the issue. I think it is correct, as we have done this in other places:llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Lines 7496 to 7504 in 4ae896f
Another solution is to comment out the assertion. But it produces worse codegen.
Fixes #90730.