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;
|
||||
uint64_t u64;
|
||||
float f;
|
||||
int d;
|
||||
unsigned ud;
|
||||
|
@ -270,7 +271,7 @@ static inline bool
|
|||
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;
|
||||
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 {
|
||||
|
|
Loading…
Reference in New Issue