tree 9828414839c39ccda33fd115132cab38e9151c55
parent fd161cf56f4356c38f82a6d68a80236e00bce39d
author Ricardo Jesus <rjj@nvidia.com> 1746517688 +0100
committer GitHub <noreply@github.com> 1746517688 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoGb64CRC1aQ7uu5UhlAAAqroQAAusZg6xZccmoEK7BE9p6aPw
 qNpIltWGhzekoFYm2OOUeCO2f9UuDMtn797GWZBvrr4twJBgb0e9Sjk2WgqkOBRo
 Y0cUXYel6kW2ibuqh9yGjEZLC3e0H1R2xHQRjNHe3N78ZubT0U6e8N0Cnv3Y/xUc
 12TlcJ1GkqHeBwbIkTJWYk+hlp83LIXYDxgGeTjj+DNf/VnJhVRSAAn3JzftHTPd
 hyGAjG1Dfqt22oVd1nv49O45T5mA2pVNXRc9TI62Yn5gVR49encEMB+h8ojAk03q
 Su1fF3/jn2ZN+Ag/ywk6SqtDHpkFTqYSOq7XQbWrLffii8LamNEjE48WcrqaOOml
 G/ZXFkJRP96xDoqhrkP7sIHsgpT1EYOYG46Slvtkc8Nup59ieGyuvLZX5CQ5Rq7H
 2M11/kqzweeWLeETM1k1FrbuJSjxXrFCNmpqRMx8PWoxcqas3ESa0AGU+mtFhWQM
 CPAL0lCIFDar+kmYfhuSSfnwIyz1Rmt8tE3KnGhda/gtf6ifsqtL6iUDnCMP0QY6
 ZS0NibobE2DSt2eCmNIX6gSmDSqYbNc7Ch8Iy852OZCaiXinOSOsuUKIVpI1Iuyz
 nUazJaaCo8GxvXZLyP4u2q/mkpTHx9Se1MxYl0N0y04Fscz1yLRjkwAKtZSzV14H
 Pz8Z0tSkEhzFdJk6p2a8
 =htcy
 -----END PGP SIGNATURE-----
 

[AArch64][SVE] Combine UXT[BHW] intrinsics to AND. (#137956)

This patch combines uxt[bhw] intrinsics to and_u when the governing
predicate is all-true or the passthrough is undef (e.g. in cases of
``unknown'' merging). This improves code gen as the latter can be
emitted as AND immediate instructions.

For example, given:
```cpp
svuint64_t foo(svuint64_t x) {
  return svextb_z(svptrue_b64(), x);
}
```

Currently:
```gas
foo:
  ptrue   p0.d
  movi    v1.2d, #0000000000000000
  uxtb    z0.d, p0/m, z0.d
  ret
```

Becomes:
```gas
foo:
  and     z0.d, z0.d, #0xff
  ret
```