nak: Implement nir_op_ixor

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998>
This commit is contained in:
Faith Ekstrand
2023-04-20 16:08:03 -05:00
committed by Marge Bot
parent 6ab0d7ee23
commit 2387dfdf6b
+19
View File
@@ -535,6 +535,25 @@ impl<'a> ShaderFromNir<'a> {
dst_high: true,
})));
}
nir_op_ixor => {
if alu.def.bit_size() == 1 {
self.instrs.push(Instr::new_plop3(
dst,
LogicOp::new_lut(&|x, y, _| x ^ y),
srcs[0],
srcs[1],
Src::new_imm_bool(true),
));
} else {
self.instrs.push(Instr::new_lop3(
dst,
LogicOp::new_lut(&|x, y, _| x ^ y),
srcs[0],
srcs[1],
Src::new_zero(),
));
}
}
nir_op_mov => {
self.instrs.push(Instr::new_mov(dst, srcs[0]));
}