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); \ |
