Lines Matching +full:- +full:n

6  * SPDX-License-Identifier: GPL-2.0-or-later
13 #include "exec/helper-proto.h.inc"
23 /* Perform 16-bit signed saturating addition. */
39 /* Perform 8-bit signed saturating addition. */
55 /* Perform 16-bit signed saturating subtraction. */
60 res = a - b; in sub16_sat()
71 /* Perform 8-bit signed saturating subtraction. */
76 res = a - b; in sub8_sat()
87 #define ADD16(a, b, n) RESULT(add16_sat(a, b), n, 16); argument
88 #define SUB16(a, b, n) RESULT(sub16_sat(a, b), n, 16); argument
89 #define ADD8(a, b, n) RESULT(add8_sat(a, b), n, 8); argument
90 #define SUB8(a, b, n) RESULT(sub8_sat(a, b), n, 8); argument
109 return a - b; in sub16_usat()
128 return a - b; in sub8_usat()
134 #define ADD16(a, b, n) RESULT(add16_usat(a, b), n, 16); argument
135 #define SUB16(a, b, n) RESULT(sub16_usat(a, b), n, 16); argument
136 #define ADD8(a, b, n) RESULT(add8_usat(a, b), n, 8); argument
137 #define SUB8(a, b, n) RESULT(sub8_usat(a, b), n, 8); argument
143 #define SARITH16(a, b, n, op) do { \ argument
146 RESULT(sum, n, 16); \
148 ge |= 3 << (n * 2); \
151 #define SARITH8(a, b, n, op) do { \ argument
154 RESULT(sum, n, 8); \
156 ge |= 1 << n; \
160 #define ADD16(a, b, n) SARITH16(a, b, n, +) argument
161 #define SUB16(a, b, n) SARITH16(a, b, n, -) argument
162 #define ADD8(a, b, n) SARITH8(a, b, n, +) argument
163 #define SUB8(a, b, n) SARITH8(a, b, n, -) argument
170 #define ADD16(a, b, n) do { \ argument
173 RESULT(sum, n, 16); \
175 ge |= 3 << (n * 2); \
178 #define ADD8(a, b, n) do { \ argument
181 RESULT(sum, n, 8); \
183 ge |= 1 << n; \
186 #define SUB16(a, b, n) do { \ argument
188 sum = (uint32_t)(uint16_t)(a) - (uint32_t)(uint16_t)(b); \
189 RESULT(sum, n, 16); \
191 ge |= 3 << (n * 2); \
194 #define SUB8(a, b, n) do { \ argument
196 sum = (uint32_t)(uint8_t)(a) - (uint32_t)(uint8_t)(b); \
197 RESULT(sum, n, 8); \
199 ge |= 1 << n; \
208 #define ADD16(a, b, n) \ argument
209 RESULT(((int32_t)(int16_t)(a) + (int32_t)(int16_t)(b)) >> 1, n, 16)
210 #define SUB16(a, b, n) \ argument
211 RESULT(((int32_t)(int16_t)(a) - (int32_t)(int16_t)(b)) >> 1, n, 16)
212 #define ADD8(a, b, n) \ argument
213 RESULT(((int32_t)(int8_t)(a) + (int32_t)(int8_t)(b)) >> 1, n, 8)
214 #define SUB8(a, b, n) \ argument
215 RESULT(((int32_t)(int8_t)(a) - (int32_t)(int8_t)(b)) >> 1, n, 8)
221 #define ADD16(a, b, n) \ argument
222 RESULT(((uint32_t)(uint16_t)(a) + (uint32_t)(uint16_t)(b)) >> 1, n, 16)
223 #define SUB16(a, b, n) \ argument
224 RESULT(((uint32_t)(uint16_t)(a) - (uint32_t)(uint16_t)(b)) >> 1, n, 16)
225 #define ADD8(a, b, n) \ argument
226 RESULT(((uint32_t)(uint8_t)(a) + (uint32_t)(uint8_t)(b)) >> 1, n, 8)
227 #define SUB8(a, b, n) \ argument
228 RESULT(((uint32_t)(uint8_t)(a) - (uint32_t)(uint8_t)(b)) >> 1, n, 8)
236 return a - b; in do_usad()
238 return b - a; in do_usad()