Lines Matching defs:builder
56 * The caller is responsible for initializing ctx::module and ctx::builder.
76 ctx->builder = ac_create_builder(ctx->context, float_mode);
155 return LLVMBuildExtractElement(ac->builder, value, LLVMConstInt(ac->i32, index, false), "");
248 return LLVMBuildPtrToInt(ctx->builder, v, ac_to_integer_type(ctx, type), "");
250 return LLVMBuildBitCast(ctx->builder, v, ac_to_integer_type(ctx, type), "");
287 return LLVMBuildBitCast(ctx->builder, v, ac_to_float_type(ctx, type), "");
317 call = LLVMBuildCall2(ctx->builder, function_type, function, params, param_count, "");
389 LLVMValueRef phi = LLVMBuildPhi(ctx->builder, type, "");
416 LLVMBuilderRef builder = ctx->builder;
425 LLVMBuildCall2(builder, ftype, inlineasm, NULL, 0, "");
432 *pgpr = LLVMBuildCall2(builder, ftype, inlineasm, pgpr, 1, "");
439 *pgpr = LLVMBuildCall2(builder, ftype, inlineasm, pgpr, 1, "");
445 *pgpr = LLVMBuildCall2(builder, ftype, inlineasm, pgpr, 1, "");
457 vgpr = LLVMBuildZExt(ctx->builder, vgpr, ctx->i32, "");
464 vgpr = LLVMBuildBitCast(builder, vgpr, LLVMVectorType(ctx->i32, vgpr_size / 4), "");
465 vgpr0 = LLVMBuildExtractElement(builder, vgpr, ctx->i32_0, "");
466 vgpr0 = LLVMBuildCall2(builder, ftype, inlineasm, &vgpr0, 1, "");
467 vgpr = LLVMBuildInsertElement(builder, vgpr, vgpr0, ctx->i32_0, "");
468 vgpr = LLVMBuildBitCast(builder, vgpr, vgpr_type, "");
471 vgpr = LLVMBuildTrunc(builder, vgpr, type, "");
483 return LLVMBuildBitCast(ctx->builder, tmp, ctx->v2i32, "");
491 value = LLVMBuildZExt(ctx->builder, value, ctx->i32, "");
536 return LLVMBuildICmp(ctx->builder, LLVMIntEQ, vote_set, active_set, "");
542 return LLVMBuildICmp(ctx->builder, LLVMIntNE, vote_set, LLVMConstInt(ctx->iN_wavemask, 0, 0),
551 LLVMValueRef all = LLVMBuildICmp(ctx->builder, LLVMIntEQ, vote_set, active_set, "");
553 LLVMBuildICmp(ctx->builder, LLVMIntEQ, vote_set, LLVMConstInt(ctx->iN_wavemask, 0, 0), "");
554 return LLVMBuildOr(ctx->builder, all, none, "");
573 vec = LLVMBuildInsertElement(ctx->builder, vec, value, index, "");
582 LLVMBuilderRef builder = ctx->builder;
597 vec = LLVMBuildInsertElement(builder, vec, value, index, "");
701 return LLVMBuildFDiv(ctx->builder, num, den, "");
713 return LLVMBuildFMul(ctx->builder, num, rcp, "");
722 LLVMBuilderRef builder = ctx->builder;
724 num = LLVMBuildLShr(builder, num, pre_shift, "");
725 num = LLVMBuildMul(builder, LLVMBuildZExt(builder, num, ctx->i64, ""),
726 LLVMBuildZExt(builder, multiplier, ctx->i64, ""), "");
727 num = LLVMBuildAdd(builder, num, LLVMBuildZExt(builder, increment, ctx->i64, ""), "");
728 num = LLVMBuildLShr(builder, num, LLVMConstInt(ctx->i64, 32, 0), "");
729 num = LLVMBuildTrunc(builder, num, ctx->i32, "");
730 return LLVMBuildLShr(builder, num, post_shift, "");
740 LLVMBuilderRef builder = ctx->builder;
742 num = LLVMBuildLShr(builder, num, pre_shift, "");
743 num = LLVMBuildNUWAdd(builder, num, increment, "");
744 num = LLVMBuildMul(builder, LLVMBuildZExt(builder, num, ctx->i64, ""),
745 LLVMBuildZExt(builder, multiplier, ctx->i64, ""), "");
746 num = LLVMBuildLShr(builder, num, LLVMConstInt(ctx->i64, 32, 0), "");
747 num = LLVMBuildTrunc(builder, num, ctx->i32, "");
748 return LLVMBuildLShr(builder, num, post_shift, "");
756 LLVMBuilderRef builder = ctx->builder;
758 num = LLVMBuildMul(builder, LLVMBuildZExt(builder, num, ctx->i64, ""),
759 LLVMBuildZExt(builder, multiplier, ctx->i64, ""), "");
760 num = LLVMBuildLShr(builder, num, LLVMConstInt(ctx->i64, 32, 0), "");
761 num = LLVMBuildTrunc(builder, num, ctx->i32, "");
762 return LLVMBuildLShr(builder, num, post_shift, "");
800 LLVMBuilderRef builder = ctx->builder;
810 is_ma_positive = LLVMBuildFCmp(builder, LLVMRealUGE, selcoords->ma, LLVMConstReal(f32, 0.0), "");
811 sgn_ma = LLVMBuildSelect(builder, is_ma_positive, LLVMConstReal(f32, 1.0),
814 is_ma_z = LLVMBuildFCmp(builder, LLVMRealUGE, selcoords->id, LLVMConstReal(f32, 4.0), "");
815 is_not_ma_z = LLVMBuildNot(builder, is_ma_z, "");
817 builder, is_not_ma_z,
818 LLVMBuildFCmp(builder, LLVMRealUGE, selcoords->id, LLVMConstReal(f32, 2.0), ""), "");
819 is_ma_x = LLVMBuildAnd(builder, is_not_ma_z, LLVMBuildNot(builder, is_ma_y, ""), "");
822 tmp = LLVMBuildSelect(builder, is_ma_x, coords[2], coords[0], "");
824 builder, is_ma_y, LLVMConstReal(f32, 1.0),
825 LLVMBuildSelect(builder, is_ma_z, sgn_ma, LLVMBuildFNeg(builder, sgn_ma, ""), ""), "");
826 out_st[0] = LLVMBuildFMul(builder, tmp, sgn, "");
829 tmp = LLVMBuildSelect(builder, is_ma_y, coords[2], coords[1], "");
830 sgn = LLVMBuildSelect(builder, is_ma_y, sgn_ma, LLVMConstReal(f32, -1.0), "");
831 out_st[1] = LLVMBuildFMul(builder, tmp, sgn, "");
834 tmp = LLVMBuildSelect(builder, is_ma_z, coords[2],
835 LLVMBuildSelect(builder, is_ma_y, coords[1], coords[0], ""), "");
837 *out_ma = LLVMBuildFMul(builder, tmp, LLVMConstReal(f32, 2.0), "");
844 LLVMBuilderRef builder = ctx->builder;
873 ge0 = LLVMBuildFCmp(builder, LLVMRealOGE, tmp, ctx->f32_0, "");
874 tmp = LLVMBuildSelect(builder, ge0, tmp, ctx->f32_0, "");
887 coords[i] = LLVMBuildFMul(builder, selcoords.stc[i], invma, "");
923 deriv_ma = LLVMBuildFMul(builder, deriv_ma, invma, "");
927 LLVMBuildFSub(builder, LLVMBuildFMul(builder, deriv_st[i], invma, ""),
928 LLVMBuildFMul(builder, deriv_ma, coords[i], ""), "");
938 coords[i] = LLVMBuildFAdd(builder, coords[i], LLVMConstReal(ctx->f32, 1.5), "");
1090 return LLVMBuildGEP(ctx->builder, base_ptr, &index, 1, "");
1099 return LLVMBuildGEP(ctx->builder, base_ptr, indices, 2, "");
1104 LLVMValueRef offset_ptr = LLVMBuildGEP(ctx->builder, ptr, &index, 1, "");
1105 return LLVMBuildPointerCast(ctx->builder, offset_ptr, LLVMTypeOf(ptr), "");
1111 LLVMBuildStore(ctx->builder, value, ac_build_gep0(ctx, base_ptr, index));
1150 pointer = LLVMBuildInBoundsGEP(ctx->builder, base_ptr, &index, 1, "");
1152 pointer = LLVMBuildGEP(ctx->builder, base_ptr, &index, 1, "");
1156 result = LLVMBuildLoad(ctx->builder, pointer, "");
1210 args[idx++] = LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, "");
1249 v[i] = LLVMBuildExtractElement(ctx->builder, vdata, LLVMConstInt(ctx->i32, i, 0), "");
1253 voffset2 = LLVMBuildAdd(ctx->builder, voffset ? voffset : ctx->i32_0,
1274 args[idx++] = LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, "");
1315 offset = LLVMBuildAdd(ctx->builder, offset, soffset, "");
1319 offset = LLVMBuildAdd(ctx->builder, offset, LLVMConstInt(ctx->i32, 4, 0), "");
1375 LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, "")};
1376 LLVMValueRef res = LLVMBuildCall2(ctx->builder, calltype, inlineasm, args, 2, "");
1395 args[idx++] = LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, "");
1455 LLVMBuildAnd(ctx->builder, src, LLVMConstInt(ctx->i32, (1 << mant_bits) - 1, false), "");
1462 shifted = LLVMBuildShl(ctx->builder, src, LLVMConstInt(ctx->i32, normal_shift, false), "");
1464 LLVMBuildAdd(ctx->builder, shifted, LLVMConstInt(ctx->i32, bias_shift << 23, false), "");
1468 naninf = LLVMBuildOr(ctx->builder, normal, LLVMConstInt(ctx->i32, 0xff << 23, false), "");
1481 tmp = LLVMBuildSub(ctx->builder, ctlz, LLVMConstInt(ctx->i32, 8, false), "");
1482 denormal = LLVMBuildShl(ctx->builder, mantissa, tmp, "");
1485 tmp = LLVMBuildSub(ctx->builder, LLVMConstInt(ctx->i32, denormal_exp, false), ctlz, "");
1486 tmp = LLVMBuildShl(ctx->builder, tmp, LLVMConstInt(ctx->i32, 23, false), "");
1487 denormal = LLVMBuildAdd(ctx->builder, denormal, tmp, "");
1492 tmp = LLVMBuildICmp(ctx->builder, LLVMIntUGE, src,
1494 result = LLVMBuildSelect(ctx->builder, tmp, naninf, normal, "");
1496 tmp = LLVMBuildICmp(ctx->builder, LLVMIntUGE, src,
1498 result = LLVMBuildSelect(ctx->builder, tmp, result, denormal, "");
1500 tmp = LLVMBuildICmp(ctx->builder, LLVMIntNE, src, ctx->i32_0, "");
1501 result = LLVMBuildSelect(ctx->builder, tmp, result, ctx->i32_0, "");
1558 LLVMBuildAdd(ctx->builder, soffset, LLVMConstInt(ctx->i32, i << load_log_size, false), "");
1576 tmp = LLVMBuildZExt(ctx->builder, loads[src], dst_type, "");
1580 tmp = LLVMBuildShl(ctx->builder, tmp, LLVMConstInt(dst_type, 8 * i, false), "");
1581 accum = LLVMBuildOr(ctx->builder, accum, tmp, "");
1597 loads[i] = LLVMBuildExtractElement(ctx->builder, loaded, tmp, "");
1611 tmp = LLVMBuildLShr(ctx->builder, loaded, tmp, "");
1612 loads[dst - 1] = LLVMBuildTrunc(ctx->builder, tmp, dst_type, "");
1622 loads[i] = LLVMBuildBitCast(ctx->builder, tmp, ctx->f64, "");
1628 LLVMValueRef r = LLVMBuildAnd(ctx->builder, data, i32_2047, "");
1629 tmp = LLVMBuildLShr(ctx->builder, data, LLVMConstInt(ctx->i32, 11, false), "");
1630 LLVMValueRef g = LLVMBuildAnd(ctx->builder, tmp, i32_2047, "");
1631 LLVMValueRef b = LLVMBuildLShr(ctx->builder, data, LLVMConstInt(ctx->i32, 22, false), "");
1645 loads[0] = LLVMBuildTrunc(ctx->builder, data, i10, "");
1646 tmp = LLVMBuildLShr(ctx->builder, data, LLVMConstInt(ctx->i32, 10, false), "");
1647 loads[1] = LLVMBuildTrunc(ctx->builder, tmp, i10, "");
1648 tmp = LLVMBuildLShr(ctx->builder, data, LLVMConstInt(ctx->i32, 20, false), "");
1649 loads[2] = LLVMBuildTrunc(ctx->builder, tmp, i10, "");
1650 tmp = LLVMBuildLShr(ctx->builder, data, LLVMConstInt(ctx->i32, 30, false), "");
1651 loads[3] = LLVMBuildTrunc(ctx->builder, tmp, i2, "");
1662 tmp = LLVMBuildFPTrunc(ctx->builder, tmp, ctx->f32, "");
1664 tmp = LLVMBuildFPExt(ctx->builder, tmp, ctx->f32, "");
1671 loads[chan] = LLVMBuildZExt(ctx->builder, loads[chan], ctx->i32, "");
1676 loads[chan] = LLVMBuildSExt(ctx->builder, loads[chan], ctx->i32, "");
1684 tmp = LLVMBuildUIToFP(ctx->builder, loads[chan], ctx->f32, "");
1686 tmp = LLVMBuildSIToFP(ctx->builder, loads[chan], ctx->f32, "");
1701 tmp = LLVMBuildFMul(ctx->builder, tmp, scale, "");
1706 LLVMValueRef clamp = LLVMBuildFCmp(ctx->builder, LLVMRealULT, tmp, neg_one, "");
1707 tmp = LLVMBuildSelect(ctx->builder, clamp, neg_one, tmp, "");
1736 vdata = LLVMBuildBitCast(ctx->builder, vdata, ctx->i16, "");
1744 vdata = LLVMBuildBitCast(ctx->builder, vdata, ctx->i8, "");
1809 val = LLVMBuildZExt(ctx->builder, val, ctx->i32, "");
1811 val = LLVMBuildBitCast(ctx->builder, val, ctx->i32, "");
1823 tl = LLVMBuildTrunc(ctx->builder, tl, ctx->i16, "");
1824 trbl = LLVMBuildTrunc(ctx->builder, trbl, ctx->i16, "");
1827 tl = LLVMBuildBitCast(ctx->builder, tl, result_type, "");
1828 trbl = LLVMBuildBitCast(ctx->builder, trbl, result_type, "");
1829 result = LLVMBuildFSub(ctx->builder, trbl, tl, "");
1852 msb = LLVMBuildSub(ctx->builder, LLVMConstInt(ctx->i32, 31, false), msb, "");
1856 LLVMBuildOr(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntEQ, arg, ctx->i32_0, ""),
1857 LLVMBuildICmp(ctx->builder, LLVMIntEQ, arg, all_ones, ""), "");
1859 return LLVMBuildSelect(ctx->builder, cond, all_ones, msb, "");
1910 msb = LLVMBuildSub(ctx->builder, highest_bit, msb, "");
1913 msb = LLVMBuildTrunc(ctx->builder, msb, ctx->i32, "");
1915 msb = LLVMBuildSExt(ctx->builder, msb, ctx->i32, "");
1919 return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntEQ, arg, zero, ""),
1945 LLVMValueRef cmp = LLVMBuildICmp(ctx->builder, LLVMIntSLE, a, b, "");
1946 return LLVMBuildSelect(ctx->builder, cmp, a, b, "");
1951 LLVMValueRef cmp = LLVMBuildICmp(ctx->builder, LLVMIntSGT, a, b, "");
1952 return LLVMBuildSelect(ctx->builder, cmp, a, b, "");
1957 LLVMValueRef cmp = LLVMBuildICmp(ctx->builder, LLVMIntULE, a, b, "");
1958 return LLVMBuildSelect(ctx->builder, cmp, a, b, "");
1963 LLVMValueRef cmp = LLVMBuildICmp(ctx->builder, LLVMIntUGE, a, b, "");
1964 return LLVMBuildSelect(ctx->builder, cmp, a, b, "");
1984 args[2] = LLVMBuildBitCast(ctx->builder, a->out[0], ctx->v2i16, "");
1985 args[3] = LLVMBuildBitCast(ctx->builder, a->out[1], ctx->v2i16, "");
1991 args[2] = LLVMBuildBitCast(ctx->builder, a->out[0], ctx->f32, "");
1992 args[3] = LLVMBuildBitCast(ctx->builder, a->out[1], ctx->f32, "");
1993 args[4] = LLVMBuildBitCast(ctx->builder, a->out[2], ctx->f32, "");
1994 args[5] = LLVMBuildBitCast(ctx->builder, a->out[3], ctx->f32, "");
2211 args[num_args++] = LLVMBuildBitCast(ctx->builder, a->coords[i], coord_type, "");
2213 args[num_args++] = LLVMBuildBitCast(ctx->builder, a->lod, coord_type, "");
2215 args[num_args++] = LLVMBuildBitCast(ctx->builder, a->min_lod, coord_type, "");
2319 LLVMValueRef texel = LLVMBuildExtractValue(ctx->builder, result, 0, "");
2320 LLVMValueRef code = LLVMBuildExtractValue(ctx->builder, result, 1, "");
2337 samples = LLVMBuildExtractElement(ctx->builder, rsrc, LLVMConstInt(ctx->i32, 3, 0), "");
2338 samples = LLVMBuildLShr(ctx->builder, samples, LLVMConstInt(ctx->i32, 16, 0), "");
2339 samples = LLVMBuildAnd(ctx->builder, samples, LLVMConstInt(ctx->i32, 0xf, 0), "");
2340 samples = LLVMBuildShl(ctx->builder, ctx->i32_1, samples, "");
2354 return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
2361 return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
2374 return LLVMBuildCall2(ctx->builder, calltype, code, args, 2, "");
2387 return LLVMBuildCall2(ctx->builder, calltype, code, args, 2, "");
2412 return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
2434 return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
2463 return LLVMBuildAdd(ctx->builder, LLVMBuildMul(ctx->builder, s0, s1, ""), s2, "");
2475 return LLVMBuildFAdd(ctx->builder, LLVMBuildFMul(ctx->builder, s0, s1, ""), s2, "");
2506 LLVMBuildFence(ctx->builder, LLVMAtomicOrderingRelease, false, "");
2618 val = LLVMBuildFAdd(ctx->builder, val, LLVMConstNull(LLVMTypeOf(val)), "");
2649 return LLVMBuildSIToFP(ctx->builder, val, type, "");
2653 pos = LLVMBuildFCmp(ctx->builder, LLVMRealOGT, src, ctx->f64_0, "");
2654 neg = LLVMBuildFCmp(ctx->builder, LLVMRealOLT, src, ctx->f64_0, "");
2657 ctx->builder, pos, LLVMConstInt(ctx->i32, 0x3FF00000, 0),
2658 LLVMBuildSelect(ctx->builder, neg, LLVMConstInt(ctx->i32, 0xBFF00000, 0), ctx->i32_0, ""),
2660 return LLVMBuildBitCast(ctx->builder, ac_build_gather_values(ctx, dw, 2), ctx->f64, "");
2674 result = LLVMBuildTrunc(ctx->builder, result, ctx->i32, "");
2680 result = LLVMBuildTrunc(ctx->builder, result, ctx->i32, "");
2690 result = LLVMBuildZExt(ctx->builder, result, ctx->i32, "");
2696 result = LLVMBuildZExt(ctx->builder, result, ctx->i32, "");
2718 result = LLVMBuildTrunc(ctx->builder, result, ctx->i32, "");
2728 result = LLVMBuildZExt(ctx->builder, result, ctx->i32, "");
2734 result = LLVMBuildZExt(ctx->builder, result, ctx->i32, "");
2755 ctx->builder, ctx->i32_0,
2761 return LLVMBuildLoad2(ctx->builder, ctx->i32, ac_build_gep0(ctx, ctx->lds, dw_addr), "");
2820 lsb = LLVMBuildTrunc(ctx->builder, lsb, ctx->i32, "");
2822 lsb = LLVMBuildSExt(ctx->builder, lsb, ctx->i32, "");
2827 return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntEQ, src0, zero, ""),
2895 LLVMValueRef main_fn = LLVMGetBasicBlockParent(LLVMGetInsertBlock(ctx->builder));
2903 static void emit_default_branch(LLVMBuilderRef builder, LLVMBasicBlockRef target)
2905 if (!LLVMGetBasicBlockTerminator(LLVMGetInsertBlock(builder)))
2906 LLVMBuildBr(builder, target);
2915 LLVMBuildBr(ctx->builder, flow->loop_entry_block);
2916 LLVMPositionBuilderAtEnd(ctx->builder, flow->loop_entry_block);
2922 LLVMBuildBr(ctx->builder, flow->next_block);
2928 LLVMBuildBr(ctx->builder, flow->loop_entry_block);
2939 emit_default_branch(ctx->builder, endif_block);
2941 LLVMPositionBuilderAtEnd(ctx->builder, current_branch->next_block);
2957 LLVMValueRef cond = LLVMBuildLoad2(ctx->builder, ctx->i1, ctx->postponed_kill, "");
2969 emit_default_branch(ctx->builder, current_branch->next_block);
2970 LLVMPositionBuilderAtEnd(ctx->builder, current_branch->next_block);
2983 emit_default_branch(ctx->builder, current_loop->loop_entry_block);
2985 LLVMPositionBuilderAtEnd(ctx->builder, current_loop->next_block);
2999 LLVMBuildCondBr(ctx->builder, cond, if_block, flow->next_block);
3000 LLVMPositionBuilderAtEnd(ctx->builder, if_block);
3005 LLVMBuilderRef builder = ac->builder;
3006 LLVMBasicBlockRef current_block = LLVMGetInsertBlock(builder);
3027 LLVMBuildStore(ac->builder, LLVMConstNull(type), ptr);
3034 LLVMBuildStore(ac->builder, val, ptr);
3041 return LLVMBuildBitCast(ctx->builder, ptr, LLVMPointerType(type, addr_space), "");
3057 return LLVMBuildExtractElement(ctx->builder, value, masks[0], "");
3060 return LLVMBuildShuffleVector(ctx->builder, value, value, swizzle, "");
3069 value = LLVMBuildLShr(ctx->builder, value, LLVMConstInt(LLVMTypeOf(param), rshift, false), "");
3073 value = LLVMBuildAnd(ctx->builder, value, LLVMConstInt(LLVMTypeOf(param), mask, false), "");
3077 value = LLVMBuildTrunc(ctx->builder, value, ctx->i32, "");
3112 fmask_value = LLVMBuildExtractElement(ac->builder, fmask_value, ac->i32_0, "");
3118 tmp = LLVMBuildBitCast(ac->builder, fmask, ac->v8i32, "");
3119 tmp = LLVMBuildExtractElement(ac->builder, tmp, ac->i32_1, "");
3120 tmp = LLVMBuildICmp(ac->builder, LLVMIntNE, tmp, ac->i32_0, "");
3122 LLVMBuildSelect(ac->builder, tmp, fmask_value, LLVMConstInt(ac->i32, 0x76543210, false), "");
3127 final_sample = LLVMBuildMul(ac->builder, addr[sample_chan],
3129 final_sample = LLVMBuildLShr(ac->builder, fmask_value,
3130 LLVMBuildZExt(ac->builder, final_sample, ac->i32, ""), "");
3133 addr[sample_chan] = LLVMBuildAnd(ac->builder, final_sample, LLVMConstInt(ac->i32, 0x7, 0), "");
3135 addr[sample_chan] = LLVMBuildTrunc(ac->builder, final_sample, ac->i16, "");
3147 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
3149 lane = LLVMBuildZExt(ctx->builder, lane, ctx->i32, "");
3156 return LLVMBuildTrunc(ctx->builder, result, type, "");
3170 LLVMValueRef src_vector = LLVMBuildBitCast(ctx->builder, src, vec_type, "");
3175 src = LLVMBuildExtractElement(ctx->builder, src_vector, LLVMConstInt(ctx->i32, i, 0), "");
3180 LLVMBuildInsertElement(ctx->builder, ret, ret_comp, LLVMConstInt(ctx->i32, i, 0), "");
3187 return LLVMBuildIntToPtr(ctx->builder, ret, src_type, "");
3188 return LLVMBuildBitCast(ctx->builder, ret, src_type, "");
3229 LLVMValueRef mask_vec = LLVMBuildBitCast(ctx->builder, mask, ctx->v2i32, "");
3230 LLVMValueRef mask_lo = LLVMBuildExtractElement(ctx->builder, mask_vec, ctx->i32_0, "");
3231 LLVMValueRef mask_hi = LLVMBuildExtractElement(ctx->builder, mask_vec, ctx->i32_1, "");
3242 return LLVMBuildAdd(ctx->builder, val, add_src, "");
3289 old = LLVMBuildZExt(ctx->builder, old, ctx->i32, "");
3290 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
3299 return LLVMBuildTrunc(ctx->builder, res, type, "");
3314 LLVMValueRef src_vector = LLVMBuildBitCast(ctx->builder, src, vec_type, "");
3315 LLVMValueRef old_vector = LLVMBuildBitCast(ctx->builder, old, vec_type, "");
3318 src = LLVMBuildExtractElement(ctx->builder, src_vector, LLVMConstInt(ctx->i32, i, 0), "");
3319 old = LLVMBuildExtractElement(ctx->builder, old_vector, LLVMConstInt(ctx->i32, i, 0), "");
3323 LLVMBuildInsertElement(ctx->builder, ret, ret_comp, LLVMConstInt(ctx->i32, i, 0), "");
3328 return LLVMBuildBitCast(ctx->builder, ret, src_type, "");
3337 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
3352 return LLVMBuildTrunc(ctx->builder, result, type, "");
3365 LLVMValueRef src_vector = LLVMBuildBitCast(ctx->builder, src, vec_type, "");
3368 src = LLVMBuildExtractElement(ctx->builder, src_vector, LLVMConstInt(ctx->i32, i, 0), "");
3371 LLVMBuildInsertElement(ctx->builder, ret, ret_comp, LLVMConstInt(ctx->i32, i, 0), "");
3376 return LLVMBuildBitCast(ctx->builder, ret, src_type, "");
3391 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
3397 return LLVMBuildTrunc(ctx->builder, ret, src_type, "");
3409 LLVMValueRef src_vector = LLVMBuildBitCast(ctx->builder, src, vec_type, "");
3412 src = LLVMBuildExtractElement(ctx->builder, src_vector, LLVMConstInt(ctx->i32, i, 0), "");
3415 LLVMBuildInsertElement(ctx->builder, ret, ret_comp, LLVMConstInt(ctx->i32, i, 0), "");
3420 return LLVMBuildBitCast(ctx->builder, ret, src_type, "");
3433 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
3441 ret = LLVMBuildTrunc(ctx->builder, ret, ac_to_integer_type(ctx, src_type), "");
3443 return LLVMBuildBitCast(ctx->builder, ret, src_type, "");
3456 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
3457 inactive = LLVMBuildZExt(ctx->builder, inactive, ctx->i32, "");
3466 ret = LLVMBuildTrunc(ctx->builder, ret, src_type, "");
3611 return LLVMBuildAdd(ctx->builder, lhs, rhs, "");
3613 return LLVMBuildFAdd(ctx->builder, lhs, rhs, "");
3615 return LLVMBuildMul(ctx->builder, lhs, rhs, "");
3617 return LLVMBuildFMul(ctx->builder, lhs, rhs, "");
3619 return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntSLT, lhs, rhs, ""),
3622 return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntULT, lhs, rhs, ""),
3630 return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntSGT, lhs, rhs, ""),
3633 return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, LLVMIntUGT, lhs, rhs, ""),
3641 return LLVMBuildAnd(ctx->builder, lhs, rhs, "");
3643 return LLVMBuildOr(ctx->builder, lhs, rhs, "");
3645 return LLVMBuildXor(ctx->builder, lhs, rhs, "");
3672 LLVMBuildICmp(ctx->builder, LLVMIntEQ, tid, LLVMConstInt(ctx->i32, 32, false), "");
3674 tmp2 = LLVMBuildSelect(ctx->builder, active,
3679 ctx->builder, active,
3680 LLVMBuildICmp(ctx->builder, LLVMIntEQ,
3681 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 0x1f, false), ""),
3684 return LLVMBuildSelect(ctx->builder, active, tmp2, tmp1, "");
3687 LLVMBuildICmp(ctx->builder, LLVMIntEQ, tid, LLVMConstInt(ctx->i32, 16, false), "");
3689 return LLVMBuildSelect(ctx->builder, active, tmp2, tmp1, "");
3700 active = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
3701 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 0x7, 0), ""),
3703 tmp1 = LLVMBuildSelect(ctx->builder, active, tmp2, tmp1, "");
3705 active = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
3706 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 0xf, 0), ""),
3708 tmp1 = LLVMBuildSelect(ctx->builder, active, tmp2, tmp1, "");
3710 active = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
3711 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 0x1f, 0), ""),
3713 tmp1 = LLVMBuildSelect(ctx->builder, active, tmp2, tmp1, "");
3715 active = LLVMBuildICmp(ctx->builder, LLVMIntEQ, tid, LLVMConstInt(ctx->i32, 32, 0), "");
3716 tmp1 = LLVMBuildSelect(ctx->builder, active, tmp2, tmp1, "");
3717 active = LLVMBuildICmp(ctx->builder, LLVMIntEQ, tid, LLVMConstInt(ctx->i32, 0, 0), "");
3718 return LLVMBuildSelect(ctx->builder, active, identity, tmp1, "");
3740 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3741 LLVMBuildAnd(ctx->builder, tid, ctx->i32_1, ""), ctx->i32_0, "");
3742 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3745 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3746 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 2, 0), ""),
3748 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3751 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3752 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 4, 0), ""),
3754 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3757 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3758 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 8, 0), ""),
3760 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3763 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3764 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 16, 0), ""),
3766 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3769 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3770 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 32, 0), ""),
3772 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3806 active = LLVMBuildICmp(ctx->builder, LLVMIntNE,
3807 LLVMBuildAnd(ctx->builder, tid, LLVMConstInt(ctx->i32, 16, false), ""),
3810 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3819 active = LLVMBuildICmp(ctx->builder, LLVMIntUGE, tid, LLVMConstInt(ctx->i32, 32, false), "");
3821 tmp = LLVMBuildSelect(ctx->builder, active, tmp, identity, "");
3841 LLVMBuilderRef builder = ctx->builder;
3842 src = LLVMBuildZExt(builder, src, ctx->i32, "");
3845 result = LLVMBuildAdd(builder, result, src, "");
3852 result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
3864 LLVMBuilderRef builder = ctx->builder;
3865 src = LLVMBuildZExt(builder, src, ctx->i32, "");
3874 result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
3889 result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
3959 LLVMBuilderRef builder = ctx->builder;
3963 tmp = LLVMBuildICmp(builder, LLVMIntEQ, tid, last_lane, "");
3965 LLVMBuildStore(builder, ws->src,
3966 LLVMBuildGEP2(builder, LLVMTypeOf(ws->src), ws->scratch, &ws->waveidx, 1, ""));
3989 LLVMBuilderRef builder = ctx->builder;
3995 bbs[0] = LLVMGetInsertBlock(builder);
3999 tmp = LLVMBuildICmp(builder, LLVMIntULT, tid, ws->numwaves, "");
4001 tmp = LLVMBuildICmp(builder, LLVMIntULE, tid, ws->waveidx, "");
4003 tmp = LLVMBuildICmp(builder, LLVMIntULT, tid, ws->waveidx, "");
4006 tmp = LLVMBuildLoad2(builder, LLVMTypeOf(ws->src),
4007 LLVMBuildGEP2(builder, LLVMTypeOf(ws->src), ws->scratch, &tid, 1, ""), "");
4011 bbs[1] = LLVMGetInsertBlock(builder);
4019 tmp = LLVMBuildSub(builder, ws->numwaves, ctx->i32_1, "");
4025 tmp = LLVMBuildSub(builder, ws->waveidx, ctx->i32_1, "");
4027 tmp2 = LLVMBuildICmp(builder, LLVMIntEQ, ws->waveidx, ctx->i32_0, "");
4028 ws->result_exclusive = LLVMBuildSelect(builder, tmp2, identity, tmp, "");
4060 ws->src = LLVMBuildZExt(ctx->builder, ws->src, ctx->i32, "");
4121 src0 = LLVMBuildBitCast(ctx->builder, *arg0, ctx->i32, "");
4122 src1 = LLVMBuildBitCast(ctx->builder, *arg1, ctx->i32, "");
4132 is_even = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
4133 LLVMBuildAnd(ctx->builder, tid, ctx->i32_1, ""),
4136 src0 = LLVMBuildSelect(ctx->builder, is_even, src1, src0, "");
4137 src1 = LLVMBuildSelect(ctx->builder, is_even, tmp0, src1, "");
4178 index = LLVMBuildMul(ctx->builder, index, LLVMConstInt(ctx->i32, 4, 0), "");
4179 src = LLVMBuildZExt(ctx->builder, src, ctx->i32, "");
4184 return LLVMBuildTrunc(ctx->builder, result, type, "");
4263 a = LLVMBuildExtractElement(ctx->builder, interp_ij, LLVMConstInt(ctx->i32, i, false), "");
4281 return LLVMBuildNot(ctx->builder, result, "");
4296 LLVMValueRef postponed = LLVMBuildLoad2(ctx->builder, ctx->i1, ctx->postponed_kill, "");
4297 return LLVMBuildNot(ctx->builder, LLVMBuildAnd(ctx->builder, exact, postponed, ""), "");
4303 LLVMValueRef ret = LLVMBuildCall(ctx->builder, func, args, num_args, "");
4341 stencil = LLVMBuildShl(ctx->builder, stencil, LLVMConstInt(ctx->i32, 16, 0), "");
4386 LLVMBuilderRef builder = ctx->builder;
4402 ac_build_ifcc(ctx, LLVMBuildICmp(builder, LLVMIntEQ, wave_id, ctx->i32_0, ""), 5020);
4404 tmp = LLVMBuildShl(builder, prim_cnt, LLVMConstInt(ctx->i32, 12, false), "");
4405 tmp = LLVMBuildOr(builder, tmp, vtx_cnt, "");
4420 ac_build_ifcc(ctx, LLVMBuildICmp(builder, LLVMIntEQ, ac_get_thread_id(ctx), ctx->i32_0, ""),
4440 LLVMValueRef tmp = LLVMBuildAnd(ctx->builder,
4443 tmp = LLVMBuildMul(ctx->builder, tmp, LLVMConstInt(ctx->i32, 0x80402u, 0), "");
4444 return LLVMBuildAnd(ctx->builder, tmp, LLVMConstInt(ctx->i32, 0x20080200, 0), "");
4458 LLVMBuilderRef builder = ctx->builder;
4459 LLVMValueRef tmp = LLVMBuildZExt(builder, prim->isnull, ctx->i32, "");
4460 LLVMValueRef result = LLVMBuildShl(builder, tmp, LLVMConstInt(ctx->i32, 31, false), "");
4461 result = LLVMBuildOr(ctx->builder, result, prim->edgeflags, "");
4464 tmp = LLVMBuildShl(builder, prim->index[i], LLVMConstInt(ctx->i32, 10 * i, false), "");
4465 result = LLVMBuildOr(builder, result, tmp, "");
4480 args.out[0] = LLVMBuildBitCast(ctx->builder, args.out[0], ctx->f32, "");
4545 LLVMPositionBuilderAtEnd(ctx->builder, main_function_body);
4577 LLVMBuildCall2(ctx->builder, calltype, code, NULL, 0, "");
4588 LLVMBuilderRef builder = ctx->builder;
4598 out[0] = LLVMBuildSelect(builder, flatshade_first, index[0],
4599 LLVMBuildSelect(builder, is_odd, index[1], index[0], ""), "");
4600 out[1] = LLVMBuildSelect(builder, flatshade_first,
4601 LLVMBuildSelect(builder, is_odd, index[2], index[1], ""),
4602 LLVMBuildSelect(builder, is_odd, index[0], index[1], ""), "");
4603 out[2] = LLVMBuildSelect(builder, flatshade_first,
4604 LLVMBuildSelect(builder, is_odd, index[1], index[2], ""), index[2], "");