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

    <tr>
        <th>Summary</th>
        <td>
            Opt -instcombine crashed. llvm::Instruction* llvm::InstCombinerImpl::FoldShiftByConstant(llvm::Value*, llvm::Constant*, llvm::BinaryOperator&): Assertion `!Op1C->uge(TypeBits) && "Shift over the type width should have been removed already"' failed.
        </td>
    </tr>

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

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

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

<pre>
    Test case:
https://gcc.godbolt.org/z/8M1aE6br6

It is a slightly mutated version of [this test case](https://github.com/llvm/llvm-project/blob/main/llvm/test/CodeGen/RISCV/rvv/vsrl-sdnode.ll#L239) in official repository. The only difference is that I changed the constant from 6 to some larger number, for example, 16 here, and it crashed. 

This case:
```
define <vscale x 4 x i16> @vsrl_vx_nxv4i16_0(<vscale x 4 x i16> %va) {
  %head = insertelement <vscale x 4 x i16> poison, i16 16, i32 0
  %splat = shufflevector <vscale x 4 x i16> %head,
   <vscale x 4 x i16> poison,
   <vscale x 4 x i32> zeroinitializer
  %vc = lshr <vscale x 4 x i16> %va, %splat
  ret <vscale x 4 x i16> %vc
}
```

Error message:
```
opt: /home/spica/GitRepo/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp:755: llvm::Instruction* llvm::InstCombinerImpl::FoldShiftByConstant(llvm::Value*, llvm::Constant*, llvm::BinaryOperator&): Assertion `!Op1C->uge(TypeBits) && "Shift over the type width should have been removed already"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt test.ll -instcombine
 #0 0x00007f212ac99ad4 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00007f212ac96b14 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f212a69b0c0 (/lib/x86_64-linux-gnu/libc.so.6+0x430c0)
 #3 0x00007f212a69b03b raise /build/glibc-sMfBJT/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f212a67a859 abort /build/glibc-sMfBJT/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f212a67a729 get_sysdep_segment_value /build/glibc-sMfBJT/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f212a67a729 _nl_load_domain /build/glibc-sMfBJT/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f212a68c006 (/lib/x86_64-linux-gnu/libc.so.6+0x34006)
 #8 0x00007f212c29e101 llvm::InstCombinerImpl::FoldShiftByConstant(llvm::Value*, llvm::Constant*, llvm::BinaryOperator&) (/usr/local/bin/../lib/libLLVMInstCombine.so.15git+0x141101)
 #9 0x00007f212c29e254 llvm::InstCombinerImpl::commonShiftTransforms(llvm::BinaryOperator&) (/usr/local/bin/../lib/libLLVMInstCombine.so.15git+0x141254)
#10 0x00007f212c29f492 llvm::InstCombinerImpl::visitLShr(llvm::BinaryOperator&) (/usr/local/bin/../lib/libLLVMInstCombine.so.15git+0x142492)
#11 0x00007f212c1ab1a4 llvm::InstCombinerImpl::run() (/usr/local/bin/../lib/libLLVMInstCombine.so.15git+0x4e1a4)
#12 0x00007f212c1ad148 combineInstructionsOverFunction(llvm::Function&, llvm::InstructionWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) InstructionCombining.cpp:0:0
#13 0x00007f212c1ada81 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMInstCombine.so.15git+0x50a81)
#14 0x00007f212da312b6 llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMPasses.so.15git+0xa52b6)
#15 0x00007f212b05ed34 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMCore.so.15git+0x2dbd34)
#16 0x00007f212da2b1f6 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>&) (/usr/local/bin/../lib/libLLVMPasses.so.15git+0x9f1f6)
#17 0x00007f212b05d866 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/../lib/libLLVMCore.so.15git+0x2da866)
#18 0x00007f212da33876 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/../lib/libLLVMPasses.so.15git+0xa7876)
#19 0x00007f212b05b901 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/../lib/libLLVMCore.so.15git+0x2d8901)
#20 0x000055f9517d0dec llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) (/usr/local/bin/opt+0x33dec)
#21 0x000055f9517c0c73 main (/usr/local/bin/opt+0x23c73)
#22 0x00007f212a67c0b3 __libc_start_main /build/glibc-sMfBJT/glibc-2.31/csu/../csu/libc-start.c:342:3
#23 0x000055f9517c16fe _start (/usr/local/bin/opt+0x246fe)
Aborted (core dumped)
```

