This patch adds an optional attribute 'aarch64_pstate_za_new' to the
'llvm.func' op for the Armv9 Scalable Matrix Extension (SME) [1]. It
maps 1-1 with the LLVM function attribute of the same name [2] and
enables the SME ZA storage array.
The attribute has the following behaviour [3]:
The function’s ZA state is created on entry to the function and destroyed on return from the function. That is, the function does not use ZA to receive data from callers or to pass data back to callers.
ZA state being private to a function vs shared with the caller will be
simpler to begin enabling SME in MLIR.
[1] https://developer.arm.com/documentation/ddi0616/aa
[2] https://llvm.org/docs/AArch64SME.html#introduction
[3] https://arm-software.github.io/acle/main/acle.html#aarch64_pstate_za_new