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

    <tr>
        <th>Summary</th>
        <td>
            [LoongArch] Assertion failure `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            crash,
            backend:loongarch
      </td>
    </tr>

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

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

<pre>
    ### Reproduce case

```llvm
;; The `const` is a negative integer.
define i32 @pat9(i32 %a) {
  %and = and i32 %a, 65535       ; 0x0000ffff
  %or = or i32 %and, -2110521344 ; 0x82340000
  ret i32 %or
}
```

### Run

```sh
llc --mtriple=loongarch32 --mattr=+32s,+d -o - test.ll
```

### Assertion failure and backtrace

```
llc: llvm/include/llvm/ADT/APInt.h:128: llvm::APInt::APInt(unsigned int, uint64_t, bool, bool): Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"' failed.

#4  0x00007fffefa27b11 in llvm::APInt::APInt (this=0x7fffffff9b98, numBits=32, val=18446744073709519412, isSigned=false, implicitTrunc=false)
    at /home/hev/git/llvm/llvm/include/llvm/ADT/APInt.h:127
#5  0x00007ffff10b4e84 in llvm::SelectionDAG::getConstant (this=0x555555684f50, Val=18446744073709519412, DL=..., VT=..., isT=false, isO=false)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1660
#6 0x00007ffff5dc31ae in performORCombine (N=0x5555556c2068, DAG=..., DCI=..., Subtarget=...) at /home/hev/git/llvm/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp:4413
#7 0x00007ffff5dc1550 in llvm::LoongArchTargetLowering::PerformDAGCombine (this=0x7fffe7d4e328, N=0x5555556c2068, DCI=...)
    at /home/hev/git/llvm/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp:5301
#8 0x00007ffff0d0a34b in (anonymous namespace)::DAGCombiner::combine (this=0x7fffffffacd0, N=0x5555556c2068)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:2048
#9 0x00007ffff0d098be in (anonymous namespace)::DAGCombiner::Run (this=0x7fffffffacd0, AtLevel=llvm::AfterLegalizeDAG)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1802
#10 0x00007ffff0d0915b in llvm::SelectionDAG::Combine (this=0x555555684f50, Level=llvm::AfterLegalizeDAG, BatchAA=0x555555695bf0, OptLevel=llvm::CodeGenOptLevel::Default)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:29578
#11 0x00007ffff1154ad4 in llvm::SelectionDAGISel::CodeGenAndEmitDAG (this=0x555555695ba0) at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1094
#12 0x00007ffff115360f in llvm::SelectionDAGISel::SelectBasicBlock (this=0x555555695ba0, Begin=..., End=..., HadTailCall=@0x7fffffffbc8f: false)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:873
#13 0x00007ffff11531d6 in llvm::SelectionDAGISel::SelectAllBasicBlocks (this=0x555555695ba0, Fn=...)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1898
#14 0x00007ffff11502e2 in llvm::SelectionDAGISel::runOnMachineFunction (this=0x555555695ba0, mf=...)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:611
#15 0x00007ffff5d9ca45 in llvm::LoongArchDAGToDAGISel::runOnMachineFunction (this=0x555555695ba0, MF=...)
    at /home/hev/git/llvm/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h:34
#16 0x00007ffff114f0c0 in llvm::SelectionDAGISelLegacy::runOnMachineFunction (this=0x55555568ab10, MF=...)
    at /home/hev/git/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:372
