Lines Matching defs:bld_base

391    LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
394 LLVMValueRef lindex = lp_build_const_int32(bld->bld_base.base.gallivm, index * 4 + chan);
413 LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
416 LLVMValueRef lindex = lp_build_const_int32(bld->bld_base.base.gallivm,
468 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
485 for (i = 0; i < bld->bld_base.base.type.length; i++) {
521 LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
522 struct lp_build_context *uint_bld = &bld->bld_base.uint_bld;
532 base = lp_build_const_int_vec(bld->bld_base.base.gallivm, uint_bld->type, reg_index);
541 max_index = lp_build_const_int_vec(bld->bld_base.base.gallivm,
543 bld->bld_base.info->file_max[reg_file]);
552 stype_to_fetch(struct lp_build_tgsi_context * bld_base,
560 bld_fetch = &bld_base->base;
563 bld_fetch = &bld_base->uint_bld;
566 bld_fetch = &bld_base->int_bld;
580 struct lp_build_tgsi_context * bld_base,
585 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
586 struct gallivm_state *gallivm = bld_base->base.gallivm;
588 struct lp_build_context *uint_bld = &bld_base->uint_bld;
590 struct lp_build_context *bld_fetch = stype_to_fetch(bld_base, stype);
604 lp_build_const_int_vec(bld->bld_base.base.gallivm, uint_bld->type, swizzle);
637 struct lp_build_tgsi_context * bld_base,
642 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
647 res = LLVMConstBitCast(res, bld_base->uint_bld.vec_type);
649 res = LLVMConstBitCast(res, bld_base->int_bld.vec_type);
656 struct lp_build_tgsi_context * bld_base,
661 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
662 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
664 struct lp_build_context *uint_bld = &bld_base->uint_bld;
679 lp_build_const_int_vec(gallivm, uint_bld->type, bld->bld_base.base.type.length);
695 res = build_gather(&bld_base->base, inputs_array, index_vec);
712 res = LLVMBuildBitCast(builder, res, bld_base->uint_bld.vec_type, "");
714 res = LLVMBuildBitCast(builder, res, bld_base->int_bld.vec_type, "");
722 struct lp_build_tgsi_context * bld_base,
727 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
728 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
730 struct lp_build_context *uint_bld = &bld_base->uint_bld;
743 lp_build_const_int_vec(bld->bld_base.base.gallivm, uint_bld->type, swizzle);
745 lp_build_const_int_vec(bld->bld_base.base.gallivm, uint_bld->type,
746 bld->bld_base.base.type.length);
757 float4_ptr_type = LLVMPointerType(LLVMFloatTypeInContext(bld->bld_base.base.gallivm->context), 0);
762 res = build_gather(&bld_base->base, temps_array, index_vec);
767 LLVMTypeRef itype = LLVMPointerType(bld->bld_base.int_bld.vec_type, 0);
775 return bld->bld_base.base.undef;
783 struct lp_build_tgsi_context * bld_base,
788 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
789 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
790 const struct tgsi_shader_info *info = bld->bld_base.info;
799 res = lp_build_broadcast_scalar(&bld_base->uint_bld, bld->system_values.instance_id);
810 res = bld_base->base.zero;
817 res = LLVMBuildBitCast(builder, res, bld_base->base.vec_type, "");
819 res = LLVMBuildBitCast(builder, res, bld_base->uint_bld.vec_type, "");
821 res = LLVMBuildBitCast(builder, res, bld_base->int_bld.vec_type, "");
845 *ddx = lp_build_ddx(&bld->bld_base.base, src);
848 *ddy = lp_build_ddy(&bld->bld_base.base, src);
861 LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
901 value = lp_build_compare(bld->bld_base.base.gallivm,
902 bld->bld_base.base.type,
905 bld->bld_base.base.zero);
924 struct lp_build_tgsi_context *bld_base,
931 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
932 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
935 struct lp_build_context *uint_bld = &bld_base->uint_bld;
944 bld_store = &bld_base->base;
947 bld_store = &bld_base->uint_bld;
950 bld_store = &bld_base->int_bld;
964 value = lp_build_max(&bld->bld_base.base, value, bld->bld_base.base.zero);
965 value = lp_build_min(&bld->bld_base.base, value, bld->bld_base.base.one);
969 value = lp_build_max(&bld->bld_base.base, value, lp_build_const_vec(bld->bld_base.base.gallivm, bld->bld_base.base.type, -1.0));
970 value = lp_build_min(&bld->bld_base.base, value, bld->bld_base.base.one);
984 bld->bld_base.info->file_max[reg->Register.File]);
993 lp_build_const_int_vec(gallivm, uint_bld->type, bld->bld_base.base.type.length);
1002 for (i = 0; i < bld->bld_base.base.type.length; i++) {
1036 bld->bld_base.base.type.length);
1045 for (i = 0; i < bld->bld_base.base.type.length; i++) {
1072 LLVMTypeRef itype = bld_base->int_bld.vec_type;
1097 assert(LLVMTypeOf(value) == bld_base->base.int_vec_type);
1114 struct lp_build_tgsi_context * bld_base,
1121 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1129 emit_store_chan(bld_base, inst, 0, chan_index, pred[chan_index], dst[chan_index]);
1144 LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
1145 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
1158 texel[i] = bld->bld_base.base.undef;
1163 derivs.ddx_ddy[0] = bld->bld_base.base.undef;
1164 derivs.ddx_ddy[1] = bld->bld_base.base.undef;
1206 lod_bias = lp_build_emit_fetch( &bld->bld_base, inst, 0, 3 );
1211 explicit_lod = lp_build_emit_fetch( &bld->bld_base, inst, 0, 3 );
1219 oow = lp_build_emit_fetch( &bld->bld_base, inst, 0, 3 );
1220 oow = lp_build_rcp(&bld->bld_base.base, oow);
1224 coords[i] = lp_build_emit_fetch( &bld->bld_base, inst, 0, i );
1226 coords[i] = lp_build_mul(&bld->bld_base.base, coords[i], oow);
1229 coords[i] = bld->bld_base.base.undef;
1236 unsigned length = bld->bld_base.base.type.length;
1242 LLVMValueRef srcx = lp_build_emit_fetch( &bld->bld_base, inst, 1, dim );
1243 LLVMValueRef srcy = lp_build_emit_fetch( &bld->bld_base, inst, 2, dim );
1276 derivs.ddx_ddy[0] = lp_build_packed_ddx_ddy_onecoord(&bld->bld_base.base, coords[0]);
1279 derivs.ddx_ddy[0] = lp_build_packed_ddx_ddy_twocoord(&bld->bld_base.base,
1282 derivs.ddx_ddy[1] = lp_build_packed_ddx_ddy_onecoord(&bld->bld_base.base, coords[2]);
1289 bld->bld_base.base.gallivm,
1290 bld->bld_base.base.type,
1355 sizes_out[i] = bld->bld_base.base.undef;
1360 explicit_lod = lp_build_emit_fetch( &bld->bld_base, inst, 0, 2 );
1365 bld->bld_base.base.gallivm,
1366 bld->bld_base.int_bld.type,
1381 if (pc + i >= bld->bld_base.info->num_instructions)
1384 opcode = bld->bld_base.instructions[pc + i].Instruction.Opcode;
1419 LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
1437 terms[swizzle] = lp_build_emit_fetch(&bld->bld_base, inst, 0, chan_index );
1448 chan_mask = lp_build_cmp(&bld->bld_base.base, PIPE_FUNC_GEQUAL, terms[chan_index], bld->bld_base.base.zero);
1476 LLVMBuilderRef builder = bld->bld_base.base.gallivm->builder;
1486 LLVMValueRef zero = LLVMConstNull(bld->bld_base.base.int_vec_type);
1504 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
1512 int n = bld->bld_base.info->file_max[TGSI_FILE_TEMPORARY];
1545 struct lp_build_tgsi_context *bld_base,
1548 struct lp_build_tgsi_soa_context *bld = lp_soa_context(bld_base);
1549 struct gallivm_state *gallivm = bld->bld_base.base.gallivm;
1550 LLVMTypeRef vec_type = bld->bld_base.base.vec_type;
1556 assert(last <= bld->bld_base.info->file_max[decl->Declaration.File]);
1582 bld->addr[idx][i] = lp_build_alloca(gallivm, bld_base->base.int_vec_type, "addr");
1601 struct lp_build_tgsi_context *bld_base,
1604 struct lp_build_tgsi_soa_context *bld = lp_soa_context(bld_base);
1605 struct gallivm_state * gallivm = bld_base->base.gallivm;
1616 lp_build_const_vec(gallivm, bld_base->base.type, imm->u[i].Float);
1621 LLVMValueRef tmp = lp_build_const_vec(gallivm, bld_base->uint_bld.type, imm->u[i].Uint);
1623 LLVMConstBitCast(tmp, bld_base->base.vec_type);
1629 LLVMValueRef tmp = lp_build_const_vec(gallivm, bld_base->int_bld.type, imm->u[i].Int);
1631 LLVMConstBitCast(tmp, bld_base->base.vec_type);
1637 bld->immediates[bld->num_immediates][i] = bld_base->base.undef;
1645 struct lp_build_tgsi_context * bld_base,
1648 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1657 struct lp_build_tgsi_context * bld_base,
1660 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1669 struct lp_build_tgsi_context * bld_base,
1672 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1674 emit_kilp(bld, bld_base->pc - 1);
1680 struct lp_build_tgsi_context * bld_base,
1683 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1685 emit_kil(bld, emit_data->inst, bld_base->pc - 1);
1691 struct lp_build_tgsi_context * bld_base,
1694 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1702 struct lp_build_tgsi_context * bld_base,
1705 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1714 struct lp_build_tgsi_context * bld_base,
1717 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1726 struct lp_build_tgsi_context * bld_base,
1729 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1738 struct lp_build_tgsi_context * bld_base,
1741 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1750 struct lp_build_tgsi_context * bld_base,
1753 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1761 struct lp_build_tgsi_context * bld_base,
1764 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1767 &bld_base->pc);
1773 struct lp_build_tgsi_context * bld_base,
1776 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1778 lp_exec_mask_ret(&bld->exec_mask, &bld_base->pc);
1784 struct lp_build_tgsi_context * bld_base,
1787 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1795 struct lp_build_tgsi_context * bld_base,
1799 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1801 tmp = lp_build_cmp(&bld_base->base, PIPE_FUNC_NOTEQUAL,
1802 emit_data->args[0], bld->bld_base.base.zero);
1809 struct lp_build_tgsi_context * bld_base,
1812 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1820 struct lp_build_tgsi_context * bld_base,
1823 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1831 struct lp_build_tgsi_context * bld_base,
1834 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1842 struct lp_build_tgsi_context * bld_base,
1845 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1853 struct lp_build_tgsi_context * bld_base,
1856 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1858 lp_exec_endloop(bld_base->base.gallivm, &bld->exec_mask);
1864 struct lp_build_tgsi_context * bld_base,
1867 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1869 lp_exec_mask_endsub(&bld->exec_mask, &bld_base->pc);
1875 struct lp_build_tgsi_context * bld_base,
1878 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1894 struct lp_build_tgsi_context * bld_base,
1902 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1915 tmp0 = lp_build_emit_fetch(&bld->bld_base, emit_data->inst, 0, TGSI_CHAN_X);
1919 tmp0 = lp_build_mul( &bld->bld_base.base, tmp0, tmp0);
1923 tmp1 = lp_build_emit_fetch(&bld->bld_base, emit_data->inst, 0, TGSI_CHAN_Y);
1927 tmp1 = lp_build_mul( &bld->bld_base.base, tmp1, tmp1);
1928 tmp0 = lp_build_add( &bld->bld_base.base, tmp0, tmp1);
1932 tmp1 = lp_build_emit_fetch(&bld->bld_base, emit_data->inst, 0, TGSI_CHAN_Z);
1936 tmp1 = lp_build_mul( &bld->bld_base.base, tmp1, tmp1);
1937 tmp0 = lp_build_add( &bld->bld_base.base, tmp0, tmp1);
1942 tmp1 = lp_build_emit_fetch(&bld->bld_base, emit_data->inst, 0, TGSI_CHAN_W);
1946 tmp1 = lp_build_mul( &bld->bld_base.base, tmp1, tmp1);
1947 tmp0 = lp_build_add( &bld->bld_base.base, tmp0, tmp1);
1950 tmp1 = lp_build_rsqrt( &bld->bld_base.base, tmp0);
1953 emit_data->output[TGSI_CHAN_X] = lp_build_mul( &bld->bld_base.base, tmp4, tmp1);
1957 emit_data->output[TGSI_CHAN_Y] = lp_build_mul( &bld->bld_base.base, tmp5, tmp1);
1962 emit_data->output[TGSI_CHAN_Z] = lp_build_mul( &bld->bld_base.base, tmp6, tmp1);
1966 emit_data->output[TGSI_CHAN_W] = lp_build_mul( &bld->bld_base.base, tmp7, tmp1);
1972 emit_data->output[TGSI_CHAN_W] = bld->bld_base.base.one;
1976 static void emit_prologue(struct lp_build_tgsi_context * bld_base)
1978 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
1979 struct gallivm_state * gallivm = bld_base->base.gallivm;
1984 bld_base->info->file_max[TGSI_FILE_TEMPORARY] * 4 + 4);
1986 bld_base->base.vec_type, array_size,
1993 bld_base->info->file_max[TGSI_FILE_OUTPUT] * 4 + 4);
1995 bld_base->base.vec_type, array_size,
2003 LLVMTypeRef vec_type = bld_base->base.vec_type;
2005 bld_base->info->file_max[TGSI_FILE_INPUT]*4 + 4);
2010 assert(bld_base->info->num_inputs
2011 <= bld_base->info->file_max[TGSI_FILE_INPUT] + 1);
2013 for (index = 0; index < bld_base->info->num_inputs; ++index) {
2028 static void emit_epilogue(struct lp_build_tgsi_context * bld_base)
2030 struct lp_build_tgsi_soa_context * bld = lp_soa_context(bld_base);
2041 assert(bld_base->info->num_outputs <=
2042 bld_base->info->file_max[TGSI_FILE_OUTPUT] + 1);
2043 for (index = 0; index < bld_base->info->num_outputs; ++index) {
2076 lp_build_context_init(&bld.bld_base.base, gallivm, type);
2077 lp_build_context_init(&bld.bld_base.uint_bld, gallivm, lp_uint_type(type));
2078 lp_build_context_init(&bld.bld_base.int_bld, gallivm, lp_int_type(type));
2086 bld.bld_base.info = info;
2089 bld.bld_base.soa = TRUE;
2090 bld.bld_base.emit_fetch_funcs[TGSI_FILE_CONSTANT] = emit_fetch_constant;
2091 bld.bld_base.emit_fetch_funcs[TGSI_FILE_IMMEDIATE] = emit_fetch_immediate;
2092 bld.bld_base.emit_fetch_funcs[TGSI_FILE_INPUT] = emit_fetch_input;
2093 bld.bld_base.emit_fetch_funcs[TGSI_FILE_TEMPORARY] = emit_fetch_temporary;
2094 bld.bld_base.emit_fetch_funcs[TGSI_FILE_SYSTEM_VALUE] = emit_fetch_system_value;
2095 bld.bld_base.emit_store = emit_store;
2097 bld.bld_base.emit_declaration = lp_emit_declaration_soa;
2098 bld.bld_base.emit_immediate = lp_emit_immediate_soa;
2100 bld.bld_base.emit_prologue = emit_prologue;
2101 bld.bld_base.emit_epilogue = emit_epilogue;
2104 lp_set_default_actions_cpu(&bld.bld_base);
2106 bld.bld_base.op_actions[TGSI_OPCODE_BGNLOOP].emit = bgnloop_emit;
2107 bld.bld_base.op_actions[TGSI_OPCODE_BGNSUB].emit = bgnsub_emit;
2108 bld.bld_base.op_actions[TGSI_OPCODE_BRK].emit = brk_emit;
2109 bld.bld_base.op_actions[TGSI_OPCODE_CAL].emit = cal_emit;
2110 bld.bld_base.op_actions[TGSI_OPCODE_CONT].emit = cont_emit;
2111 bld.bld_base.op_actions[TGSI_OPCODE_DDX].emit = ddx_emit;
2112 bld.bld_base.op_actions[TGSI_OPCODE_DDY].emit = ddy_emit;
2113 bld.bld_base.op_actions[TGSI_OPCODE_ELSE].emit = else_emit;
2114 bld.bld_base.op_actions[TGSI_OPCODE_ENDIF].emit = endif_emit;
2115 bld.bld_base.op_actions[TGSI_OPCODE_ENDLOOP].emit = endloop_emit;
2116 bld.bld_base.op_actions[TGSI_OPCODE_ENDSUB].emit = endsub_emit;
2117 bld.bld_base.op_actions[TGSI_OPCODE_IF].emit = if_emit;
2118 bld.bld_base.op_actions[TGSI_OPCODE_KIL].emit = kil_emit;
2119 bld.bld_base.op_actions[TGSI_OPCODE_KILP].emit = kilp_emit;
2120 bld.bld_base.op_actions[TGSI_OPCODE_NRM].emit = nrm_emit;
2121 bld.bld_base.op_actions[TGSI_OPCODE_NRM4].emit = nrm_emit;
2122 bld.bld_base.op_actions[TGSI_OPCODE_RET].emit = ret_emit;
2123 bld.bld_base.op_actions[TGSI_OPCODE_TEX].emit = tex_emit;
2124 bld.bld_base.op_actions[TGSI_OPCODE_TXB].emit = txb_emit;
2125 bld.bld_base.op_actions[TGSI_OPCODE_TXD].emit = txd_emit;
2126 bld.bld_base.op_actions[TGSI_OPCODE_TXL].emit = txl_emit;
2127 bld.bld_base.op_actions[TGSI_OPCODE_TXP].emit = txp_emit;
2128 bld.bld_base.op_actions[TGSI_OPCODE_TXQ].emit = txq_emit;
2130 lp_exec_mask_init(&bld.exec_mask, &bld.bld_base.base);
2134 lp_build_tgsi_llvm(&bld.bld_base, tokens);