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

    <tr>
        <th>Summary</th>
        <td>
            [flang][OpenMP] `flang` core dump when using `cos` or `sin`
        </td>
    </tr>

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

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

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

<pre>
    I have a recent `flang` built from sources:

```
flang version 21.0.0git (https://github.com/llvm/llvm-project.git b68e8f1de71a65b21910aff4aea75fc1ca6bf6e0)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/llvm/llvm-project/install/bin
```

The following simple function trigger a core dump when targeting Nvidia GPUs:

```
MODULE trigtest_m
 IMPLICIT NONE
CONTAINS
    PURE REAL FUNCTION test(inp)
        !$omp declare target
        REAL, INTENT(IN) :: inp
        test = cos(inp)
 END FUNCTION test
END MODULE trigtest_m
```

When compiling this (`flang -fopenmp -fopenmp-targets=nvptx64 -c trigtest.F90`) a core dump is trigegred:

```
$ flang -fopenmp -fopenmp-targets=nvptx64 -c trigtest.F90 
LLVM ERROR: Cannot select: 0x584ecf0e8b20: f32 = fcos contract 0x584ecf0e8ab0
  0x584ecf0e8ab0: f32,ch = load<(load (s32) from %ir.0)> 0x584ecf17cba0, 0x584ecf0e8960, undef:i64
    0x584ecf0e8960: i64,ch = load<(dereferenceable invariant load (s64), addrspace 101)> 0x584ecf17cba0, ExternalSymbol:i64'_QMtrigtest_mPtest_param_0', undef:i64
In function: _QMtrigtest_mPtest
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/llvm/llvm-project/install/bin/flang -fc1 -triple nvptx64-nvidia-cuda -S -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -target-cpu sm_89 -fopenmp -resource-dir /opt/llvm/llvm-project/install/lib/clang/21 -fopenmp-host-ir-file-path /tmp/trigtest-e73a63.bc -fopenmp-is-target-device -mframe-pointer=all -o /tmp/trigtest-sm_89-c45a71.s -x f95 trigtest.F90
1.      Running pass 'Function Pass Manager' on module 'FIRModule'.
2.      Running pass 'NVPTX DAG->DAG Pattern Instruction Selection' on function '@_QMtrigtest_mPtest'
 #0 0x0000584ea4b2d6b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/llvm/llvm-project/install/bin/flang+0x16586b8)
 #1 0x0000584ea4b2b385 llvm::sys::RunSignalHandlers() (/opt/llvm/llvm-project/install/bin/flang+0x1656385)
 #2 0x0000584ea4b2ddb1 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007cf0dc645330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x00007cf0dc69eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007cf0dc69eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007cf0dc69eb2c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007cf0dc64527e raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007cf0dc6288ff abort ./stdlib/abort.c:81:7
 #9 0x0000584ea4acdbb4 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/llvm/llvm-project/install/bin/flang+0x15f8bb4)
#10 0x0000584ea707b685 (/opt/llvm/llvm-project/install/bin/flang+0x3ba6685)
#11 0x0000584ea707ac65 (/opt/llvm/llvm-project/install/bin/flang+0x3ba5c65)
#12 0x0000584ea707175c llvm::SelectionDAGISel::DoInstructionSelection() (/opt/llvm/llvm-project/install/bin/flang+0x3b9c75c)
#13 0x0000584ea7070ef8 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/llvm/llvm-project/install/bin/flang+0x3b9bef8)
#14 0x0000584ea70706f5 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/llvm/llvm-project/install/bin/flang+0x3b9b6f5)
#15 0x0000584ea706e5db llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/llvm/llvm-project/install/bin/flang+0x3b995db)
#16 0x0000584ea49c8db5 llvm::NVPTXDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/llvm/llvm-project/install/bin/flang+0x14f3db5)
#17 0x0000584ea706cb11 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/llvm/llvm-project/install/bin/flang+0x3b97b11)
#18 0x0000584ea7333f08 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/opt/llvm/llvm-project/install/bin/flang+0x3e5ef08)
#19 0x0000584ea9611e2a llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/llvm/llvm-project/install/bin/flang+0x613ce2a)
#20 0x0000584ea9618c63 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/llvm/llvm-project/install/bin/flang+0x6143c63)
#21 0x0000584ea9612a46 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/llvm/llvm-project/install/bin/flang+0x613da46)
#22 0x0000584ea4d6fca6 generateMachineCodeOrAssemblyImpl(clang::DiagnosticsEngine&, llvm::TargetMachine&, Fortran::frontend::BackendActionTy, llvm::Module&, Fortran::frontend::CodeGenOptions const&, llvm::raw_pwrite_stream&) FrontendActions.cpp:0:0
#23 0x0000584ea4d6f955 Fortran::frontend::CodeGenAction::executeAction() (/opt/llvm/llvm-project/install/bin/flang+0x189a955)
#24 0x0000584ea4b5c8ec Fortran::frontend::FrontendAction::execute() (/opt/llvm/llvm-project/install/bin/flang+0x16878ec)
#25 0x0000584ea4b480f2 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/llvm/llvm-project/install/bin/flang+0x16730f2)
#26 0x0000584ea4b60b75 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/llvm/llvm-project/install/bin/flang+0x168bb75)
#27 0x0000584ea4643881 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/llvm/llvm-project/install/bin/flang+0x116e881)
#28 0x0000584ea4642ab7 main (/opt/llvm/llvm-project/install/bin/flang+0x116dab7)
#29 0x00007cf0dc62a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#30 0x00007cf0dc62a28b call_init ./csu/../csu/libc-start.c:128:20
#31 0x00007cf0dc62a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#32 0x0000584ea4641c05 _start (/opt/llvm/llvm-project/install/bin/flang+0x116cc05)
flang-21: error: unable to execute command: Aborted (core dumped)
flang-21: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 21.0.0git (https://github.com/llvm/llvm-project.git b68e8f1de71a65b21910aff4aea75fc1ca6bf6e0)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/llvm/llvm-project/install/bin
flang-21: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-21: note: diagnostic msg: /tmp/trigtest-sm_89-7716ac
flang-21: note: diagnostic msg: /tmp/trigtest-cb82a3
flang-21: note: diagnostic msg: /tmp/trigtest-sm_89-7716ac.sh
flang-21: note: diagnostic msg: 

********************
```
The core dump happens both when using `cos` or `sin`, but not with `tan`, `acos`, `asin` or `atan`, those "only" trigger a failure in Ptx assembly similar to the one reported in issue #147023. I do not know the internals of `flang` well enough to say if this is the same issue as #147023 or not, please forgive me for opening two issues if these are related.

