<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/119420>119420</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Fortran/gfortran/regression/findloc_8.f90 triggers assertion failure on AArch64 and LoongArch, but passes on x86
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tarunprabhu
</td>
</tr>
</table>
<pre>
The [findloc_8.f90](https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/findloc_8.f90) test from the gfortran test suite fails to compile on AArch64 and LoongArch, but compiles correctly on x86. It is possible that it fails on other, non-x86, platforms as well, but these are the only two [of which I am aware](https://github.com/llvm/llvm-test-suite/pull/187#issuecomment-2530003867). The test triggers an assertion on these platforms.
Steps to reproduce: Compile findloc_8.f90. For example, from the root of a checkout of the LLVM test suite:
```
$ flang -o /tmp/findloc_8 ./Fortran/gfortran/regression/findloc_8.f90
```
Unexpected failure on AArch64:
```
flang: /llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1740: SDValue llvm::SelectionDAG::getConstant(const ConstantInt &, const SDLoc &, 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.
Stack dump:
0. Program arguments: /flang/install/release/bin/flang -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +outline-atomics -target-feature +v8a -target-feature +fp-armv8 -target-feature +neon -resource-dir /flang/install/release/lib/clang/20 -mframe-pointer=non-leaf -o /tmp/findloc_8-fa2183.o -x f95-cpp-input /llvm-test-suite/repo/Fortran/gfortran/regression/findloc_8.f90
1. Running pass 'Function Pass Manager' on module 'FIRModule'.
2. Running pass 'AArch64 Instruction Selection' on function '@_QQmain'
#0 0x0000ffff9ad1ccf4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x1d5ccf4)
#1 0x0000ffff9ad1aa60 llvm::sys::RunSignalHandlers() (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x1d5aa60)
#2 0x0000ffff9ad1d45c SignalHandler(int) Signals.cpp:0:0
#3 0x0000ffffa25607a0 (linux-vdso.so.1+0x7a0)
#4 0x0000ffff98b0add8 (/lib64/libc.so.6+0x8add8)
#5 0x0000ffff98abc13c raise (/lib64/libc.so.6+0x3c13c)
#6 0x0000ffff98aa7b80 abort (/lib64/libc.so.6+0x27b80)
#7 0x0000ffff98ab54bc (/lib64/libc.so.6+0x354bc)
#8 0x0000ffff98ab552c (/lib64/libc.so.6+0x3552c)
#9 0x0000ffff9b7da144 llvm::SelectionDAG::getConstant(llvm::ConstantInt const&, llvm::SDLoc const&, llvm::EVT, bool, bool) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x281a144)
#10 0x0000ffff9b7d8dd8 llvm::SelectionDAG::getConstant(llvm::APInt const&, llvm::SDLoc const&, llvm::EVT, bool, bool) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x2818dd8)
#11 0x0000ffff9b6c2830 llvm::DAGTypeLegalizer::SoftenFloatRes_ConstantFP(llvm::SDNode*) LegalizeFloatTypes.cpp:0:0
#12 0x0000ffff9b6c205c llvm::DAGTypeLegalizer::SoftenFloatResult(llvm::SDNode*, unsigned int) LegalizeFloatTypes.cpp:0:0
#13 0x0000ffff9b7076fc llvm::DAGTypeLegalizer::run() LegalizeTypes.cpp:0:0
#14 0x0000ffff9b70ca34 llvm::SelectionDAG::LegalizeTypes() (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x274ca34)
#15 0x0000ffff9b83bed4 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x287bed4)
#16 0x0000ffff9b83ad98 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x287ad98)
#17 0x0000ffff9b838238 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x2878238)
#18 0x0000ffff9b835bd8 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x2875bd8)
#19 0x0000ffff9b263484 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x22a3484)
#20 0x0000ffff9aeeae20 llvm::FPPassManager::runOnFunction(llvm::Function&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x1f2ae20)
#21 0x0000ffff9aef2dec llvm::FPPassManager::runOnModule(llvm::Module&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x1f32dec)
#22 0x0000ffff9aeeb7dc llvm::legacy::PassManagerImpl::run(llvm::Module&) (/flang/install/release/bin/../lib/libLLVM.so.20.0git+0x1f2b7dc)
#23 0x0000aaaabeceac1c Fortran::frontend::CodeGenAction::executeAction() (/flang/install/release/bin/flang+0x13cac1c)
#24 0x0000aaaabecdd7c0 Fortran::frontend::FrontendAction::execute() (/flang/install/release/bin/flang+0x13bd7c0)
#25 0x0000aaaabecc8e80 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/flang/install/release/bin/flang+0x13a8e80)
#26 0x0000aaaabece1248 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/flang/install/release/bin/flang+0x13c1248)
#27 0x0000aaaabecc7694 fc1_main(llvm::ArrayRef<char const*>, char const*) (/flang/install/release/bin/flang+0x13a7694)
#28 0x0000aaaabecc6528 main (/flang/install/release/bin/flang+0x13a6528)
#29 0x0000ffff98aa8254 (/lib64/libc.so.6+0x28254)
#30 0x0000ffff98aa8338 __libc_start_main (/lib64/libc.so.6+0x28338)
#31 0x0000aaaabecc5770 _start (/flang/install/release/bin/flang+0x13a5770)
flang-20: error: unable to execute command: Aborted
flang-20: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 20.0.0git (git@github.com:llvm-project-tlp/llvm-project.git 0ee5924d9bc01c5625a41833dd9d88b89c98d986)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /flang/install/release/bin
Build config: +assertions
Configuration file: /flang/install/release/bin/flang.cfg
flang-20: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-20: note: diagnostic msg: /tmp/findloc_8-fe84dc
flang-20: note: diagnostic msg: /tmp/findloc_8-fe84dc.sh
flang-20: note: diagnostic msg:
********************
```
Expected results: Compilation succeeds.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWdFzmzgT_2uUFw0eLMDghzyQJu5lJr3mmlzvMSPEYusKEiOJNLm__psV2GDXSZM03_fdTDsxQrv729VvV2LFrZVrBXBKkjOSnJ_wzm20OXXcdKo1vNh0J4UuH09vN0BJclZJVdZa3GWzahmS5JywbONca0mUE7YibLWWbtMVM6EbwlZ1fb_9EziwLrCddEDYqqh1Qdiq4VIRtlpp4wzHX-tq99PA2oC1UuPDvlm2pKiNVkY31G2AbsX6YW-EVlzWljpNhW5aWQPViua5EZtFTLkq6ZXWao3PhH2gRee28ywV2hgQrn5EkYdsMaOXjkpLW22tLGqgbsMdlW4woRXVbgMG9SitgodsgT_bmrtKm8ZSbul3qOutHbcBC5Qb8NC1qh-p-64xuLqi3zdSbOgl5Q3l37mBt4e47dDkap6lhEXS2g6EbhpQLmBJFIZhlC1SwpYziivr4-aMXK_BWMoV5daCcRJ9UwPinUMzSsKchPmNg9ZH2EBrdNkJIFFOPwzh3luyGV1pQ-GBN20NGIjd0hmtHdUV5VRsQHzTnX_CN1dXXz9NFhTd92bJIhz-hTlhMa1qrtY00JSwlWvaKVvo7A3sOrAQ5n8qeGhBOCj9indmyqWjsDwkDMZkgSQS_oMu4SOgzRuoQWCAz_OPB48z0bYkyudpHKKOm_OvvO6AekVRTqJ8T9aPrMF90Mo6rhxhmcCfdDtwqRwlzHOyf3FzfqXFduji660nptb1-HeJdvMdBcgivKhdQKKLNbgz6f6SpdsQlmEikuicROf0onZfb2drcDfyH7hUZ9LZ7QS0s6CEsfwaoVj5D9BSg6VKO9pwJzbUPbbgXxA2J4wRlvpIQzkjYX59dZHfXFDbFY10lNOiWyPjtHHIvRemRmv03yAcYSufCpawla8CUom6K_tUFIbbDS24-OYMFzDzFOfiGy27pu3XOZyRcHlt9Npggpp1hwllh5XuV52tJMbdJ5-BGrj1Bc8XuoGqlZjTwBnZ1kA59zQKOvVN6e8qqKXqHoK16mgAjXSBLv5GAV1rE5SSr5W2TgpLg8ZArQXHBQoaXUJNWylo0EoR1HAPNWX9g7RBK4EGjps1uEC0HV2DAoOTh7EKuENWE3amO1dLBQF3uvFmfpxyn_Fjw1UbcNPcZ8feKdCKBgas7oyAoJTmZ_Hq00UMM1hIg6YyvIGg1VI5MCQ6x1pbA6-Op35QcTbPopmmwQOtlkkg2jaQqu0cPVoukVFvKhZzpMSXTimp1rTl1lLC0lWnfILSaxz4xBVf4waRYuFodNnV4GddfvnkHwhLkW3smKrtnnWprDNdr3VXAAaV1dYcYSmJw7s__uh31pSEyMwopOFDGIZhVVXVkpdzIap4Uk_so-1_XBupnOf8LWYAYdk4yfDvd9o6A7wZSofEYoMJnr2I_LPZbl1rWWB1n1k9Y-EsXEtH2Fn4MC8TRIb1p8c9P8DN-SI8hvtLp27kWvH6N67KGsxYe94RGhofobEDaGWcCLoHgrBsiFA_bIe6Hvr_vZZoooWzZBGmPETUfRW4L61GIHMPIeUT8_HUfFaEvCyzwd1aFou4_ytQeuGlM5wxyid78rwQ80hQw6WFZ7VEOG_UstjXwtMiCykvsDQ_p4XhvFFLeoAliQvxPAqcMcpnh_IJ-5l8wibyy6l8kZZ8Hsev2G3HmdMd12-1Q6JMdPmt9_i74zvxO3KYZXN0rXccsys8cDxDEr3F8X5n_3e6nO14jy7vVZRiIVgWTSvKef7x9rGFK1jzWv6D24x3QVcO1KrW3H0Be7cNwep6Lwg357_rEgjL0YWtBi-EKg-zH8GwQzBhIl4JpqvdUyA-0E75b7tyW6lfBCraJ0WYLqqfgzKdGkru9sVT6uMD9YJHzyfbnsJ3r-ssjRHBSJC9wlhkUQHlU_gub6DeJr4_1ueqvGik8yf698aZpYhkxLk4wMnL5VO5O-LsR_O6PuNWirNai292jz67c8uYr-_sBeIcvUgPvMiwmv_MC9Opz-oTFxupYAt4z4sf3r2_Gwh0dCM7cCMpniyk6AZSWjz-e5xBuKMz-9shW0RxNs2AAzx4wJ14ctSF_x52xhHdDjvbP-gCcGDT8r66Rrjb4_j_C_W8YohrRL1_zIWKlSBegHr77TAlyzD07ogjxDQiZgdxLtJyirieEHyC_bJp6-l-8T_AzRDZiHu7uXHOeQECuJgLuv3m80gqo5UDVe4X9p4IfggeQHQO8i1hXoN4mIHIIoG2R2TxPrKyTEX4HLLV8HQE2i-AKtDsCCrZByUyyJ4FNfT-zKU_IPl-4JGIvdyr1_Fh6ghHqKMji4N1n7M4e86RAfLoz_3Qanke_g_-94fBN9EDIY4OpAcrkS6WMa3E_K7_0J-exY3hj1-gItEHseFmu5PnJLrwLcC9sbdGF82P4LIDcIuEZRSBvU05io_KlwffmBlL4ue_LnHGTn6_94HyUZTRuzuUubOOG3c3QfqUxmiy2--6Elt3kzQNaa_rbQ6jgl69Hw6Y7_uCMRrLPe0U97cOmg60pEI3Dfekozl-bUP5lGzfcdyydCs4dFdp2Xm11vcnEHtngQb3fgyAygntd-joPRiLR0QstL7UoiBW3DictF-jfNp3DVzdHrRiZygZAiRLFpfLQoRzkSxYwuN5FkVluSyzrMiWYpmVy2zR27_1jUV068muKc7aGOAl9T1RnNtqKx9ImF_2iwHluTQv7NiG-VknawybquTQ0D_bXY1YEuInfyXXnfFRopWs4XXN4Jmo1gdrp7S_7KBjt5c2tjeO_PuFf_6eYmin57e3-Yff6O1vF3T1-erq81-Xv3-kq8urixt6-9kPn_35kX65uP785bbvfV_7ax4B1kJJ-04uYZnFGoKU4tZqIbmDkppOUSuMbN1uggHqu9VQUu56fS_0-UhnF7K4FL-uYWY3rwr9r0d__17pYnurZPx3vB1vz3o22U4IgHJ333ZSnkblMlryEzidp1GUJWweLU42pwLmUZaEBVuyKK3CYhEXZZIUi6LIoFikcCJPWcjiOZuH8zRKomSWhSyJqzRjsIxKUaYkDqHhsp5hhs60WZ_4a5LT-XwZs_Ck5gXU1l8RMzYwm5Hk_MSc-pQuurUlcVhL6-yowklX-3vlXiI5p6_srk9uJHd3UT_ewB2_zW1RxA43uCedqU_fflM0ROH-lP0nAAD__xlun9U">