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

    <tr>
        <th>Summary</th>
        <td>
            A/F: `Elt->getBitWidth( ) == EltVT.getSizeInBits() && "APInt size does not match type size!"'
        </td>
    </tr>

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

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

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

<pre>
    Two of our internal tests recently hit an assertion failure when compiling which I bisected back to commit 54eeadcf442df91aed0fb7244fe7885cdf1b1f3d. I was able to reduce the failing code to the following c++ sample:
```c++
template <typename a, typename> a b(a c, int) { return c; }                                                                                                                                                                                         typedef char d;
typedef d __attribute__((ext_vector_type(2))) e;                                                                                                                                                                                                    
typedef char __attribute__((ext_vector_type(2))) f;                                                                       
#define g(h, i) (b<e, d>(h, 2) % 2)                                                                                                                                                                                                                 
e j;                                                                                                                      
void k() {                                                                                                                
  e l{}, m = __builtin_shufflevector(l, j, 3, 1), n = m.yx, o g(n, );
  volatile f p(o); 
}
```
To reproduce the assertion failure, compile the above code with optimizations enabled (-O2):
```
$ ~/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang -c -O2 test.cpp
clang: /home/dyung/src/upstream/llvm_clean_git/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1593: llvm::SDValue llvm::SelectionDAG::getConstant(const llvm::ConstantInt&, const llvm::SDLoc&, llvm::EVT, bool, bool): Assertion `Elt->getBitWidth(
) == EltVT.getSizeInBits() && "APInt size does not match type size!"' 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: /home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang -c -O2 test.cpp
1.      <eof> parser at end of file                
2.      Code generation         
3.      Running pass 'Function Pass Manager' on module 'test.cpp'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@_Z1kv'
 #0 0x000056036638b464 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00005603663891fc llvm::sys::CleanupOnSignal(unsigned long) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x3eff1fc)
 #2 0x00005603662c4a78 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f50242b5420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f5023d8200b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f5023d61859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007f5023d61729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #7 0x00007f5023d61729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #8 0x00007f5023d72fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #9 0x00005603675289a3 llvm::SelectionDAG::getConstant(llvm::ConstantInt const&, llvm::SDLoc const&, llvm::EVT, bool, bool) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x509e9a3)
#10 0x00005603673bc088 (anonymous namespace)::DAGCombiner::visitSCALAR_TO_VECTOR(llvm::SDNode*) DAGCombiner.cpp:0:0
#11 0x000056036743459e (anonymous namespace)::DAGCombiner::visit(llvm::SDNode*) DAGCombiner.cpp:0:0
#12 0x0000560367436c35 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#13 0x00005603674383a0 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x4fae3a0)
#14 0x0000560367557edd llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x50cdedd)
#15 0x000056036755ba10 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x50d1a10)
#16 0x000056036755dbbd llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#17 0x0000560364dbafd0 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#18 0x000056036558acbe llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#19 0x0000560365ae42d5 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x365a2d5)
#20 0x0000560365ae4519 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x365a519)
#21 0x0000560365ae4d62 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x365ad62)
#22 0x0000560366761184 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAc
tion, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x42d7184)
#23 0x00005603676b824b clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x522e24b)
#24 0x00005603685caa55 clang::ParseAST(clang::Sema&, bool, bool) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x6140a55)
#25 0x00005603676b6c78 clang::CodeGenAction::ExecuteAction() (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x522cc78)
#26 0x0000560366f485a9 clang::FrontendAction::Execute() (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x4abe5a9)
#27 0x0000560366ecf4be clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x4a454be)
#28 0x000056036702e113 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x4ba4113)
#29 0x000056036384ca54 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x13c2a54)
#30 0x0000560363845b68 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#31 0x0000560366d3c229 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) con
st::'lambda'()>(long) Job.cpp:0:0
#32 0x00005603662c521a llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x3e3b21a)
#33 0x0000560366d3ca7f clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#34 0x0000560366d05f49 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x487bf49)
#35 0x0000560366d069cd clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-
linux/bin/clang+0x487c9cd)
#36 0x0000560366d0ffec clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/cl
ang+0x4885fec)
#37 0x000056036384ae93 clang_main(int, char**) (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x13c0e93)
#38 0x00007f5023d63083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#39 0x000056036384576e _start (/home/dyung/src/upstream/54eeadcf442df91aed0fb7244fe7885cdf1b1f3d-linux/bin/clang+0x13bb76e)
clang-16: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 54eeadcf442df91aed0fb7244fe7885cdf1b1f3d)
Target: x86_64-unknown-linux-gnu
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzlWtty2zgS_Rr5BWUV76Qe_EDL1oy3knXK8ma39oUFAqDEhCK1BOhLvn66AcoiaCmJZybK7qzLiUkARPfpPuhugMwb_nxx_9iQpiBN15KyVqKtaUWUkEqSVjBRq-qZrEtFaE2olKJVZVOTgpZV1wryuBY1Yc1mW1ZlvYLbkq3JDclLKZgSnOSUfSaqwSEbmCMMhKCcFUHg8WLmUsGdIo-9IChEnCQh44Wbu4XPpzDHI5WE5pXAx1vBOwZXa6EloyjWcN2l25qqah5168S7hF8i6WZbiYmfTpyriZNOIsf89v2mVQkYRJUgE3-unreiphtB6MSbk93dxL8mlOQTL6E49RwNNPFmZBJfgk6qawH8xL-E-yvyv_qDWLkoCFvTlnBA0xunb-Yky6hSbZl3SmQZmAJ-xZPKHsDDTZvhOGjxwCzmlwi0yF_gx7aDNs9bTVH8eaboiez5oExZC7ICSWtNSU1IL8mBxQIbwIfXu07PdIbm4q_2Y2wiyKefxjijwUNTcvJZ88HEhp-iBSGCVCAdghG6fgNh7QoYm3dlpco6k-uuKCphuAq6VjjoE_7n43-upuyc1PqxzfT5Ce8azbMaL7F_FxwIeWggcpYQnQuyhRGN6d2xFDSw4665vcdIvm2bl2D-KqGgIJNO-gF58yBMrH8s1Zo0W1Vuyi8Un5EEYjQkCI7sP7_Vy-5VwN8tmwD8AqtiIVuI44tuK1Ur6AYuvzclnUPW6cAmi7wEcyxYRSHdnDMCgnW2nLLt1gjTXaAJqLVYN5BEvAV_7qDpgPSqethkrBK0zlal6hvwTwlJZzEH3L8IFLcUFfgNQF-lv4xutWA_dcOZj0L1BGAGP11efaRVJ4Ytw1l0y0qoOVhSUcxrCcPLwfhd1w32RsY39ojl1buG9X371uuP99iQN021_4vOIemLw8E315U6h1gFOlyW6p8lV2tcQr3DZshDpCKM-ng_hUHL8ou4qWGo3K00lBvBHy_9ACoSCQMIb4QkdaPIhiqoRTAm646JBwwHjsSaaoJPjaAP767T5TWRXY71CeT6boUcbVqFxcVaqa1ETN4CfsFD6y6fAj8HjoI_50DpT2BYuC2l7ATot4ByiUO1wKqOGyazlsq1rodUS5km-lYvBibAJpxIqL9MMz4JC6NhJcUSqu1qIllbblWv8lJhUcW7Dbr9p0QaZ2ruPrTNqqUbQttVt4FKUX4n6__8Nef2GmEObAos27a0BaoRqiBKcKxvC4wpB-F4_cO43MhK1KLV8WU0yu9H3XV1jaXmFnwEYONFV-s1RT5gw3ta05VokWfQtIFQB1Lh7kVdL-7dGByZ719JRGB94sqAP-QGFlzbGQkv67efvtiJhvtJ4GT_dj8_4KWJ0VArOMR5cuAnjBw_ivwkD6IAvAZVrCbRPTJxWa6g4v8VWFeh3gkms4mnV6Dpkn2EcfS_l7nd0dwzt2CDGCCfZR9EMLp129vazAYSulrCJVC7apAfunr5wayBmt958kVRgJIYil5QeBYKjwU0Tsgc1-qdYJB72uexffotgDUGAqWCQvCwofxeRFyEjhd4eRh4DuTlFhjRtCKDSGPwm5j_lERZFBgM56u6Mx1btQYr8Klspo7G4oIVHAtJMBTj88RznJy0FHZiuCSxCuAYw2Aydr78cvMFCoXdrTf1XbR476DFdIp3z5KLLcayri6fTMOD1sZYV089he1PGrqYf_aahLYmkZuEM8zkGun3aaK4sYZ-SgtJUMiA2tFYSAxOgSyRGb0zKVYYkrIHnQO_Uy74FvFXDeUbuWLUiA4dzF3JXnZ8SHZWVxk-mPFmQ8v6j4mcxUgiP9jLTGyZsVfw6DuIw5AykaG_D49YlJkNyR-HXjKj_hvKhYOFgikRXpUEulA40ne4XDhVVADvCsD9YhgMbVbcjP2cOUmC-tC6qZ83TQcVBt0IudWJfGZQgJHmzQZmhyihGx5KWarlPH2X3mX3t9nH6_n97Z1ltuXV3yHl9MF28PzrOIJKWQE3DvwgnInfp9QfUMIbKRExWO5vVYKZuz-ghj9SI_Gp81Xmzg-I7NvewZ6oshmZpndCdhVWmqnd05fkt1tl7vuHT8bWoKACsFpsDexlHMaC8yPGuIEbC0ha82uofPW2IjnpqmMc1LRwhCMcOXWPOXWPw7SmVXVJZckuq4Z9lpaXX-qzffA5IUruAggLZTRCyfP8296CTcBt_Z6yNfB1B8hC-apvB3MKhbDComFGxlMfXlrxUL-A57TgzrdWONSsMOd982foDHPhHLv5DiuZDJUMw4SyfLjRHc2MlflAp4PKfNVyB-Y7rJeVUUMqgDjhQK_FB3x0t0d4s0YnKZJBbVB6SFnPGaMKAei3Ub3Xux_b5X3TqRGBwhYid4yIR94AUSVWlD2b6wG2m812z-3_ClygtoXL3s7EkesmAdkdSGGpBbH-EnZ-sCe-7dS206c---6rkq7qRqqSyet6pfOlOfbZD_kVlBbtUtCWrSEL6nO4YVk3GLrPlV8bdU9bKCu_MegdXB0aMoibCra1qztR2M07x6SjCXsjpKw_5dfrbE5g42H6Yc_zn05kWwWEnu-na-ljtn1sSyWynSMHD3FRUKgaMg6BVolvPOhf63P601UOHo-BDRZd7DIqyhMvyA9YCcv7brNb22YrfN_SWlb6oOQfdTniUbq877fEJ863nicAgoXRqo5gEkrDcIjxAx4UgcI2gqXY0J5jP2lfErmBA6paWMKRvyIWJwdWXGryhlnxT4J1SqS7_HJabzBQ0EJgVT9RESQhnQ0RLFrkDS7MVxBOq3xAcwG6WcpbpVEkYHaoOizz6zcX7Y3eDTNx2APH0Z50rQQ0CEF_C6BVVsWOJ1zYaQ3Th4Gyx_nQMPoa1is7mF3dqYDlNAC9LWBWXeYnAaMh5EXmZnhUY2XytG3pM6YRf65f-fbZJtXBek7sNmgYHJeeCJ_rMw_UH-KzD3oBX5hHCdl5a-7e69A13G1vaFV91K8CTVFzAKwmI2_LhyOb8NEJMAe14AH9LnQvaHdEnbXapLrXLGSdAPVpAKiC70WyokY99jQysntKzV1g1QZSzzgmHHTdvtFUDbSyGvfFQp-FB0k8y9jTk-uamxw3lZixS1RKG8kajA2Zaim-lOq7R9MBOFwjTTvoxyHpPqVo8oDpjWVlf7Iw8eKKbnJO8UT_xWKAtz80_1uTH3bL-Eg79Fw6PME4cHBteu66ekkLUT1bVv26B095eu_ngMSivT9mII0L8n_MIKlGG9ejJAlsyzlhEcyOWk6Hc_oqIe_MacX-0YM44FhR_5WhqVV7DbCdJIEkcQ7msJgWjuwVzRh_q73AGfK4saD3XSmPnp-_Ctgv_NjSEqmh30t9v317Ev14KxsbfsXWDExp2Toa2booBDuG62pwbVUnB8qSYz46oa1_eLQ0VtxbNwnBeJZ141GpQMWsr_F2xdAOnQ5V6cmLGwcUsjQevfqKfCfxSZbh2y0IrBDrsre8cGMSX43pV5zmUnfqefSrNz_w8P-9-HHtGMaRIEbw6ayS5yD1xSq659yNQFEi2hZTQ2p8SIp-S6E_uUUWms9dzOdT4qlU5msqFzIAvoqXgpw_4KcuUghSDur5oSQC1JZ4hO5GU2eqT4Pf9mXMdPWGj39fZJuTIYTWv9vs6s9181gP3nHaH3udiQs3iqJZ4LiOc8YvfD7zZ_RMlaoSF6jqAic79uUR-YEfHZ11bXXx-78mCpMocs_WF0Ux8yIROlHBnQCqoYDFBUXAUV64TiLOKti1VvJiEl5Owquz8sJzPM91vMSJwiCcTXmeR0Wee0WYcHfGw0ngCFg71RQFT5t2ddZeaB3ybiWhs4KEJPedVOoPN8RuftqpddNeaN6faWUvtKa_AacIZf4">