i965: Fix brw_regs_equal() for NaN and positive/negative zero.
We'd like the comparisons to mean "the exact same bits". Comparing doubles won't do that for NaN values or positive vs. negative zero. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
b19a0d506d
commit
1539009bf0
|
@ -260,6 +260,7 @@ struct brw_reg {
|
||||||
};
|
};
|
||||||
|
|
||||||
double df;
|
double df;
|
||||||
|
uint64_t u64;
|
||||||
float f;
|
float f;
|
||||||
int d;
|
int d;
|
||||||
unsigned ud;
|
unsigned ud;
|
||||||
|
@ -270,7 +271,7 @@ static inline bool
|
||||||
brw_regs_equal(const struct brw_reg *a, const struct brw_reg *b)
|
brw_regs_equal(const struct brw_reg *a, const struct brw_reg *b)
|
||||||
{
|
{
|
||||||
const bool df = a->type == BRW_REGISTER_TYPE_DF && a->file == IMM;
|
const bool df = a->type == BRW_REGISTER_TYPE_DF && a->file == IMM;
|
||||||
return a->bits == b->bits && (df ? a->df == b->df : a->ud == b->ud);
|
return a->bits == b->bits && (df ? a->u64 == b->u64 : a->ud == b->ud);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct brw_indirect {
|
struct brw_indirect {
|
||||||
|
|
Loading…
Reference in New Issue