emit_minmax(const dst_reg &dst, const src_reg &src0,
const src_reg &src1, brw_conditional_mod mod) const
{
+ assert(mod == BRW_CONDITIONAL_GE || mod == BRW_CONDITIONAL_L);
+
if (shader->devinfo->gen >= 6) {
set_condmod(mod, SEL(dst, fix_unsigned_negate(src0),
fix_unsigned_negate(src1)));
if (is_signed)
bld.emit_minmax(offset(dst, bld, c), offset(dst, bld, c),
fs_reg(-(int)scale(widths[c] - s) - 1),
- BRW_CONDITIONAL_G);
+ BRW_CONDITIONAL_GE);
}
}
if (is_signed)
bld.emit_minmax(offset(dst, bld, c),
offset(dst, bld, c), fs_reg(-1.0f),
- BRW_CONDITIONAL_G);
+ BRW_CONDITIONAL_GE);
}
}
return dst;
/* Clamp the normalized floating-point argument. */
if (is_signed) {
bld.emit_minmax(offset(fdst, bld, c), offset(src, bld, c),
- fs_reg(-1.0f), BRW_CONDITIONAL_G);
+ fs_reg(-1.0f), BRW_CONDITIONAL_GE);
bld.emit_minmax(offset(fdst, bld, c), offset(fdst, bld, c),
fs_reg(1.0f), BRW_CONDITIONAL_L);
/* Clamp to the minimum value. */
if (widths[c] < 16)
bld.emit_minmax(offset(fdst, bld, c), offset(fdst, bld, c),
- fs_reg(0.0f), BRW_CONDITIONAL_G);
+ fs_reg(0.0f), BRW_CONDITIONAL_GE);
/* Convert to 16-bit floating-point. */
bld.F32TO16(offset(dst, bld, c), offset(fdst, bld, c));