nak: OpDAdd doesn't have saturate
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743>
This commit is contained in:

committed by
Marge Bot

parent
ada338bfcc
commit
c53f562d1a
@@ -2471,14 +2471,12 @@ pub struct OpDAdd {
|
|||||||
#[src_type(F64)]
|
#[src_type(F64)]
|
||||||
pub srcs: [Src; 2],
|
pub srcs: [Src; 2],
|
||||||
|
|
||||||
pub saturate: bool,
|
|
||||||
pub rnd_mode: FRndMode,
|
pub rnd_mode: FRndMode,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DisplayOp for OpDAdd {
|
impl DisplayOp for OpDAdd {
|
||||||
fn fmt_op(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt_op(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
let sat = if self.saturate { ".sat" } else { "" };
|
write!(f, "dadd")?;
|
||||||
write!(f, "dadd{sat}")?;
|
|
||||||
if self.rnd_mode != FRndMode::NearestEven {
|
if self.rnd_mode != FRndMode::NearestEven {
|
||||||
write!(f, "{}", self.rnd_mode)?;
|
write!(f, "{}", self.rnd_mode)?;
|
||||||
}
|
}
|
||||||
|
@@ -319,12 +319,10 @@ impl CopyPropPass {
|
|||||||
}
|
}
|
||||||
Op::DAdd(add) => {
|
Op::DAdd(add) => {
|
||||||
let dst = add.dst.as_ssa().unwrap();
|
let dst = add.dst.as_ssa().unwrap();
|
||||||
if !add.saturate {
|
if add.srcs[0].is_fneg_zero(SrcType::F64) {
|
||||||
if add.srcs[0].is_fneg_zero(SrcType::F64) {
|
self.add_fp64_copy(dst, add.srcs[1]);
|
||||||
self.add_fp64_copy(dst, add.srcs[1]);
|
} else if add.srcs[1].is_fneg_zero(SrcType::F64) {
|
||||||
} else if add.srcs[1].is_fneg_zero(SrcType::F64) {
|
self.add_fp64_copy(dst, add.srcs[0]);
|
||||||
self.add_fp64_copy(dst, add.srcs[0]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Op::Lop3(lop) => {
|
Op::Lop3(lop) => {
|
||||||
|
Reference in New Issue
Block a user