Thanks for your effort.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWktz4ziS_jXwJUMKEnzq4APLktyKcNleWzWzNwUIJiVskQADAP349xsAKetRHnd127tzmA53mQSBLz8k8oEEzIwRW4l4SZJvJJlfsN7ulL7csZ_KWM0uSlW9Xq5gx54QGGjkKC2QNKgbJrckDaDsRWOh1qoFo3rN0ZCoIIH_SYPxJyh8f3hCbYSSQMNpMA22wgKh-c7azg-iS0KXW2F3fTnlqiV02TRP-1-TTqv_QW6nblSZ5pjXYYVZyNKkpOEsDFhdxwxZltQ85Cwt6xQDQmckKNZMb9GSqICXPN2k8aSXP6V6lpNGyP5lspW967TTyCpoVYWN69opI15IUKyksaxpsJoL7doJXarOvs-N0KUYuhO6LIU804GXglCrplHPQm7BiLZrEOpecuvUYrXYblEDA640QtW3HTzvUIL1M3BDbp9EJRhc3_94X8_f7-Y_bhYeyaKxm5YEBay-39-srlZruL27XZCguLq7XRer20f3DQDufzws4GFR3MDyx-3VenV3C24sobmQ3aBCGP8jNCQ0Vm0HFfKGaRypHXVxQIRewep2vbhdE5qvbgmdgWMbFeAQD32dGCDRHLgyJ-IWt_MzMkHh2t6b3pmK_-kUxlXbicYpzO6EcVa2t1mY1KpD2XZvD5NhCoZEc_nU2Zc0hgl_EzFdzjw2nZ0sizC-B241Vu8uBKEx_G2BQILi5uYf32Hx8HD34PR2xaRUFgw2zs6iAoKXJI-R1wHmJQ1cSx1Rr8uaKwNcSasZt8f9WBl43Z81DUMJveI7P75RrCLRFaG5e3K6M-7zbHByQhOhp96zosUbVJjxkgVu2Y_AZ6lv6WWFNYkKkcbj0p_1cWaRxu8RqFBjjRolR1Y2CEI-MS2YtPBGzQ2cOTGsqrTpGEcIg_Bf0lu8WNSSNY-vbamakRXNNv_1_WBT9_5XxzRrNwGh2a-TWMk3p3Xsfx1NguL-ZlE8LsD0ZSssMCj7LWjslLZgFfy1oOcCizE9GkKXwGQFQvKmrxDsDoFrZnZQMv7TrThOSVA8WsZ_ekMdbDOYkmB2r9VWsxaY3vYtSmd_fzGc0eXeonkIE6uFi16jCU-kj0wT3lcMJo-uj2qUnlSCbaUyVnADk1Zjozhzepv4SAud4DDpBJ80-IQNUBidY8K7Hky7yWdH_qNxSDGTSujfZ96IktAl9wmLLml48MOdMnYi9KQWDU46ZncO1Lad-3dczwlmEUujackPw4TZk6zwSXCESVtr1uKkU0Ja1CSas6aBiXoHzk9pwuOEZeHUwOQF6llyGmyCInTL9dBL6QJYx4wLYNlynyXuXcN3JtkWNaEZKOmyVt-g77V6-O5fCM2cJdD3oG7_cb_-b5gX1xMSLebFNdwz69wCXLLT_SDm0YcaZ-GDjLcs5TwiDt6xeZo5_yY0CiB4CYIgcM7H4pJWaZmDXyafBMyrGR7utZDW2-raWa6LOG-dNHveuC0IspbQ1LmgkNYnEpr_HaMl9FvwEqZJnpb5mGQIjcIzpmWUJ-8xfejlo9hK1vzBZNWgNp7Fp8mkUZ4cyNBztVVlCCdifY60ThlGbIWs1cYSWrj3JyUq_zgbR5gp75z3B_7_QUA0Csh4HVQ8jZMoCsYpDE4y7o8O-yL_gU-Nmqaesx9yYByfAs6wpBw2m876zdTmp2iajd_juHjj3R6mhC5lZ51CjrtNOYmKOCZRkaUjePI74HII5x_CZjmJinCvhPQ92OMxH2Lls2Os7FyhNEPQTBj0IMavBKHLqX97NRV2LoQPe0u69D09LM1IVOwnnp-i0jyva2Clyxwex1bDavmmgVXopjkOn52YEeNVWcZHNj3koE3NLGs2qLXSJ363fhYS3fbBObT3u1Kp5tO2ntR5WcaD5Ti_OwkRWZCVaZ58SkJUsjTde5OTEJ5JYDz9tISEp0cS6JmEMEv4kaLfAui8uF49-qqCRMVcHQXZoxj76XASlTOeJfxALzqjF2Cd_ym9K1XhNcpCVotW2Hlx_TXMSqzzA7P4nFlaJ3_KbGgtmuYbM4J_axT_aU4s9y1BHoz387zT-mjBk1PeKSZV-ae8dS_v5HfGd0LinuIJ71--fQXxWVKVB-LpSUiY8bwqjxXu9wPz4nqt_t3Mw7iOqvJI5dmZynkZhh-o_Aa3jL_-OxWflWF4oJ-f0I-iqA6OffCMgdvZHXF_l_RXssUE6-DIL08yxywNQ6TsiO3y3hHc7zz__3imYcSRsjeeNDjjmfM0-g2e-43xsQmMTV_AMY54Gh04hmccKYvTI47NkaEesV213cH5_q-YRhWL0wPT021nldacpbBFiZpZHC3UpYU7XRiDbdm8epY0H0qqIasdqryF3AqJ497haF_hK6YRbvy6VNpqJocOtVbSoqyGt2-M_0RZFd6G1q-nWEe6-BBkTGZ3nQMxJ5ua00Kje9bC4uao3JjBcoQaKJxvp53ionPFzZLkN-gU-3MDEhX4gry3WHzVJiDMZ2yWHOInjU9rioTnyD_ieDrrE5JfUvLkWY6HPQpNTunFeVDTj1XYdqJB7U9lJcf3tfj78_uCjJVmUVDTw5ROc22ZBmX2oVWM5A8zexpPSD6eyC-aGIq_T65OWWZHxnOSfOM0jvI8hJqHm5aJ0-hUaM1eH7Am0RXfMb13tYJEC-dtp22fpRmmmOeHJEvzM5qUlRk4ip8VU7EyO4iZnZVlLOQMNhtXIG-MZdpuOGsarxtfp3HT_1r6jXXle4OmO1fEuRI4GiS-naO8SaR5Cb6_kMKeCxkeHfLEI_vKMKSu-KVjyHo77zhBPJnDe_TfRY5iV7MmIzA9W4OQBwkMkJ9dBc6D0SZ984S6YheGyjUqoJf-aNgqGD0JuGpb5v0EClcioz8pfju7x-oDtOGAc-9qeyiomWiwgqr3goa63oH2BmHy5NvQH0-_-e7sP_jS61izUlkXpeFwDgyt2XpQZzmf-PFXLuMpe7FeF1d_wPqPBSzvbm7u_rm6vYbl6mbxCOs73_ztxzU8LO7vHtbDkfi9xk4rjsZgNd5cEpobf88jK2DGKC6Ysx3dSzBcC6eAsYNG8OfYWAGzA95vzvlfHAhnWZgy_gkYXuaURV_EY2p2f2kVP7-QRxdn6x0e3bPtWNehNFAquxvuQnsj5BZIGnBlSBqA0u7FCEmG66ayt44uPAu7c18s238hacCGQfu3YdQIwQ497U4ZBEKpks0rofToZtZFgl47X4d7--LsxG-JwYhWNEy7UGB3CErieNuDlevrr2_8iXOcBTSawgoq5Xk6r_RD9meZBlR9csX-jE0DKFW_3flIw15B1MPFpjB-qGEtjiKYOUhxE5PKnxd3DTKDUCu9FU8IrX8E1aG_GLDPahhuBmQ06I1cY-OMfLq_vGbyp_EDX1WvAetaaTu9qC6jahbN2AVehlkSpjSkMb3YXWZBXKWsrOM0rrIwwDCt01mUYRUmWcCT_EJc0oAmQRbEwYxmlE7zNGY5DWuapCXWaUniAFsmmqkLOFOltxee5aWfXnbRsBIb4_90gdIxZ1CSzC_0pY9QZb81JA4aYaw5QFhhG__3DsOIZE6Sb3cdyu_3JJmfKP7sFv4jy7vodXP59y_1xgk9XdL_DQAA__8V_VkB">