Lines Matching defs:denom
45 nir_ssa_def *numer, nir_ssa_def *denom)
56 bf = nir_i2f32(bld, denom);
60 b = nir_iabs(bld, denom);
63 bf = nir_u2f32(bld, denom);
65 b = denom;
102 r = nir_ixor(bld, numer, denom);
108 q = nir_imul(bld, q, denom);
113 nir_bcsel(bld, r, nir_iadd(bld, q, denom), q));
124 emit_udiv(nir_builder *bld, nir_ssa_def *numer, nir_ssa_def *denom, bool modulo)
126 nir_ssa_def *rcp = nir_frcp(bld, nir_u2f32(bld, denom));
130 nir_imul(bld, rcp, nir_ineg(bld, denom));
136 nir_ssa_def *num_s_remainder = nir_imul(bld, quotient, denom);
140 nir_ssa_def *remainder_ge_den = nir_uge(bld, remainder, denom);
146 nir_isub(bld, remainder, denom), remainder);
149 remainder_ge_den = nir_uge(bld, remainder, denom);
151 return nir_bcsel(bld, remainder_ge_den, nir_isub(bld, remainder, denom),
161 emit_idiv(nir_builder *bld, nir_ssa_def *numer, nir_ssa_def *denom, nir_op op)
164 nir_ssa_def *rh_sign = nir_ilt(bld, denom, nir_imm_int(bld, 0));
167 nir_ssa_def *rhs = nir_iabs(bld, denom);
179 res = nir_bcsel(bld, cond, res, nir_iadd(bld, res, denom));
187 nir_ssa_def *numer, nir_ssa_def *denom)
190 return emit_udiv(bld, numer, denom, op == nir_op_umod);
192 return emit_idiv(bld, numer, denom, op);
197 nir_ssa_def *numer, nir_ssa_def *denom,
205 nir_ssa_def *q = nir_type_convert(b, denom, int_type, float_type);
220 res = nir_isub(b, numer, nir_imul(b, denom, res));
226 nir_ine(b, nir_ige(b, numer, zero), nir_ige(b, denom, zero));
229 res = nir_iadd(b, res, nir_bcsel(b, adjust, denom, zero));
242 nir_ssa_def *denom = nir_ssa_for_alu_src(b, alu, 1);
247 return convert_instr_small(b, alu->op, numer, denom, options);
249 return convert_instr(b, alu->op, numer, denom);
251 return convert_instr_precise(b, alu->op, numer, denom);