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

    <tr>
        <th>Summary</th>
        <td>
            Clang/llc llvm IR to x86-64 backend failed: Cannot select: t17: ch,glue = X86ISD::DYN_ALLOCA t16.....
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            new issue
      </td>
    </tr>

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

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

<pre>
    I got an llvm IR as attached forward.ll which is translated from .mlir , and I want to compile it to Windows11 X86-64 MSVC(Visual Studio 2022) to run.

I tried three ways: clang 16.0.5(in Visual Studio), newest clang18 , and newest llc, but all failed with the same error imformation:

```
LLVM ERROR: Cannot select: t17: ch,glue = X86ISD::DYN_ALLOCA t16, Constant:i32<800>
  t6: i32 = Constant<800>
In function: forward
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc forward_opt.ll --mtriple=i686-pc-windows-msvc -O2 -mattr=+64bit-mode --filetype=obj -o forward.o
1.      Running pass 'Function Pass Manager' on module 'forward_opt.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@forward'
 #0 0x00000000021200f5 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/lib/Support/Unix/Signals.inc:602:22
 #1 0x000000000211df4c llvm::sys::RunSignalHandlers() /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/lib/Support/Signals.cpp:104:20
 #2 0x000000000211e8bd SignalHandler(int) /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/lib/Support/Unix/Signals.inc:403:31
 #3 0x00007fd567557980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #4 0x00007fd565fa9e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #5 0x00007fd565fab7f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #6 0x00000000006b2ed9 (/home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/build/bin/llc+0x6b2ed9)
 #7 0x0000000001f0ccd5 llvm::SDNode::getOperand(unsigned int) const /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:927:5
 #8 0x0000000001f0ccd5 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3885:71
 #9 0x0000000001f0eb41 llvm::SmallVectorTemplateCommon<llvm::SDNode*, void>::end() /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/include/llvm/ADT/SmallVector.h:272:35
#10 0x0000000001f0eb41 llvm::SmallVector<llvm::SDNode*, 3u>::~SmallVector() /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/include/llvm/ADT/SmallVector.h:1206:5
#11 0x0000000001f0eb41 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/jhlou/LLVM17/llvm-project-4553dc46a05ec6f1e2aebcde1ce185772a26780b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3015:27
#12 0x0000000000c75d9b llvm::TrackingMDRef::untrack() /home/jhlou/LLVM17/llvm-project-
........
```

The clang compiling script is (Only if I add `-target-feature +64bit-mode`, the error will occur):
```
clang -cc1 -triple i686-pc-windows-msvc  -target-cpu x86-64  -S \
 -disable-free -clear-ast-before-backend -disable-llvm-verifier \
 -discard-value-names -main-file-name forward_opt.ll \
 -mrelocation-model static -mframe-pointer=all -fmath-errno\
 -ffp-contract=on -fno-rounding-math -mconstructor-aliases \
 -mllvm -treat-scalable-fixed-error-as-warning -v \
 -ferror-limit 19 -fmessage-length=120 -fno-use-cxa-atexit \
 -fms-extensions -fms-compatibility  \
 -fdelayed-template-parsing -fcolor-diagnostics \
 -faddrsig -target-feature +64bit-mode\
 -o "forward.asm" \
 -x ir forward.ll
```

The llc script is (Only if I add `-mattr=+64bit-mode`, the error will occur):
```
llc --mtriple=i686-pc-windows-msvc ^
  -O2 -mattr=+64bit-mode ^
 forward.ll ^
  -o forward.s
```

