tree 1fd52cccf4b7d0e801f92456929e002de4498c82
parent 71329c6da1cd467f23b63e4a2956420f45b2cee9
author Andrzej Warzyński <andrzej.warzynski@arm.com> 1745563341 +0100
committer GitHub <noreply@github.com> 1745563341 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoCy7NCRC1aQ7uu5UhlAAA/qQQAGAkr2GAbehi6Bhn0ZEG4Sru
 30/6wtF3XLlTDXhglytBS+aZVUUgSHuIg+ljklnrKJ/O+FnOrBjNYjitDS8F/Icb
 oKdMTJst+bPiLYrGb41oJQ42EZqyZvRapOF0JBlbI/rVi5GnQtSbibw76AqA83F1
 bCwXkxsa3h3Y4bW+tpwcdmISI5VoJwNdp7081t6IB2aS55A4POmKd9SkVLZ+H8V1
 EKQ7rOTQ8eWsUc/3JxEu0GGsgG7HJvCOyOI5KtN+FdnOtyh8AE8m/rQ3QNowcYM6
 s50V56kb13+Z90YRE4AzFcyn7OUen0OEoVftJ88mrXRcKxEYPRlwWIezCUpva/2T
 FhwN9gwVhKubqMcX8OD8k6wjmiOTnyfDkUimndoC5YnaPpGH/2HqmposDKLAwXXT
 oCI/tBEB9nIYLD/vGFC4HsHOvF3JX3wp/JHZQuGHGpoYCPCP1oSsAe6mOvzCDI+6
 lNZARRXd5U5o5X+Te8hszOqI2WofF8wvEdQM4eRD3YNdCmFxghepCz+9/uI9nZzI
 xs9ACzOLJvoOx7z+/rNqaI89yNyJ4/wdzx3JQ56uO/1CfaP64FpOY9p0h3CryKCe
 V4tgstlrU0UnZBgFz9jy8LMvI66HjtUOnplDPH0ULmxZ+QjpbSLRKqQhb/wMXP/j
 VIx73gm2CaqaPpvpjowz
 =+m5z
 -----END PGP SIGNATURE-----
 

[mlir][vector] Update docs + add tests (#137144)

This is a small follow-on for #133721:
* Renamed `getRealVectorRank` as `getEffectiveVectorRankForXferOp` (to
  emphasise that this method was written specifically for transfer Ops).
* Marginally tweaked the description for
  `getEffectiveVectorRankForXferOp` (mostly to highlight the two edge
  cases being covered).
* Added tests for cases when the element type (of the shaped type) is a
  vector.
* Unified the naming (and the order) of arguments in tests with the
  surrounding tests (e.g. `%vec_to_write` -> `%arg1`). Mostly for
  consistency (it would be good to use self-documenting names like
  `%vec_to_write` throughout).