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

    <tr>
        <th>Summary</th>
        <td>
            powerpc64le-linux-gnu 128-bit atomic max causes ICE
        </td>
    </tr>

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

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

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

<pre>
    https://clang.godbolt.org/z/jn6G5z1aP

```c++
__int128 f(__int128 *p, __int128 v) {
    return __atomic_fetch_max(p, v, 0);
}
```

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-17.0.1/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fcolor-diagnostics -fno-crash-diagnostics --target=powerpc64le-linux-gnu -O3 -mcpu=pwr8 <source>
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '<source>'.
4.      Running pass 'Expand Atomic instructions' on function '@_Z1fPnn'
 #0 0x0000000003349f18 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3349f18)
 #1 0x0000000003348044 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3348044)
 #2 0x000000000329c028 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f9c1ff92420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x0000000002c98293 llvm::Intrinsic::getIntrinsicInfoTableEntries(unsigned int, llvm::SmallVectorImpl<llvm::Intrinsic::IITDescriptor>&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2c98293)
 #5 0x0000000002c9841c llvm::Intrinsic::getType(llvm::LLVMContext&, unsigned int, llvm::ArrayRef<llvm::Type*>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2c9841c)
 #6 0x0000000002ca3292 llvm::Intrinsic::getDeclaration(llvm::Module*, unsigned int, llvm::ArrayRef<llvm::Type*>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2ca3292)
 #7 0x0000000001b7b6b3 llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(llvm::IRBuilderBase&, llvm::AtomicRMWInst*, llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, llvm::AtomicOrdering) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x1b7b6b3)
 #8 0x0000000002688393 (anonymous namespace)::AtomicExpand::tryExpandAtomicRMW(llvm::AtomicRMWInst*) AtomicExpandPass.cpp:0:0
 #9 0x0000000002689b69 (anonymous namespace)::AtomicExpand::runOnFunction(llvm::Function&) AtomicExpandPass.cpp:0:0
