Lines Matching defs:X
48 /// __m128 _mm_ceil_ps(__m128 X);
53 /// \param X
56 #define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL)
65 /// __m128d _mm_ceil_pd(__m128d X);
70 /// \param X
73 #define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL)
84 /// __m128 _mm_ceil_ss(__m128 X, __m128 Y);
89 /// \param X
98 #define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL)
109 /// __m128d _mm_ceil_sd(__m128d X, __m128d Y);
114 /// \param X
123 #define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL)
132 /// __m128 _mm_floor_ps(__m128 X);
137 /// \param X
140 #define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR)
149 /// __m128d _mm_floor_pd(__m128d X);
154 /// \param X
157 #define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR)
168 /// __m128 _mm_floor_ss(__m128 X, __m128 Y);
173 /// \param X
182 #define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR)
193 /// __m128d _mm_floor_sd(__m128d X, __m128d Y);
198 /// \param X
207 #define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR)
217 /// __m128 _mm_round_ps(__m128 X, const int M);
222 /// \param X
239 #define _mm_round_ps(X, M) \
240 ((__m128)__builtin_ia32_roundps((__v4sf)(__m128)(X), (M)))
252 /// __m128 _mm_round_ss(__m128 X, __m128 Y, const int M);
257 /// \param X
280 #define _mm_round_ss(X, Y, M) \
281 ((__m128)__builtin_ia32_roundss((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), \
292 /// __m128d _mm_round_pd(__m128d X, const int M);
297 /// \param X
314 #define _mm_round_pd(X, M) \
315 ((__m128d)__builtin_ia32_roundpd((__v2df)(__m128d)(X), (M)))
327 /// __m128d _mm_round_sd(__m128d X, __m128d Y, const int M);
332 /// \param X
355 #define _mm_round_sd(X, Y, M) \
356 ((__m128d)__builtin_ia32_roundsd((__v2df)(__m128d)(X), (__v2df)(__m128d)(Y), \
575 /// __m128 _mm_dp_ps(__m128 X, __m128 Y, const int M);
580 /// \param X
596 #define _mm_dp_ps(X, Y, M) \
597 ((__m128)__builtin_ia32_dpps((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), (M)))
610 /// __m128d _mm_dp_pd(__m128d X, __m128d Y, const int M);
615 /// \param X
630 #define _mm_dp_pd(X, Y, M) \
631 ((__m128d)__builtin_ia32_dppd((__v2df)(__m128d)(X), (__v2df)(__m128d)(Y), \
798 /// Takes the first argument \a X and inserts an element from the second
806 /// __m128 _mm_insert_ps(__m128 X, __m128 Y, const int N);
811 /// \param X
838 #define _mm_insert_ps(X, Y, N) __builtin_ia32_insertps128((X), (Y), (N))
846 /// int _mm_extract_ps(__m128 X, const int N);
852 /// \param X
856 /// \a X are extracted and returned: \n
857 /// 00: Bits [31:0] of parameter \a X are returned. \n
858 /// 01: Bits [63:32] of parameter \a X are returned. \n
859 /// 10: Bits [95:64] of parameter \a X are returned. \n
860 /// 11: Bits [127:96] of parameter \a X are returned.
862 #define _mm_extract_ps(X, N) \
864 int, __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)))
867 /* Extract a single-precision float from X at index N into D. */
868 #define _MM_EXTRACT_FLOAT(D, X, N) \
870 (D) = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); \
873 /* Or together 2 sets of indexes (X and Y) with the zeroing bits (Z) to create
875 #define _MM_MK_INSERTPS_NDX(X, Y, Z) (((X) << 6) | ((Y) << 4) | (Z))
877 /* Extract a float from X at index N into the first index of the return. */
878 #define _MM_PICK_OUT_PS(X, N) \
879 _mm_insert_ps(_mm_setzero_ps(), (X), _MM_MK_INSERTPS_NDX((N), 0, 0x0e))
890 /// __m128i _mm_insert_epi8(__m128i X, int I, const int N);
895 /// \param X
922 #define _mm_insert_epi8(X, I, N) \
923 ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), (int)(I), \
934 /// __m128i _mm_insert_epi32(__m128i X, int I, const int N);
939 /// \param X
954 #define _mm_insert_epi32(X, I, N) \
955 ((__m128i)__builtin_ia32_vec_set_v4si((__v4si)(__m128i)(X), (int)(I), \
967 /// __m128i _mm_insert_epi64(__m128i X, long long I, const int N);
972 /// \param X
985 #define _mm_insert_epi64(X, I, N) \
986 ((__m128i)__builtin_ia32_vec_set_v2di((__v2di)(__m128i)(X), (long long)(I), \
999 /// int _mm_extract_epi8(__m128i X, const int N);
1004 /// \param X
1008 /// the argument \a X to extract and copy to the result. \n
1009 /// 0000: Bits [7:0] of parameter \a X are extracted. \n
1010 /// 0001: Bits [15:8] of the parameter \a X are extracted. \n
1011 /// 0010: Bits [23:16] of the parameter \a X are extracted. \n
1012 /// 0011: Bits [31:24] of the parameter \a X are extracted. \n
1013 /// 0100: Bits [39:32] of the parameter \a X are extracted. \n
1014 /// 0101: Bits [47:40] of the parameter \a X are extracted. \n
1015 /// 0110: Bits [55:48] of the parameter \a X are extracted. \n
1016 /// 0111: Bits [63:56] of the parameter \a X are extracted. \n
1017 /// 1000: Bits [71:64] of the parameter \a X are extracted. \n
1018 /// 1001: Bits [79:72] of the parameter \a X are extracted. \n
1019 /// 1010: Bits [87:80] of the parameter \a X are extracted. \n
1020 /// 1011: Bits [95:88] of the parameter \a X are extracted. \n
1021 /// 1100: Bits [103:96] of the parameter \a X are extracted. \n
1022 /// 1101: Bits [111:104] of the parameter \a X are extracted. \n
1023 /// 1110: Bits [119:112] of the parameter \a X are extracted. \n
1024 /// 1111: Bits [127:120] of the parameter \a X are extracted.
1028 #define _mm_extract_epi8(X, N) \
1029 ((int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \
1038 /// int _mm_extract_epi32(__m128i X, const int N);
1043 /// \param X
1047 /// the argument \a X to extract and copy to the result. \n
1048 /// 00: Bits [31:0] of the parameter \a X are extracted. \n
1049 /// 01: Bits [63:32] of the parameter \a X are extracted. \n
1050 /// 10: Bits [95:64] of the parameter \a X are extracted. \n
1051 /// 11: Bits [127:96] of the parameter \a X are exracted.
1054 #define _mm_extract_epi32(X, N) \
1055 ((int)__builtin_ia32_vec_ext_v4si((__v4si)(__m128i)(X), (int)(N)))
1063 /// long long _mm_extract_epi64(__m128i X, const int N);
1069 /// \param X
1073 /// the argument \a X to return. \n
1077 #define _mm_extract_epi64(X, N) \
1078 ((long long)__builtin_ia32_vec_ext_v2di((__v2di)(__m128i)(X), (int)(N)))
1468 /// __m128i _mm_mpsadbw_epu8(__m128i X, __m128i Y, const int M);
1473 /// \param X
1486 /// d0 = abs(X[i + k + 0] - Y[j + 0]);
1487 /// d1 = abs(X[i + k + 1] - Y[j + 1]);
1488 /// d2 = abs(X[i + k + 2] - Y[j + 2]);
1489 /// d3 = abs(X[i + k + 3] - Y[j + 3]);
1495 #define _mm_mpsadbw_epu8(X, Y, M) \
1496 ((__m128i)__builtin_ia32_mpsadbw128((__v16qi)(__m128i)(X), \