Lines Matching +full:a +full:- +full:bit
1 /*===---- tmmintrin.h - SSSE3 intrinsics -----------------------------------===
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 *===-----------------------------------------------------------------------===
22 __target__("ssse3,no-evex512"), __min_vector_width__(64)))
25 __target__("mmx,ssse3,no-evex512"), \
28 /// Computes the absolute value of each of the packed 8-bit signed
29 /// integers in the source operand and stores the 8-bit unsigned integer
37 /// A 64-bit vector of [8 x i8].
38 /// \returns A 64-bit integer vector containing the absolute values of the
46 /// Computes the absolute value of each of the packed 8-bit signed
47 /// integers in the source operand and stores the 8-bit unsigned integer
55 /// A 128-bit vector of [16 x i8].
56 /// \returns A 128-bit integer vector containing the absolute values of the
64 /// Computes the absolute value of each of the packed 16-bit signed
65 /// integers in the source operand and stores the 16-bit unsigned integer
73 /// A 64-bit vector of [4 x i16].
74 /// \returns A 64-bit integer vector containing the absolute values of the
82 /// Computes the absolute value of each of the packed 16-bit signed
83 /// integers in the source operand and stores the 16-bit unsigned integer
91 /// A 128-bit vector of [8 x i16].
92 /// \returns A 128-bit integer vector containing the absolute values of the
100 /// Computes the absolute value of each of the packed 32-bit signed
101 /// integers in the source operand and stores the 32-bit unsigned integer
109 /// A 64-bit vector of [2 x i32].
110 /// \returns A 64-bit integer vector containing the absolute values of the
118 /// Computes the absolute value of each of the packed 32-bit signed
119 /// integers in the source operand and stores the 32-bit unsigned integer
127 /// A 128-bit vector of [4 x i32].
128 /// \returns A 128-bit integer vector containing the absolute values of the
136 /// Concatenates the two 128-bit integer vector operands, and
137 /// right-shifts the result by the number of bytes specified in the immediate
143 /// __m128i _mm_alignr_epi8(__m128i a, __m128i b, const int n);
148 /// \param a
149 /// A 128-bit vector of [16 x i8] containing one of the source operands.
151 /// A 128-bit vector of [16 x i8] containing one of the source operands.
153 /// An immediate operand specifying how many bytes to right-shift the result.
154 /// \returns A 128-bit integer vector containing the concatenated right-shifted
156 #define _mm_alignr_epi8(a, b, n) \
157 ((__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
160 /// Concatenates the two 64-bit integer vector operands, and right-shifts
166 /// __m64 _mm_alignr_pi8(__m64 a, __m64 b, const int n);
171 /// \param a
172 /// A 64-bit vector of [8 x i8] containing one of the source operands.
174 /// A 64-bit vector of [8 x i8] containing one of the source operands.
176 /// An immediate operand specifying how many bytes to right-shift the result.
177 /// \returns A 64-bit integer vector containing the concatenated right-shifted
179 #define _mm_alignr_pi8(a, b, n) \
180 ((__m64)__builtin_ia32_palignr((__v8qi)(__m64)(a), (__v8qi)(__m64)(b), (n)))
183 /// 128-bit vectors of [8 x i16].
190 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
194 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
197 /// \returns A 128-bit vector of [8 x i16] containing the horizontal sums of
206 /// 128-bit vectors of [4 x i32].
213 /// A 128-bit vector of [4 x i32] containing one of the source operands. The
217 /// A 128-bit vector of [4 x i32] containing one of the source operands. The
220 /// \returns A 128-bit vector of [4 x i32] containing the horizontal sums of
229 /// 64-bit vectors of [4 x i16].
236 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
240 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
243 /// \returns A 64-bit vector of [4 x i16] containing the horizontal sums of both
252 /// 64-bit vectors of [2 x i32].
259 /// A 64-bit vector of [2 x i32] containing one of the source operands. The
263 /// A 64-bit vector of [2 x i32] containing one of the source operands. The
266 /// \returns A 64-bit vector of [2 x i32] containing the horizontal sums of both
275 /// in two packed 128-bit vectors of [8 x i16].
285 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
289 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
292 /// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated
301 /// in two packed 64-bit vectors of [4 x i16].
311 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
315 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
318 /// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated
327 /// packed 128-bit vectors of [8 x i16].
334 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
338 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
341 /// \returns A 128-bit vector of [8 x i16] containing the horizontal differences
350 /// packed 128-bit vectors of [4 x i32].
357 /// A 128-bit vector of [4 x i32] containing one of the source operands. The
361 /// A 128-bit vector of [4 x i32] containing one of the source operands. The
364 /// \returns A 128-bit vector of [4 x i32] containing the horizontal differences
373 /// packed 64-bit vectors of [4 x i16].
380 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
384 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
387 /// \returns A 64-bit vector of [4 x i16] containing the horizontal differences
396 /// packed 64-bit vectors of [2 x i32].
403 /// A 64-bit vector of [2 x i32] containing one of the source operands. The
407 /// A 64-bit vector of [2 x i32] containing one of the source operands. The
410 /// \returns A 64-bit vector of [2 x i32] containing the horizontal differences
419 /// contained in two packed 128-bit vectors of [8 x i16].
429 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
433 /// A 128-bit vector of [8 x i16] containing one of the source operands. The
436 /// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated
445 /// contained in two packed 64-bit vectors of [4 x i16].
455 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
459 /// A 64-bit vector of [4 x i16] containing one of the source operands. The
462 /// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated
470 /// Multiplies corresponding pairs of packed 8-bit unsigned integer
471 /// values contained in the first source operand and packed 8-bit signed
473 /// contiguous products with signed saturation, and writes the 16-bit sums to
485 /// A 128-bit integer vector containing the first source operand.
487 /// A 128-bit integer vector containing the second source operand.
488 /// \returns A 128-bit integer vector containing the sums of products of both
490 /// \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n
491 /// \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n
492 /// \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n
493 /// \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7) \n
494 /// \a R4 := (\a __a8 * \a __b8) + (\a __a9 * \a __b9) \n
495 /// \a R5 := (\a __a10 * \a __b10) + (\a __a11 * \a __b11) \n
496 /// \a R6 := (\a __a12 * \a __b12) + (\a __a13 * \a __b13) \n
497 /// \a R7 := (\a __a14 * \a __b14) + (\a __a15 * \a __b15)
504 /// Multiplies corresponding pairs of packed 8-bit unsigned integer
505 /// values contained in the first source operand and packed 8-bit signed
507 /// contiguous products with signed saturation, and writes the 16-bit sums to
519 /// A 64-bit integer vector containing the first source operand.
521 /// A 64-bit integer vector containing the second source operand.
522 /// \returns A 64-bit integer vector containing the sums of products of both
524 /// \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n
525 /// \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n
526 /// \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n
527 /// \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7)
534 /// Multiplies packed 16-bit signed integer values, truncates the 32-bit
535 /// products to the 18 most significant bits by right-shifting, rounds the
543 /// A 128-bit vector of [8 x i16] containing one of the source operands.
545 /// A 128-bit vector of [8 x i16] containing one of the source operands.
546 /// \returns A 128-bit vector of [8 x i16] containing the rounded and scaled
554 /// Multiplies packed 16-bit signed integer values, truncates the 32-bit
555 /// products to the 18 most significant bits by right-shifting, rounds the
563 /// A 64-bit vector of [4 x i16] containing one of the source operands.
565 /// A 64-bit vector of [4 x i16] containing one of the source operands.
566 /// \returns A 64-bit vector of [4 x i16] containing the rounded and scaled
574 /// Copies the 8-bit integers from a 128-bit integer vector to the
575 /// destination or clears 8-bit values in the destination, as specified by
583 /// A 128-bit integer vector containing the values to be copied.
585 /// A 128-bit integer vector containing control bytes corresponding to
587 /// Bit 7: \n
593 /// \returns A 128-bit integer vector containing the copied or cleared values.
600 /// Copies the 8-bit integers from a 64-bit integer vector to the
601 /// destination or clears 8-bit values in the destination, as specified by
609 /// A 64-bit integer vector containing the values to be copied.
611 /// A 64-bit integer vector containing control bytes corresponding to
613 /// Bit 7: \n
618 /// \returns A 64-bit integer vector containing the copied or cleared values.
625 /// For each 8-bit integer in the first source operand, perform one of
640 /// A 128-bit integer vector containing the values to be copied.
642 /// A 128-bit integer vector containing control bytes corresponding to
644 /// \returns A 128-bit integer vector containing the resultant values.
651 /// For each 16-bit integer in the first source operand, perform one of
666 /// A 128-bit integer vector containing the values to be copied.
668 /// A 128-bit integer vector containing control words corresponding to
670 /// \returns A 128-bit integer vector containing the resultant values.
677 /// For each 32-bit integer in the first source operand, perform one of
692 /// A 128-bit integer vector containing the values to be copied.
694 /// A 128-bit integer vector containing control doublewords corresponding to
696 /// \returns A 128-bit integer vector containing the resultant values.
703 /// For each 8-bit integer in the first source operand, perform one of
718 /// A 64-bit integer vector containing the values to be copied.
720 /// A 64-bit integer vector containing control bytes corresponding to
722 /// \returns A 64-bit integer vector containing the resultant values.
729 /// For each 16-bit integer in the first source operand, perform one of
744 /// A 64-bit integer vector containing the values to be copied.
746 /// A 64-bit integer vector containing control words corresponding to
748 /// \returns A 64-bit integer vector containing the resultant values.
755 /// For each 32-bit integer in the first source operand, perform one of
770 /// A 64-bit integer vector containing the values to be copied.
772 /// A 64-bit integer vector containing two control doublewords corresponding
774 /// \returns A 64-bit integer vector containing the resultant values.