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

    <tr>
        <th>Summary</th>
        <td>
            Compiler Crash with ACLE - Aarch64 Apple Darwin targets
        </td>
    </tr>

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

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

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

<pre>
    Hi,

I am trying to use Arm C Language Extensions to write SIMD code for Aarch64. When I try to compile my code for Apple Aarch64 silicon targets (M4), for certain type of function calls I'm seeing compiler crashes. Below is a minimal reproducible example where I return a streaming SVE register from a function:

`
#include "arm_sme.h"

svfloat32_t foo() __arm_streaming { return svdup_n_f32_x(svptrue_b32(), 1.0); }

int main(int argc, const char **argv) __arm_streaming {
  svfloat32_t x = foo();
  return 0;
}
`

Below is the stack trace:
`
Stack dump:
0.      Program arguments: /Users/acv-ci/llvm-install/bin/clang-21 -cc1 -triple arm64-apple-macosx15.0.0 -Wundef-prefix=TARGET_OS_ -Werror=undef-prefix -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -dumpdir tmp- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name tmp.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -funwind-tables=1 -fcompatibility-qualified-id-block-type-checking -fvisibility-inlines-hidden-static-local-var -fbuiltin-headers-in-system-modules -fdefine-target-os-macros -enable-tlsdesc -target-cpu apple-m1 -target-feature +zcm -target-feature +zcz -target-feature +v8.7a -target-feature +bf16 -target-feature +bti -target-feature +ccidx -target-feature +complxnum -target-feature +crc -target-feature +dit -target-feature +dotprod -target-feature +flagm -target-feature +fp-armv8 -target-feature +fp16fml -target-feature +fullfp16 -target-feature +i8mm -target-feature +jsconv -target-feature +lse -target-feature +neon -target-feature +pauth -target-feature +predres -target-feature +ras -target-feature +rcpc -target-feature +rdm -target-feature +sb -target-feature +sme -target-feature +sme2 -target-feature +spe-eef -target-feature +ssbs -target-feature +wfxt -target-abi darwinpcs -debugger-tuning=lldb -fdebug-compilation-dir=/Users/acv-ci/workspace -target-linker-version 1115.7.3 -fcoverage-compilation-dir=/Users/acv-ci/workspace -resource-dir /Users/acv-ci/llvm-install/lib/clang/21 -internal-isystem /usr/local/include -internal-isystem /Users/acv-ci/llvm-install/lib/clang/21/include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fmax-type-align=16 -fcolor-diagnostics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /var/folders/88/_98dwtn93kx91fjq74mh24mh0000gn/T/tmp-7e1209.o -x c++ ../tmp.cpp
1.      <eof> parser at end of file
2.      Code generation
3. Running pass 'Function Pass Manager' on module '../tmp.cpp'.
4. Running pass 'AArch64 Assembly Printer' on function '@_Z3foov'
 #0 0x0000000101f4dd2c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/Users/acv-ci/llvm-install/bin/clang-21+0x101235d2c)
 #1 0x0000000101f4bf7c llvm::sys::RunSignalHandlers() (/Users/acv-ci/llvm-install/bin/clang-21+0x101233f7c)
 #2 0x0000000101f4e398 SignalHandler(int) (/Users/acv-ci/llvm-install/bin/clang-21+0x101236398)
 #3 0x0000000191222e04 (/usr/lib/system/libsystem_platform.dylib+0x180482e04)
 #4 0x0000000102b10cf8 llvm::AsmPrinter::emitFunctionHeader() (/Users/acv-ci/llvm-install/bin/clang-21+0x101df8cf8)
 #5 0x0000000102b10cf8 llvm::AsmPrinter::emitFunctionHeader() (/Users/acv-ci/llvm-install/bin/clang-21+0x101df8cf8)
 #6 0x0000000102b13390 llvm::AsmPrinter::emitFunctionBody() (/Users/acv-ci/llvm-install/bin/clang-21+0x101dfb390)
 #7 0x0000000100dae744 (anonymous namespace)::AArch64AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (/Users/acv-ci/llvm-install/bin/clang-21+0x100096744)
 #8 0x00000001013d3074 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/Users/acv-ci/llvm-install/bin/clang-21+0x1006bb074)
 #9 0x000000010177cf3c llvm::FPPassManager::runOnFunction(llvm::Function&) (/Users/acv-ci/llvm-install/bin/clang-21+0x100a64f3c)
#10 0x0000000101783b40 llvm::FPPassManager::runOnModule(llvm::Module&) (/Users/acv-ci/llvm-install/bin/clang-21+0x100a6bb40)
#11 0x000000010177d980 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/Users/acv-ci/llvm-install/bin/clang-21+0x100a65980)
#12 0x000000010232ae8c clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/Users/acv-ci/llvm-install/bin/clang-21+0x101612e8c)
#13 0x0000000102646b28 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/Users/acv-ci/llvm-install/bin/clang-21+0x10192eb28)
#14 0x00000001033dc8d8 clang::ParseAST(clang::Sema&, bool, bool) (/Users/acv-ci/llvm-install/bin/clang-21+0x1026c48d8)
#15 0x000000010294607c clang::FrontendAction::Execute() (/Users/acv-ci/llvm-install/bin/clang-21+0x101c2e07c)
#16 0x00000001028d94d8 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/Users/acv-ci/llvm-install/bin/clang-21+0x101bc14d8)
#17 0x00000001029b69e8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/Users/acv-ci/llvm-install/bin/clang-21+0x101c9e9e8)
#18 0x0000000100d217e0 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/Users/acv-ci/llvm-install/bin/clang-21+0x1000097e0)
#19 0x0000000100d1f2f8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (/Users/acv-ci/llvm-install/bin/clang-21+0x1000072f8)
#20 0x0000000100d1e6c4 clang_main(int, char**, llvm::ToolContext const&) (/Users/acv-ci/llvm-install/bin/clang-21+0x1000066c4)
#21 0x0000000100d29b40 main (/Users/acv-ci/llvm-install/bin/clang-21+0x100011b40)
#22 0x0000000190e6c274 
clang++: error: unable to execute command: Segmentation fault: 11
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project.git 46b1543dc04970719caab0d4f9f65699fea6adbc)
Target: arm64-apple-darwin24.2.0
Thread model: posix
InstalledDir: /Users/acv-ci/llvm-install/bin
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/folders/88/_98dwtn93kx91fjq74mh24mh0000gn/T/tmp-b8cc74.cpp
clang++: note: diagnostic msg: /var/folders/88/_98dwtn93kx91fjq74mh24mh0000gn/T/tmp-b8cc74.sh
clang++: note: diagnostic msg: Crash backtrace is located in
clang++: note: diagnostic msg: /Users/acv-ci/Library/Logs/DiagnosticReports/clang-21_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang++: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang++: note: diagnostic msg: 
`

