shz_xmtrx_apply_store_unaligned_4x4
SHZ_INLINE void shz_xmtrx_apply_store_unaligned_4x4(float out[16], const float in[16]) SHZ_NOEXCEPT;Multiplies XMTRX by the unaligned matrix, in, storing the result within the unaligned matrix, out.
Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
out | float [16] | |
in | const float [16] |
Returns
Section titled “Returns”Nothing (void).
Details
Section titled “Details”This routine is roughly equivalent to: shz_xmtrx_apply_unaligned_4x4(in); shz_xmtrx_store_unaligned_4x4(out);
However, it has been optimized and pipelined for performing the multiply and store in parallel.
- This is useful for when you want to multiply a batch of matrices by the same matrix, held within XMTRX.
Warnings
Section titled “Warnings”- The result of the multiplication is not stored within XMTRX, despite it getting clobbered.
Naming and requirements
Section titled “Naming and requirements”_unaligned: Works on matrix data that is not 8-byte aligned, passed as a plainfloat[16]. The default routines use 64-bit pairedFMOVloads that need 8-byte alignment. (Naming and Suffixes)
Availability
Section titled “Availability”- C++ equivalent: none (call the C function from C++)
- Type-generic form: none
- Back-ends: SH4: shared C implementation · SW: portable C · SPU: shared C implementation
- Defined in:
sh4zam/shz_xmtrx.h:677 - Module: XMTRX, section "Compound Operations"
See also
Section titled “See also”shz_xmtrx_apply_unaligned_4x4, shz_xmtrx_store_unaligned_4x4, shz_xmtrx_apply_store_4x4