cc @regehr 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWVtzqzgS_jXOiyou7oYHPzhOMpPdpHIqcZ19dAkQRnsEYiXhjc-v327hG8Q-SWYyp2ZqNuWAgVZfvv7UauRU5pvpgmlDMqrZyJ-NnOuRMyuNaTReebfwWWXZeCXzVAozlmoFd77Df_zg0psoVVE3pDveGcI1oUQLviqN2JCqNdSwnKyZ0lzWRBZkFF6ZEqTM3mx4PfLigU1uyjYdZ7KCCyHWu9Nlo-S_WWbgMhUyhVNFeX2QQaVwmsuc_cLw_tPd8_wrnNV6Dce1VuJS5zU8Hgsx8vx7z09GXkI4ulbwjFNBFGuk5kaqzZgsSkZkDYHkvCiYYnXGMEJTUkPuSFbSegXRGZDKZK0NrQ0plKxIRIwkWlaMCKpWTJG6rVKmRt6cFFIR9kKrRjC8dCNSgmL8SuuccMBEUV2yfEyOkV0gZL0kjSJn-7GXOSt4zcjIn691RgUjLySAf-5GI_-GjAIHY1-uX5b1yzqAu0sHQD8n7YVrirCMJleddoL3SkZzMHANaGmmDBOsYhDwGSWN5FrWGBfcgDDtN98jzpFG3QhqrEpdtkUh2BpyC_ic9wt9AE07HW8aPy_oeyj4nSnJa24g8Ry-H_m2zqxjQpc_8gdxmu9D2Q1X7CwsVvM2g5Prk6nsjjdKARIV05quzmZdNgYegdLbEsgGJ93wDFy6_YWbJ-Dx62mzm0wcJ89C0VoDISsNF3dA4LmsUqBR_-q55IXR46xpwNYkDNGiVQNO-TMUVG1mOOI9fLDVoO6A7t3dWylyq_BqM99OGSDiYdRXKlqwP0NYD3cPooMHV7ymavPYMEWBOCMPaJagfzONFMWSg1h57mPjzi8B_xaw9OLFpmFX3GjLcRwTwcmzbhEJtcrOaANC5L88NyWwU7YiJyVdM5IyVkOCK5DLCRUKCLmBwSNvQgrKBUzcLjVf7m9mzzdEt2kFk5qStF3Z0qIM1oYPlzuudcswTV2ZqDPR5qyrPFgvSEqzb0bRjG3NPxu4QfK2avbcceBR8kXJlaIVgbLU4vRFJwjQyNZjKIrkEma3ybY86PgMhdIhzosDf5PCcz2aJQnNA_JF8dpYQwu0_MxXNRW_gn8CS128ljy3CUtI92jHIcf-73W7A91R6gZkqIxj8t9Q5PUURUnqZA7BMrfj-0scLaPgUvC6fblc1W33IBtrOQYSXDkvgQ9DkEJ7nf4rnX5KFOWa4axLWy5yTCCqudQPxdU_FvtLb-y7OCWty_BlPMarjc5Zg4lsa_7S3VhbP8AnXKhQ9TiDwEIXDu7Bk6DvyYTGYUJoioR6rycm73Cwo6yRGI1MDkbCoZEJgL5iZtn5vdRshaxZrnGavtcu5A7jF5LmlV5ltDMdOjhT44Pt6JTtZS2WOHCZS1zqf5_JZIKM8YODzUnfZpw5TvQxyvgBDOlRJj7WmXkJcx33z1AXt3G1WllkMkvK1LZPlppdwHC8v__6cOQlxuqGUKNsvG7gQjy9gJNhwF4YvBkwlJhK1jbk42Uo_kkxgIv7GLAGOYMYiiDx3oxhzaFRvH8u1U_z2wO3en73imfm0tSlb2Ov2tr680luBQyM9rzyBl7lbhCT7aJy1DDoR1hsoRBuu4cjDA83oz6xj0b_S6pvgmPDP5CZzZ6YbgWu74NpAW0BrIg4eE6zkr0aucBu3dzzVEEG7-pCnpHYM_akzLWsgAKQ-4Vir208gv2Kf6foxROrqPp2Ax2CYeqV5BVk5NutYv9p4cVj684gIFjOC2g6ntuq2ntsRdoa1x2GrYLpD7mXstkLJuQI0C65vF69Xl4xqf4wqTQ-U9e-UK2PmfaOvM5gjdxorh9oDf2ugu75xCD_5jNnU-hAAD3a9pbYnAKP0-jIx5wZ6PC2wEOID_AeKU57-oqzx8gMMsigVYVmskOA6d-GC37-JIBjjEz3saYhQNnDutdppE7Icv-4cFl8f-TaXx2luVQDPnp5Chj0QIr6hPRSt_gMQv5h4P4NmZ0UkJNe0iYDZudxdJw0SFIr2ELuXEGls5w22CucDLQb8KEwt0M-jZgUQujFGA8qpR9PPkbMXVDzdyLzWcw6IHOOVz8Z7pPVcgJw9vBOBpxKk947xbkJfQrlvxQ6p8gYJ05v2fZ2vXsYFknoTnInZ9mRbxAC4vOFN0zYza2jcJ6Ngn7niRWnmHim-XuA1tHqmb3RPNqG-5WUlOKxNU1rbrk4oeR3PT4TzkwpusG7x2k5yA4L90lxC6FoV7x-JS8bszTgWHfVufdPXuc_kvrKFC84Uzu5FJ-8-_wjEuGeqH0x94EGPZ64fZ5kTjbxyXZX4S1tng_CPW2D3SZQl_pkucTdgSW8lCuz_MiGRabb3QTovnayqMduXfiBh8eDeX8QjBsVjHSG3xNOAOL7cGa4HwTvCjAugwlntw1Zfoj21P50luGvCoqtWKnIBZu6UZhMgsQNvYt86ueJn9ALw41gU3jh6e0qHn7h-P8u8vld5ItWielv3yYOoySKL8ppmDhJANx0Jr6XOLFPg8gPnYB6XpxAz-1cCJoyoaej8GoUXl_wqed4nhM7keN6YeiO0yRMkjhmBYtSIFkKOYd3Vi7GaBh_D7xQU-tD2q40PMQXcn14CEUDX0PZTj9tTSnV9FdqdFsz-2vFhfV5ah3-H03SsPE">