Lines Matching refs:op
3 for (unsigned c = 0; c < op[0]->type->components(); c++) {
4 switch (op[0]->type->base_type) {
6 data.u[c] = ~ op[0]->value.u[c];
9 data.i[c] = ~ op[0]->value.i[c];
12 data.u64[c] = ~ op[0]->value.u64[c];
15 data.i64[c] = ~ op[0]->value.i64[c];
24 for (unsigned c = 0; c < op[0]->type->components(); c++) {
25 switch (op[0]->type->base_type) {
27 data.b[c] = !op[0]->value.b[c];
36 for (unsigned c = 0; c < op[0]->type->components(); c++) {
37 switch (op[0]->type->base_type) {
39 data.u[c] = -((int) op[0]->value.u[c]);
42 data.i[c] = -op[0]->value.i[c];
45 data.f[c] = -op[0]->value.f[c];
48 data.d[c] = -op[0]->value.d[c];
51 data.u64[c] = -op[0]->value.u64[c];
54 data.i64[c] = -op[0]->value.i64[c];
63 for (unsigned c = 0; c < op[0]->type->components(); c++) {
64 switch (op[0]->type->base_type) {
66 data.i[c] = op[0]->value.i[c] < 0 ? -op[0]->value.i[c] : op[0]->value.i[c];
69 data.f[c] = fabsf(op[0]->value.f[c]);
72 data.d[c] = fabs(op[0]->value.d[c]);
75 data.i64[c] = op[0]->value.i64[c] < 0 ? -op[0]->value.i64[c] : op[0]->value.i64[c];
84 for (unsigned c = 0; c < op[0]->type->components(); c++) {
85 switch (op[0]->type->base_type) {
87 data.i[c] = (op[0]->value.i[c] > 0) - (op[0]->value.i[c] < 0);
90 data.f[c] = float((op[0]->value.f[c] > 0.0F) - (op[0]->value.f[c] < 0.0F));
93 data.d[c] = double((op[0]->value.d[c] > 0.0) - (op[0]->value.d[c] < 0.0));
96 data.i64[c] = (op[0]->value.i64[c] > 0) - (op[0]->value.i64[c] < 0);
105 for (unsigned c = 0; c < op[0]->type->components(); c++) {
106 switch (op[0]->type->base_type) {
108 data.f[c] = 1.0F / op[0]->value.f[c];
111 data.d[c] = 1.0 / op[0]->value.d[c];
120 for (unsigned c = 0; c < op[0]->type->components(); c++) {
121 switch (op[0]->type->base_type) {
123 data.f[c] = 1.0F / sqrtf(op[0]->value.f[c]);
126 data.d[c] = 1.0 / sqrt(op[0]->value.d[c]);
135 for (unsigned c = 0; c < op[0]->type->components(); c++) {
136 switch (op[0]->type->base_type) {
138 data.f[c] = sqrtf(op[0]->value.f[c]);
141 data.d[c] = sqrt(op[0]->value.d[c]);
150 for (unsigned c = 0; c < op[0]->type->components(); c++) {
151 switch (op[0]->type->base_type) {
153 data.f[c] = expf(op[0]->value.f[c]);
162 for (unsigned c = 0; c < op[0]->type->components(); c++) {
163 switch (op[0]->type->base_type) {
165 data.f[c] = logf(op[0]->value.f[c]);
174 for (unsigned c = 0; c < op[0]->type->components(); c++) {
175 switch (op[0]->type->base_type) {
177 data.f[c] = exp2f(op[0]->value.f[c]);
186 for (unsigned c = 0; c < op[0]->type->components(); c++) {
187 switch (op[0]->type->base_type) {
189 data.f[c] = log2f(op[0]->value.f[c]);
198 for (unsigned c = 0; c < op[0]->type->components(); c++) {
199 switch (op[0]->type->base_type) {
201 data.i[c] = (int) op[0]->value.f[c];
210 for (unsigned c = 0; c < op[0]->type->components(); c++) {
211 switch (op[0]->type->base_type) {
213 data.u[c] = (unsigned) op[0]->value.f[c];
222 for (unsigned c = 0; c < op[0]->type->components(); c++) {
223 switch (op[0]->type->base_type) {
225 data.f[c] = (float) op[0]->value.i[c];
234 for (unsigned c = 0; c < op[0]->type->components(); c++) {
235 switch (op[0]->type->base_type) {
237 data.b[c] = op[0]->value.f[c] != 0.0F ? true : false;
246 for (unsigned c = 0; c < op[0]->type->components(); c++) {
247 switch (op[0]->type->base_type) {
249 data.f[c] = op[0]->value.b[c] ? 1.0F : 0.0F;
258 for (unsigned c = 0; c < op[0]->type->components(); c++) {
259 switch (op[0]->type->base_type) {
261 data.b[c] = op[0]->value.u[c] ? true : false;
264 data.b[c] = op[0]->value.i[c] ? true : false;
273 for (unsigned c = 0; c < op[0]->type->components(); c++) {
274 switch (op[0]->type->base_type) {
276 data.i[c] = op[0]->value.b[c] ? 1 : 0;
285 for (unsigned c = 0; c < op[0]->type->components(); c++) {
286 switch (op[0]->type->base_type) {
288 data.f[c] = (float) op[0]->value.u[c];
297 for (unsigned c = 0; c < op[0]->type->components(); c++) {
298 switch (op[0]->type->base_type) {
300 data.u[c] = op[0]->value.i[c];
309 for (unsigned c = 0; c < op[0]->type->components(); c++) {
310 switch (op[0]->type->base_type) {
312 data.i[c] = op[0]->value.u[c];
321 for (unsigned c = 0; c < op[0]->type->components(); c++) {
322 switch (op[0]->type->base_type) {
324 data.f[c] = op[0]->value.d[c];
333 for (unsigned c = 0; c < op[0]->type->components(); c++) {
334 switch (op[0]->type->base_type) {
336 data.d[c] = op[0]->value.f[c];
345 for (unsigned c = 0; c < op[0]->type->components(); c++) {
346 switch (op[0]->type->base_type) {
348 data.i[c] = op[0]->value.d[c];
357 for (unsigned c = 0; c < op[0]->type->components(); c++) {
358 switch (op[0]->type->base_type) {
360 data.d[c] = op[0]->value.i[c];
369 for (unsigned c = 0; c < op[0]->type->components(); c++) {
370 switch (op[0]->type->base_type) {
372 data.u[c] = op[0]->value.d[c];
381 for (unsigned c = 0; c < op[0]->type->components(); c++) {
382 switch (op[0]->type->base_type) {
384 data.d[c] = op[0]->value.u[c];
393 for (unsigned c = 0; c < op[0]->type->components(); c++) {
394 switch (op[0]->type->base_type) {
396 data.b[c] = op[0]->value.d[c] != 0.0;
405 for (unsigned c = 0; c < op[0]->type->components(); c++) {
406 switch (op[0]->type->base_type) {
408 data.f[c] = bitcast_u2f(op[0]->value.i[c]);
417 for (unsigned c = 0; c < op[0]->type->components(); c++) {
418 switch (op[0]->type->base_type) {
420 data.i[c] = bitcast_f2u(op[0]->value.f[c]);
429 for (unsigned c = 0; c < op[0]->type->components(); c++) {
430 switch (op[0]->type->base_type) {
432 data.f[c] = bitcast_u2f(op[0]->value.u[c]);
441 for (unsigned c = 0; c < op[0]->type->components(); c++) {
442 switch (op[0]->type->base_type) {
444 data.u[c] = bitcast_f2u(op[0]->value.f[c]);
453 for (unsigned c = 0; c < op[0]->type->components(); c++) {
454 switch (op[0]->type->base_type) {
456 data.d[c] = bitcast_u642d(op[0]->value.u64[c]);
465 for (unsigned c = 0; c < op[0]->type->components(); c++) {
466 switch (op[0]->type->base_type) {
468 data.d[c] = bitcast_i642d(op[0]->value.i64[c]);
477 for (unsigned c = 0; c < op[0]->type->components(); c++) {
478 switch (op[0]->type->base_type) {
480 data.u64[c] = bitcast_d2u64(op[0]->value.d[c]);
489 for (unsigned c = 0; c < op[0]->type->components(); c++) {
490 switch (op[0]->type->base_type) {
492 data.i64[c] = bitcast_d2i64(op[0]->value.d[c]);
501 for (unsigned c = 0; c < op[0]->type->components(); c++) {
502 switch (op[0]->type->base_type) {
504 data.i[c] = op[0]->value.i64[c];
513 for (unsigned c = 0; c < op[0]->type->components(); c++) {
514 switch (op[0]->type->base_type) {
516 data.i[c] = op[0]->value.u64[c];
525 for (unsigned c = 0; c < op[0]->type->components(); c++) {
526 switch (op[0]->type->base_type) {
528 data.u[c] = op[0]->value.i64[c];
537 for (unsigned c = 0; c < op[0]->type->components(); c++) {
538 switch (op[0]->type->base_type) {
540 data.u[c] = op[0]->value.u64[c];
549 for (unsigned c = 0; c < op[0]->type->components(); c++) {
550 switch (op[0]->type->base_type) {
552 data.b[c] = op[0]->value.i64[c] != 0;
561 for (unsigned c = 0; c < op[0]->type->components(); c++) {
562 switch (op[0]->type->base_type) {
564 data.f[c] = op[0]->value.i64[c];
573 for (unsigned c = 0; c < op[0]->type->components(); c++) {
574 switch (op[0]->type->base_type) {
576 data.f[c] = op[0]->value.u64[c];
585 for (unsigned c = 0; c < op[0]->type->components(); c++) {
586 switch (op[0]->type->base_type) {
588 data.d[c] = op[0]->value.i64[c];
597 for (unsigned c = 0; c < op[0]->type->components(); c++) {
598 switch (op[0]->type->base_type) {
600 data.d[c] = op[0]->value.u64[c];
609 for (unsigned c = 0; c < op[0]->type->components(); c++) {
610 switch (op[0]->type->base_type) {
612 data.i64[c] = op[0]->value.i[c];
621 for (unsigned c = 0; c < op[0]->type->components(); c++) {
622 switch (op[0]->type->base_type) {
624 data.i64[c] = op[0]->value.u[c];
633 for (unsigned c = 0; c < op[0]->type->components(); c++) {
634 switch (op[0]->type->base_type) {
636 data.i64[c] = op[0]->value.b[c];
645 for (unsigned c = 0; c < op[0]->type->components(); c++) {
646 switch (op[0]->type->base_type) {
648 data.i64[c] = op[0]->value.f[c];
657 for (unsigned c = 0; c < op[0]->type->components(); c++) {
658 switch (op[0]->type->base_type) {
660 data.i64[c] = op[0]->value.d[c];
669 for (unsigned c = 0; c < op[0]->type->components(); c++) {
670 switch (op[0]->type->base_type) {
672 data.u64[c] = op[0]->value.i[c];
681 for (unsigned c = 0; c < op[0]->type->components(); c++) {
682 switch (op[0]->type->base_type) {
684 data.u64[c] = op[0]->value.u[c];
693 for (unsigned c = 0; c < op[0]->type->components(); c++) {
694 switch (op[0]->type->base_type) {
696 data.u64[c] = op[0]->value.f[c];
705 for (unsigned c = 0; c < op[0]->type->components(); c++) {
706 switch (op[0]->type->base_type) {
708 data.u64[c] = op[0]->value.d[c];
717 for (unsigned c = 0; c < op[0]->type->components(); c++) {
718 switch (op[0]->type->base_type) {
720 data.i64[c] = op[0]->value.u64[c];
729 for (unsigned c = 0; c < op[0]->type->components(); c++) {
730 switch (op[0]->type->base_type) {
732 data.u64[c] = op[0]->value.i64[c];
741 for (unsigned c = 0; c < op[0]->type->components(); c++) {
742 switch (op[0]->type->base_type) {
744 data.f[c] = truncf(op[0]->value.f[c]);
747 data.d[c] = trunc(op[0]->value.d[c]);
756 for (unsigned c = 0; c < op[0]->type->components(); c++) {
757 switch (op[0]->type->base_type) {
759 data.f[c] = ceilf(op[0]->value.f[c]);
762 data.d[c] = ceil(op[0]->value.d[c]);
771 for (unsigned c = 0; c < op[0]->type->components(); c++) {
772 switch (op[0]->type->base_type) {
774 data.f[c] = floorf(op[0]->value.f[c]);
777 data.d[c] = floor(op[0]->value.d[c]);
786 for (unsigned c = 0; c < op[0]->type->components(); c++) {
787 switch (op[0]->type->base_type) {
789 data.f[c] = op[0]->value.f[c] - floorf(op[0]->value.f[c]);
792 data.d[c] = op[0]->value.d[c] - floor(op[0]->value.d[c]);
801 for (unsigned c = 0; c < op[0]->type->components(); c++) {
802 switch (op[0]->type->base_type) {
804 data.f[c] = _mesa_roundevenf(op[0]->value.f[c]);
807 data.d[c] = _mesa_roundeven(op[0]->value.d[c]);
816 for (unsigned c = 0; c < op[0]->type->components(); c++) {
817 switch (op[0]->type->base_type) {
819 data.f[c] = sinf(op[0]->value.f[c]);
828 for (unsigned c = 0; c < op[0]->type->components(); c++) {
829 switch (op[0]->type->base_type) {
831 data.f[c] = cosf(op[0]->value.f[c]);
840 for (unsigned c = 0; c < op[0]->type->components(); c++) {
841 switch (op[0]->type->base_type) {
852 for (unsigned c = 0; c < op[0]->type->components(); c++) {
853 switch (op[0]->type->base_type) {
864 for (unsigned c = 0; c < op[0]->type->components(); c++) {
865 switch (op[0]->type->base_type) {
876 for (unsigned c = 0; c < op[0]->type->components(); c++) {
877 switch (op[0]->type->base_type) {
888 for (unsigned c = 0; c < op[0]->type->components(); c++) {
889 switch (op[0]->type->base_type) {
900 for (unsigned c = 0; c < op[0]->type->components(); c++) {
901 switch (op[0]->type->base_type) {
912 switch (op[0]->type->base_type) {
914 data.u[0] = pack_2x16(pack_snorm_1x16, op[0]->value.f[0], op[0]->value.f[1]);
922 switch (op[0]->type->base_type) {
924 …data.u[0] = pack_4x8(pack_snorm_1x8, op[0]->value.f[0], op[0]->value.f[1], op[0]->value.f[2], op[0…
932 switch (op[0]->type->base_type) {
934 data.u[0] = pack_2x16(pack_unorm_1x16, op[0]->value.f[0], op[0]->value.f[1]);
942 switch (op[0]->type->base_type) {
944 …data.u[0] = pack_4x8(pack_unorm_1x8, op[0]->value.f[0], op[0]->value.f[1], op[0]->value.f[2], op[0…
952 switch (op[0]->type->base_type) {
954 data.u[0] = pack_2x16(pack_half_1x16, op[0]->value.f[0], op[0]->value.f[1]);
962 unpack_2x16(unpack_snorm_1x16, op[0]->value.u[0], &data.f[0], &data.f[1]);
966 … unpack_4x8(unpack_snorm_1x8, op[0]->value.u[0], &data.f[0], &data.f[1], &data.f[2], &data.f[3]);
970 unpack_2x16(unpack_unorm_1x16, op[0]->value.u[0], &data.f[0], &data.f[1]);
974 … unpack_4x8(unpack_unorm_1x8, op[0]->value.u[0], &data.f[0], &data.f[1], &data.f[2], &data.f[3]);
978 unpack_2x16(unpack_half_1x16, op[0]->value.u[0], &data.f[0], &data.f[1]);
982 for (unsigned c = 0; c < op[0]->type->components(); c++) {
983 switch (op[0]->type->base_type) {
985 data.u[c] = bitfield_reverse(op[0]->value.u[c]);
988 data.i[c] = bitfield_reverse(op[0]->value.i[c]);
997 for (unsigned c = 0; c < op[0]->type->components(); c++) {
998 switch (op[0]->type->base_type) {
1000 data.i[c] = _mesa_bitcount(op[0]->value.u[c]);
1003 data.i[c] = _mesa_bitcount(op[0]->value.i[c]);
1012 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1013 switch (op[0]->type->base_type) {
1015 data.i[c] = find_msb_uint(op[0]->value.u[c]);
1018 data.i[c] = find_msb_int(op[0]->value.i[c]);
1027 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1028 switch (op[0]->type->base_type) {
1030 data.i[c] = find_msb_uint(op[0]->value.u[c] & -op[0]->value.u[c]);
1033 data.i[c] = find_msb_uint(op[0]->value.i[c] & -op[0]->value.i[c]);
1042 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1043 switch (op[0]->type->base_type) {
1045 data.f[c] = CLAMP(op[0]->value.f[c], 0.0f, 1.0f);
1054 memcpy(&data.d[0], &op[0]->value.u[0], sizeof(double));
1058 memcpy(&data.u[0], &op[0]->value.d[0], sizeof(double));
1062 memcpy(&data.u64[0], &op[0]->value.u[0], sizeof(uint64_t));
1066 memcpy(&data.u64[0], &op[0]->value.u[0], sizeof(uint64_t));
1070 memcpy(&data.u[0], &op[0]->value.u64[0], sizeof(uint64_t));
1074 memcpy(&data.u[0], &op[0]->value.u64[0], sizeof(uint64_t));
1078 memcpy(&data.i64[0], &op[0]->value.i[0], sizeof(int64_t));
1082 memcpy(&data.u64[0], &op[0]->value.u[0], sizeof(uint64_t));
1086 memcpy(&data.i[0], &op[0]->value.i64[0], sizeof(int64_t));
1090 memcpy(&data.u[0], &op[0]->value.u64[0], sizeof(uint64_t));
1094 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1099 switch (op[0]->type->base_type) {
1101 data.u[c] = op[0]->value.u[c0] + op[1]->value.u[c1];
1104 data.i[c] = op[0]->value.i[c0] + op[1]->value.i[c1];
1107 data.f[c] = op[0]->value.f[c0] + op[1]->value.f[c1];
1110 data.d[c] = op[0]->value.d[c0] + op[1]->value.d[c1];
1113 data.u64[c] = op[0]->value.u64[c0] + op[1]->value.u64[c1];
1116 data.i64[c] = op[0]->value.i64[c0] + op[1]->value.i64[c1];
1125 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1130 switch (op[0]->type->base_type) {
1132 data.u[c] = op[0]->value.u[c0] - op[1]->value.u[c1];
1135 data.i[c] = op[0]->value.i[c0] - op[1]->value.i[c1];
1138 data.f[c] = op[0]->value.f[c0] - op[1]->value.f[c1];
1141 data.d[c] = op[0]->value.d[c0] - op[1]->value.d[c1];
1144 data.u64[c] = op[0]->value.u64[c0] - op[1]->value.u64[c1];
1147 data.i64[c] = op[0]->value.i64[c0] - op[1]->value.i64[c1];
1157 if ((op[0]->type == op[1]->type && !op[0]->type->is_matrix())
1163 switch (op[0]->type->base_type) {
1165 data.u[c] = op[0]->value.u[c0] * op[1]->value.u[c1];
1168 data.i[c] = op[0]->value.i[c0] * op[1]->value.i[c1];
1171 data.f[c] = op[0]->value.f[c0] * op[1]->value.f[c1];
1174 data.d[c] = op[0]->value.d[c0] * op[1]->value.d[c1];
1177 data.u64[c] = op[0]->value.u64[c0] * op[1]->value.u64[c1];
1180 data.i64[c] = op[0]->value.i64[c0] * op[1]->value.i64[c1];
1187 assert(op[0]->type->is_matrix() || op[1]->type->is_matrix());
1198 const unsigned n = op[0]->type->is_vector()
1199 ? 1 : op[0]->type->vector_elements;
1200 const unsigned m = op[1]->type->vector_elements;
1201 const unsigned p = op[1]->type->matrix_columns;
1205 if (op[0]->type->is_double())
1206 data.d[i+n*j] += op[0]->value.d[i+n*k]*op[1]->value.d[k+m*j];
1208 data.f[i+n*j] += op[0]->value.f[i+n*k]*op[1]->value.f[k+m*j];
1216 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1221 switch (op[0]->type->base_type) {
1223 data.u[c] = op[1]->value.u[c1] == 0 ? 0 : op[0]->value.u[c0] / op[1]->value.u[c1];
1226 data.i[c] = op[1]->value.i[c1] == 0 ? 0 : op[0]->value.i[c0] / op[1]->value.i[c1];
1229 data.f[c] = op[0]->value.f[c0] / op[1]->value.f[c1];
1232 data.d[c] = op[0]->value.d[c0] / op[1]->value.d[c1];
1235 … data.u64[c] = op[1]->value.u64[c1] == 0 ? 0 : op[0]->value.u64[c0] / op[1]->value.u64[c1];
1238 … data.i64[c] = op[1]->value.i64[c1] == 0 ? 0 : op[0]->value.i64[c0] / op[1]->value.i64[c1];
1247 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1252 switch (op[0]->type->base_type) {
1254 data.u[c] = op[1]->value.u[c1] == 0 ? 0 : op[0]->value.u[c0] % op[1]->value.u[c1];
1257 data.i[c] = op[1]->value.i[c1] == 0 ? 0 : op[0]->value.i[c0] % op[1]->value.i[c1];
1260 …data.f[c] = op[0]->value.f[c0] - op[1]->value.f[c1] * floorf(op[0]->value.f[c0] / op[1]->value.f[c…
1263 …data.d[c] = op[0]->value.d[c0] - op[1]->value.d[c1] * floor(op[0]->value.d[c0] / op[1]->value.d[c1…
1266 … data.u64[c] = op[1]->value.u64[c1] == 0 ? 0 : op[0]->value.u64[c0] % op[1]->value.u64[c1];
1269 … data.i64[c] = op[1]->value.i64[c1] == 0 ? 0 : op[0]->value.i64[c0] % op[1]->value.i64[c1];
1278 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1279 switch (op[0]->type->base_type) {
1281 data.b[c] = op[0]->value.u[c] < op[1]->value.u[c];
1284 data.b[c] = op[0]->value.i[c] < op[1]->value.i[c];
1287 data.b[c] = op[0]->value.f[c] < op[1]->value.f[c];
1290 data.b[c] = op[0]->value.d[c] < op[1]->value.d[c];
1293 data.b[c] = op[0]->value.u64[c] < op[1]->value.u64[c];
1296 data.b[c] = op[0]->value.i64[c] < op[1]->value.i64[c];
1305 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1306 switch (op[0]->type->base_type) {
1308 data.b[c] = op[0]->value.u[c] >= op[1]->value.u[c];
1311 data.b[c] = op[0]->value.i[c] >= op[1]->value.i[c];
1314 data.b[c] = op[0]->value.f[c] >= op[1]->value.f[c];
1317 data.b[c] = op[0]->value.d[c] >= op[1]->value.d[c];
1320 data.b[c] = op[0]->value.u64[c] >= op[1]->value.u64[c];
1323 data.b[c] = op[0]->value.i64[c] >= op[1]->value.i64[c];
1332 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1333 switch (op[0]->type->base_type) {
1335 data.b[c] = op[0]->value.u[c] == op[1]->value.u[c];
1338 data.b[c] = op[0]->value.i[c] == op[1]->value.i[c];
1341 data.b[c] = op[0]->value.f[c] == op[1]->value.f[c];
1344 data.b[c] = op[0]->value.d[c] == op[1]->value.d[c];
1347 data.b[c] = op[0]->value.u64[c] == op[1]->value.u64[c];
1350 data.b[c] = op[0]->value.i64[c] == op[1]->value.i64[c];
1353 data.b[c] = op[0]->value.b[c] == op[1]->value.b[c];
1362 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1363 switch (op[0]->type->base_type) {
1365 data.b[c] = op[0]->value.u[c] != op[1]->value.u[c];
1368 data.b[c] = op[0]->value.i[c] != op[1]->value.i[c];
1371 data.b[c] = op[0]->value.f[c] != op[1]->value.f[c];
1374 data.b[c] = op[0]->value.d[c] != op[1]->value.d[c];
1377 data.b[c] = op[0]->value.u64[c] != op[1]->value.u64[c];
1380 data.b[c] = op[0]->value.i64[c] != op[1]->value.i64[c];
1383 data.b[c] = op[0]->value.b[c] != op[1]->value.b[c];
1392 data.b[0] = op[0]->has_value(op[1]);
1396 data.b[0] = !op[0]->has_value(op[1]);
1400 assert(op[0]->type->base_type == GLSL_TYPE_UINT ||
1401 op[0]->type->base_type == GLSL_TYPE_INT ||
1402 op[0]->type->base_type == GLSL_TYPE_UINT64 ||
1403 op[0]->type->base_type == GLSL_TYPE_INT64);
1404 assert(op[1]->type->base_type == GLSL_TYPE_UINT ||
1405 op[1]->type->base_type == GLSL_TYPE_INT ||
1406 op[1]->type->base_type == GLSL_TYPE_UINT64 ||
1407 op[1]->type->base_type == GLSL_TYPE_INT64);
1412 switch (op[0]->type->base_type) {
1414 data.u[c] = op[0]->value.u[c0] << op[1]->value.u[c1];
1417 data.i[c] = op[0]->value.i[c0] << op[1]->value.i[c1];
1420 data.u64[c] = op[0]->value.u64[c0] << op[1]->value.u64[c1];
1423 data.i64[c] = op[0]->value.i64[c0] << op[1]->value.i64[c1];
1432 assert(op[0]->type->base_type == GLSL_TYPE_UINT ||
1433 op[0]->type->base_type == GLSL_TYPE_INT ||
1434 op[0]->type->base_type == GLSL_TYPE_UINT64 ||
1435 op[0]->type->base_type == GLSL_TYPE_INT64);
1436 assert(op[1]->type->base_type == GLSL_TYPE_UINT ||
1437 op[1]->type->base_type == GLSL_TYPE_INT ||
1438 op[1]->type->base_type == GLSL_TYPE_UINT64 ||
1439 op[1]->type->base_type == GLSL_TYPE_INT64);
1444 switch (op[0]->type->base_type) {
1446 data.u[c] = op[0]->value.u[c0] >> op[1]->value.u[c1];
1449 data.i[c] = op[0]->value.i[c0] >> op[1]->value.i[c1];
1452 data.u64[c] = op[0]->value.u64[c0] >> op[1]->value.u64[c1];
1455 data.i64[c] = op[0]->value.i64[c0] >> op[1]->value.i64[c1];
1464 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1469 switch (op[0]->type->base_type) {
1471 data.u[c] = op[0]->value.u[c0] & op[1]->value.u[c1];
1474 data.i[c] = op[0]->value.i[c0] & op[1]->value.i[c1];
1477 data.u64[c] = op[0]->value.u64[c0] & op[1]->value.u64[c1];
1480 data.i64[c] = op[0]->value.i64[c0] & op[1]->value.i64[c1];
1489 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1494 switch (op[0]->type->base_type) {
1496 data.u[c] = op[0]->value.u[c0] ^ op[1]->value.u[c1];
1499 data.i[c] = op[0]->value.i[c0] ^ op[1]->value.i[c1];
1502 data.u64[c] = op[0]->value.u64[c0] ^ op[1]->value.u64[c1];
1505 data.i64[c] = op[0]->value.i64[c0] ^ op[1]->value.i64[c1];
1514 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1519 switch (op[0]->type->base_type) {
1521 data.u[c] = op[0]->value.u[c0] | op[1]->value.u[c1];
1524 data.i[c] = op[0]->value.i[c0] | op[1]->value.i[c1];
1527 data.u64[c] = op[0]->value.u64[c0] | op[1]->value.u64[c1];
1530 data.i64[c] = op[0]->value.i64[c0] | op[1]->value.i64[c1];
1539 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1540 switch (op[0]->type->base_type) {
1542 data.b[c] = op[0]->value.b[c] && op[1]->value.b[c];
1551 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1552 switch (op[0]->type->base_type) {
1554 data.b[c] = op[0]->value.b[c] != op[1]->value.b[c];
1563 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1564 switch (op[0]->type->base_type) {
1566 data.b[c] = op[0]->value.b[c] || op[1]->value.b[c];
1575 switch (op[0]->type->base_type) {
1577 data.f[0] = dot_f(op[0], op[1]);
1580 data.d[0] = dot_d(op[0], op[1]);
1588 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1593 switch (op[0]->type->base_type) {
1595 data.u[c] = MIN2(op[0]->value.u[c0], op[1]->value.u[c1]);
1598 data.i[c] = MIN2(op[0]->value.i[c0], op[1]->value.i[c1]);
1601 data.f[c] = MIN2(op[0]->value.f[c0], op[1]->value.f[c1]);
1604 data.d[c] = MIN2(op[0]->value.d[c0], op[1]->value.d[c1]);
1607 data.u64[c] = MIN2(op[0]->value.u64[c0], op[1]->value.u64[c1]);
1610 data.i64[c] = MIN2(op[0]->value.i64[c0], op[1]->value.i64[c1]);
1619 assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar);
1624 switch (op[0]->type->base_type) {
1626 data.u[c] = MAX2(op[0]->value.u[c0], op[1]->value.u[c1]);
1629 data.i[c] = MAX2(op[0]->value.i[c0], op[1]->value.i[c1]);
1632 data.f[c] = MAX2(op[0]->value.f[c0], op[1]->value.f[c1]);
1635 data.d[c] = MAX2(op[0]->value.d[c0], op[1]->value.d[c1]);
1638 data.u64[c] = MAX2(op[0]->value.u64[c0], op[1]->value.u64[c1]);
1641 data.i64[c] = MAX2(op[0]->value.i64[c0], op[1]->value.i64[c1]);
1650 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1651 switch (op[0]->type->base_type) {
1653 data.f[c] = powf(op[0]->value.f[c], op[1]->value.f[c]);
1662 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1663 switch (op[0]->type->base_type) {
1665 data.f[c] = ldexpf_flush_subnormal(op[0]->value.f[c], op[1]->value.i[c]);
1668 data.d[c] = ldexp_flush_subnormal(op[0]->value.d[c], op[1]->value.i[c]);
1677 const int c = CLAMP(op[1]->value.i[0], 0,
1678 (int) op[0]->type->vector_elements - 1);
1680 switch (op[0]->type->base_type) {
1682 data.u[0] = op[0]->value.u[c];
1685 data.i[0] = op[0]->value.i[c];
1688 data.f[0] = op[0]->value.f[c];
1691 data.d[0] = op[0]->value.d[c];
1694 data.u64[0] = op[0]->value.u64[c];
1697 data.i64[0] = op[0]->value.i64[c];
1700 data.b[0] = op[0]->value.b[c];
1709 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1710 switch (op[0]->type->base_type) {
1712 data.f[c] = op[0]->value.f[c] * op[1]->value.f[c] + op[2]->value.f[c];
1715 data.d[c] = op[0]->value.d[c] * op[1]->value.d[c] + op[2]->value.d[c];
1724 assert(op[0]->type->is_float() || op[0]->type->is_double());
1725 assert(op[1]->type->is_float() || op[1]->type->is_double());
1726 assert(op[2]->type->is_float() || op[2]->type->is_double());
1728 unsigned c2_inc = op[2]->type->is_scalar() ? 0 : 1;
1732 …data.f[c] = op[0]->value.f[c] * (1.0f - op[2]->value.f[c2]) + (op[1]->value.f[c] * op[2]->value.f[…
1735 …data.d[c] = op[0]->value.d[c] * (1.0 - op[2]->value.d[c2]) + (op[1]->value.d[c] * op[2]->value.d[c…
1748 data.u[c] = op[0]->value.b[c] ? op[1]->value.u[c] : op[2]->value.u[c];
1751 data.i[c] = op[0]->value.b[c] ? op[1]->value.i[c] : op[2]->value.i[c];
1754 data.f[c] = op[0]->value.b[c] ? op[1]->value.f[c] : op[2]->value.f[c];
1757 data.d[c] = op[0]->value.b[c] ? op[1]->value.d[c] : op[2]->value.d[c];
1760 data.u64[c] = op[0]->value.b[c] ? op[1]->value.u64[c] : op[2]->value.u64[c];
1763 data.i64[c] = op[0]->value.b[c] ? op[1]->value.i64[c] : op[2]->value.i64[c];
1766 data.b[c] = op[0]->value.b[c] ? op[1]->value.b[c] : op[2]->value.b[c];
1775 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1776 switch (op[0]->type->base_type) {
1778 … data.i[c] = bitfield_extract_uint(op[0]->value.u[c], op[1]->value.i[c], op[2]->value.i[c]);
1781 … data.i[c] = bitfield_extract_int(op[0]->value.i[c], op[1]->value.i[c], op[2]->value.i[c]);
1790 const unsigned idx = op[2]->value.u[0];
1792 memcpy(&data, &op[0]->value, sizeof(data));
1796 data.u[idx] = op[1]->value.u[0];
1799 data.i[idx] = op[1]->value.i[0];
1802 data.f[idx] = op[1]->value.f[0];
1805 data.d[idx] = op[1]->value.d[0];
1808 data.u64[idx] = op[1]->value.u64[0];
1811 data.i64[idx] = op[1]->value.i64[0];
1814 data.b[idx] = op[1]->value.b[0];
1823 for (unsigned c = 0; c < op[0]->type->components(); c++) {
1824 switch (op[0]->type->base_type) {
1826 …data.u[c] = bitfield_insert(op[0]->value.u[c], op[1]->value.u[c], op[2]->value.i[c], op[3]->value.…
1829 …data.i[c] = bitfield_insert(op[0]->value.i[c], op[1]->value.i[c], op[2]->value.i[c], op[3]->value.…
1841 data.u[c] = op[c]->value.u[0];
1844 data.i[c] = op[c]->value.i[0];
1847 data.f[c] = op[c]->value.f[0];
1850 data.d[c] = op[c]->value.d[0];
1853 data.u64[c] = op[c]->value.u64[0];
1856 data.i64[c] = op[c]->value.i64[0];
1859 data.b[c] = op[c]->value.b[0];