Lines Matching refs:v4i32
26 struct FixedPointRawTypeTraits<v4i32> {
38 inline v4i32 BitAnd(v4i32 a, v4i32 b) {
39 return reinterpret_cast<v4i32>(__builtin_msa_and_v(reinterpret_cast<v16u8>(a),
50 inline v4i32 BitOr(v4i32 a, v4i32 b) {
51 return reinterpret_cast<v4i32>(__builtin_msa_or_v(reinterpret_cast<v16u8>(a),
62 inline v4i32 BitXor(v4i32 a, v4i32 b) {
63 return reinterpret_cast<v4i32>(__builtin_msa_xor_v(reinterpret_cast<v16u8>(a),
74 inline v4i32 BitNot(v4i32 a) {
75 return reinterpret_cast<v4i32>(__builtin_msa_nor_v(reinterpret_cast<v16u8>(a),
86 inline v4i32 Add(v4i32 a, v4i32 b) {
96 inline v4i32 Sub(v4i32 a, v4i32 b) {
106 inline v4i32 Neg(v4i32 a) {
107 v4i32 zeroes = __builtin_msa_ldi_w(0);
118 inline v4i32 ShiftLeft(v4i32 a, int offset) {
128 inline v4i32 ShiftRight(v4i32 a, int offset) {
138 inline v4i32 SelectUsingMask(v4i32 if_mask, v4i32 then_val, v4i32 else_val) {
139 if_mask = reinterpret_cast<v4i32>(__builtin_msa_bsel_v(reinterpret_cast<v16u8>(if_mask),
154 inline v4i32 MaskIfEqual(v4i32 a, v4i32 b) {
164 inline v4i32 MaskIfNotEqual(v4i32 a, v4i32 b) {
174 inline v4i32 MaskIfZero(v4i32 a) {
184 inline v4i32 MaskIfNonZero(v4i32 a) {
194 inline v4i32 MaskIfGreaterThan(v4i32 a, v4i32 b) {
204 inline v4i32 MaskIfGreaterThanOrEqual(v4i32 a, v4i32 b) {
214 inline v4i32 MaskIfLessThan(v4i32 a, v4i32 b) {
224 inline v4i32 MaskIfLessThanOrEqual(v4i32 a, v4i32 b) {
234 inline bool All(v4i32 a) {
244 inline bool Any(v4i32 a) {
254 inline v4i32 RoundingHalfSum(v4i32 a, v4i32 b) {
264 inline v4i32 SaturatingRoundingDoublingHighMul(v4i32 a, v4i32 b) {
274 struct ImplSaturatingRoundingMultiplyByPOT<Exponent, v4i32, 1> {
275 static v4i32 eval(v4i32 x) {
285 v4i32 res = __builtin_msa_sat_s_w(x, 31 - Exponent);
288 v4i32 tmp = __builtin_msa_srli_w(__builtin_msa_clt_s_w(res, x), 1);
294 res = reinterpret_cast<v4i32>(__builtin_msa_or_v(reinterpret_cast<v16u8>(res),
336 inline v4i32 Dup<v4i32>(std::int32_t x) {