[PATCH] D76716: [ARM][MVE] Tail predicate VMAXV(unsigned) and VMAXAV
Sam Parker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 25 01:35:35 PDT 2020
samparker added a comment.
> The unit test failure looks genuine, does that needs fixing?
Ah, I haven't updated the unit test in D76708 <https://reviews.llvm.org/D76708>.
For min/max, we can't support an implicit vmin because the results may not be the same after the conversion. So, say we only have three 32-bit elements left to process (and the fourth element is the LHS 0x00):
| opcode | input | original result | tail predicated result |
| VMAXV.u32 | 0x00010203 | 0x03 | 0x03 |
| VMINV.u32 | 0x00010203 | 0x00 | 0x01 |
|
The tail predicated instruction will ignore the predicated lanes/bytes, whereas the original doesn't.
We're also only supporting unsigned values because we know that the 'FalseLaneZeros' can't interfere with the result, because the zero will only be the answer if the rest of the elements are also zero. This is not true for signed values though, where the false zero may be the largest value.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76716/new/
https://reviews.llvm.org/D76716
More information about the llvm-commits
mailing list