[NFC][LLVM][CodeGen][SVE] Restructure urshr related PatFrags. #170521
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current structure is not broken but doesn't follow the expected pattern and thus could be used erroneously. To fix this I have separated the intrinsic (i.e. merging) operation from the ISD (i.e. pred) operation. I would have liked
AArch64ursrato include the intrinsic (likewise to have created AArch64srsra) but currently we cannot mix intrinsic references and anonymousSVEAllActiveexpressions within a PatFrag because the predicate type cannot be inferred.For the real instruction's PatFrag I have renamed (dropped the i) to match the existing naming convention. If the preference is to keep it then we'll clash with an existing NEON node, which is fine because then I'll follow the style of adding _x to signify unpredicted instructions that clash with NEON. I'm happy either way so just shout if you prefer the latter.
NOTE:
AArch64ursracould useSVEAnyPredicatebut there are no non-all-active uses and so to maintain the patch's NFCness I stuck with usingSVEAllActive.