...
```

### LLVM version

```
LLVM version 21.0.0git ((https://github.com/llvm/llvm-project b7f5950bb3b97eac979925a3bbf015530c26962e)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8mN9v6ygWx_8a8oIawQH84yEPTjzpVuq9Hd1m7z6uMMYxOwRHNs7O3b9-hZ3USdRm2jvTsazEgMHn8z2Hg7HsOrN1Wi-QWCKAWptatwgAiXwme1837WKsmxVN-WOBgI0n_qb3bVP2SmMlO41IFs6IjKe1h10osyViS7ypNUYRUY3rPIoINh2W2Omt9OagsXFeb3U7RyQrdWWcxoYBRpzspU8RJEMJhESQYhQvEcnwUHYlRizH4X-6ZYUjIZjA4xEeTn4nhJCqqqpTz6YdOjbtSz9Xhp53QCkRQBnnx54JMB56Dz1b7U8dmjbAxfk58lGBSZ_eXYnS1Yhk1ip8d7fzrdlbjVhum8ZtZatqBqFeet8iliNYMugQrBAsS3zX4Dvsdefn1t56ZNZ1uvWmcbiSxvatHsQppPrNt1Jd-2g0BrEMD96CtXHK9qVGsD5WZPkm_P764Py8RiyjkLzczjLEsqHp_BKS3g3xVAa3BlF743zE_z1cF01jp_80jDWZfIqaYTTT_fPB-a8IkqXx_zKlr0O_g7RDEECEIMII4Lu0vQ7h5BqPpcNf7wrj8YsJh9AcYhniQRFdzl8k4_gYGXFVVbqSEBeUYuNu0GEEia9Nh1hOfg_dwpEWaRJsc_1uaXxoY3CyleU04TyKOScxi0kqaMrp0Gq658FExPJK2k4Pdbu9Ncr4Tds7NTWkQ_BhLMPz13WzCw6q9QHBemv85Kz3OzEeFRDnClSUFFwn_FKBZ221Ct7Js_uxZqv9KkxjeSWHGI4o4ZUgAeb7Tfz8EbF8Pp8Pd26ma9NtLhTpnn5aB2sKBOtVU-p77RCsL1Aui3O13wdhonFGAYvOhRGlYlSGNIX3uq2advf0bdXsipCoECRfz_EVkGiIhkGvE1W-epgKz33hZbvV_lSVfoxoM3aG9WNIHFmr6vPrh2dtH5v_6ta47RGLc8pGrPgKiwpBLv39Ms74lNNIY-OvI32e3Z_hX8wHHZdcMxgUeEOXSYqf8ueH6QUjdKRPzulJSSTjRaBHkEjXuB-7pu-wkzvd7UOuHNITYtmE244V6g34cEhVkrfg_9r4PTPrSAqEJyNpekWaJoX-GdJvvbtJmflHfdBhnp_lzMrr9lFvpTX_04Opn81NEwIjNyXX4FQUf5TQXovl62T2HswVXkqv6iw7HyEVRTWM8LR_Rasj5NQ2eEFXsrf-b4iXVMTHgKH0YiWggsvyxkoQptkFQebKX3bG59n9azKmopDkw3nuXZk7WHIKA5LyIw1c0bCIVO-hGWuXsjNqaRv12w2YFV7qrXFTWv_FlVPhH7LcSGNX0gaHI06muVOopArvPZ--qJ1Jk8THBYCya2VoGb1fmczaSZzupjpr96fS_Iedn6SnUOZXiAQ0vAex7d2T-yJVbZxe906N76Q3EHfV34oY0eM6RsXlMp4qycUby3ie3W-aP4f5Zf3JC_bJxuHllJ3mcHTpRl4RRW67MWRj9eNjlIks6F9B-VFnsjgsWeF5N3Zzj4_fv-CDbjvTXO8kEcnOWzHQOZmTrRneyREktff7LkgB69Huui_mqtldmn-3b5v_aOVxEVciFaQoWJHGWqo0TlMQkhVFRagQjCiI0giO-erFilm5YGXKUjnTCxrzhPFYMJjVC0Z0XFYiYaArSFOAQlFOhZQ8EVGa8JlZAAFBBMQUiGAw51CVnKs4FiJisdaIE72Txs6DnfOm3c5M1_V6EYZJ2MzKQtvu-MlCtbKrh13eCgGE3a4OyTh72Vkfv2a0iwG66Lcd4sSaznfT8N54O3wDmeJU5K9sqD9zlxqRWd_axcecF7Z8QZoOwfqozmEB_w8AAP__NEA-fA">