<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/80597>80597</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm crash: Assertion `!LHSKnown.hasConflict() && "Bits known to be one AND zero?"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
llvm crashes in `instcombine`
Bisected to d77067d08a3f56dc2d0e6c95bd2852c943df743a, which was committed by @nikic
Compiler explorer: https://godbolt.org/z/e4jrvf5Wr
```console
% cat reduced.ll
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define i32 @main(i1 %.b.i) {
entry:
%add.i = select i1 %.b.i, i64 0, i64 4294967293
%add8.i = shl i64 %add.i, 32
%sext.2.i = add i64 %add8.i, 8836839514384105472
%cmp11.2.i = icmp ult i64 %sext.2.i, -34359738368
br i1 %cmp11.2.i, label %return.loopexit.i, label %for.inc.2.i
for.inc.2.i: ; preds = %entry
%sext.4.i = or i64 %add8.i, 8836839522974040064
%conv9.4.i = ashr i64 %sext.4.i, 1
%cmp11.4.i = icmp ult i64 %conv9.4.i, 0
br i1 %cmp11.4.i, label %return.loopexit.i, label %return.loopexit.i
return.loopexit.i: ; preds = %for.inc.2.i, %for.inc.2.i, %entry
ret i32 0
}
%
% opt -disable-output -passes=instcombine reduced.ll
opt: /tmp/tmpzoi34eaf/tmporhhh5ti/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp:246: llvm::Value* llvm::InstCombinerImpl::SimplifyDemandedUseBits(llvm::Value*, llvm::APInt, llvm::KnownBits&, unsigned int, llvm::Instruction*): Assertion `!LHSKnown.hasConflict() && "Bits known to be one AND zero?"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/opt -disable-output -passes=instcombine reduced.ll
#0 0x00007f7698f4558f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x93858f)
#1 0x00007f7698f42ab4 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f7698222090 (/lib/x86_64-linux-gnu/libc.so.6+0x43090)
#3 0x00007f769822200b raise /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#4 0x00007f7698201859 abort /build/glibc-wuryBv/glibc-2.31/stdlib/abort.c:81:7
#5 0x00007f7698201729 get_sysdep_segment_value /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:509:8
#6 0x00007f7698201729 _nl_load_domain /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:970:34
#7 0x00007f7698212fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#8 0x00007f769a44445d llvm::InstCombinerImpl::SimplifyDemandedUseBits(llvm::Value*, llvm::APInt, llvm::KnownBits&, unsigned int, llvm::Instruction*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x1e3745d)
#9 0x00007f769a444d25 llvm::InstCombinerImpl::SimplifyDemandedInstructionBits(llvm::Instruction&, llvm::KnownBits&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x1e37d25)
#10 0x00007f769a4459c5 llvm::InstCombinerImpl::SimplifyDemandedInstructionBits(llvm::Instruction&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x1e389c5)
#11 0x00007f769a38cdc3 llvm::InstCombinerImpl::visitOr(llvm::BinaryOperator&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x1d7fdc3)
#12 0x00007f769a3537b1 llvm::InstCombinerImpl::run() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x1d467b1)
#13 0x00007f769a355002 combineInstructionsOverFunction(llvm::Function&, llvm::InstructionWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, llvm::LoopInfo*, llvm::InstCombineOptions const&) (.isra.0) InstructionCombining.cpp:0:0
#14 0x00007f769a355fbb llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x1d48fbb)
#15 0x00007f769bea5916 llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x3898916)
#16 0x00007f769916239d llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0xb5539d)
#17 0x00007f769be9e506 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x3891506)
#18 0x00007f7699160c2d llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0xb53c2d)
#19 0x00007f769bea5556 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0x3898556)
#20 0x00007f769915eb5d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/../lib/libLLVM-18git.so+0xb51b5d)
#21 0x000055c7b779e395 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/opt+0x26395)
#22 0x000055c7b7791e8a main (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/opt+0x19e8a)
#23 0x00007f7698203083 __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:342:3
#24 0x000055c7b7792a5e _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-d77067d08a3f56dc2d0e6c95bd2852c943df743a/bin/opt+0x1aa5e)
[1] 880216 abort -disable-output -passes=instcombine reduced.ll
%
```
The above test case was reduced from
```C
long a, i;
static long b = -4;
char c;
int d;
static int *e = &d, *h = &d;
static long *f = &b, *g = &b;
int j() {
for (; a;) {
c = 0;
for (; c <= 6; c++) {
unsigned long k = 1;
i = -8;
*h = i >= (int)k + (int)*f + c + 2057487030 + k;
if (*e)
break;
}
return 0;
}
*g = 0;
return 0;
}
int main() { j(); }
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl1z26j6_zTkhrEHgdDLRS7spJ7tbPtvZ9P_7mUGAbLZSKADKE366c-AZFuyk23Tfcs5ZzuuY-B5_T0PD0jAnFNbLeUloGtAry9Y73fGXrodM4tdzxaNuqiMeLxsmvsWcsvcTjqoNAQZUtp5btpKaQkyBNA1QKvhe62c5F4K6A0UeY6yXKCCkZpmgmOBZMZLWglcUMzLlIg6TwkD-Ap-3im-g5-Zg9y0rfJBRPUIQYq0ulMcTnVcmbZTjbRQPnSNsdICsoI77zsHyArgDcCbrRGVafzS2C3Amy8Ab2T6q72v6S92KikYHz_caGcaOfZiCjnz0ErRcymWTTP0e2a30kPBPGvYo-k9BOQaAozlogVkJRcdzhEgK4LjV2gm82b4laXxa6EOPxJcALJKcLGoCzT-0rEr27Nn6eImkGE8M8Vb1TVyb8ZDkd1m6aLXd9p81otG6f5hsdX9gWv4FrJWWkJFcIC3ZUoDXKgEAkyX1VIBXEKQrwdaqb19DKjGFgw0TIiliiqdbCT3cMp6BVWWQrT_keIyLbMcl2QuoNhL2DWRbi828BE8oXXywS_xSM2EmFAXA3lRkKwgJU1SUqQJomk-5edtlyQHAYq3Hewbv5eylx7kLEhKaJmTIG4voLKjcwcxgbJhlWxCr5W-t3rZGNPJB-VPRmtjl0rzyDVBf9pNVvCb_gGyhp2Vwo2RpkNYTmBKRy-NfR4ljMs8RSlCWTpFyej78sDP3M7OEEoHGckZrukzuB7kBTb0DJrpi9A8H51gej74dWTPMJ0GBl893TPD3UofJ9G-_uXXh_JxrCOm83AhlGNVIxem913v4aJjzkkHyPWkjp5VG9P54AbAG992w_cXo0gqWT20jN3tdtQrgDehRIc_qgJ488ky7WpjWwfw5q12_mqs1LPWjWq7RtWP17JlWkix5F0HyAqnoebAKJCsAFn9zJpeAjztmkixb9uuGXpPBf6_k2vlHcDFubAY2kPv6uNb7eddP4YKNrBnYaTXca0SUJ1SBmNsz70yOgoug_kr56QNXWGxAjh598NNlLjcMXdldN0o7kEopyWMCrJQPoM6GEtnWLwqCY2WcPV_1_CLtAaQTSijOIc1U40UyyFIH9-9Wd28ga6vWuUhg1W_hVZ2xvog42RNUn7XV0tu2knEmvt20VnzqwwGbZRzvQxhg0wHX3nTCwn9Tg7rL6wYv_OWcTmqv_GM30HRt92hRqMlQOVHa7aWtZDZbd9K7d2YSV_C2gXwJqzxTUgcPi6lQSfnVa8aIe1i1tswvV18-1K-qcJ6svn-vIcAEwTRA0II5XWelUWdUlrUk5i7Rzf8-GiV9hGETwGVWa5Z9vnWOG8la8ckirkTIl78pVAsl4ep2ajq3buf3y-SYqv80hmA1-ihJAUt6pC5B_-TE_8xq1J4o7aaNT8wLRppw5I9uDN0u3H-ovj_IAjPBGGMUYlGAAaLxj3DZK8QBvjSmWUWrUsJKtHMOHImE1XQMuVkSLEIXMj2IGbxubeP6_tDEy9JEjCPJu-hcY9OyC4A3Gv1MHTcRzt0H5pR9JIDsqJhO5UcLUnnlqCkoCVkVZh932qJFwMOkSsqKYKS_KiEnirJcQm30t8Odt86uQ1T7PY-1LZv1au0D_43honWbTkbVFMUqldx1J09pftWN7eB8VaYsHn7fSrLYceaHnXmc50JrkX2spQhpBbZLGWKqUyWpmlKxX_MgvLqCkYiSZ5SMUO4PEVYYPpihCeunyE9gyX7LXBfJ2AC0wNgocKiE8Boyf9cwF4lLEXJ57DMVh5GCi44-Sos98op_8HO3F8rzezjh05a5o19rQiIvBaczBDAcwQoyavkqwjYXh_2k6_NxTTLq2TmIjlxkSKE4bgfm6St-3Av7abXYw5PgnvszJ4tnr8Ye9co589oVqufpOubMF1O67ZzfdsF5ivGd_KM81N86_FOVZbZx7e6Ns9QHJ6AnqS5Nq3SISk_WXmu40PnVau-sGDFT7Jl9u5NfB1lzyjXjeF3Gyv_1UvNR3NOHPpoTa0aedO37cHiE5J3xnRPDkwS7UPExEFu9IhnzLOlcpYtw-YMTnAfeJTenu8IQ-zT09jXVfW01o_MuWl2f0P4V5o1j06590yzrbSAXD3BRN682mqQFnVVzabKbPdXSUbLJJs4LKRnaqwBAa_3RsjmabefC26E-SRrpJP2XooBTum-D-Tw-R-KHinKokyyWfRm--cyyTApp_vOGLHfcvYf3L-Oe0UpKcUM9nw-aUpJ0R8xaf60cP0z-_6I2ZdQNJ99xcnsQxxPZ997I_pGfjJ750J4V4J1Ybv4JHQDw4uAG1leLWwVJRzPJ095uuJQ-rLJs4fp6hux_qOy_4j1c7n_XxjAsOpQOst7jOZ5T2VFv2XVeSpu_-B9NmGSis4mDN4_slLK8yrPS0nK6ZO87WO2f1SdbOIpyASgG2-V3v4k66dmyzMPF-8Z30U5q688nMSnwzMqY5oP8XX4RjVPCPldw8-4s7KWPYbeaaAjJk2_VfpsBTSdv_XGjEVm0Pej0uK3qH6WVtVK2j1dFUZe_PevzzfT-ZhXOCPl7E0IxidplciCwfGF699jY1LKgs1sPHkVjwgqCLy9bVTFb51n1t--5A0xd_1-Bg4_42CUE98VkzTeZDiqT08gwoxKOCj--0BijMojSHSdAHoNiwLhJBvPBoZ_33c6dTzc3V8dmR5Ef9rJoONeQi-dh5w5Ge-0jFJgbU17wn41tBujtzDehFGAjJcvnGdecRiHqnhMvUgPg3zHLOSHptIeilPO0Anwan9BJBPDMfZqd-x4ShfAq3pPUY0s22PHVOWv-7de-wsjENbGxuCTNWSBdj4KIY-S0EFM6JvwhOGrQJHFFsDr-JkKOby7j9beRXnJTB6Ew8WERXHSfXA-jL8ZXBoP0u4gwOtjcwABR4PwGmJE87TIEUGxeXeqrh4SfnVMvf1Fg8pKNic_3BQIjeHuwgyPyfgB-en4GcuBIYRkvNAzQraPUADzeENhn3wX4pKIkpTsQl4mOcoRpVmCLnaXskJcZqKgBa6rKs9EKtNapJzlmSxwSS7UJUY4RRilSYoyipZJJXAoAwVLRY2oACmSLVPNMqwYS2O3F_Fw-7JAtMwv4r0OF2-eYazlZxgHAcaAXl_YeOVsUfVbB1LUKOfdUYpXvpGTO2l_0XH_RW-by-8_z49e_zsAAP__V0G3PA">