[llvm] [IR] Add nowrap flags for trunc instruction (PR #85592)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 22 11:05:41 PDT 2024
================
@@ -624,6 +643,13 @@ void Instruction::andIRFlags(const Value *V) {
}
}
+ if (auto *PNWI = dyn_cast<PossiblyNoWrapInst>(V)) {
+ if (isa<PossiblyNoWrapInst>(this)) {
+ setHasNoSignedWrap(hasNoSignedWrap() && PNWI->hasNoSignedWrap());
+ setHasNoUnsignedWrap(hasNoUnsignedWrap() && PNWI->hasNoUnsignedWrap());
----------------
elhewaty wrote:
@nikic any hint about why is this causing assertions
```
opt: /media/mohamed/Local-Disk/open-source/NEW/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::OverflowingBinaryOperator; From = const llvm::Instruction]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
```
https://github.com/llvm/llvm-project/pull/85592
More information about the llvm-commits
mailing list