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

    <tr>
        <th>Summary</th>
        <td>
            "Expected SME to be available" assert fails on memcpy
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            crash-on-valid
      </td>
    </tr>

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

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

<pre>
    Trying to produce the simplest possible testcase that emits __arm_sc_memcpy hits an assertion: https://godbolt.org/z/89GTdMYf5

```
; RUN: llc -mtriple=arm64-apple-darwin < %s | FileCheck %s

@dst = global [512 x i8] zeroinitializer, align 1
@src = global [512 x i8] zeroinitializer, align 1

define void @se_memcpy(i64 noundef %n) "aarch64_pstate_sm_enabled" nounwind {
entry:
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 @dst, ptr nonnull align 1 @src, i64 %n, i1 false)
  ret void
}
```

```
Assertion failed: ((!IsStreaming || I->hasSME()) && "Expected SME to be available"), function getSubtargetImpl, file AArch64TargetMachine.cpp, line 482.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -o - /tmp/assert-aarch64.ll
1.      Running pass 'Pre-ISel Intrinsic Lowering' on module '/tmp/assert-aarch64.ll'.
 #0 0x00000001072fcf04 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/bin/llc+0x1024dcf04)
 #1 0x00000001072fb430 llvm::sys::RunSignalHandlers() (/usr/local/bin/llc+0x1024db430)
 #2 0x00000001072fd598 SignalHandler(int, __siginfo*, void*) (/usr/local/bin/llc+0x1024dd598)
 #3 0x0000000198f4ade4 (/usr/lib/system/libsystem_platform.dylib+0x180482de4)
 #4 0x0000000198f13f70 (/usr/lib/system/libsystem_pthread.dylib+0x18044bf70)
 #5 0x0000000198e20908 (/usr/lib/system/libsystem_c.dylib+0x180358908)
 #6 0x0000000198e1fc1c (/usr/lib/system/libsystem_c.dylib+0x180357c1c)
 #7 0x0000000107f1048c llvm::AArch64TargetMachine::getSubtargetImpl(llvm::Function const&) const (.cold.3) (/usr/local/bin/llc+0x1030f048c)
 #8 0x00000001051d1088 llvm::AArch64TargetMachine::getSubtargetImpl(llvm::Function const&) const (/usr/local/bin/llc+0x1003b1088)
 #9 0x00000001051d1690 llvm::AArch64TargetMachine::getTargetTransformInfo(llvm::Function const&) const (/usr/local/bin/llc+0x1003b1690)
#10 0x0000000106577ab0 llvm::TargetTransformInfoWrapperPass::getTTI(llvm::Function const&) (/usr/local/bin/llc+0x101757ab0)
#11 0x000000010690f2ac (anonymous namespace)::PreISelIntrinsicLowering::lowerIntrinsics(llvm::Module&) const (/usr/local/bin/llc+0x101aef2ac)
#12 0x0000000106910720 (anonymous namespace)::PreISelIntrinsicLoweringLegacyPass::runOnModule(llvm::Module&) (/usr/local/bin/llc+0x101af0720)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0l2-P464Rx18NeTJKhPH_B3ngzW7alW7b1WWrqo8iDNihh8ECvHe5V1-Bs5tke-2lq_4iS7EBf-fDMAxj6pzstRBrlN-h_H5BJ38wdk2tE3pYtIYf1y_2KHUP3sBoDZ-YAH8Q4OQwKuE8jMY52SoBXjjPqAvd1IMYpHew31M77B3bD2Jg4xEOoZFqoM4J66XRKG3g4P3oUNogskVk2xveGuVXxvaIbH8isq3qP73wp390OcJNuAp8unCD0jv4-re_BBWlGCwHb-WoBErvqR2KbEnHUYklp_a71IDSDSCSO0DlBrZSic1BsG-x6aScYe48oPQeemVaqgDld3lC4AfICuX38FNYI7X0kir5U1hENkCV7DUk89vOsk-_jRsuOqkFvBrJIYiJk9cQqWSRgTaT5qILvBqRGhAhlFp2KLL96Dz1Yu-GvdC0VYIjQuL471JzQOUdwo3Q3h6Dl3ED4KlUwKhS79aUeh1Ws73ViMMliwyRavT2jRJm_wTu0KqN1pNSl73OstAbaGfKDcgEOqqcQKSOlq3w0WaYcnn_cTmvH5u3KIGOyjCrtAFEqnglj27nraBDiE1UbsKaPi5R-nCgbvf0EMfUs5sKRIrgrYcfo2BecNg9PYRwbgXQVypV8BgiJI7fQDdpFm32wu-m1lPbC_84jCp2SiWgaaLXX2LPE2UHqcWKjWMYoMIKZhVZIdw8f3lodg_gpnaQHii0Uw9WjMb6YP1D1Et_mNoVMwMi27AWp7_laM0_BfOIbKVzk3CIbIFqDlIzNfF5LzJL3QFayr55S5kItneesm_Ap2GclxyvEK6frektHYDafhqE9u593xhYAiJbP4yIbOfNuTwF10ophJskvP910jq4e6TOASLlsxXLx51Q8Ki9ldpJBl_Md2Gl7hEpwWgYDJ-UCGP_izopAzEgkmLAP_D8S3BJOtbhDKI30galjTu6-ebZSu3jFF_ChBGpzoMs_b43LoZGXPoNSO3nQKgQ2U7OBtcaRhUi21bq6GiGyB3-kWCS8WDzFKyIpMkHojZL8a-Ivk56J3tN1Z-p5kpYNwfgrUaD7Nko-WCU53UFV_IhJei4E_d7J3upO4NIE57j3gq3N9sO6mfb6YXtuuoyykV2rSRbRLbu6LwY5sf5fj8q6jtjhxU_xjFBv8JZRbi4cGh2rZ-kXYlv1PcHKyj_IJ-1XXnhuvxKXhBc4-o2eXYtnOZVjS_8UlwLJx1L2CeFS5aws3B5tdhdgrOKXUTYr5LN3PPv-eliF2zfshgzOqTsIgREvA_QK2YUX6W3BkmKu0B1Zq4umfOEJ7iq_mjm31LitA0cZ8r6I2VR41sp59YXS7ULMf0YN9j_l7WoT3Eb0sxV5ivysqTtJesvcP5u6TgK-0ydO1O_PP6e8ha-pMwDwZnvKg8WNe4IjeFPtdHHwUwONB2EG2M2rt-ytAinw_vh8H42xF4Vnt773BX3Uzw2_mevJlQErjM1uaYOyRR_lvqL6Ck7nt1tJ_1X_Qb6n9hvo-4C14n6rfxZ8HXK67SmC7FOyhzjCqdFujisW46TBLOspaQrSk4LnGdFW9Oiq6qMd-VCrgkmOS6SIklJgdNVm1eEVGmSlm2Sk6xEGRYDlWoVaz5j-0UsLdZJlqV5slC0FcrFDwJCQlEhND9vl1gobRAhsehYGr18pSocOSR8Pth1LFraqXehppTOu7MVL70S698XYqevg1j0uVhFxLJ0MVm1_nzVdJrd65r8KwAA__8A8OoM">