qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH v1 4/8] target-ppc: add vabsdu[b, h, w] instructio


From: Richard Henderson
Subject: Re: [Qemu-ppc] [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~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]