<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62251>62251</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[vectorization] gcc generate better code base on predicate SVE
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vfdff
</td>
</tr>
</table>
<pre>
* test: https://gcc.godbolt.org/z/KhzPM7fsd
* gcc: generate SVE for kernel loop
```
.L4:
ld2d {z0.d - z1.d}, p0/z, [x1]
sub z0.d, z1.d, z0.d
st1d z0.d, p0, [x2, x0, lsl 3]
add x1, x1, x9
add x0, x0, x10
whilelo p0.d, w0, w4
b.any .L4
```
* llvm: don't generate vectorization at all even with -mllvm -enable-pre=false, so it is different from issue #53443
```
.LBB0_5: // Parent Loop BB0_3 Depth=1
add x13, x9, x10, lsl #3
add x15, x10, #2
ldp x13, x14, [x13]
sub x13, x14, x13
add x14, x10, #3
mov x10, x15
cmp x14, x11
str x13, [x9, x12]
add x12, x12, #8
b.lt .LBB0_5
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVE2vqzYQ_TVmMwqyx0DCgkXyaDa9lZ5UqdvK4CHQOhhh5-Pl11cG-hJye1V0dYnxOceHmcMo57pTT1Sw9MDSMlIX39qxuDa6aaLK6h8Fwz14cp7JPbTeD47JPcMjw-OpruOT1ZU1PrbjieHxwfD4a_v4_tu2cZrxkvF9oJ_qOrBP1NOoPMHvf_wCjR3hbxp7MmCsHWYwAMv48rc8iD-ScOCymi-jUYc72x4ePNawgYeINduWDL_BwGcj34Clh7tgabmQ3aWa2IEStidOuIf1St95oV-RQXKWw_DjPi2NMyCf6kpPFLiLCTL_z9e6PzH8KXMXfA26tZ0hY2FYDr9NsFuyRlWx6n_AXJ7_Ll0ovDHXc6i8tj3DrX924Eq1t2P3UL6zPSgPyhigK_Vw63wLm3NgwoZ6VRnaDCMxWTbKOApenIXOQ-dAd01DI_UemtGeoXPuQsBQpjJJ5OJibSr-OBz4n2nw9D_XHDH4rib9D2sHCFQJJQ2-ZbIUX9RWyKX0S3GXVjGU8lOr0hcQQ4nvMRtWkiL5maqXxv-bmUv1BgyrLywm63PfcGd7XXBLQtJlvz4PawHxntvx1XBwupQBP_kNZsLzZXs2snsPmfEwhWzu2rqjkS6kzmWuIipEthN5JvNtFrWFUHkltBLEESnVPGkyLmpdYZ7xnUAedQVylDxBzhOBaRrXuzxPs91uiw2vm3rLEk5n1Zk4xDDMlmjKVpEhpiIyqiLjpomF2NNtDh7D8JLRWATOprqcHEu46Zx3TxXfeTONulX-WVqGEfX8OirynkaorSaolCOwPQwj6a5epld0GU3xNgw7316quLZnhsfpu5tvm2G0f1HtGR4nm47hcXqNfwIAAP__YvJ0HA">