|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH v1 4/8] target-ppc: add vabsdu[b, h, w] instructions |
Date: | Thu, 28 Jul 2016 18:22:05 +0530 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 |
On 07/28/2016 12:19 PM, Nikunj A Dadhania wrote:
+ r->element[i] = abs(a->element[i] - b->element[i]); \ + } \ +} + +/* VABSDU - Vector absolute difference unsigned + * name - instruction mnemonic suffix (b: byte, h: halfword, w: word) + * element - element type to access from vector + */ +#define VABSDU(type, element) \ + VABSDU_DO(absdu##type, element) +VABSDU(b, u8) +VABSDU(h, u16) +VABSDU(w, u32)
From whence are you receiving this abs definition, and how do you expect it to work with an unsigned input?
I can only imagine you're getting abs(3), aka int abs(int), from stdlib.h. Which technically does work post-arithmetic promotion for u8 and u16, but it does not for u32.
I think we'd prefer an explicit (a > b ? a - b : b - a). r~
[Prev in Thread] | Current Thread | [Next in Thread] |