Mercurial > vec
comparison src/impl/generic.c @ 34:8b5e0974fd41
Backed out changeset 92156fe32755
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Apr 2025 17:40:46 -0400 |
parents | bf6ad516f1e6 |
children |
comparison
equal
deleted
inserted
replaced
33:4655b49eaf9f | 34:8b5e0974fd41 |
---|---|
66 VEC_GENERIC_OPERATION(((union v##sign##int##bits##x##size##_impl_data *)&vec2)->impl[i] ? (((union v##sign##int##bits##x##size##_impl_data *)&vec1)->impl[i] / ((union v##sign##int##bits##x##size##_impl_data *)&vec2)->impl[i]) : 0, sign, csign, bits, size); \ | 66 VEC_GENERIC_OPERATION(((union v##sign##int##bits##x##size##_impl_data *)&vec2)->impl[i] ? (((union v##sign##int##bits##x##size##_impl_data *)&vec1)->impl[i] / ((union v##sign##int##bits##x##size##_impl_data *)&vec2)->impl[i]) : 0, sign, csign, bits, size); \ |
67 } \ | 67 } \ |
68 \ | 68 \ |
69 v##sign##int##bits##x##size v##sign##int##bits##x##size##_generic_avg(v##sign##int##bits##x##size vec1, v##sign##int##bits##x##size vec2) \ | 69 v##sign##int##bits##x##size v##sign##int##bits##x##size##_generic_avg(v##sign##int##bits##x##size vec1, v##sign##int##bits##x##size vec2) \ |
70 { \ | 70 { \ |
71 union v##sign##int##bits##x##size##_impl_data *vec1d = (union v##sign##int##bits##x##size##_impl_data *)&vec1; \ | 71 VEC_GENERIC_OPERATION((((union v##sign##int##bits##x##size##_impl_data *)&vec1)->impl[i] + ((union v##sign##int##bits##x##size##_impl_data *)&vec2)->impl[i] + 1) / 2, sign, csign, bits, size); \ |
72 union v##sign##int##bits##x##size##_impl_data *vec2d = (union v##sign##int##bits##x##size##_impl_data *)&vec2; \ | |
73 \ | |
74 for (int i = 0; i < size; i++) \ | |
75 vec1d->impl[i] = vec_##sign##avg(vec1d->impl[i], vec2d->impl[i]); \ | |
76 \ | |
77 return vec1d->vec; \ | |
78 } \ | 72 } \ |
79 \ | 73 \ |
80 v##sign##int##bits##x##size v##sign##int##bits##x##size##_generic_and(v##sign##int##bits##x##size vec1, v##sign##int##bits##x##size vec2) \ | 74 v##sign##int##bits##x##size v##sign##int##bits##x##size##_generic_and(v##sign##int##bits##x##size vec1, v##sign##int##bits##x##size vec2) \ |
81 { \ | 75 { \ |
82 VEC_GENERIC_BUILTIN_OPERATION(&, sign, csign, bits, size); \ | 76 VEC_GENERIC_BUILTIN_OPERATION(&, sign, csign, bits, size); \ |