From c843b43ccd0e3ac00b19cc20db49260eadae5ba9 Mon Sep 17 00:00:00 2001 From: Paulo Zanoni Date: Wed, 25 Feb 2026 11:24:40 -0800 Subject: [PATCH] intel/mi_builder: add mi_ixor() Just like mi_ior(), but for xor. We're going to use it in one of the next commits. Reviewed-by: Lionel Landwerlin Signed-off-by: Paulo Zanoni --- src/intel/common/mi_builder.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/intel/common/mi_builder.h b/src/intel/common/mi_builder.h index 41701d71ce8..b5f4bee4ee4 100644 --- a/src/intel/common/mi_builder.h +++ b/src/intel/common/mi_builder.h @@ -1066,6 +1066,17 @@ mi_ior(struct mi_builder *b, MI_ALU_STORE, MI_ALU_ACCU); } +static inline struct mi_value +mi_ixor(struct mi_builder *b, + struct mi_value src0, struct mi_value src1) +{ + if (src0.type == MI_VALUE_TYPE_IMM && src1.type == MI_VALUE_TYPE_IMM) + return mi_imm(mi_value_to_u64(src0) ^ mi_value_to_u64(src1)); + + return mi_math_binop(b, MI_ALU_XOR, src0, src1, + MI_ALU_STORE, MI_ALU_ACCU); +} + #if GFX_VERx10 >= 125 static inline struct mi_value mi_ishl(struct mi_builder *b, struct mi_value src0, struct mi_value src1)