i965: fix is_zero(), is_one() and is_negative_one() for doubles

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Connor Abbott 2015-11-18 12:38:31 +01:00 committed by Samuel Iglesias Gonsálvez
parent 2ae409286c
commit 7bcc4cccad

View file

@ -666,7 +666,17 @@ backend_reg::is_zero() const
if (file != IMM)
return false;
return d == 0;
switch (type) {
case BRW_REGISTER_TYPE_F:
return f == 0;
case BRW_REGISTER_TYPE_DF:
return df == 0;
case BRW_REGISTER_TYPE_D:
case BRW_REGISTER_TYPE_UD:
return d == 0;
default:
return false;
}
}
bool
@ -675,9 +685,17 @@ backend_reg::is_one() const
if (file != IMM)
return false;
return type == BRW_REGISTER_TYPE_F
? f == 1.0
: d == 1;
switch (type) {
case BRW_REGISTER_TYPE_F:
return f == 1.0f;
case BRW_REGISTER_TYPE_DF:
return df == 1.0;
case BRW_REGISTER_TYPE_D:
case BRW_REGISTER_TYPE_UD:
return d == 1;
default:
return false;
}
}
bool
@ -689,6 +707,8 @@ backend_reg::is_negative_one() const
switch (type) {
case BRW_REGISTER_TYPE_F:
return f == -1.0;
case BRW_REGISTER_TYPE_DF:
return df == -1.0;
case BRW_REGISTER_TYPE_D:
return d == -1;
default: