This is a series of patches to improve recognition of popcount and clz/ctz idioms, along with some related fixes.
- Patches 1 and 8 are independent fixes or improvements. - Patch 4 is a dependency of patch 5, as it improves the robustness of a test that would otherwise begin failing. - Patches 2, 3, 5 and 7 form the main dependent sequence. - Patch 6 is a documentation update, covering attributes in patch 5 and existing code. - Patch 7 may require other work before it can be merged, as it seems to expose a latent issue in the vectoriser. Each patch has been bootstrapped and regression tested on aarch64-none-linux-gnu.