Home | History | Annotate | Download | only in gallivm

Lines Matching refs:emit_data

65    struct lp_build_emit_data * emit_data)
68 emit_data->args[0] = lp_build_emit_fetch(bld_base, emit_data->inst, 0, 0);
69 emit_data->arg_count = 1;
70 emit_data->dst_type = LLVMTypeOf(emit_data->args[0]);
75 struct lp_build_emit_data * emit_data)
78 emit_data->args[0] = lp_build_emit_fetch(bld_base, emit_data->inst,
81 emit_data->args[1] = lp_build_emit_fetch(bld_base, emit_data->inst,
83 emit_data->arg_count = 2;
84 emit_data->dst_type = LLVMTypeOf(emit_data->args[0]);
92 struct lp_build_emit_data * emit_data)
94 emit_data->output[emit_data->chan] = LLVMBuildFAdd(
96 emit_data->args[0], emit_data->args[1], "");
104 struct lp_build_emit_data * emit_data)
106 LLVMValueRef tmp = lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_ROUND, emit_data->args[0]);
107 emit_data->output[emit_data->chan] = LLVMBuildFPToSI(bld_base->base.gallivm->builder, tmp,
116 struct lp_build_emit_data * emit_data)
120 emit_data->args[0],
121 emit_data->args[1]);
122 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
123 TGSI_OPCODE_MIN, tmp, emit_data->args[2]);
131 struct lp_build_emit_data * emit_data,
137 emit_data->args[(src * dp_components) + chan] =
138 lp_build_emit_fetch(bld_base, emit_data->inst, src, chan);
141 emit_data->dst_type = bld_base->base.elem_type;
148 struct lp_build_emit_data * emit_data)
150 dp_fetch_args(bld_base, emit_data, 2);
157 struct lp_build_emit_data * emit_data)
161 emit_data->args[0] /* src0.x */,
162 emit_data->args[2] /* src1.x */);
164 emit_data->args[1] /* src0.y */,
165 emit_data->args[3] /* src1.y */);
166 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
179 struct lp_build_emit_data * emit_data)
181 dp_fetch_args(bld_base, emit_data, 2);
182 emit_data->args[5] = lp_build_emit_fetch(bld_base, emit_data->inst,
190 struct lp_build_emit_data * emit_data)
193 tmp = lp_build_emit_llvm(bld_base, TGSI_OPCODE_DP2, emit_data);
194 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base, TGSI_OPCODE_ADD,
195 emit_data->args[5], tmp);
207 struct lp_build_emit_data * emit_data)
209 dp_fetch_args(bld_base, emit_data, 3);
216 struct lp_build_emit_data * emit_data)
220 emit_data->args[0] /* src0.x */,
221 emit_data->args[3] /* src1.x */);
223 emit_data->args[1] /* src0.y */,
224 emit_data->args[4] /* src1.y */);
227 emit_data->args[2] /* src0.z */,
228 emit_data->args[5] /* src1.z */);
229 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
243 struct lp_build_emit_data * emit_data)
245 dp_fetch_args(bld_base, emit_data, 4);
252 struct lp_build_emit_data * emit_data)
256 emit_data->args[0] /* src0.x */,
257 emit_data->args[4] /* src1.x */);
259 emit_data->args[1] /* src0.y */,
260 emit_data->args[5] /* src1.y */);
263 emit_data->args[2] /* src0.z */,
264 emit_data->args[6] /* src1.z */);
267 emit_data->args[3] /* src0.w */,
268 emit_data->args[7] /* src1.w */);
269 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
282 struct lp_build_emit_data * emit_data)
284 dp_fetch_args(bld_base, emit_data, 4);
286 emit_data->args[3] = bld_base->base.one;
298 struct lp_build_emit_data * emit_data)
301 emit_data->args[0] = lp_build_emit_fetch(bld_base, emit_data->inst,
304 emit_data->args[1] = lp_build_emit_fetch(bld_base, emit_data->inst,
307 emit_data->args[2] = lp_build_emit_fetch(bld_base, emit_data->inst,
310 emit_data->args[3] = lp_build_emit_fetch(bld_base, emit_data->inst,
318 struct lp_build_emit_data * emit_data)
321 emit_data->output[TGSI_CHAN_X] = bld_base->base.one;
324 emit_data->output[TGSI_CHAN_Y] = lp_build_emit_llvm_binary(bld_base,
326 emit_data->args[0] /* src0.y */,
327 emit_data->args[2] /* src1.y */);
329 emit_data->output[TGSI_CHAN_Z] = emit_data->args[1]; /* src0.z */
332 emit_data->output[TGSI_CHAN_W] = emit_data->args[3]; /* src1.w */
345 struct lp_build_emit_data * emit_data)
356 struct lp_build_emit_data * emit_data)
362 emit_data->args[0]);
365 emit_data->output[TGSI_CHAN_X] = lp_build_emit_llvm_unary(bld_base,
369 emit_data->output[TGSI_CHAN_Y] = lp_build_emit_llvm_binary(bld_base,
370 TGSI_OPCODE_SUB, emit_data->args[0] /* src0.x */, floor_x);
373 emit_data->output[TGSI_CHAN_Z] = lp_build_emit_llvm_unary(bld_base,
374 TGSI_OPCODE_EX2, emit_data->args[0] /* src0.x */);
376 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
390 struct lp_build_emit_data * emit_data)
394 emit_data->args[0]);
395 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
396 TGSI_OPCODE_SUB, emit_data->args[0], tmp);
404 struct lp_build_emit_data * emit_data)
407 emit_data->args[0] = lp_build_emit_fetch(bld_base, emit_data->inst,
410 emit_data->args[1] = lp_build_emit_fetch(bld_base, emit_data->inst,
413 emit_data->args[2] = lp_build_emit_fetch(bld_base, emit_data->inst,
416 emit_data->args[3] = lp_build_emit_fetch(bld_base, emit_data->inst,
418 emit_data->arg_count = 4;
419 emit_data->dst_type = LLVMVoidTypeInContext(bld_base->base.gallivm->context);
427 struct lp_build_emit_data * emit_data)
429 emit_data->dst_type = LLVMVoidTypeInContext(bld_base->base.gallivm->context);
437 struct lp_build_emit_data * emit_data)
440 emit_data->args[0] = lp_build_emit_fetch(bld_base, emit_data->inst, 0, TGSI_CHAN_X);
442 emit_data->args[1] = lp_build_emit_fetch(bld_base, emit_data->inst, 0, TGSI_CHAN_Y);
444 emit_data->args[2] = lp_build_emit_fetch(bld_base, emit_data->inst, 0, TGSI_CHAN_W);
445 emit_data->arg_count = 3;
452 struct lp_build_emit_data * emit_data)
457 emit_data->output[TGSI_CHAN_X] = bld_base->base.one;
460 emit_data->output[TGSI_CHAN_Y] = lp_build_emit_llvm_binary(bld_base,
462 emit_data->args[0] /* src0.x */,
467 tmp1 = emit_data->args[1];
472 tmp2 = emit_data->args[2];
475 tmp0 = emit_data->args[0];
476 emit_data->output[TGSI_CHAN_Z] = lp_build_emit_llvm_ternary(bld_base,
480 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
494 struct lp_build_emit_data * emit_data)
501 emit_data->args[0] /* src0.x */);
511 emit_data->output[TGSI_CHAN_X] = flr_log_abs_x;
518 emit_data->output[TGSI_CHAN_Y] = lp_build_emit_llvm_binary(bld_base,
522 emit_data->output[TGSI_CHAN_Z] = log_abs_x;
525 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
539 struct lp_build_emit_data * emit_data)
543 emit_data->args[1],
544 emit_data->args[2]);
545 emit_data->output[emit_data->chan] = lp_build_emit_llvm_ternary(bld_base,
546 TGSI_OPCODE_MAD, emit_data->args[0], tmp, emit_data->args[2]);
555 struct lp_build_emit_data * emit_data)
559 emit_data->args[0],
560 emit_data->args[1]);
561 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
562 TGSI_OPCODE_ADD, tmp, emit_data->args[2]);
571 struct lp_build_emit_data * emit_data)
573 emit_data->output[emit_data->chan] = emit_data->args[0];
581 struct lp_build_emit_data * emit_data)
583 emit_data->output[emit_data->chan] = lp_build_mul(&bld_base->base,
584 emit_data->args[0], emit_data->args[1]);
593 struct lp_build_emit_data * emit_data)
595 emit_data->output[emit_data->chan] = lp_build_pow(&bld_base->base,
596 emit_data->args[0], emit_data->args[1]);
610 struct lp_build_emit_data * emit_data)
612 emit_data->args[0] = lp_build_emit_llvm_unary(bld_base, TGSI_OPCODE_ABS,
613 emit_data->args[0]);
615 bld_base->rsq_action.emit(&bld_base->rsq_action, bld_base, emit_data);
617 emit_data->output[emit_data->chan] = bld_base->base.undef;
632 struct lp_build_emit_data * emit_data)
635 emit_data->output[TGSI_CHAN_X] = lp_build_emit_llvm_unary(bld_base,
636 TGSI_OPCODE_COS, emit_data->args[0]);
638 emit_data->output[TGSI_CHAN_Y] = lp_build_emit_llvm_unary(bld_base,
639 TGSI_OPCODE_SIN, emit_data->args[0]);
641 emit_data->output[TGSI_CHAN_Z] = bld_base->base.zero;
644 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
658 struct lp_build_emit_data * emit_data)
660 emit_data->output[emit_data->chan] = bld_base->base.zero;
669 struct lp_build_emit_data * emit_data)
671 emit_data->output[emit_data->chan] = bld_base->base.one;
679 struct lp_build_emit_data * emit_data)
681 emit_data->output[emit_data->chan] = LLVMBuildFSub(
683 emit_data->args[0],
684 emit_data->args[1], "");
692 struct lp_build_emit_data * emit_data)
694 emit_data->output[emit_data->chan] = LLVMBuildUIToFP(bld_base->base.gallivm->builder,
695 emit_data->args[0],
703 struct lp_build_emit_data * emit_data)
707 emit_data->args[0],
708 emit_data->args[1]);
709 emit_data->output[emit_data->chan] = lp_build_emit_llvm_binary(bld_base,
710 TGSI_OPCODE_UADD, tmp, emit_data->args[2]);
718 struct lp_build_emit_data * emit_data)
720 emit_data->output[emit_data->chan] = lp_build_mul(&bld_base->uint_bld,
721 emit_data->args[0], emit_data->args[1]);
729 struct lp_build_emit_data * emit_data)
731 dp_fetch_args(bld_base, emit_data, 3);
757 struct lp_build_emit_data * emit_data)
759 emit_data->output[TGSI_CHAN_X] = xpd_helper(bld_base,
760 emit_data->args[1] /* src0.y */, emit_data->args[5] /* src1.z */,
761 emit_data->args[4] /* src1.y */, emit_data->args[2] /* src0.z */);
763 emit_data->output[TGSI_CHAN_Y] = xpd_helper(bld_base,
764 emit_data->args[2] /* src0.z */, emit_data->args[3] /* src1.x */,
765 emit_data->args[5] /* src1.z */, emit_data->args[0] /* src0.x */);
767 emit_data->output[TGSI_CHAN_Z] = xpd_helper(bld_base,
768 emit_data->args[0] /* src0.x */, emit_data->args[4] /* src1.y */,
769 emit_data->args[3] /* src1.x */, emit_data->args[1] /* src0.y */);
771 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
836 struct lp_build_emit_data * emit_data)
838 emit_data->output[emit_data->chan] = lp_build_abs(&bld_base->base,
839 emit_data->args[0]);
847 struct lp_build_emit_data * emit_data)
849 emit_data->output[emit_data->chan] = lp_build_add(&bld_base->base,
850 emit_data->args[0], emit_data->args[1]);
858 struct lp_build_emit_data * emit_data)
860 emit_data->output[emit_data->chan] = lp_build_and(&bld_base->uint_bld,
861 emit_data->args[0], emit_data->args[1]);
869 struct lp_build_emit_data * emit_data)
873 emit_data->args[0]);
874 emit_data->output[emit_data->chan] = LLVMBuildFPToSI(bld_base->base.gallivm->builder, tmp,
883 struct lp_build_emit_data * emit_data)
885 emit_data->output[emit_data->chan] = lp_build_iround(&bld_base->base, emit_data->args[0]);
893 struct lp_build_emit_data * emit_data)
895 emit_data->output[emit_data->chan] = lp_build_ceil(&bld_base->base,
896 emit_data->args[0]);
904 struct lp_build_emit_data * emit_data)
907 emit_data->args[0], bld_base->base.zero);
908 emit_data->output[emit_data->chan] = lp_build_select(&bld_base->base,
909 cond, emit_data->args[1], emit_data->args[2]);
917 struct lp_build_emit_data * emit_data)
922 emit_data->args[2], half);
923 emit_data->output[emit_data->chan] = lp_build_select(&bld_base->base,
925 emit_data->args[0],
926 emit_data->args[1]);
934 struct lp_build_emit_data * emit_data)
936 emit_data->output[emit_data->chan] = lp_build_cos(&bld_base->base,
937 emit_data->args[0]);
945 struct lp_build_emit_data * emit_data)
947 emit_data->output[emit_data->chan] = lp_build_div(&bld_base->base,
948 emit_data->args[0], emit_data->args[1]);
956 struct lp_build_emit_data * emit_data)
958 emit_data->output[emit_data->chan] = lp_build_exp2(&bld_base->base,
959 emit_data->args[0]);
967 struct lp_build_emit_data * emit_data)
969 lp_build_exp2_approx(&bld_base->base, emit_data->args[0],
970 &emit_data->output[TGSI_CHAN_X],
971 &emit_data->output[TGSI_CHAN_Y],
972 &emit_data->output[TGSI_CHAN_Z]);
973 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
981 struct lp_build_emit_data * emit_data)
983 emit_data->output[emit_data->chan] = lp_build_itrunc(&bld_base->base,
984 emit_data->args[0]);
992 struct lp_build_emit_data * emit_data)
995 emit_data->output[emit_data->chan] = lp_build_itrunc(&bld_base->base,
996 emit_data->args[0]);
1005 struct lp_build_emit_data * emit_data)
1007 emit_data->output[emit_data->chan] = lp_build_floor(&bld_base->base,
1008 emit_data->args[0]);
1016 struct lp_build_emit_data * emit_data)
1018 emit_data->output[emit_data->chan] = lp_build_int_to_float(&bld_base->base,
1019 emit_data->args[0]);
1027 struct lp_build_emit_data * emit_data)
1029 emit_data->output[emit_data->chan] = lp_build_abs(&bld_base->int_bld,
1030 emit_data->args[0]);
1038 struct lp_build_emit_data * emit_data)
1040 emit_data->output[emit_data->chan] = lp_build_div(&bld_base->int_bld,
1041 emit_data->args[0], emit_data->args[1]);
1049 struct lp_build_emit_data * emit_data)
1051 emit_data->output[emit_data->chan] = lp_build_sub(&bld_base->int_bld,
1053 emit_data->args[0]);
1061 struct lp_build_emit_data * emit_data,
1067 emit_data->args[0], emit_data->args[1]);
1068 emit_data->output[emit_data->chan] = lp_build_select(&bld_base->int_bld,
1079 struct lp_build_emit_data * emit_data)
1081 emit_data->output[emit_data->chan] = lp_build_max(&bld_base->int_bld,
1082 emit_data->args[0], emit_data->args[1]);
1090 struct lp_build_emit_data * emit_data)
1092 emit_data->output[emit_data->chan] = lp_build_min(&bld_base->int_bld,
1093 emit_data->args[0], emit_data->args[1]);
1101 struct lp_build_emit_data * emit_data)
1103 iset_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_GEQUAL);
1111 struct lp_build_emit_data * emit_data)
1113 emit_data->output[emit_data->chan] = lp_build_shr(&bld_base->int_bld,
1114 emit_data->args[0], emit_data->args[1]);
1122 struct lp_build_emit_data * emit_data)
1124 iset_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_LESS);
1133 struct lp_build_emit_data * emit_data)
1135 emit_data->output[emit_data->chan] = lp_build_sgn(&bld_base->int_bld,
1136 emit_data->args[0]);
1144 struct lp_build_emit_data * emit_data)
1146 emit_data->output[emit_data->chan] = lp_build_log2(&bld_base->base,
1147 emit_data->args[0]);
1155 struct lp_build_emit_data * emit_data)
1160 LLVMValueRef src0 = emit_data->args[0];
1165 emit_data->output[TGSI_CHAN_X] = p_floor_log2;
1167 emit_data->output[TGSI_CHAN_Y] = lp_build_emit_llvm_binary(bld_base,
1170 emit_data->output[TGSI_CHAN_Z] = p_log2;
1172 emit_data->output[TGSI_CHAN_W] = bld_base->base.one;
1182 struct lp_build_emit_data * emit_data)
1184 emit_data->output[emit_data->chan] = lp_build_max(&bld_base->base,
1185 emit_data->args[0], emit_data->args[1]);
1193 struct lp_build_emit_data * emit_data)
1195 emit_data->output[emit_data->chan] = lp_build_min(&bld_base->base,
1196 emit_data->args[0], emit_data->args[1]);
1204 struct lp_build_emit_data * emit_data)
1206 emit_data->output[emit_data->chan] = lp_build_mod(&bld_base->int_bld,
1207 emit_data->args[0], emit_data->args[1]);
1215 struct lp_build_emit_data * emit_data)
1217 emit_data->output[emit_data->chan] = lp_build_not(&bld_base->base,
1218 emit_data->args[0]);
1226 struct lp_build_emit_data * emit_data)
1228 emit_data->output[emit_data->chan] = lp_build_or(&bld_base->uint_bld,
1229 emit_data->args[0], emit_data->args[1]);
1237 struct lp_build_emit_data * emit_data)
1239 emit_data->output[emit_data->chan] = lp_build_pow(&bld_base->base,
1240 emit_data->args[0], emit_data->args[1]);
1250 struct lp_build_emit_data * emit_data)
1252 emit_data->output[emit_data->chan] = lp_build_rcp(&bld_base->base,
1253 emit_data->args[0]);
1264 struct lp_build_emit_data * emit_data)
1266 emit_data->output[emit_data->chan] = lp_build_rsqrt(&bld_base->base,
1267 emit_data->args[0]);
1275 struct lp_build_emit_data * emit_data)
1277 emit_data->output[emit_data->chan] = lp_build_round(&bld_base->base,
1278 emit_data->args[0]);
1287 struct lp_build_emit_data * emit_data,
1291 emit_data->args[0], emit_data->args[1]);
1292 emit_data->output[emit_data->chan] = lp_build_select(&bld_base->base,
1304 struct lp_build_emit_data * emit_data)
1306 set_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_EQUAL);
1314 struct lp_build_emit_data * emit_data)
1316 set_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_GEQUAL);
1325 struct lp_build_emit_data * emit_data)
1327 set_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_GREATER);
1335 struct lp_build_emit_data * emit_data)
1337 emit_data->output[emit_data->chan] = lp_build_shl(&bld_base->uint_bld,
1338 emit_data->args[0], emit_data->args[1]);
1346 struct lp_build_emit_data * emit_data)
1348 emit_data->output[emit_data->chan] = lp_build_sin(&bld_base->base,
1349 emit_data->args[0]);
1357 struct lp_build_emit_data * emit_data)
1359 set_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_LEQUAL);
1367 struct lp_build_emit_data * emit_data)
1369 set_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_LESS);
1378 struct lp_build_emit_data * emit_data)
1380 set_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_NOTEQUAL);
1389 struct lp_build_emit_data * emit_data)
1391 emit_data->output[emit_data->chan] = lp_build_sgn(&bld_base->base,
1392 emit_data->args[0]);
1401 struct lp_build_emit_data * emit_data)
1403 emit_data->output[emit_data->chan] = lp_build_sub(&bld_base->base,
1404 emit_data->args[0],
1405 emit_data->args[1]);
1414 struct lp_build_emit_data * emit_data)
1416 emit_data->output[emit_data->chan] = lp_build_trunc(&bld_base->base,
1417 emit_data->args[0]);
1425 struct lp_build_emit_data * emit_data)
1427 emit_data->output[emit_data->chan] = lp_build_add(&bld_base->uint_bld,
1428 emit_data->args[0], emit_data->args[1]);
1436 struct lp_build_emit_data * emit_data)
1438 emit_data->output[emit_data->chan] = lp_build_div(&bld_base->uint_bld,
1439 emit_data->args[0], emit_data->args[1]);
1447 struct lp_build_emit_data * emit_data)
1449 emit_data->output[emit_data->chan] = lp_build_max(&bld_base->uint_bld,
1450 emit_data->args[0], emit_data->args[1]);
1458 struct lp_build_emit_data * emit_data)
1460 emit_data->output[emit_data->chan] = lp_build_min(&bld_base->uint_bld,
1461 emit_data->args[0], emit_data->args[1]);
1469 struct lp_build_emit_data * emit_data)
1471 emit_data->output[emit_data->chan] = lp_build_mod(&bld_base->uint_bld,
1472 emit_data->args[0], emit_data->args[1]);
1480 struct lp_build_emit_data * emit_data,
1486 emit_data->args[0], emit_data->args[1]);
1487 emit_data->output[emit_data->chan] = lp_build_select(&bld_base->uint_bld,
1499 struct lp_build_emit_data * emit_data)
1501 uset_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_EQUAL);
1509 struct lp_build_emit_data * emit_data)
1511 uset_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_GEQUAL);
1519 struct lp_build_emit_data * emit_data)
1521 emit_data->output[emit_data->chan] = lp_build_shr(&bld_base->uint_bld,
1522 emit_data->args[0], emit_data->args[1]);
1530 struct lp_build_emit_data * emit_data)
1532 uset_emit_cpu(action, bld_base, emit_data
1541 struct lp_build_emit_data * emit_data)
1543 uset_emit_cpu(action, bld_base, emit_data, PIPE_FUNC_NOTEQUAL);
1551 struct lp_build_emit_data * emit_data)
1553 emit_data->output[emit_data->chan] = lp_build_xor(&bld_base->uint_bld,
1554 emit_data->args[0],
1555 emit_data->args[1]);