Note this goes away if I declare the register in main and pass by reference. There are also similar compiler crashes on passing const registers by value instead of reference.

Would appreciate any help in fixing this. Thank you!
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWlFz27ay_jX0yw40JEiL5IMfaMlqPBOfZGK3md4XDQgsJdQgwAKgLJ1ffwekZEmO2pNc53aOp9NQi-Xiw2L32xUg5pxcacSb6Po2up5fsd6vjb3xzPZuneXxVW3E7uaDjOgsiqsoru6BteDtTuoVeAO9Q6hsCzP4yPSqZyuEu61H7aTRLii8WOkRHu8f5sCNQGiMhYpZvp5mE_i6Rg33wVxQ5abtpEJodyeqXafw8AI4qSQ3GjyzK_QOIlo8ZBEtIzobtDlaz6QGv-sQTANNr7mXRgNnSjm4j2jegkMM4PezWeCWuTW6CdyiMi8gHTBopZYtU2Cxs0b0XNYKAbesDWhe1mgR7sGi760GBs5bZG0w-vjbHVhcSefRQmNNC-wVRJRWowujaRz-T1OpueoFQkQps-3StThZR5SOWm7TKMN8SpceGmMiWkS0hOVy0HydMMpvDzjcRvTdUi-blC63ES3cpvO2x2Wd0vHl4KVkEoen9BaifD5OJLWHlkkd0SI8MrviQZMb7TzwNbMQ0SqiFbOrzV9AiOIK4BTwFqJ0foQdpaPKHmk8ft4jGL0RV6_u92sE5xl_Bm8Zx73fBrXHQSz6thul8QSGv8_WrCxrA_i-Re1dlFYQ0cWvDq2L6ILxDeEyogulNi2R2nmmVEQXdVj2giumV4QmQDhPgHgrwzYz204zwkIAkpZx47bJ9SSexEC-9lpgQzqLjdxG6fyp-vLL3dPy0-MSyFe01tgonZ_qAPkqsLPImUdBTP0HJ9Ix0ruQL8dX_kYHW-mDEEhYvJAWfNsRIEI6ViskjUUEwhUyS5jzpMbGWCQ148-oxVFvWP8GrWwk2kHMmRVkw1SPRLMWHZAQDKSRahSEiSa864C0FpXhLMQyaY1ABZ3kQDrJicINKqBA2sayFklnpPYY1qSNJgpZA6RpOsKNDnvqo3RuNJBGG2JNr4XUK9IyvwbS9PpFakF8gOuidJ4AaUKuMi9rqaTfkT97pgJ-QaQgtTL8mYSEJ3yN_DlEJGk20h20pVZSoyNrKQRq4jzzAbDhTJENs0CaupfKS03WyARaR6Qmbuc8tmGVvQouaQQ2UiMZiYcYFyLCGgcE9eBXr5xAx-Ggwbse9qGTvAobZL63Id9v_83by-J_XxJviknOLg3UTTK9KPfykphzKbYXB0zbqa3uL4Lill8SC-kvio0PnHlpqFFsdXGGpiPMtpvi8lgybVp1cahXKgxfGpNFe3GqPxw3enNpRDm8JNYYIvVbeRdK5cUBi8KGoPl2yLLLYt5d9LAVF5fg6ovS9iJ81yK9KO-QIDYXh1x9EeZLsz3uOKslCGZfpO64AyKw7lcrtMT3WupVlM6VEvWQOHW_ImOxHalDyMALl8j5xdhn1zF-XIiS-hltIKzQUECSJNeTfJIOlLBBy1b446YtOtNbjkH7e2qEkvWhRkR0EarEwG2aKSJHnghWemeDbqCViC4Olf2i6o9OeNEebsMD_xbCq2pzUk4GtgLSDJWGKNlKD0kJZCizpLPGI_fGQiDbgVED56EObdgwkxZ4oNrQL44hEYrO2OqQlTI1U0R4Yx15kX5NmMdtIIhmpXt-2MAonWcTOgmzuGfZESPsyNqBc1dtKBJ8uyW45dj5oYMkzdmHlm1HrmdKroK5kPwNN8pYIiRbaeO8DPE4Xy5_mc2WH6rf7pbzr9WXBV3OFvfL6vFhLCkmOGzDgsMao8S4IUUR0cWyLMSL12X6vC2T5o8_86xd06xdx3Ecr0K38BTRRSi-OSY0LicGyBZ4RG8jeguTyTgYCmYUV8m-PYnSGZomSu-gY9ahBeYhlOXQokqFUVzRveYsNL4r1GiHiI7iKp3Al16HpIKOudDz5otDW_s5CB6YZiu0Ec3BaBhLVtA6w0LzSRRX2be2qmpsrSvnsK3VDj7bsXSP5l476IjmURYv_ydtjNmED3FosNIY4m08_iVx0mRCUA4hnkN_llZu58aHwerQvT0NPR0tjkqWvSzN2E9GdBp6T6l96DSH5vEHe7iI3sbbJE5oei0oD73nCDR5A7Ru8otAv_T6MUS4-sC0UMPMxfuxpE1-goW-wYJpWcDZrGMv_v55p2lZHOdNT-YtE0opxtl-gj19DcwzMsr4cXxedor5xth2InaDTrBfxFkRLBztZ6fronUS86Y48XHl2kNwDZ9DT3sI5Q9D7_UTfC2agjcna77-L8Q0fYMpTcv4OzHdGrH7KYjqtIyPiPJTRLFgmGdDZDBt9K41vYPhu0E3pG65hzkyx1u0ttef9APja6nxgPos3b8Zm75zNXFcTvPsJA6Ls_xKRRrnGfwlgECiJ9AvYv6JYKd1HecnYMszsHnOm_SUmBafA74Dx_9zMNk0a9I9ZwX6PCf6vEjrLP4OmA9DOTrf_73oJ0Cs6yw-QkzeeFKUxSlEhSvGd_tydAR733bqFfD_F9DrsjgBesb_NKUMCw5jv_ea8LfjN_dPve96H9HiZHi2P7m6D9NqjvuieaYh8BfUn8a-aT9-XNijt1KvvmBzLj6st3pjbQ-l2ofW6Sv32tveyQ1-wWam_Wdvo3R2HN40-8xaSIWPY1lJ74IJ58U4slwm40Ov5Z89Lrs3JkJz0A2HiMtDi3DpbYEN65VfClTo8T9YSO_2KL5d5Mxo17eB9av3cuw0oVicZFB6tuvTbFrT4u8QDMKxH3iyTLvxO86vWr4Jh-rxaWa0x61_f6gmJcWaFkfQZyU9TQUvxBnoz6GfrR6fziE9Ysv2UVcbo47_vgscnfKsECfgzmt7mU3j_CyPFjb45TVyB9ndFnnv8SfUUE4xzk_297yqF6LMzl31Tdqe4jkkV_HX8N-_uTVPslP_5ef-q6clniHeYzsC3-yP__4TH707d3iJJZ4gLc77E5rkGAPnyXJ_cH3SPFnLdoHa0tlwdj0cYwdE-4w_k9EZbIwU7wccepAcTyi-PAecNLQp4ODPWfI0ZMMJ7MeWKfXb8CV8LEgX0L9h8WBjn_gHvfd3UnFOm6PfafxmGTjl2Rghy-OVwcGv4zXBPwFyOuXZEWTyJjjK0JoEeO-bJUlOuwt6WrTLGKec5hlEcbU_pwlf_6O0gv1ZfgX9cDAM3gCO2w7ctC3ToXLBI65a1H5IJhgqV5Amyd_YG-TQ7DnhYAwaJhUKEP0w1XA4o8K6e4dANoMMEeRJ6paHSeBwrEaTSTyJV9KHF9fed0PVpouILlbSr_t6wk2799vBfZ01fyD3k_BWNq2T6ywVPM7KPM6TkjNWxyJrymZ6PS3LBtmUiXrPlU_D0V5Y0ukNy3iWSLMJncRBaW2RCRiuGYJqZ5zcRnF1P-4airm0P3DH841btQldQgXHQyNo3WqwGFeHQP4__TfcZX3-eFc93kH19FTNPsDThztYfPr48dPX-3_9Aov7j3eP8PRpEN_--gt8ufv86cvTeKH1ebhx5OgcChjPKSNauJAyYbeZc4ZL5lGA7TU4bmXnXxUswnBBgwKYH-19_7LfexxWF5zn2f7g6x-f1q1_ZNaZZW4NNePPww0jSPfquB8Mlgvh91HWltldeDKrMDJ_fe0LdsZ6d8I2yyid_f7777-Thwcyn5MPHx4eHh-j9C7I18b58LU7Su8mwyX1jyEr-NoYh8N16vj-cNgIfs0CF1uLrjNaDLf0O9PvL8JP-OF7s-Vwgfsv44N16WBl0AF7YTuQDdyDQK5CcAYkr7fjUo8cHcJ6OIysd2CxQYua4wSehkv28BZTLhBbK9VQEM9v7cHo4e3xRl87_zrBYHC414TABYFNTHMyw4j5q-mVANZ1Foe8AqZ3sEbVBXyN3A4_c1hLFwAx_RwcFdHkStykokxLdoU3SZ5Nk6JMsvxqfZPE17XI8rxJKE3ilMXJtUhZKKTimpUFvZI3NKbX8XVMk1BT8okoOKZZgnWdJ2XN0yiLsWVSTQKLTYxdXUnnerxJ0oJO4yvFalRu-LUGpRpfYBiNKI2u51f2ZqC-ul-5KIuVdN4dzXjpFd4cerV9CrxIv4Zq9vEOyOuPLMafXMwHPj780uKqt-rmxypDRBcDthDte_CbG_q_AQAA__8Tcd59">