Writing raw assembly

I am trying to write manual assembly code using numba. Is this possible? This is chatGPT generation that does not work but gives an idea of what I am looking for:

@nb.njit(inline='always')
def xor_avx2(reg1, reg2) :
    asm_code = """
    vmovdqu ymm0, {reg1}
    vmovdqu ymm1, {reg2}
    vpxor ymm2, ymm0, ymm1
    vmovdqu {result}, ymm2
    """
    asm_vars = {'reg1': reg1, 'reg2': reg2, 'result': nb.types.int32[:8]}
    asm = nb.asm(asm_code, **asm_vars)
    return asm.result

# Example usage
reg1 = np.arange(8, dtype=np.int32)
reg2 = np.ones(8, dtype=np.int32)
result = xor_avx2(reg1, reg2)
print(result)
1 Like

+1 would be interested to know about this :slight_smile: