--- /dev/null
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_ALU_COMMANDS_H_
+#define _XE_ALU_COMMANDS_H_
+
+#include "instructions/xe_instr_defs.h"
+
+/* Instruction Opcodes */
+#define CS_ALU_OPCODE_NOOP                     0x000
+#define CS_ALU_OPCODE_FENCE_RD                 0x001
+#define CS_ALU_OPCODE_FENCE_WR                 0x002
+#define CS_ALU_OPCODE_LOAD                     0x080
+#define CS_ALU_OPCODE_LOADINV                  0x480
+#define CS_ALU_OPCODE_LOAD0                    0x081
+#define CS_ALU_OPCODE_LOAD1                    0x481
+#define CS_ALU_OPCODE_LOADIND                  0x082
+#define CS_ALU_OPCODE_ADD                      0x100
+#define CS_ALU_OPCODE_SUB                      0x101
+#define CS_ALU_OPCODE_AND                      0x102
+#define CS_ALU_OPCODE_OR                       0x103
+#define CS_ALU_OPCODE_XOR                      0x104
+#define CS_ALU_OPCODE_SHL                      0x105
+#define CS_ALU_OPCODE_SHR                      0x106
+#define CS_ALU_OPCODE_SAR                      0x107
+#define CS_ALU_OPCODE_STORE                    0x180
+#define CS_ALU_OPCODE_STOREINV                 0x580
+#define CS_ALU_OPCODE_STOREIND                 0x181
+
+/* Instruction Operands */
+#define CS_ALU_OPERAND_REG(n)                  REG_FIELD_PREP(GENMASK(3, 0), (n))
+#define CS_ALU_OPERAND_REG0                    0x0
+#define CS_ALU_OPERAND_REG1                    0x1
+#define CS_ALU_OPERAND_REG2                    0x2
+#define CS_ALU_OPERAND_REG3                    0x3
+#define CS_ALU_OPERAND_REG4                    0x4
+#define CS_ALU_OPERAND_REG5                    0x5
+#define CS_ALU_OPERAND_REG6                    0x6
+#define CS_ALU_OPERAND_REG7                    0x7
+#define CS_ALU_OPERAND_REG8                    0x8
+#define CS_ALU_OPERAND_REG9                    0x9
+#define CS_ALU_OPERAND_REG10                   0xa
+#define CS_ALU_OPERAND_REG11                   0xb
+#define CS_ALU_OPERAND_REG12                   0xc
+#define CS_ALU_OPERAND_REG13                   0xd
+#define CS_ALU_OPERAND_REG14                   0xe
+#define CS_ALU_OPERAND_REG15                   0xf
+#define CS_ALU_OPERAND_SRCA                    0x20
+#define CS_ALU_OPERAND_SRCB                    0x21
+#define CS_ALU_OPERAND_ACCU                    0x31
+#define CS_ALU_OPERAND_ZF                      0x32
+#define CS_ALU_OPERAND_CF                      0x33
+#define CS_ALU_OPERAND_NA                      0 /* N/A operand */
+
+/* Command Streamer ALU Instructions */
+#define CS_ALU_INSTR(opcode, op1, op2)         (REG_FIELD_PREP(GENMASK(31, 20), (opcode)) | \
+                                                REG_FIELD_PREP(GENMASK(19, 10), (op1)) | \
+                                                REG_FIELD_PREP(GENMASK(9, 0), (op2)))
+
+#define __CS_ALU_INSTR(opcode, op1, op2)       CS_ALU_INSTR(CS_ALU_OPCODE_##opcode, \
+                                                            CS_ALU_OPERAND_##op1, \
+                                                            CS_ALU_OPERAND_##op2)
+
+#define CS_ALU_INSTR_NOOP                      __CS_ALU_INSTR(NOOP, NA, NA)
+#define CS_ALU_INSTR_LOAD(op1, op2)            __CS_ALU_INSTR(LOAD, op1, op2)
+#define CS_ALU_INSTR_LOADINV(op1, op2)         __CS_ALU_INSTR(LOADINV, op1, op2)
+#define CS_ALU_INSTR_LOAD0(op1)                        __CS_ALU_INSTR(LOAD0, op1, NA)
+#define CS_ALU_INSTR_LOAD1(op1)                        __CS_ALU_INSTR(LOAD1, op1, NA)
+#define CS_ALU_INSTR_ADD                       __CS_ALU_INSTR(ADD, NA, NA)
+#define CS_ALU_INSTR_SUB                       __CS_ALU_INSTR(SUB, NA, NA)
+#define CS_ALU_INSTR_AND                       __CS_ALU_INSTR(AND, NA, NA)
+#define CS_ALU_INSTR_OR                                __CS_ALU_INSTR(OR, NA, NA)
+#define CS_ALU_INSTR_XOR                       __CS_ALU_INSTR(XOR, NA, NA)
+#define CS_ALU_INSTR_STORE(op1, op2)           __CS_ALU_INSTR(STORE, op1, op2)
+#define CS_ALU_INSTR_STOREINV(op1, op2)                __CS_ALU_INSTR(STOREINV, op1, op2)
+
+#endif