<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/109901>109901</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LoongArch] Assertion failure while compiling with rustc
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:loongarch
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
heiher
</td>
</tr>
</table>
<pre>
### Reproduce:
```bash
git clone --recursive https://github.com/rust-lang/rust
cd rust
./src/ci/docker/run.sh dist-loongarch64-linux
```
### Expected result:
Build successful.
### Unexpected result:
```
rustc: /checkout/src/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From *) [To = llvm::IntegerType, From = const llvm::Type]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
```
### Backtrace
```
#0 0x00007ffff10969fc in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff1042476 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff10287f3 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ffff102871b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x00007ffff1039e96 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#5 0x00007fffed9a4776 in llvm::LoongArchTargetLowering::shouldInsertFencesForAtomic(llvm::Instruction const*) const ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM.so.19.1-rust-1.83.0-nightly
#6 0x00007fffef76ab79 in (anonymous namespace)::AtomicExpandImpl::run(llvm::Function&, llvm::TargetMachine const*) [clone .warm] ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM.so.19.1-rust-1.83.0-nightly
#7 0x00007fffeecd5258 in (anonymous namespace)::AtomicExpandLegacy::runOnFunction(llvm::Function&) [clone .llvm.15884416701431989509] ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM.so.19.1-rust-1.83.0-nightly
#8 0x00007fffeecd1a0e in llvm::FPPassManager::runOnFunction(llvm::Function&) ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM.so.19.1-rust-1.83.0-nightly
#9 0x00007fffeecd0636 in llvm::FPPassManager::runOnModule(llvm::Module&) () from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM.so.19.1-rust-1.83.0-nightly
#10 0x00007fffef455850 in llvm::legacy::PassManagerImpl::run(llvm::Module&) ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libLLVM.so.19.1-rust-1.83.0-nightly
#11 0x00007ffff258d506 in LLVMRustWriteOutputFile () from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-a244707a960eef48.so
#12 0x00007ffff250ba0b in rustc_codegen_llvm::back::write::write_output_file ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-a244707a960eef48.so
#13 0x00007ffff2511133 in _RNvNtNtCs5C9g8sXSnH4_18rustc_codegen_llvm4back5write7codegen.llvm.9587499920141260261 ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-a244707a960eef48.so
#14 0x00007ffff243d247 in rustc_codegen_ssa::back::write::finish_intra_module_work::<rustc_codegen_llvm::LlvmCodegenBackend> ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-a244707a960eef48.so
#15 0x00007ffff243ea3f in std::sys::backtrace::__rust_begin_short_backtrace::<<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::spawn_named_thread<rustc_codegen_ssa::back::write::spawn_work<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#0}, ()>::{closure#0}, ()> ()
from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-a244707a960eef48.so
#16 0x00007ffff2500660 in <<std::thread::Builder>::spawn_unchecked_<<rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::spawn_named_thread<rustc_codegen_ssa::back::write::spawn_work<rustc_codegen_llvm::LlvmCodegenBackend>::{closure#0}, ()>::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-a244707a960eef48.so
#17 0x00007ffff133f335 in std::sys::pal::unix::thread::Thread::new::thread_start () from /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-49bd04fd90cc2f7c.so
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWEtv4zgS_jX0RbBBkXoefHDsCNtA0j3oyc7uTaAoSuKEJgU-4uTfLyj5ITsPJEgvOocBDEOiSp_q-6qKLJIYw1vJ2BLEVyDezIizndLLjvGO6Vml6qclQHj8BT9Zr1XtKAN4BeAGwMN_AsdfRUw3DrXcBlQoyYL5XDPqtOEPLOis7Y1_GRUAFS23nasWVG0BKrQzdi6IbPfXIwytg9PNAqDCaApQQTlARa3oPdODuVyYLqi5R1BKtkTTLonmgkv3eOHhmdtHYtePPaOW1YFmxgl7Qe_KcVEHxlHKjGmcWLwM8m_J3oS58MHzogCvAs-nY_ReOXskKMTDdt5r9Tejdn8LUMElFa5mp4E_Xd8r7S3WxFgu20UH8CpOM49bMyrsU88AyoizCqA8GF7DK4BXlBgLUFZotQ0AWvmHIL66UwHAm4nZN2lZy_TdALMORnO8CaiSxk7sBoN44z-7MoZpy5UMQAK5IQCv7xTA1wBlfxExfAglACUBQGjwAq_vnsbn_iHRrdsyaQPVBFxSte2J5ZVgwUglBAgBlAYN4YLVi3dF94rQe6sJZW9EAyAMA_gIIYRp0zRNCPMkb2jAZdDbTjNSl_dciGDvZTPqVgheAVQ8Zkl5yLd5K934gC6MWiRH-DA4x49QlCYeXxNu2CeA0QUwytIGe2BSKW0_AYyfA4eVBwa4ALj4BHJ0gYxzlg9alCUZ0qf08f3EB-LpB1idkygdxT6l7I2fKVaadndEt8zeqB3TXLbjQ9MpJ-pv0vtSMEmZKZReWbXlFKBsWh_GakeHdB9qYl9LY32M_o9OBcGRx6TaVfU3QEXlJ5gTNSfvpdrJM4rGkpaFRxEEr25u_rr1pMN8Ec6H2TNcZHgB55K3nRVPRy2SqRRNmpAqzYcoooxIJZ-2yplAki0zva8RlI_URrbXjz2R9bdtL8ZR7eSZAIWTA_uhptfTGWFQ9ZbQjkt2pg2Ir8aVYbEjegvizRfRKZ3qxGgdozj7oE43rCX06ajUD3mS5zXNpnp4k0UYZ1kUhUkKwwiHeZbHMP86ImUXIoUEsvO6Kv74gxhzSyRpmf6oFF-CY37BESY4eR_HW1U7wc4YHoYm_H4XrxCezQRRHGcxPCcmJgk8ofh6_b9A73eHLwyniwuKszqGQ_w8wk9n7H80t-yHs72zBRfPlt5f4-7Q3pW15g9MzwmKohSmJE8gY02ULYw6uYvO3YUVgcMqOyJQVbOWyfIkeUXo_Xi180Qml6UaSJXNidX_KRjvZ4fP2YVhiIfmpPz5_eG7_W7XJl7nbWb--6f8V1SG2XPWkSccDwTT_fg4U-ZxlkZ5niMYRiFKIErCr8I6OmMd4RpF6fOYGt8dvxrShktuupJLq0m5Heqs3Cm9NwR4_VqC3IiH7Xoc9a0vkzXA119FmfhCGUawb_QDY-t96_VkTqKMbftwW5b-I2XFWi5L0yltywsLgNcfUiUg5rWAWE24nfgxaOhvrh-tJvv3b5ntVG383mX0vCc7WfoOoS7HPcMzd96O-Agwxvhj0d0LkPpOwjjN_HYGpBvfku3j_j6br5IlycWcCJMEjjsPH-JjrhxU9tfDLt2vxmfRcHJwndXlP9nx6ex4wSYE6cYrRZXeu6n6vTLNobcbWyb5Q_pCXU_Qrg9nEUKUSh7LOL0yHfd8HiypxMGT371Mp2dbVowbjOOXJ66e7JslJ_nj80S9m1xLtpsalMaS51v2X8PU2Hoe5VUNo6bOIaWoSemJ4OE0ZFYvcZ3jnMzYMkxRinCSh9msW1YxppSGqMoTFCeMJVkexxDhqkIsoZTM-BJBFMEcxTCCYZwt0rrK05jmYYIYjeoMRJBtCRfj4q10O-PGOLYMYZ7DcCZIxYQZziEROlXV8UAPIATizUwvh7OxyrUGRFBwY80J0HIrhqPM4-be75xOJ1IN4cJpFuw63yFRte254LINdtx2Y7HPnBbLN44p9wdvF-dzAxEDULHn8rBE_wsAAP__omaL2Q">