#10 0x0000000002cfad02 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2cfad02)
#11 0x0000000002cfae81 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2cfae81)
#12 0x0000000002cfc9f0 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2cfc9f0)
#13 0x00000000035b10d0 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x35b10d0)
#14 0x00000000044f947c clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x44f947c)
#15 0x00000000058beb69 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58beb69)
#16 0x00000000044f8b05 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x44f8b05)
#17 0x0000000003dd5f21 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3dd5f21)
#18 0x0000000003d5b9fb clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3d5b9fb)
#19 0x0000000003eb5c23 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3eb5c23)
#20 0x0000000000bd50c5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd50c5)
#21 0x0000000000bce42d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#22 0x0000000003ba7489 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#23 0x000000000329c453 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x329c453)
#24 0x0000000003ba76a9 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#25 0x0000000003b6f477 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b6f477)
#26 0x0000000003b6fe2d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b6fe2d)
#27 0x0000000003b79d0c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b79d0c)
#28 0x0000000000bd2d31 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd2d31)
#29 0x0000000000acf511 main (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xacf511)
#30 0x00007f9c1fa36083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#31 0x0000000000bcdc2e _start (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbcdc2e)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWV1vqzga_jX0xiICQwhc9CJNm5mOetSq7c5Ke4OMeSGegs3apk3n16-MSYLTtHPObs5qpT3qSYI_n_d5P7GJUqzmAJfe_MqbX1-QXm-EvOykqCVpW5B_kBe4KET5frnRulNetPTw2sNr2hBez2pRFqLRMyFrD6__9PD6D578Mv8zJA9ecO0Fy_EzCewf9fCV-Rta85xxHeIUVR5O9w8eXnYeXqF9w6uHM-QtxkkIISRB95KjPCdatIzmFWi6yVuy9XA6zH01H4GHMy8ap3mL6yMoJ_HZx4e7m-XTDVJ90TKNCCr6GknohNRIC-TyUDO96YsZFa2H103zuvvyOyn-AKo9vGZK9aA8vEaEl4hx2vQlIL0BRCVRG1QQ-qIloWBQdxI6KSgoBSVSope22cwkSgnKiIYSyZ4jRSXr9MxCftKEvqCybzuDbGgKZl6QPVhFIiLrvgWuDXDk4bXoDDIq2o41IH3Ydo2QIHeK9cPFLJiFHl4XjO8are6QX5dvRFZ-jPwa-cKsRrrOrNnrrtczhfzWMIB8f5smPlGtr965JlsvumZcQ4P8J-T7NaW-FqKhG8K4F11_CcoMDqMZngXIr6hohPRLRmoulGZUIb_iwh_IdJt9TWQN2ouuO_EGsqNJ3IDfMN5v_Zr3yL-PkN_Srjcj3mSKvGg1ch7dWBZDw6IXrUBUXnSDOiIVSEQ0Al4iUaGKNWBHYjNyJUpANXCQRDPBbU9keh57zhmvUUeUQh5erHtOzRD0YBq-EU5qI-oCCY5aUfYNmFEOILwYtR2fWvBm2xkrWQ4-gRhXWvbDDmpctdrtaNaNg_wfYfXAuXmwnuXhKEDBNtj9i6I4q8IUDVYdLb1oqd6V_fEgGdeDzT1bw00PgyR5y4XSEkjr4cQYL-N68GGc_keW5-GrYDuCMr69Rx0eoU6DOD6FetUA4X13z59YzUnj4bTnQ_grUSPMLufDaCA4GLGDEWc0wClaGZN9BCpeQb5bUL8SXjZmq3RkzRmzElzDVs9oZ_w8GP7vt4jGLRZVRsOqynCMA5TnEpQWEnKpR-kaVnh4vU2TPIkPzmA7Or2RQMqZErNgkCWMYxw4ksRTSTDNUpxFE7ZvuZaMK0btYw1633LLK_FMigZuTIsJiQcFDNKuJus8taRpfgeqhbxtu8aLVp_ucXv7fA02HAo5OEpyNl2OAjoMzI8ZiEP6JQPP753rI3d3v38bdTn6yOdELKUk749QOQzYFZeDsGeUNA6pI2niSkoinOEvJb0G2pAx9k0F_jZENIP4f0TWQRRH1sVU1rBYFEkxteuHh9XzkE3uTCphvLbN0DL9jagXKG3gffz29wMrUwZuH6961pQgr4iCUekTwQ-TlR5pOvT-TpoefkKr3fVellYgnCEquNLn4Xik0OE4dewpSdMoi8xuhAv-3opeIU5aUN2QU7IpSJvdbIuW7_Zxz5rD9EcuMzRdxCTc0xE0O4KXFUn24_Bkz-_5Lr07yA6NyfeBMsktcH2wImUw9cH1g5m6qx9-DMCZfGmAtNezwRweY4Y0_A7MuyhxInCcFy-koYMXH-GlWRVM8DZQE_o-xoEDcpuXRvQ_H7UB5aCOnJpiXoRBGSA7cUBx0zJ9RegL8PJ-qM09nE66rw-l8g2vGd9FpcmQX4GUIJ-ASLq574Zi0oaIj0NN5fsL8L8YZUPoXwy6I7w-NWRSHJgIW5tE4TQ7WWay4EjCcrT91VEK6xV7hUeoVlw_aOnkntdqrB3XrIGnd6WhHfLQCik9unvP2T97yLujmaYM7t4k05DviuHJpBIq0jc6L6EBDX8xMbo5Z-4bDcWxJKemi-Mqixf0BIErwVXf7lzWlqrPknDVDBn_b5wdmdjy6Xla5pxJghGgI4FTk83TAkzoniB5MC9uy6dnF98TtGQ0rkKI5vB9JqQjEAdpcsR1WgTzE440Gqt15C3QXsPOftNzMmm2d_A5dVBUlvMKh1N8a2k0uvemKcBzQht3dqClLrR5kVWFS53dzCR-ws1L8yn2PpfljDY6onPgO-VFBMWc4siJ1xboQYpXQclH0B-ktCXOeWBbVFPY2ClAgqKcB3SOKA3zljA37U3Kd7ohche8l2PIdNvwCr0KVp4TvcXmgA9d8BRiXKId0avwefD29KvXzo-SHCUjs8YY5SbpKkOlZK8gTxZ12D0OKMgiTrOBjsm6u_OaXA6MDr3Ww4aMYIZQ0jQFoS95xQ3Sg43YvUd7WYUr0bb7-vTgrCc1t89RYkjBxH31PmTeMStNklqe0-02DO1DQRSjJoMNr0oDi85g05BrSZhWu-6j5UjTGPs3r_T7fjNkeQjTy_07i53i4UVD2qIkHl4cqMLp7njnN1Gc1kd0fDwTz6cvf6cOYWzPY8-fSAXNu0Pn16o7m7NanI69x8eGlRAnD_7fGYahetYRqWfBlxYwd4lLqnix-JS4QWPkQ_7bsemE66OJZsBnhe8XQ5dOmXLWF_VRWMeMkmM2AJc_ysZvolCfU_GbKO6Y0p8V-B_C8F77HWFG8ePZ0feyN5rIz-QQcOlw6BZSxSIrA_oZ3uvJb6cMOJH_P-P-v8jhuQKYJcVhLT2qNnAZjeXnrt7YoR4Cx_LDodZn6fhMFYbB4wB2qrqA0GoehshAPc-OdsHpjvtbGnvQT6IkSCOU5w0rTFwlUueT7b867aczJWaJPV-Ig9TJJNFx5VRSDMiufyYuhyX3e067oyUCKU2AX1rdo2qs1BEdrbIirIESvTG9QbBlRtcloDAaFN0rQP4r0gIpAMQmhfS42a6GHu-SwfiFmXx0H3xRXkZlFmXkAi7DJEvmi2QeBxebyywssriCsixCEhBCkigJIApIktIizpLFBbvEAY7CIEiCRTiPslmUpkmW4WwRk6KAbO7FAbSENTNjuTMh64vhnvgySaMsuGhIAY0abuUx5vCGhk4PY29-fSEvhxvmoq-VFwcNU1odVtFMN3B5-r4zxKlfMI3svTlqyRZR0itQ6HZ1c9HL5vLfv9wecP8rAAD___2PsNQ">