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)