comparison README @ 40:55cadb1fac4b

*: add mod operation, add GCC vector backend need to test it with old gcc though. :)
author Paper <paper@tflc.us>
date Sun, 27 Apr 2025 02:49:53 -0400
parents f9ca85d2f14c
children
comparison
equal deleted inserted replaced
39:f9ca85d2f14c 40:55cadb1fac4b
61 v[u]intAxB div(v[u]intAxB vec1, v[u]intAxB vec2) 61 v[u]intAxB div(v[u]intAxB vec1, v[u]intAxB vec2)
62 divides vec1 by the values in vec2. dividing by zero is 62 divides vec1 by the values in vec2. dividing by zero is
63 considered defined behavior and should result in a zero; 63 considered defined behavior and should result in a zero;
64 if this doesn't happen it's considered a bug 64 if this doesn't happen it's considered a bug
65 65
66 v[u]intAxB mod(v[u]intAxB vec1, v[u]intAxB vec2)
67 gives the remainder of a division operation. as with div,
68 divide-by-zero is defined behavior.
69
66 v[u]intAxB and(v[u]intAxB vec1, v[u]intAxB vec2) 70 v[u]intAxB and(v[u]intAxB vec1, v[u]intAxB vec2)
67 bitwise AND (&) of the values in both vectors 71 bitwise AND (&) of the values in both vectors
68 72
69 v[u]intAxB or(v[u]intAxB vec1, v[u]intAxB vec2) 73 v[u]intAxB or(v[u]intAxB vec1, v[u]intAxB vec2)
70 bitwise OR (|) of the values in both vectors 74 bitwise OR (|) of the values in both vectors
85 the corresponding values in vec2 89 the corresponding values in vec2
86 90
87 v[u]intAxB avg(v[u]intAxB vec1, v[u]intAxB vec2) 91 v[u]intAxB avg(v[u]intAxB vec1, v[u]intAxB vec2)
88 returns the average of the values in both vectors 92 returns the average of the values in both vectors
89 i.e., div(add(vec1, vec2), splat(2)), without 93 i.e., div(add(vec1, vec2), splat(2)), without
90 the possibility of overflow. 94 the possibility of overflow. If you are familiar
95 with AltiVec, this operation exactly mimics
96 vec_avg.
91 97
92 v[u]intAxB min(v[u]intAxB vec1, v[u]intAxB vec2) 98 v[u]intAxB min(v[u]intAxB vec1, v[u]intAxB vec2)
93 returns the minimum of the values in both vectors 99 returns the minimum of the values in both vectors
94 100
95 v[u]intAxB max(v[u]intAxB vec1, v[u]intAxB vec2) 101 v[u]intAxB max(v[u]intAxB vec1, v[u]intAxB vec2)