<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/92720>92720</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang crashes on valid code at -O1 and above on x86_64-linux-gnu: Assertion `N1.getValueType().bitsGT(VT) && "Invalid truncate node, src < dst!"' failed 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          zhendongsu
      </td>
    </tr>
</table>

<pre>
    Compiler Explorer: https://godbolt.org/z/vcTf6fxWY

```
[521] % clangtk -v
clang version 19.0.0git (https://github.com/llvm/llvm-project.git 32ae9a28a54f59f2b4e2f32323f53fb107ea1f85)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/software/local/clang-trunk/bin
Build config: +assertions
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
[522] % 
[522] % clangtk -O1 small.c
clang-19: /local/suz-local/software/clangbuild/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6010: llvm::SDValue llvm::SelectionDAG::getNode(unsigned int, const llvm::SDLoc&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags): Assertion `N1.getValueType().bitsGT(VT) && "Invalid truncate node, src < dst!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /local/suz-local/software/local/clang-trunk/bin/clang-19 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name small.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/local/suz-local/software/emitesting/bugs/20240520-clangtk-m64-O3-build-005835/delta -fcoverage-compilation-dir=/local/suz-local/software/emitesting/bugs/20240520-clangtk-m64-O3-build-005835/delta -resource-dir /local/suz-local/software/local/clang-trunk/lib/clang/19 -I /usr/local/include -I /local/suz-local/software/local/include -internal-isystem /local/suz-local/software/local/clang-trunk/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/small-09f9be.o -x c small.c
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'small.c'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'
 #0 0x000055d445b3dd8f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4094d8f)
 #1 0x000055d445b3b2b4 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f2f637c2420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f2f631c900b raise /build/glibc-e2p3jK/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f2f631a8859 abort /build/glibc-e2p3jK/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f2f631a8729 get_sysdep_segment_value /build/glibc-e2p3jK/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f2f631a8729 _nl_load_domain /build/glibc-e2p3jK/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f2f631b9fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x000055d446d257b1 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x527c7b1)
 #9 0x000055d446d84024 llvm::TargetLowering::ShrinkDemandedOp(llvm::SDValue, unsigned int, llvm::APInt const&, llvm::TargetLowering::TargetLoweringOpt&) const (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x52db024)
#10 0x000055d446dc3e08 llvm::TargetLowering::SimplifyDemandedBits(llvm::SDValue, llvm::APInt const&, llvm::APInt const&, llvm::KnownBits&, llvm::TargetLowering::TargetLoweringOpt&, unsigned int, bool) const (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x531ae08)
#11 0x000055d446dbd076 llvm::TargetLowering::SimplifyDemandedBits(llvm::SDValue, llvm::APInt const&, llvm::APInt const&, llvm::KnownBits&, llvm::TargetLowering::TargetLoweringOpt&, unsigned int, bool) const (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x5314076)
#12 0x000055d446bb8125 (anonymous namespace)::DAGCombiner::SimplifyDemandedBits(llvm::SDValue) (.constprop.0) DAGCombiner.cpp:0:0
#13 0x000055d446be7d8e (anonymous namespace)::DAGCombiner::visitSIGN_EXTEND_INREG(llvm::SDNode*) DAGCombiner.cpp:0:0
#14 0x000055d446c25fce (anonymous namespace)::DAGCombiner::visit(llvm::SDNode*) DAGCombiner.cpp:0:0
#15 0x000055d446c28541 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#16 0x000055d446c2a1bc (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) DAGCombiner.cpp:0:0
#17 0x000055d446c2c7aa llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOptLevel) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x51837aa)
#18 0x000055d446d63c52 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x52bac52)
#19 0x000055d446d6789d llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x52be89d)
#20 0x000055d446d692d6 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#21 0x000055d444674df0 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#22 0x000055d444ec31d1 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#23 0x000055d4454b017b llvm::FPPassManager::runOnFunction(llvm::Function&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3a0717b)
#24 0x000055d4454b03c9 llvm::FPPassManager::runOnModule(llvm::Module&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3a073c9)
#25 0x000055d4454b0c85 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3a07c85)
#26 0x000055d445dda723 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) BackendUtil.cpp:0:0
#27 0x000055d445ddab26 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4331b26)
#28 0x000055d446436dd9 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x498ddd9)
#29 0x000055d4481c0f7c clang::ParseAST(clang::Sema&, bool, bool) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x6717f7c)
#30 0x000055d446437268 clang::CodeGenAction::ExecuteAction() (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x498e268)
#31 0x000055d4466c6f19 clang::FrontendAction::Execute() (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4c1df19)
#32 0x000055d44664c0ee clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4ba30ee)
#33 0x000055d4467b1306 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x4d08306)
#34 0x000055d442d191ec cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x12701ec)
#35 0x000055d442d123ea ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#36 0x000055d442d15dbe clang_main(int, char**, llvm::ToolContext const&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x126cdbe)
#37 0x000055d442c1276b main (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x116976b)
#38 0x00007f2f631aa083 __libc_start_main /build/glibc-e2p3jK/glibc-2.31/csu/../csu/libc-start.c:342:3
#39 0x000055d442d11e7e _start (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x1268e7e)
clangtk: error: unable to execute command: Aborted
clangtk: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.0.0git (https://github.com/llvm/llvm-project.git 32ae9a28a54f59f2b4e2f32323f53fb107ea1f85)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/software/local/clang-trunk/bin
Build config: +assertions
clangtk: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clangtk: note: diagnostic msg: /tmp/small-a04b76.c
clangtk: note: diagnostic msg: /tmp/small-a04b76.sh
clangtk: note: diagnostic msg: 

********************
[523] % 
[523] % cat small.c
long a, b;
static int c;
int main() {
  b = c = a ? a << -(b | 255) : 0;
 return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltz27qu_jXqC0ceibo_5EGx4zSzu5pMk3U5Tx6KhByuSqQOSbnJ-vVnSMkXOU6TtsnZ-2HPpK7NC_ABBAGQBNGarwXAmZece8niA-nNvVRn_9yDYFKsdf-hkuzxbC7bjjeg0MVD10gFyotKdG9Mp72o9PDSw8u1ZJVszEyqtYeX_3h4uaF3dVo__Pk_XrDwgnL8TIPxb_iZnCc49JIF8nCCaEPE2nxF_mbodb_RBpTmUqCwmAWzYM0N8nB-xJyb-76aUdl6eNk0m-1_fqfk30DNzM6KMIGC4JwkcZ0UNa5iwHWEIxzVSVRXYZABCes88XAxsL8jag3GivqQp6s09nvxVchvwm-46B_8tejHcfcKCEOtZNDY0Z3U_GHouhLakKYBtuBOZxaXpKTx8FL3__i777I234iCg24nu29UL756eFlxMRA873nDEJWi5uuB4DnRGpThUuhhyFL2giFKBOOMGECX8zniAw5ih404eq0sO15Z_VHq4eUo5V46vAyDd6AZvj3NccVuoQFqgL0JvvkOWds3httZUYlmXnTuxUGbxkcsvzfImTnemvmptp3pX4dIt6RpZvRgD_hh8TrrcaMrayNHO-BgXzjp55LBJQgPLwcBuBSL8vLo54x2nReVaRAGlr0jEJVeVN4u_iBND4cth1RcyxrMZ8nAw3kvnJNhiAvj4bm1Xm0m1D5J6uHU9u1bL_64mzaMTI8bLZNlQ9ba7tuoROV2OyAvDT6HszUYN-_usbNgPFzMKm705Z2Hc8uiQI51ijyMr8SGNJwhu-2oXXnhJJgjrSjyojli2ng49DD2cIZqwhtgs2Gdbj5dlLcXSPdVyw0iqOrXSEEnlUFGHvvKF9yVh5dc6x60h5eICKs42vQMkLkHRBXR96gi9KtRhDp0nYJOSQpaA0Na9mpotjOJ1pJyYg1U9QJpqnhnRsi3htCviPWtXeShKZh5QXGj5FqRFhG17lsQRv-q59q2hQXyKQ2RbxTvGnjWrSIfWm58Wf2NfAuPcYWIj3zGNaka8GsFgHzaAFE-0cavoJYKfKsTEAz5LeHCr3kDviAtbPcT8lsFFqQ1Dt95a9RxivyOU7-BDTQIDz-49jsOyG9rRVrwO8mFsTFvIaQA5NctMfc-KCUk8uu686kUdi2MFy2kQH4tpK-sc-Ni7duxyG-dzaueGql80nCiQSO_7sU3LphvrFTaixYY-cYFHZ92vVWPn8bIN70A17AGAcoiZlD16zUo28XF2osWa1Yhv3btPnXRehCT2bizeHnxrMJBG0sML6ve7qYlDnAcJDjwR-fkt2nsX0e-8y9-ECR5lHh4yaAxBPk1lRtQZA3_Jv4KBsu3LH_aWgfn6NpsJCiQf3UQN8Yp29049L2Sz26SsyVBGp_rR22gfTOsLzF5RojvDH0xTuLlbPb048TYp9zgwX6hT7mOQ0_Q-f7sH2fhgq1fg1JS-Q23ftuueL0WPfXHrNOLFvEMz-w4_ZV3vmTKp_dAv_pc-Ou2dnbfSOUzTtZCasOp3diEMaX5GvmL1epyPl99LP-4WC3-LL8s8Wq-vFqVt7950SJEvrSoTNvZBbduyg-KuqhgJpH_gOg0FQitc_aiOcjaiy5QR5QGhYhB1unJGlmPN4zEdqQN8YPLGFIg1xPZni-9sG4DdURr5OFs2QsXu9GNbfiNCLIGZSOcFDar7Ruwo7ZYcDbGj_gUrb_yFC3KS9-LLhblJboa3Z6lvssRRtL1lq2HM5stERsqsoE28nAUoOAhCIIgSVgcJ1XEWF4fhH79qIcvN4oL44LZ3RAR8_0gRb6tpDYKSDtmGC4JsUE_f5uQ5uHz4CEOipjl9e7oYOGHR_ArXMXolq8FaT4SwRqr4nxEMzTrMeEK3L8dITwSympcp1FGcYwDtFop0EYqWCmzFcbt1xO7r-FVZ9whZablLHCIwzjGwQRvNGET0iIIKqQI13b1l9ukct3wivqAu-jvf-1-4llknYF2UmzdgH7UDDrryHvBH4aGjUMjevvTkZ5RLyqT0IvKcI8kniIheZ4UiFTSSfo6JIYN2nCzHJPcMjmwruSYSYYLtAazGnCvNKxt8rPauEz3lXy5MI2zG8JavaZkYJ3YbVvme97pKd4r0azsxBWTdiv8Gssis0YUxXue2ZRnVdQsfYXhUGsyqTOZKKpZOjGZ_NDEU4aTrAp_8lBwdBwYDglvcih4462e4IxmVTjRQzHVQx4HOD7AM1wkfJLfQLlszWG8V1x8XUBLBAN23U281oFUz-upvLkS5hk9neI4bbvuhlnFeBx7ayWxKsDxTknWHQZTJdEIgvwlJfG2a3j9uFXTOTf6OUW9TjHf6_uXPYUMLH5anU8XrJKyeTc1RyGBIJ-oOZyquWJBlv5Xzb-q5jjI0oma8UTNVZWHOLFsiZDisZW9RvbsqTuXkBSDLIvyci7bigt3gfpDindebOaE65TsbBAv0AG9p5mDBRlNQULGcvhhkBuuubm9uvy8uvjr7uLzYnX1-cvF5RHMwauXr0IVT1BRnNT0J1H9AojkCESexOEPg6DDr1-AkR7BIGFFfxjGl15MIIy9n2ADzatQZEcoaEbId-P4_ITgU64Tb1B-Ad031rbLac94DXndmR3YN966YR5lhEy27lHWkkY0wc9Ie3XrrvT3SEvBLlpu3F1p_h7JRUVogidwj5KLNMsL9iLcobVsmnOiOT1vJP069Sy7M9_eSb-DMJAX7FAYfJQEpAVm6YvCqF5ci98IvecCtrgnwjzp20oz64gyg7M8Jn1yJ-BJ9IzTLGZ18NJ-_CtPF-XlnXwLzH_lqaWxpXca5CT2xECjkB2m3UeU7aH-ANNJMN_V3Al6p3FNwk0SV0GYVQe4ljd26vZ64YcRvaFlRiTIwqyaWGZ8DD6ixSvA_-buR6YrOza9E_CIFhPgyTFwmicHwBtYE_o43pTsRbhqu72l_n_CpwcvrBb-JAImjJEMRy_tOOuCS62hrZrHj9B02xU5bPdwPtyNup7z4W2gHG1qjrRhQ08v-P_2sOqM8qL59OKo-6a4gdX2-uhgEoOa9I1ZMWjAwAsTowv7h-foKZ65FLpvQY3pwtj6u-HPuKfsWFkVTg_JWgWMRK570_VmqoXF_pLyQqxdAE-PgH0EwkDdAlH0_rpzz8qTPP5g6D54f2_UkMC_MOgTcbn9kyEHkcHY_P8L1NPmrbGWp_W7X-_9lCthVK_5Br5APRfm5mjhN_XoLZe8gVt3czwu33-kybzxPWYUhRWenHTwNF2Ko5Sx4nu4BjNyN5x3igg9vAT9LviRMZa3d3MpDDy8T_YRFzljbOoqJ6lUHtKgzuihKDdEaShv76ZAb6Eloz0Op8z9afNtIadZmNUZPYQ8vQRP4yjDaX5iE46GPjiBB6C9ga3tv0OaGhc54HRy7zC97k5TmtbhxEyWyi72bkseIn0fjDRkdThZ_2h6aE9jGgBMlTnUObmyHUHhtD6fF-pd7LgiUQAwkWN6rs-qMAqmYWBAvBdnMz57T9E_EfddXAoL8iiYuJRokmthFhYhUERpuBregA6SkVIp8mi9fjSn90Rtg0O5dY-TNjxHG8nZu4gR4iwIYbo3kyMxcAQEbXU_D--ckzi8GmhJ0_wB1Mgx_Toh0_GVmJTN6CUnJzWm-OaZ03yUHsFKWDVa-Va_20KcezKEkfJ1TN9aoyll1dSwJ_kNpiHO0gqNryFvyjtMiyydHAB2jxnbRxkS5BFarRpe0ZU2RJnVjzzLUN1vH8KGr67T0XEPNFGM7eeefXG0aiFkgAbGb6_4HLK94sfyCi8qkXsLt196QaoGkJEIBntGVLYtEcyVWFVSGWDPzx4KN-vROW6njgVTiPWO8PBaaGXrNSB_49oAED_wVsV_C0F_vhD0YGWEtClnifZVCqjVw7zRAH_h76C8d6yCK-_uyvlHdPfxAi2vP326_vPq8yVaXn26uEV31675_PdL9OXi5vrL3a727OZUFVvuXvCerWTbDVCAXGkXMETMjuTrNDAtwCBBXGXppPzy5yjo-x9fhrdajOQ8wdGJetNdGyVmWlzSSLFGxOW2XnQ-tGlDLEQuDKK7RvtrDCMuJmRjO0IV8qIFou6TIC9aus-5F82R7-G8Ql42RzhJ3LSoRMGOJlJgeiUOWrxscVQw_oGdRayICvIBzsIsTMM8D5L0w_0ZDTMcYRamOasjoGEekBpXQZrGSR7GBf7Az7aVZEGaxGE6Y1HMCKOsKCAAkoReHEBLeDOzrmIm1fqDK788K3CGgw8NqaDR2wp5deb8iStRi4OGa6P30ww3DZwN3srVaYJGUqChqJRKBogYV3XkDLqSG7DdTx7e_w1VrOhDr5qzny9Tdar6vwAAAP__la_Ywg">