If I did not add the `-target-feature +64bit-mode`  to clang cmd or `-mattr=+64bit-mode` to llc cmd, the process works because forward.ll is compiled to x86(32bit) asm and can generate .exe in x86 windows11, but I want a x86-64 with 64 bit .exe in windows11, because I want to link a 64bit .dll in windows. Hope for your help! Thanks!
[forward.ll.txt](https://github.com/llvm/llvm-project/files/12568294/forward.ll.txt)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWM1yGzcSfhro0gXWDIbzw4MONGk52rVjl-T1JntRYYAeEhEGYAEYkbrss28Bw1-tYiepxBVWSjEwQOP7uhuN7ubeq5VBvCblG1Iur_gQ1tZde1z1aMI_P755e9Va-Xx9CysbgBvQ-qmH2zvgHngIXKxRQmfdljs50Rq2ayXWoDwEx43XPMTPzvYw6bVyQNgCuJFwC1tuAgQLwvYbpRFUGv1bGWm3Ps_hp6ai1RQ-3H9ZENZ8UX7gGu7DIJUFljFG2CxucIOZkGxJsvn49xaCUyghrB0ibPmzJ8UchOZmBXk1ySYlYY0ycCGQsFkEZnCLPoyL8-aIdT-ttYgz7RCAaw0dVxolbFVYQ1gjeN4joHPWgeo763oelDWkmJ-jI1W2_y8N37__8gHe3t19vIsgF9wYG8CjRhHiRMjrBH5N2GKlBwRSLKNebu-XUW4xX_7848P8_fuPi7i2iugW1vjATdyuCkaKRZNlpHg7HgcQqihQFSyJOi2-WHZroBuM2MM_GHf89un92_n9W_BD26sAHNphBQ431iXrrUPYRH0TdkPYzUqF9dBOhO0Ju4lus_8f3Tj7S6TIbpT3A3rCbpKilRF6kJjUKRz3a2i5eAyOC9zb-D5w8Qhy6DdHxWYTSL9Pzq4c74G71RBdN9lda3HA_2A3IToopX1waqORFEtVNRXdCLodvY72_kkA_ciA9jwER4olYW-qaasC7a1EoLRTGsPzJm627S9A7dH37Qgn38O5G4xRZgUb7j0QVt_sNQqf4sQHbvgKHWE1WAO9lYPGuOoSK2H1njf7Fak_NRUs5-8oKd4u5-_g1vjghvGc--RG0YbjIQeTxm1kmh2syuq9bxBWZJDtssOP5SzLujLd99HbfLpLpJh_csqEZIrP0TaENadFjm8frA8OeU9YckllQryrhN2sbY-E3fyy1nYg7CZ6f16_cAo6LctCimnFsxJF1eXIOLZCYi4wb8q6ZpxVdZO1Zz6l4uB-2EQ3JOzmX0bt4oRaGa79RBlBinmVMVLMGTuxzS_Z5rKbitfY3g1mFPUDN1Kj84Q135fQgYnYRLfPs2lkkp2YsBdMsGklXGBOMe_vYIZpVpBiXuQn8MUefN3JsqrLsp41GTw8OPTBOnxwAZK-9-J3TfVQTalWZtjRlRnGD5sY7bmceDvJCHuT7XI2a7IY1Y_HTM-PKTs-w6YGx5WP9-6mHZSWMWRp1Qq6-PKP7X_a45BNWFSPT0QIu5lM4ujZS9zE0DWMPP2zf0pozBCHSfQkUi5zUszPrFW-QNLWXQ68tYnpb0MS5KiNtCsd0rw4pDp3iaxqGcrZXpF_tvkPiFtlkhSRLDAeeWGC-hxT3mVCyPPwcr_80Uoc_73C8HGDjhtJWDOYlKLIQyQR8dn6Cx15_wydJhZW4juM7I5BdTl_F9H6yZoU8xmL73R5Ytp8g-mZlNt71OPs-Pz_jGH8fBFV97ph8-9xhV-n-2IYce8DUtE0JSnm9dmlnr1QALbT_FwBPdf6C4pg3WfsNzFLXNi-j_nG4lXSC3iySsYMJX3B5Bd_rS7-zwvmy89RByfoyfasju9KsTd-fFay38z919kWw5Hrf883_E1I5yyrTh4fSeffIP2qx4-z0d321v8Vl1_AMQSINXdjAHj55Tu9b7_7cmR5mdzkpKuL5zoTdSln7ZmuYk71qMzqw_IOu3FqMDEJfvyd5h9PnOx_rxYg49_PMd9OFdJYjMUM0wunNiEWcoQ1H41-BtXBLXApgVQZDdytMNAOeRhcfELP0uQonS1SFj_WQ1ulNVghBhffg-L1WmgEQIXIgY4JOryansPhbLEZYDcWiUDvgZSLffyhUnneaqRdLAGp0Mgd5T7QFjvrkMaiAo08rUtae0KnOoXuhSDBnaRPXA9IDe_Rx9JAmVQHpImX5cXZ7t6htiKVgUkvGnzgQQmgfed4j3RjlQkYy4xYUNKu52FN0Tljz6R03YYKmxwgxKrDAO2Mpc4ORiqzipXKGmif7kTM_a2jXCvu0V9gSWU7jXl5oF5wPSpI7VDSZCTKPd1yl6oL-nS-tRu_axUrvnwWcaL3fIVUo1mFNSmWOctGVINHKnac8oA7FS6k9J7iLqDxyho_jqO38aBapVV4hovVEjV_RknD_nmgG-58wtYJq62jUvGVsT4occGz41I6r1bwdQ89bbBAGDvUcNz3hLFzeTtQ7qy98Y1LFMvNb1ycVwvLP3Zj4mnfrGZJeSz-v1LYnladtXLOt57qXP8VHdxGplJJMDYkxpHRbwgXkBpBYwTqJVj3VVXFxZG76OVBaxtnBXoPW-sePbQo-ODxnIvyh0aTjNt3TUVYU7BWpUeD-z41IAQ3sEKDjgeECe4QlIlrYXtoSx06QPv-FT9EoNQGqqbQqnDceLlpj-nU-NLKPAKHRA0mMoI87pnAD3aTCMCzHRysUW8Iy-HzmptHT9g-1SLlmxPHSdgFUi4Ja353GyZGs1jK5KysGjabxqlLuYc8_kpeF3JWzPgVXufVbFqURV6yq_V1x2fTCusa62mbYZs1M5m3rC5LLGZVzaordc0yVmSzPMuLYpazySwvy3ZWVm0jZnVZl2SaYc-VnkRwE-tWV6k7dF2Vzay50rxF7VOXkrHkKoQxwhaEMYNbSEvjTLm8cteJXjusPJlmWvngTzKDChqvF6OAWK0cG5qjW0RjHh6IscX3Z7Tm0gt8NTh9_cdbZEkP_wsAAP__fuyctg">