[PATCH] D108049: [InstCombine] Extend canonicalizeClampLike to handle truncated inputs
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 29 16:33:59 PDT 2021
aeubanks added a comment.
this is causing crashes, e.g.
$ cat reduced.ll
define i8 @f(i32 %value, i8 %call.i) {
entry:
%cmp.i = icmp slt i32 %value, 0
%cond.i = select i1 %cmp.i, i8 %call.i, i8 0
%cmp.i.i = icmp ult i32 %value, 256
%conv4 = trunc i32 %value to i8
%cond = select i1 %cmp.i.i, i8 %conv4, i8 %cond.i
ret i8 %cond
}
$ ./build/rel/bin/opt -passes=instcombine -disable-output reduced.ll
opt: ../../llvm/lib/IR/Constants.cpp:2304: static llvm::Constant *llvm::ConstantExpr::get(unsigned int, llvm::Constant *, llvm::Constant *, unsigned int, llvm::Type *): Assertion `C1->getType() == C2->getType() && "Operand types in binary constant expression should match"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: ./build/rel/bin/opt -passes=instcombine -disable-output reduced.ll
#0 0x0000000001f1a023 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Unix/Signals.inc:565:13
#1 0x0000000001f17e9e llvm::sys::RunSignalHandlers() /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Signals.cpp:98:18
#2 0x0000000001f1a38f SignalHandler(int) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Support/Unix/Signals.inc:407:1
#3 0x00007f45c95198e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x138e0)
#4 0x00007f45c8ff3e71 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:50:1
#5 0x00007f45c8fdd536 abort ./stdlib/abort.c:81:7
#6 0x00007f45c8fdd41f get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
#7 0x00007f45c8fdd41f _nl_load_domain ./intl/loadmsgcat.c:970:34
#8 0x00007f45c8fec7f2 (/lib/x86_64-linux-gnu/libc.so.6+0x357f2)
#9 0x0000000001ba8eed llvm::ConstantExpr::get(unsigned int, llvm::Constant*, llvm::Constant*, unsigned int, llvm::Type*) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/IR/Constants.cpp:0:0
#10 0x0000000002929f7e canonicalizeClampLike /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:1409:29
#11 0x0000000002929f7e llvm::InstCombinerImpl::foldSelectInstWithICmp(llvm::SelectInst&, llvm::ICmpInst*) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:1535:18
#12 0x000000000292f3b2 llvm::InstCombinerImpl::visitSelectInst(llvm::SelectInst&) /usr/local/google/home/aeubanks/repos/llvm-project/build/rel/../../llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:2994:31
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D108049/new/
https://reviews.llvm.org/D108049
More information about the llvm-commits
mailing list