static void
micro_lrp(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1,
+ const union tgsi_exec_channel *src2)
{
- dst->f[0] = src[0].f[0] * (src[1].f[0] - src[2].f[0]) + src[2].f[0];
- dst->f[1] = src[0].f[1] * (src[1].f[1] - src[2].f[1]) + src[2].f[1];
- dst->f[2] = src[0].f[2] * (src[1].f[2] - src[2].f[2]) + src[2].f[2];
- dst->f[3] = src[0].f[3] * (src[1].f[3] - src[2].f[3]) + src[2].f[3];
+ dst->f[0] = src0->f[0] * (src1->f[0] - src2->f[0]) + src2->f[0];
+ dst->f[1] = src0->f[1] * (src1->f[1] - src2->f[1]) + src2->f[1];
+ dst->f[2] = src0->f[2] * (src1->f[2] - src2->f[2]) + src2->f[2];
+ dst->f[3] = src0->f[3] * (src1->f[3] - src2->f[3]) + src2->f[3];
}
static void
micro_mad(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1,
+ const union tgsi_exec_channel *src2)
{
- dst->f[0] = src[0].f[0] * src[1].f[0] + src[2].f[0];
- dst->f[1] = src[0].f[1] * src[1].f[1] + src[2].f[1];
- dst->f[2] = src[0].f[2] * src[1].f[2] + src[2].f[2];
- dst->f[3] = src[0].f[3] * src[1].f[3] + src[2].f[3];
+ dst->f[0] = src0->f[0] * src1->f[0] + src2->f[0];
+ dst->f[1] = src0->f[1] * src1->f[1] + src2->f[1];
+ dst->f[2] = src0->f[2] * src1->f[2] + src2->f[2];
+ dst->f[3] = src0->f[3] * src1->f[3] + src2->f[3];
}
static void
static void
micro_seq(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->f[0] = src[0].f[0] == src[1].f[0] ? 1.0f : 0.0f;
- dst->f[1] = src[0].f[1] == src[1].f[1] ? 1.0f : 0.0f;
- dst->f[2] = src[0].f[2] == src[1].f[2] ? 1.0f : 0.0f;
- dst->f[3] = src[0].f[3] == src[1].f[3] ? 1.0f : 0.0f;
+ dst->f[0] = src0->f[0] == src1->f[0] ? 1.0f : 0.0f;
+ dst->f[1] = src0->f[1] == src1->f[1] ? 1.0f : 0.0f;
+ dst->f[2] = src0->f[2] == src1->f[2] ? 1.0f : 0.0f;
+ dst->f[3] = src0->f[3] == src1->f[3] ? 1.0f : 0.0f;
}
static void
micro_sge(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->f[0] = src[0].f[0] >= src[1].f[0] ? 1.0f : 0.0f;
- dst->f[1] = src[0].f[1] >= src[1].f[1] ? 1.0f : 0.0f;
- dst->f[2] = src[0].f[2] >= src[1].f[2] ? 1.0f : 0.0f;
- dst->f[3] = src[0].f[3] >= src[1].f[3] ? 1.0f : 0.0f;
+ dst->f[0] = src0->f[0] >= src1->f[0] ? 1.0f : 0.0f;
+ dst->f[1] = src0->f[1] >= src1->f[1] ? 1.0f : 0.0f;
+ dst->f[2] = src0->f[2] >= src1->f[2] ? 1.0f : 0.0f;
+ dst->f[3] = src0->f[3] >= src1->f[3] ? 1.0f : 0.0f;
}
static void
static void
micro_sgt(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->f[0] = src[0].f[0] > src[1].f[0] ? 1.0f : 0.0f;
- dst->f[1] = src[0].f[1] > src[1].f[1] ? 1.0f : 0.0f;
- dst->f[2] = src[0].f[2] > src[1].f[2] ? 1.0f : 0.0f;
- dst->f[3] = src[0].f[3] > src[1].f[3] ? 1.0f : 0.0f;
+ dst->f[0] = src0->f[0] > src1->f[0] ? 1.0f : 0.0f;
+ dst->f[1] = src0->f[1] > src1->f[1] ? 1.0f : 0.0f;
+ dst->f[2] = src0->f[2] > src1->f[2] ? 1.0f : 0.0f;
+ dst->f[3] = src0->f[3] > src1->f[3] ? 1.0f : 0.0f;
}
static void
static void
micro_sle(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->f[0] = src[0].f[0] <= src[1].f[0] ? 1.0f : 0.0f;
- dst->f[1] = src[0].f[1] <= src[1].f[1] ? 1.0f : 0.0f;
- dst->f[2] = src[0].f[2] <= src[1].f[2] ? 1.0f : 0.0f;
- dst->f[3] = src[0].f[3] <= src[1].f[3] ? 1.0f : 0.0f;
+ dst->f[0] = src0->f[0] <= src1->f[0] ? 1.0f : 0.0f;
+ dst->f[1] = src0->f[1] <= src1->f[1] ? 1.0f : 0.0f;
+ dst->f[2] = src0->f[2] <= src1->f[2] ? 1.0f : 0.0f;
+ dst->f[3] = src0->f[3] <= src1->f[3] ? 1.0f : 0.0f;
}
static void
micro_slt(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->f[0] = src[0].f[0] < src[1].f[0] ? 1.0f : 0.0f;
- dst->f[1] = src[0].f[1] < src[1].f[1] ? 1.0f : 0.0f;
- dst->f[2] = src[0].f[2] < src[1].f[2] ? 1.0f : 0.0f;
- dst->f[3] = src[0].f[3] < src[1].f[3] ? 1.0f : 0.0f;
+ dst->f[0] = src0->f[0] < src1->f[0] ? 1.0f : 0.0f;
+ dst->f[1] = src0->f[1] < src1->f[1] ? 1.0f : 0.0f;
+ dst->f[2] = src0->f[2] < src1->f[2] ? 1.0f : 0.0f;
+ dst->f[3] = src0->f[3] < src1->f[3] ? 1.0f : 0.0f;
}
static void
micro_sne(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->f[0] = src[0].f[0] != src[1].f[0] ? 1.0f : 0.0f;
- dst->f[1] = src[0].f[1] != src[1].f[1] ? 1.0f : 0.0f;
- dst->f[2] = src[0].f[2] != src[1].f[2] ? 1.0f : 0.0f;
- dst->f[3] = src[0].f[3] != src[1].f[3] ? 1.0f : 0.0f;
+ dst->f[0] = src0->f[0] != src1->f[0] ? 1.0f : 0.0f;
+ dst->f[1] = src0->f[1] != src1->f[1] ? 1.0f : 0.0f;
+ dst->f[2] = src0->f[2] != src1->f[2] ? 1.0f : 0.0f;
+ dst->f[3] = src0->f[3] != src1->f[3] ? 1.0f : 0.0f;
}
static void
}
}
-typedef void (* micro_op)(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src);
+typedef void (* micro_unary_op)(union tgsi_exec_channel *dst,
+ const union tgsi_exec_channel *src);
static void
exec_scalar_unary(struct tgsi_exec_machine *mach,
const struct tgsi_full_instruction *inst,
- micro_op op,
+ micro_unary_op op,
enum tgsi_exec_datatype dst_datatype,
enum tgsi_exec_datatype src_datatype)
{
static void
exec_vector_unary(struct tgsi_exec_machine *mach,
const struct tgsi_full_instruction *inst,
- micro_op op,
+ micro_unary_op op,
enum tgsi_exec_datatype dst_datatype,
enum tgsi_exec_datatype src_datatype)
{
}
}
+typedef void (* micro_binary_op)(union tgsi_exec_channel *dst,
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1);
+
static void
exec_vector_binary(struct tgsi_exec_machine *mach,
const struct tgsi_full_instruction *inst,
- micro_op op,
+ micro_binary_op op,
enum tgsi_exec_datatype dst_datatype,
enum tgsi_exec_datatype src_datatype)
{
fetch_source(mach, &src[0], &inst->Src[0], chan, src_datatype);
fetch_source(mach, &src[1], &inst->Src[1], chan, src_datatype);
- op(&dst.xyzw[chan], src);
+ op(&dst.xyzw[chan], &src[0], &src[1]);
}
}
for (chan = 0; chan < NUM_CHANNELS; chan++) {
}
}
+typedef void (* micro_trinary_op)(union tgsi_exec_channel *dst,
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1,
+ const union tgsi_exec_channel *src2);
+
static void
exec_vector_trinary(struct tgsi_exec_machine *mach,
const struct tgsi_full_instruction *inst,
- micro_op op,
+ micro_trinary_op op,
enum tgsi_exec_datatype dst_datatype,
enum tgsi_exec_datatype src_datatype)
{
fetch_source(mach, &src[0], &inst->Src[0], chan, src_datatype);
fetch_source(mach, &src[1], &inst->Src[1], chan, src_datatype);
fetch_source(mach, &src[2], &inst->Src[2], chan, src_datatype);
- op(&dst.xyzw[chan], src);
+ op(&dst.xyzw[chan], &src[0], &src[1], &src[2]);
}
}
for (chan = 0; chan < NUM_CHANNELS; chan++) {
for (chan = CHAN_Y; chan <= CHAN_Z; chan++) {
fetch_source(mach, &arg[0], &inst->Src[0], chan, TGSI_EXEC_DATA_FLOAT);
fetch_source(mach, &arg[1], &inst->Src[1], chan, TGSI_EXEC_DATA_FLOAT);
- micro_mad(&arg[2], arg);
+ micro_mad(&arg[2], &arg[0], &arg[1], &arg[2]);
}
for (chan = 0; chan < NUM_CHANNELS; chan++) {
for (chan = CHAN_Y; chan <= CHAN_W; chan++) {
fetch_source(mach, &arg[0], &inst->Src[0], chan, TGSI_EXEC_DATA_FLOAT);
fetch_source(mach, &arg[1], &inst->Src[1], chan, TGSI_EXEC_DATA_FLOAT);
- micro_mad(&arg[2], arg);
+ micro_mad(&arg[2], &arg[0], &arg[1], &arg[2]);
}
for (chan = 0; chan < NUM_CHANNELS; chan++) {
fetch_source(mach, &arg[0], &inst->Src[0], CHAN_Y, TGSI_EXEC_DATA_FLOAT);
fetch_source(mach, &arg[1], &inst->Src[1], CHAN_Y, TGSI_EXEC_DATA_FLOAT);
- micro_mad(&arg[0], arg);
+ micro_mad(&arg[0], &arg[0], &arg[1], &arg[2]);
fetch_source(mach, &arg[1], &inst->Src[2], CHAN_X, TGSI_EXEC_DATA_FLOAT);
micro_add(&arg[0], &arg[0], &arg[1]);
fetch_source(mach, &arg[0], &inst->Src[0], CHAN_Y, TGSI_EXEC_DATA_FLOAT);
fetch_source(mach, &arg[1], &inst->Src[1], CHAN_Y, TGSI_EXEC_DATA_FLOAT);
- micro_mad(&arg[2], arg);
+ micro_mad(&arg[2], &arg[0], &arg[1], &arg[2]);
fetch_source(mach, &arg[0], &inst->Src[0], CHAN_Z, TGSI_EXEC_DATA_FLOAT);
fetch_source(mach, &arg[1], &inst->Src[1], CHAN_Z, TGSI_EXEC_DATA_FLOAT);
- micro_mad(&arg[0], arg);
+ micro_mad(&arg[0], &arg[0], &arg[1], &arg[2]);
fetch_source(mach, &arg[1], &inst->Src[1], CHAN_W, TGSI_EXEC_DATA_FLOAT);
micro_add(&arg[0], &arg[0], &arg[1]);
fetch_source(mach, &arg[0], &inst->Src[0], CHAN_Y, TGSI_EXEC_DATA_FLOAT);
fetch_source(mach, &arg[1], &inst->Src[1], CHAN_Y, TGSI_EXEC_DATA_FLOAT);
- micro_mad(&arg[2], arg);
+ micro_mad(&arg[2], &arg[0], &arg[1], &arg[2]);
for (chan = 0; chan < NUM_CHANNELS; chan++) {
if (inst->Dst[0].Register.WriteMask & (1 << chan)) {
static void
micro_shl(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] << src[1].u[0];
- dst->u[1] = src[0].u[1] << src[1].u[1];
- dst->u[2] = src[0].u[2] << src[1].u[2];
- dst->u[3] = src[0].u[3] << src[1].u[3];
+ dst->u[0] = src0->u[0] << src1->u[0];
+ dst->u[1] = src0->u[1] << src1->u[1];
+ dst->u[2] = src0->u[2] << src1->u[2];
+ dst->u[3] = src0->u[3] << src1->u[3];
}
static void
micro_and(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] & src[1].u[0];
- dst->u[1] = src[0].u[1] & src[1].u[1];
- dst->u[2] = src[0].u[2] & src[1].u[2];
- dst->u[3] = src[0].u[3] & src[1].u[3];
+ dst->u[0] = src0->u[0] & src1->u[0];
+ dst->u[1] = src0->u[1] & src1->u[1];
+ dst->u[2] = src0->u[2] & src1->u[2];
+ dst->u[3] = src0->u[3] & src1->u[3];
}
static void
micro_or(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] | src[1].u[0];
- dst->u[1] = src[0].u[1] | src[1].u[1];
- dst->u[2] = src[0].u[2] | src[1].u[2];
- dst->u[3] = src[0].u[3] | src[1].u[3];
+ dst->u[0] = src0->u[0] | src1->u[0];
+ dst->u[1] = src0->u[1] | src1->u[1];
+ dst->u[2] = src0->u[2] | src1->u[2];
+ dst->u[3] = src0->u[3] | src1->u[3];
}
static void
micro_xor(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] ^ src[1].u[0];
- dst->u[1] = src[0].u[1] ^ src[1].u[1];
- dst->u[2] = src[0].u[2] ^ src[1].u[2];
- dst->u[3] = src[0].u[3] ^ src[1].u[3];
+ dst->u[0] = src0->u[0] ^ src1->u[0];
+ dst->u[1] = src0->u[1] ^ src1->u[1];
+ dst->u[2] = src0->u[2] ^ src1->u[2];
+ dst->u[3] = src0->u[3] ^ src1->u[3];
}
static void
static void
micro_idiv(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->i[0] = src[0].i[0] / src[1].i[0];
- dst->i[1] = src[0].i[1] / src[1].i[1];
- dst->i[2] = src[0].i[2] / src[1].i[2];
- dst->i[3] = src[0].i[3] / src[1].i[3];
+ dst->i[0] = src0->i[0] / src1->i[0];
+ dst->i[1] = src0->i[1] / src1->i[1];
+ dst->i[2] = src0->i[2] / src1->i[2];
+ dst->i[3] = src0->i[3] / src1->i[3];
}
static void
micro_imax(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->i[0] = src[0].i[0] > src[1].i[0] ? src[0].i[0] : src[1].i[0];
- dst->i[1] = src[0].i[1] > src[1].i[1] ? src[0].i[1] : src[1].i[1];
- dst->i[2] = src[0].i[2] > src[1].i[2] ? src[0].i[2] : src[1].i[2];
- dst->i[3] = src[0].i[3] > src[1].i[3] ? src[0].i[3] : src[1].i[3];
+ dst->i[0] = src0->i[0] > src1->i[0] ? src0->i[0] : src1->i[0];
+ dst->i[1] = src0->i[1] > src1->i[1] ? src0->i[1] : src1->i[1];
+ dst->i[2] = src0->i[2] > src1->i[2] ? src0->i[2] : src1->i[2];
+ dst->i[3] = src0->i[3] > src1->i[3] ? src0->i[3] : src1->i[3];
}
static void
micro_imin(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->i[0] = src[0].i[0] < src[1].i[0] ? src[0].i[0] : src[1].i[0];
- dst->i[1] = src[0].i[1] < src[1].i[1] ? src[0].i[1] : src[1].i[1];
- dst->i[2] = src[0].i[2] < src[1].i[2] ? src[0].i[2] : src[1].i[2];
- dst->i[3] = src[0].i[3] < src[1].i[3] ? src[0].i[3] : src[1].i[3];
+ dst->i[0] = src0->i[0] < src1->i[0] ? src0->i[0] : src1->i[0];
+ dst->i[1] = src0->i[1] < src1->i[1] ? src0->i[1] : src1->i[1];
+ dst->i[2] = src0->i[2] < src1->i[2] ? src0->i[2] : src1->i[2];
+ dst->i[3] = src0->i[3] < src1->i[3] ? src0->i[3] : src1->i[3];
}
static void
micro_isge(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->i[0] = src[0].i[0] >= src[1].i[0] ? -1 : 0;
- dst->i[1] = src[0].i[1] >= src[1].i[1] ? -1 : 0;
- dst->i[2] = src[0].i[2] >= src[1].i[2] ? -1 : 0;
- dst->i[3] = src[0].i[3] >= src[1].i[3] ? -1 : 0;
+ dst->i[0] = src0->i[0] >= src1->i[0] ? -1 : 0;
+ dst->i[1] = src0->i[1] >= src1->i[1] ? -1 : 0;
+ dst->i[2] = src0->i[2] >= src1->i[2] ? -1 : 0;
+ dst->i[3] = src0->i[3] >= src1->i[3] ? -1 : 0;
}
static void
micro_ishr(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->i[0] = src[0].i[0] >> src[1].i[0];
- dst->i[1] = src[0].i[1] >> src[1].i[1];
- dst->i[2] = src[0].i[2] >> src[1].i[2];
- dst->i[3] = src[0].i[3] >> src[1].i[3];
+ dst->i[0] = src0->i[0] >> src1->i[0];
+ dst->i[1] = src0->i[1] >> src1->i[1];
+ dst->i[2] = src0->i[2] >> src1->i[2];
+ dst->i[3] = src0->i[3] >> src1->i[3];
}
static void
micro_islt(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->i[0] = src[0].i[0] < src[1].i[0] ? -1 : 0;
- dst->i[1] = src[0].i[1] < src[1].i[1] ? -1 : 0;
- dst->i[2] = src[0].i[2] < src[1].i[2] ? -1 : 0;
- dst->i[3] = src[0].i[3] < src[1].i[3] ? -1 : 0;
+ dst->i[0] = src0->i[0] < src1->i[0] ? -1 : 0;
+ dst->i[1] = src0->i[1] < src1->i[1] ? -1 : 0;
+ dst->i[2] = src0->i[2] < src1->i[2] ? -1 : 0;
+ dst->i[3] = src0->i[3] < src1->i[3] ? -1 : 0;
}
static void
static void
micro_uadd(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] + src[1].u[0];
- dst->u[1] = src[0].u[1] + src[1].u[1];
- dst->u[2] = src[0].u[2] + src[1].u[2];
- dst->u[3] = src[0].u[3] + src[1].u[3];
+ dst->u[0] = src0->u[0] + src1->u[0];
+ dst->u[1] = src0->u[1] + src1->u[1];
+ dst->u[2] = src0->u[2] + src1->u[2];
+ dst->u[3] = src0->u[3] + src1->u[3];
}
static void
micro_udiv(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] / src[1].u[0];
- dst->u[1] = src[0].u[1] / src[1].u[1];
- dst->u[2] = src[0].u[2] / src[1].u[2];
- dst->u[3] = src[0].u[3] / src[1].u[3];
+ dst->u[0] = src0->u[0] / src1->u[0];
+ dst->u[1] = src0->u[1] / src1->u[1];
+ dst->u[2] = src0->u[2] / src1->u[2];
+ dst->u[3] = src0->u[3] / src1->u[3];
}
static void
micro_umad(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1,
+ const union tgsi_exec_channel *src2)
{
- dst->u[0] = src[0].u[0] * src[1].u[0] + src[2].u[0];
- dst->u[1] = src[0].u[1] * src[1].u[1] + src[2].u[1];
- dst->u[2] = src[0].u[2] * src[1].u[2] + src[2].u[2];
- dst->u[3] = src[0].u[3] * src[1].u[3] + src[2].u[3];
+ dst->u[0] = src0->u[0] * src1->u[0] + src2->u[0];
+ dst->u[1] = src0->u[1] * src1->u[1] + src2->u[1];
+ dst->u[2] = src0->u[2] * src1->u[2] + src2->u[2];
+ dst->u[3] = src0->u[3] * src1->u[3] + src2->u[3];
}
static void
micro_umax(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] > src[1].u[0] ? src[0].u[0] : src[1].u[0];
- dst->u[1] = src[0].u[1] > src[1].u[1] ? src[0].u[1] : src[1].u[1];
- dst->u[2] = src[0].u[2] > src[1].u[2] ? src[0].u[2] : src[1].u[2];
- dst->u[3] = src[0].u[3] > src[1].u[3] ? src[0].u[3] : src[1].u[3];
+ dst->u[0] = src0->u[0] > src1->u[0] ? src0->u[0] : src1->u[0];
+ dst->u[1] = src0->u[1] > src1->u[1] ? src0->u[1] : src1->u[1];
+ dst->u[2] = src0->u[2] > src1->u[2] ? src0->u[2] : src1->u[2];
+ dst->u[3] = src0->u[3] > src1->u[3] ? src0->u[3] : src1->u[3];
}
static void
micro_umin(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] < src[1].u[0] ? src[0].u[0] : src[1].u[0];
- dst->u[1] = src[0].u[1] < src[1].u[1] ? src[0].u[1] : src[1].u[1];
- dst->u[2] = src[0].u[2] < src[1].u[2] ? src[0].u[2] : src[1].u[2];
- dst->u[3] = src[0].u[3] < src[1].u[3] ? src[0].u[3] : src[1].u[3];
+ dst->u[0] = src0->u[0] < src1->u[0] ? src0->u[0] : src1->u[0];
+ dst->u[1] = src0->u[1] < src1->u[1] ? src0->u[1] : src1->u[1];
+ dst->u[2] = src0->u[2] < src1->u[2] ? src0->u[2] : src1->u[2];
+ dst->u[3] = src0->u[3] < src1->u[3] ? src0->u[3] : src1->u[3];
}
static void
micro_umod(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] % src[1].u[0];
- dst->u[1] = src[0].u[1] % src[1].u[1];
- dst->u[2] = src[0].u[2] % src[1].u[2];
- dst->u[3] = src[0].u[3] % src[1].u[3];
+ dst->u[0] = src0->u[0] % src1->u[0];
+ dst->u[1] = src0->u[1] % src1->u[1];
+ dst->u[2] = src0->u[2] % src1->u[2];
+ dst->u[3] = src0->u[3] % src1->u[3];
}
static void
micro_umul(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] * src[1].u[0];
- dst->u[1] = src[0].u[1] * src[1].u[1];
- dst->u[2] = src[0].u[2] * src[1].u[2];
- dst->u[3] = src[0].u[3] * src[1].u[3];
+ dst->u[0] = src0->u[0] * src1->u[0];
+ dst->u[1] = src0->u[1] * src1->u[1];
+ dst->u[2] = src0->u[2] * src1->u[2];
+ dst->u[3] = src0->u[3] * src1->u[3];
}
static void
micro_useq(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] == src[1].u[0] ? ~0 : 0;
- dst->u[1] = src[0].u[1] == src[1].u[1] ? ~0 : 0;
- dst->u[2] = src[0].u[2] == src[1].u[2] ? ~0 : 0;
- dst->u[3] = src[0].u[3] == src[1].u[3] ? ~0 : 0;
+ dst->u[0] = src0->u[0] == src1->u[0] ? ~0 : 0;
+ dst->u[1] = src0->u[1] == src1->u[1] ? ~0 : 0;
+ dst->u[2] = src0->u[2] == src1->u[2] ? ~0 : 0;
+ dst->u[3] = src0->u[3] == src1->u[3] ? ~0 : 0;
}
static void
micro_usge(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] >= src[1].u[0] ? ~0 : 0;
- dst->u[1] = src[0].u[1] >= src[1].u[1] ? ~0 : 0;
- dst->u[2] = src[0].u[2] >= src[1].u[2] ? ~0 : 0;
- dst->u[3] = src[0].u[3] >= src[1].u[3] ? ~0 : 0;
+ dst->u[0] = src0->u[0] >= src1->u[0] ? ~0 : 0;
+ dst->u[1] = src0->u[1] >= src1->u[1] ? ~0 : 0;
+ dst->u[2] = src0->u[2] >= src1->u[2] ? ~0 : 0;
+ dst->u[3] = src0->u[3] >= src1->u[3] ? ~0 : 0;
}
static void
micro_ushr(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] >> src[1].u[0];
- dst->u[1] = src[0].u[1] >> src[1].u[1];
- dst->u[2] = src[0].u[2] >> src[1].u[2];
- dst->u[3] = src[0].u[3] >> src[1].u[3];
+ dst->u[0] = src0->u[0] >> src1->u[0];
+ dst->u[1] = src0->u[1] >> src1->u[1];
+ dst->u[2] = src0->u[2] >> src1->u[2];
+ dst->u[3] = src0->u[3] >> src1->u[3];
}
static void
micro_uslt(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] < src[1].u[0] ? ~0 : 0;
- dst->u[1] = src[0].u[1] < src[1].u[1] ? ~0 : 0;
- dst->u[2] = src[0].u[2] < src[1].u[2] ? ~0 : 0;
- dst->u[3] = src[0].u[3] < src[1].u[3] ? ~0 : 0;
+ dst->u[0] = src0->u[0] < src1->u[0] ? ~0 : 0;
+ dst->u[1] = src0->u[1] < src1->u[1] ? ~0 : 0;
+ dst->u[2] = src0->u[2] < src1->u[2] ? ~0 : 0;
+ dst->u[3] = src0->u[3] < src1->u[3] ? ~0 : 0;
}
static void
micro_usne(union tgsi_exec_channel *dst,
- const union tgsi_exec_channel *src)
+ const union tgsi_exec_channel *src0,
+ const union tgsi_exec_channel *src1)
{
- dst->u[0] = src[0].u[0] != src[1].u[0] ? ~0 : 0;
- dst->u[1] = src[0].u[1] != src[1].u[1] ? ~0 : 0;
- dst->u[2] = src[0].u[2] != src[1].u[2] ? ~0 : 0;
- dst->u[3] = src[0].u[3] != src[1].u[3] ? ~0 : 0;
+ dst->u[0] = src0->u[0] != src1->u[0] ? ~0 : 0;
+ dst->u[1] = src0->u[1] != src1->u[1] ? ~0 : 0;
+ dst->u[2] = src0->u[2] != src1->u[2] ? ~0 : 0;
+ dst->u[3] = src0->u[3] != src1->u[3] ? ~0 : 0;
}
static void