<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/86743>86743</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm generates SVE code with only +sme and no streaming mode enabled
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
aemerson
</td>
</tr>
</table>
<pre>
```
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-darwin"
define i32 @div_crash(<16 x i32> %0, ptr %1) #0 {
%3 = sdiv <16 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, %0
%4 = trunc <16 x i32> %3 to <16 x i8>
store <16 x i8> %4, ptr %1, align 1
ret i32 0
}
attributes #0 = { "target-cpu"="generic" }
```
Run:
```
llc -mattr=+sme,+neon
```
on that and you'll get the following code:
```
.section __TEXT,__text,regular,pure_instructions
.globl _div_crash ; -- Begin function div_crash
.p2align 2
_div_crash: ; @div_crash
.cfi_startproc
; %bb.0:
ptrue p0.s, vl4
movi.4s v4, #1
; kill: def $q3 killed $q3 def $z3
; kill: def $q2 killed $q2 def $z2
; kill: def $q1 killed $q1 def $z1
; kill: def $q0 killed $q0 def $z0
mov x8, x0
mov w0, wzr
sdivr z1.s, p0/m, z1.s, z4.s
sdivr z0.s, p0/m, z0.s, z4.s
sdivr z3.s, p0/m, z3.s, z4.s
uzp1.8h v0, v0, v1
sdivr z2.s, p0/m, z2.s, z4.s
uzp1.8h v2, v2, v3
uzp1.16b v0, v0, v2
str q0, [x8]
ret
.cfi_endproc
```
without `+sve` there's no guarantee that any of these SVE instructions are legal to execute, since there's no attributes enabling streaming mode.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVt2O6jgMfhpzExWlTlvoBRcDDA-w52i1dyhtTclumvQkKTDz9KsUhp_h7GilsxdboTQ49mfHdr5Ueq9aQ7SAfAn5eiKHsLduIakj562ZVLZ5W0DBLz--Bv4SpGspsEYGqeWbHQIDsWaASEkH4sUmqshAvBRZolKcg3hJcZ4YgWfZtyhDfIAKTvWaPmCk64oskX2vKWmkOypz1T-PDe2UIaYEMsh4ow7b2km_h-hslRbsFJdAvDLAnAOuWB9cnKeAJQMUnMFseYZiUS5Gz75RB_YZQKyilzSC_B8m4jXOx23dws_G8IMbTP0Uf9xcsDfxPEJcTH2wjh6XRrjHjK2Y1Ko1LL2YOQpjMJcIYLa-L40MwalqCOQviY4lnS1jWc-1Tup-iOUUa0BsyZBTNSCyG85js53H3wYD4uWnClrXLOmi3xFz6TsCXAEuDVnzUwtrWNjLwKRp2JsdAGdas7EN98R2Vmt7VKZltW3on5wCL6ee6qCii3K7_f76x3fA1XYb6BQAV47aQUsHuOoHR1tlfHDDqO5vAK22lY7m1w5mIJYsSdiSWmXYbjCjCbt1-NW2x7EqwMvLybiBgHhhXz3Rx8OxuYLWO7X1QbrQO1tfxFEZ86qa8lsueNkHN1B886mPLXLQ2XWtswc1zTzw8pCdu1V89M6_fKLTv5TWcScN7Rhg9kOMEmoufy7id_HryHiPjFdk_HXk9B45vSL_B9ng98j8iszviwC8PM1jAU6fxceRFI_v7iqP3OeAl-_puZ49B9x0cfYhec-m_lmdP6nzr9TFk7r4ifrw3qfT-T420BjoZUyf8fAJD7_GwxHpPIpHhbSoPnvEm8cQ_f0YxZAvT3PIr7RXOgqPZ4hMc3eCHpnjqMJ-vDILHsnqQFDwSDyOAGeeGcvaQTppAtEHS70xu4sqnti331_ZPZkw6YhpaqWOLE8nqocQ6Y95ZWp6xL2jZjKy0pHjfHAkuzjrbEPTSbMQTSlKOaFFOkvTrEyR42S_ELs0xXJOxXwnsnyXilwiz2dNXsxLnFc0UQvkmHGBBWIqMJ3mRbmTdcUFlTnPMgEZp04qPdX60E2tayfK-4EW82KWiYmWFWk_foQgGjqycTHeE_l64hbRJqmG1kPGtfLB31CCCppGBTbeJjLuL6Yp0jeL2WbW6Dd2vhlGzjf2077P-aBmMji92IfQ-8h1uAHctCrsh2pa2w5wE71cXknv7J9UB8DNGKoH3Ixb-TsAAP__U8CBfQ">