|
63 | 63 | ARG_TYPE) \
|
64 | 64 | _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(RET_TYPE, FUNCTION, ARG_TYPE)
|
65 | 65 |
|
66 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_SCALAR(RET_TYPE, FUNCTION, BUILTIN_NAME, \ |
67 |
| - ARG0_TYPE, ARG1_TYPE) \ |
68 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
69 |
| - return BUILTIN_NAME(x, y); \ |
70 |
| - } |
71 |
| - |
72 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
73 |
| - ARG1_TYPE) \ |
74 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
75 |
| - return (RET_TYPE)((RET_TYPE){FUNCTION(x.lo, y.lo), \ |
76 |
| - FUNCTION(x.hi, y.hi)} != (RET_TYPE)0); \ |
77 |
| - } |
78 |
| - |
79 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC2(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
80 |
| - ARG1_TYPE) \ |
81 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
82 |
| - return (RET_TYPE)((RET_TYPE){FUNCTION(x.lo, y.lo), \ |
83 |
| - FUNCTION(x.hi, y.hi)} != (RET_TYPE)0); \ |
84 |
| - } |
85 |
| - |
86 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC3(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
87 |
| - ARG1_TYPE) \ |
88 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
89 |
| - return (RET_TYPE)((RET_TYPE){FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), \ |
90 |
| - FUNCTION(x.s2, y.s2)} != (RET_TYPE)0); \ |
91 |
| - } |
92 |
| - |
93 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC4(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
94 |
| - ARG1_TYPE) \ |
95 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
96 |
| - return (RET_TYPE)((RET_TYPE){FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), \ |
97 |
| - FUNCTION(x.s2, y.s2), \ |
98 |
| - FUNCTION(x.s3, y.s3)} != (RET_TYPE)0); \ |
99 |
| - } |
100 |
| - |
101 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC8(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
102 |
| - ARG1_TYPE) \ |
103 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
104 |
| - return (RET_TYPE)((RET_TYPE){FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), \ |
105 |
| - FUNCTION(x.s2, y.s2), FUNCTION(x.s3, y.s3), \ |
106 |
| - FUNCTION(x.s4, y.s4), FUNCTION(x.s5, y.s5), \ |
107 |
| - FUNCTION(x.s6, y.s6), \ |
108 |
| - FUNCTION(x.s7, y.s7)} != (RET_TYPE)0); \ |
109 |
| - } |
110 |
| - |
111 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC16(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
112 |
| - ARG1_TYPE) \ |
113 |
| - _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \ |
114 |
| - return (RET_TYPE)((RET_TYPE){FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), \ |
115 |
| - FUNCTION(x.s2, y.s2), FUNCTION(x.s3, y.s3), \ |
116 |
| - FUNCTION(x.s4, y.s4), FUNCTION(x.s5, y.s5), \ |
117 |
| - FUNCTION(x.s6, y.s6), FUNCTION(x.s7, y.s7), \ |
118 |
| - FUNCTION(x.s8, y.s8), FUNCTION(x.s9, y.s9), \ |
119 |
| - FUNCTION(x.sa, y.sa), FUNCTION(x.sb, y.sb), \ |
120 |
| - FUNCTION(x.sc, y.sc), FUNCTION(x.sd, y.sd), \ |
121 |
| - FUNCTION(x.se, y.se), \ |
122 |
| - FUNCTION(x.sf, y.sf)} != (RET_TYPE)0); \ |
123 |
| - } |
124 |
| - |
125 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
126 |
| - ARG1_TYPE) \ |
127 |
| - _CLC_DEFINE_RELATIONAL_BINARY_VEC2(RET_TYPE##2, FUNCTION, ARG0_TYPE##2, \ |
128 |
| - ARG1_TYPE##2) \ |
129 |
| - _CLC_DEFINE_RELATIONAL_BINARY_VEC3(RET_TYPE##3, FUNCTION, ARG0_TYPE##3, \ |
130 |
| - ARG1_TYPE##3) \ |
131 |
| - _CLC_DEFINE_RELATIONAL_BINARY_VEC4(RET_TYPE##4, FUNCTION, ARG0_TYPE##4, \ |
132 |
| - ARG1_TYPE##4) \ |
133 |
| - _CLC_DEFINE_RELATIONAL_BINARY_VEC8(RET_TYPE##8, FUNCTION, ARG0_TYPE##8, \ |
134 |
| - ARG1_TYPE##8) \ |
135 |
| - _CLC_DEFINE_RELATIONAL_BINARY_VEC16(RET_TYPE##16, FUNCTION, ARG0_TYPE##16, \ |
136 |
| - ARG1_TYPE##16) |
137 |
| - |
138 |
| -#define _CLC_DEFINE_RELATIONAL_BINARY(RET_TYPE, FUNCTION, BUILTIN_FUNCTION, \ |
139 |
| - ARG0_TYPE, ARG1_TYPE) \ |
140 |
| - _CLC_DEFINE_RELATIONAL_BINARY_SCALAR(RET_TYPE, FUNCTION, BUILTIN_FUNCTION, \ |
141 |
| - ARG0_TYPE, ARG1_TYPE) \ |
142 |
| - _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(RET_TYPE, FUNCTION, ARG0_TYPE, \ |
143 |
| - ARG1_TYPE) |
144 |
| - |
145 | 66 | #define _CLC_DEFINE_SIMPLE_RELATIONAL_BINARY(RET_TYPE, RET_TYPE_VEC, FUNCTION, \
|
146 | 67 | ARG1_TYPE, ARG2_TYPE) \
|
147 | 68 | _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
|
|
0 commit comments