tree c6276b2831074e76fd29e903dba5b82ec9e87141
parent a5d8b7aeb6b360f20eec88715081ecfdb286b83d
author Ricardo Jesus <rjj@nvidia.com> 1740578195 +0000
committer GitHub <noreply@github.com> 1740578195 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJnvx2TCRC1aQ7uu5UhlAAAztcQAFH2rXpzE3VeEFpmtVu3tY0V
 GzWj5WLQh0fF/2M75NWh4VWsq4tHC2Z/0/efH2qiIioYUABzwy1y/Hh2aEXOga7G
 ccHxyRVaG12c5+53asAQbEGnt5F5v2V+FUZt2Fmwlmf8LXzgqMwOU78BFEbPJPZ1
 boyeowiAlVjc4O5icZdccRb6WlQd4lN/tQ7F3MLbO36rHSlGflnFH+YZrvWObSKq
 0aEIED/o3s/zuXYGBj0Rmq9AAQwXaElw+fnl1HGFOieVYJzuKZKXGHJaNijqjzL3
 uhwW6Ynx0cB9YRDKeVEe2Rv2M33lPHK5+JJzupbq7w13II8st9KXcZ44GwqQH9Q+
 jxdD+JXev2vfGy91HzORi/D7Png1hc3OwowlWOfOiRVMThb8wrgonQXb6dIA/4gg
 q4O/48X+BeiQfPOIY3bRAtBhz3NmbyONMLMxtrrUI8qgQgrJMUgXgV1dp04ovhuf
 OlvUizeOavQPHF1knhsSh9hYps5SkuMPcd8L+JIVLB2/RnQwC6VciaJco3v8tBMm
 C8RpsoJG2tDdosFMGOfjoyNfqIfdHIaqPIkdOQcwrmkwdPcRRzwcVs1o5MDTpHsl
 YkoYVgowr5tVojI648JYD4jgNYJakRFmBS8Q9iOvdMD0VMlhbDeBfeSXuOU+he4I
 9UkcN7D9W9a/Uvr4yLHk
 =+7f8
 -----END PGP SIGNATURE-----
 

[AArch64][SVE] Lower unpredicated loads/stores as LDR/STR. (#127837)

Currently, given:
```cpp
svuint8_t foo(uint8_t *x) {
  return svld1(svptrue_b8(), x);
}
```
We generate:
```gas
foo:
  ptrue   p0.b
  ld1b    { z0.b }, p0/z, [x0]
  ret
```
However, on little-endian and with unaligned memory accesses allowed, we
could instead be using LDR as follows:
```gas
foo:
  ldr     z0, [x0]
  ret
```

The second form avoids the predicate dependency.
Likewise for other types and stores.