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

    <tr>
        <th>Summary</th>
        <td>
            clang-19 (trunk) crash with -march=znver4: Cannot emit physreg copy instruction
        </td>
    </tr>

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

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

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

<pre>
    When attempting to build Chromium's boringssl (fork of openssl) with `-march=znver4`, using clang-19 trunk, an error occurs. I'm attempting to build qtwebengine, which uses a fork of Chromium 122. Using Gentoo Linux with the llvm git trunk live ebuild.

This only seems to occur with `-march=znver4`. Using `-march=znver3` and `-march=skylake-avx512` work fine. Clang-18 also works fine with `-march=znver4`.

Godbolt link with as minimal of an example as I could create (reproduceable as of today): https://godbolt.org/z/dTcsh51na

Preprocessed source attached.
[scrypt.zip](https://github.com/user-attachments/files/16120341/scrypt.zip)

```
fatal error: error in backend: Cannot emit physreg copy instruction
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: /usr/lib/llvm/19/bin/clang -MMD -MF host/obj/third_party/boringssl/boringssl/scrypt.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBORINGSSL_IMPLEMENTATION -D_BORINGSSL_LIBPKI_ -DBORINGSSL_ALLOW_CXX_RUNTIME -DBORINGSSL_NO_STATIC_INITIALIZER -DOPENSSL_SMALL -Ihost/gen -I../../../../../qtwebengine-6.9999/src/3rdparty/chromium -I../../../../../qtwebengine-6.9999/src/3rdparty/chromium/third_party/boringssl/src/include -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -Wno-unknown-argument -Wno-unknown-attributes -Wno-unknown-warning-option -Wno-ignored-attributes -Wno-predefined-identifier-outside-function -Wno-self-assign -Wno-unknown-pragmas -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -march=native -no-canonical-prefixes -fomit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-deprecated-declarations -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -std=c11 -c ../../../../../qtwebengine-6.9999/src/3rdparty/chromium/third_party/boringssl/src/crypto/evp/scrypt.c -o host/obj/third_party/boringssl/boringssl/scrypt.o
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '../../../../../qtwebengine-6.9999/src/3rdparty/chromium/third_party/boringssl/src/crypto/evp/scrypt.c'.
4. Running pass 'Post-RA pseudo instruction expansion pass' on function '@scryptBlockMix'
 #0 0x00005693384e5e68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2ce5e68)
 #1 0x00005693384e33d2 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2ce33d2)
 #2 0x0000569338406f9e (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2c06f9e)
 #3 0x0000569338406f5b (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2c06f5b)
 #4 0x00005693384df5bb (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2cdf5bb)
 #5 0x0000569340ebefc3 (/usr/lib/llvm/19/bin/clang+0x12fc3)
 #6 0x000056933841ca53 llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2c1ca53)
 #7 0x000056933841c916 (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2c1c916)
 #8 0x000056933ae3cc09 (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x563cc09)
 #9 0x0000569338ca93d1 llvm::TargetInstrInfo::lowerCopy(llvm::MachineInstr*, llvm::TargetRegisterInfo const*) const (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x34a93d1)
#10 0x00005693388b0e2f (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x30b0e2f)
#11 0x00005693389fbfb8 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x31fbfb8)
#12 0x000056933868e8f1 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2e8e8f1)
#13 0x0000569338698023 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2e98023)
#14 0x000056933868f6b2 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2e8f6b2)
#15 0x000056933f0e954d 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>>, clang::BackendConsumer*) (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x2ce954d)
#16 0x000056933f51e806 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x311e806)
#17 0x000056933db4fcd9 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x174fcd9)
#18 0x00005693401cc52b clang::FrontendAction::Execute() (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x3dcc52b)
#19 0x000056934011e9e4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x3d1e9e4)
#20 0x0000569340252f2d clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x3e52f2d)
#21 0x0000569340ebe88e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm/19/bin/clang+0x1288e)
#22 0x0000569340ebb21b (/usr/lib/llvm/19/bin/clang+0xf21b)
#23 0x000056933fd0aaf9 (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x390aaf9)
#24 0x0000569338406f38 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm/19/bin/../lib64/libLLVM.so.19.0git0b9f2847+0x2c06f38)
#25 0x000056933fd0a6f9 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x390a6f9)
#26 0x000056933fcc6811 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x38c6811)
#27 0x000056933fcc6b0e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x38c6b0e)
#28 0x000056933fce853c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/lib/llvm/19/bin/../lib64/libclang-cpp.so.19.0git0b9f2847+0x38e853c)
#29 0x0000569340eba805 clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm/19/bin/clang+0xe805)
#30 0x0000569340ecb323 main (/usr/lib/llvm/19/bin/clang+0x1f323)
#31 0x0000569335244df7 (/usr/lib64/libc.so.6+0x25df7)
#32 0x0000569335244eb5 __libc_start_main (/usr/lib64/libc.so.6+0x25eb5)
#33 0x0000569340eb8831 _start (/usr/lib/llvm/19/bin/clang+0xc831)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 19.0.0git0b9f2847
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/19/bin
Configuration file: /etc/clang/x86_64-pc-linux-gnu-clang.cfg
clang: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/tmp/portage/dev-qt/qtwebengine-6.9999/temp/scrypt-d31f80.c
clang: note: diagnostic msg: /var/tmp/portage/dev-qt/qtwebengine-6.9999/temp/scrypt-d31f80.sh
clang: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEWltz4jry_zTOi8qULXMxD3kgXDLsEsg_kDP73xdKltugjS35SDIJ8-m3JJtgkcxtZ3LO1FTiqKXuX7dafbFFlGI7DnDt9W683uSKVHov5LXeV0mSw1Ui0uP15z1wRLSGotSM75AWKKlYnqLxXoqCVYWHBwolQjK-UypHHo4zIZ-QyJAogSuVe3iInpneI68f-AWRdO9Fky_8ALLr9QMPj1GlDGeaE77zwyHSsuJPZpxwBFIKiQSllVQdNPfwoHgXzZ_6GRLgO8bBrHzeM7pHlQKFCDrhOSFGIcYd9GiF3gLXQqAF49VLjVLvAeX5oUA7pmsoKGcHQGAFdbxg4gWj-udmzxQSPD8iBVAog8Yi_Ya6J7lviJHXDxDhqUNRT8ecPIFPDi-9EJsZz0aXjHHooHFtrxiRXAlLUJbyLelt9LciTUSuUc74U72GKFQwzgqSG3MZ67-QoszBEOaIiipPEZVANJhtllBKkVYUSFJPERnSIiVHDw-9aIT2WpfKi0Yennl4tquldYTceXj2xcOzdEPVvhdy0gZ1b7lSUApSpEQlKZj9JnQPr7bv3Sgqj6XufGGl15t4OL4QxYwHd6goPDyrFEi_5lAA18rDs4zlYH6H_RAHUTf08KzFEA_beIyH1v_tnxnRJK-d0qhYeyfjKCH0CXhqxsaEc6ERFEyjcn9UEnaIivKIGFdaVlQzwRtdF9PReopUlZi5BCXVDkkohdTGk76hk3HP5pdfSvEfoNrDM6ZUZfWybsQ4zasUrDtTSdTeYtSSUHtAyrd2rk9ciohSgjKiIUWy4khRyUrd2H6tCX1CaVWUBpkdCjrI_ruXYidJgYjcVbWloxGyGyANVpacgYdDD88Sxj08s4ce-Xd3E-TfzdBeKKOKSP7j4ZneM5luSyL10cw_hZiL52brRCdF_uRxPd0-TqZ_NI-jx4eRF03C5s_Vv1fLafP3ajabj-ejxfbmcb6YIH-yWa0W_5xvtv-3Qf5kO5svptvVbLaebrY3883aiyb9riEsRg-3U0tdrx4fxlNnrN89jy5X28fl5_lyst2MbhbTtZl4u3xsL5vfjO_vt59GD5Ppcr683d6tJgbe-4TtcrW0fCfTm8db8_DHaHH7MF8a8JP_X47u5uPtaLlcbUab-Wq53k6XRu7EiyYB8ic3q4f58na9Xmznd_eL6d10Wc8zQM60xfzm_p_zrTN_tFisPm_H__rX9uFxuZnfTR3qcrVdG07j7Xw538xHi_m_pw_GvvfTpaGv70aLBfLnzc7ugCN_3ul4ePbej1YY9_ud4XBoPEVJ6uFZJNOTK9BTIP9tnL7pbfWq04HyMy78FHLQ4PMqz_1SMK5B-nQP9EnVdJYC1_Wj0pJR7ZOcERv5_UyZQ2QOrgaqhUT-Zy78ij9x8cz90_G5GNVasqTSoNzxZyI54ztflCas1DS240JC-mZNKSEFkyDSGh7LGEhfVFqxFPys4vTMQ0Ge-XV54AosJdkVpNGy4s-Mp742CaAZIurIjVG5qNQb-v18jPxS7yWQFPkZFbmQfsrIjgulGTVTCpA78Eme-1RwpQnXCvmFOXqFUhCh15zGiTZZ2efCp4QLzijJjYoZe7GyRMG0n0lSwGmDkL8LkJ8dmGIJy5k-etFkz9LUeOTnPZAUpL8_7hhwQP5ns218Z1AcQKraMJpUWuRiZ2WJA8iclD4VRUmkWULy_GSsSkHqH4hkNjfaQerhGw_fhKHPiZTi2fpCa3ZSaV-BvlhVMJUDSQ0Uxs2ukfMmFUwZj_IzBnnqM840Izn7AlI5jEtirGANYN1AkYQh_3MuROkTTvKjYq8LOEBq_MPYi5PcT4HmRLZkplBKoCY5tGlmPfCqOBnDmC1lhkJy1ylr_7H-WrAv8IapKbI04w2ghOlauZMzuPvhLtV7pnxKSl3Jhi_jB5Kz1BdZpkCLrB495MSHFw38zKV2SV-RDPTRl5CBBE7Bl6AryZG_wsjPUqKJr4A2CmenE9Mes0Zkf1ZwGvQ5KU5noyB674OUXCBf6dSLJjQMkU_RXxfEbK4UHp7BoTznTop88Supty4EwqYQ8KIxiMyLpqgkUoFERCPgqSkPTeVVT8bN5LFIAe2AQ-1INTFqiA8VN9ENlUQp5OHB7BSj7s3AHeFkB9LDAyQ4KkRa5aYuHfzt1jQYakW6nTc63Aul_YcRKhVUqWgXhQheSlI7pZnc6PUalz088LpBLeMmF_Tpjr2YMSsIeTgKUPASBEHQ6w-jKO5CD_qx7WRMqRaN1FHVD_eScW0LuU1dDcbnSZI8b4XSEkjh4b6pCBnXpoHzcPzdWs4aOWdJv1v_Xiz-uOso0QmHnWDHdJAMMxx3Bx6-CV4wtfheq22jQHihQBSl-D0FHiq-ZjtO8k-EpzlIZcF9CEYDwcGIXYxBPxvCBwi2fB3B0RvBveRjBPcSR3DXFZxmveQjBFu-juBeS3A3gAQyGv2QYNtTWLYhzmjkMO272oSU9KKWj9Xt19a2edu6zWsfj82z6a9tMmqORyJE_jG-Z6E52AeX2Idh_0MED8O-IzhuCyYQURr8fo17fcvXETx0NKZkGKVha7c2RO5Az00InfNM1IO5eAY5FuXR2bk7QveMg53r4ZHZuks-D7BjSoNlddrjkdlb-_zb9Y26Vp3z-wYchW4Ij5MAcPb7BQeWryPYDb3DLMmSdu5orHfKvyb9Nuel4it-GnYMfh7sf8T5iEKL0VHCjc39GOKs7S2ze4P7VDX8vfAxWHQOfDfC94dxgKMfgH9nCx_X2ZuhD4JukTnQuxeWz_pJO3PnsCP02FQfZyXmRZm_KvJXKmDxOQq0c02UBTDsddP6hXQNaFowfVO_41tVuqy0h-MWeXLuYafNO2ibHVpTPtkGcw2mfV2Vdb_QTiStqaYmvgX-nVl10PrOpAXhu_emnE29tn3uA2Tu8GkHRhcMGyOMmsPRXjLnWlaKHeABsjHX91p60fhMPmRNzJixHNZHpaHwoqlhYXshQ6lbp215sdIUpeWzZBq2p9K0tSiFjFS53tavZL6zMJo2Mt-qNBZcVQXIJuj_L15Xf8GgZfmNitJ4luN6TkWS9UKIg_634NXeZCvfjSRc5bZxeuTswidH681YcA0v-hfO0Xc1ikIL2NHIqVPSpJvRdNjW6N60haP1xsW7hoI4RdWvFVffRR4OLDAHeeyUnCGlPZy0kc-kseir-9eh4QVopeEXepDvGzm1SByoQxdqCEPoukGkKFluqhmlCafggD0d3_jrun2kz6QWbVsdHDjq4B7OsBuAa-BnrQ6CkrdKvNH6Aw9zBBalo0Z42bPEMSBKw21BmJviRlKSowm70ZjuiTwXnE18csbwGB0ES39Cm3YPFMfggMQXIBMc_lhHd2aa4dBxR-wUL1kaEJJ9lNmHlrkjvfumOY7a5etYErV_ACoOII-noPj6KoFkkLvNwumdy1ba_TGmr3UZ2t35iG7PQnZ06l1atJ85UTSV7HBKB-NxOBZFQXh6GZPedbjX3Fl_NiC5kzXPFcFrtnxdsN3Sl5cwrP9IiGJ0W78ob9zYmWwGtloSptWJfMGO5Lk5xkK26GbK6Bz9f7ED-yF36l-4k5uSKe3HYfhV09uIQ97kg9N-OOHpYqGZ8LXK7RtTRxfvHj7SOrFV3rHO4NI6SQA_a51_iER93TT_EMmCKf21irUgef6H_XRWdxBnfy4JM65k31n-uDUbp_srbZoEbkiOXZtC3Ivo1_BPWs9OWnwnH35tL_5Cm35UGoitkRwrDi8SG4mDXo34lH9PWthQNXr7IkiIvMkPLef72YwLcdBr44rc4gZoYvKlQfSzqTyL3MbbfWXew91umg0umb6a1JiyX-ebXpoNHEb4khEkPbTdmmVbpYnU2_fwvssaElf76GJX4jgKUc30J_WncXQORSdPPN_Gqe-SZE0di2jjkxlhOaT1DSd4YWZnU0CDwAivFCD_gLRACgCxVlXZloJOnxyNI7quWN8Ds624gfAS97f9rl9SP2e8evF3vDpdFbMfvQuRQm4mlkKxl5pka9U8h3TC5A_cmbFrxoJnbFc1X2btZ7V6JWh6NtnsHTi-pXVotrswIxfaMjl_j0eFspTTVv7C__YNr_rW02izGY0_oc2nKZqtFovV5_nyFs3mi-kabVZ2-ObxFj1M71cPm9e7Ru_cDvNwrMwR_erNpdcJEpCtNiBFRL-y_BH98exg4sVMF6WHZ6WQmuzAw7MUDv6f-mtfFjUU56-CfhqFWRx06N8iVe1_drN_15afrs9dpddROoyG5AquwwEOokGMB_hqfx10-xnpBkmv14vSIRmkSZYmvcEw6gVhMiTJFbvGAe4Gg2AQxr0wxJ0gHEQB6Q26QTTs9_tdrxtAQVjeMSelI-Tuyt6Eux4Ohv34KicJ5MrecMWYwzOyRA9jrze5ktf2Dl1S7ZTXDXKmtDpz0UzncP16K9XDcXMxddhcqLMR5fKS5Q_eALyqZH79v1_xq3U7XOP_BgAA__90A0hr">