Currently the SPIR-V and DirectX backends always assume matrices are in column-major order.
We need to be able to support row-major order matrix memory layouts as well.
To support row-major matrix multiplication we should insert matrix transposes before and after matrix multiplication.
See #184922 (comment)