function copyAll( M, N, A, strideA1, strideA2, offsetA, B, strideB1, strideB2, offsetB ) {
	var da0;
	var da1;
	var db0;
	var db1;
	var sh;
	var S0;
	var S1;
	var sa;
	var sb;
	var ia;
	var ib;
	var i0;
	var i1;
	var o;

	// Resolve the loop interchange order:
	o = loopOrder( [ M, N ], [ strideA1, strideA2 ], [ strideB1, strideB2 ] );
	sh = o.sh;
	sa = o.sx;
	sb = o.sy;

	// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...
	S0 = sh[ 0 ];
	S1 = sh[ 1 ];
	da0 = sa[ 0 ];
	da1 = sa[ 1 ] - ( S0*sa[0] );
	db0 = sb[ 0 ];
	db1 = sb[ 1 ] - ( S0*sb[0] );

	// Set the pointers to the first indexed elements in the respective matrices...
	ia = offsetA;
	ib = offsetB;

	// Iterate over the matrix dimensions...
	for ( i1 = 0; i1 < S1; i1++ ) {
		for ( i0 = 0; i0 < S0; i0++ ) {
			B[ ib ] = A[ ia ];
			B[ ib+1 ] = A[ ia+1 ];
			ia += da0;
			ib += db0;
		}
		ia += da1;
		ib += db1;
	}
	return B;
}
Copies all of a matrix `A` to another matrix `B`.

@private
@param {NonNegativeInteger} M - number of rows in matrix `A`
@param {NonNegativeInteger} N - number of columns in matrix `A`
@param {Float32Array} A - input matrix view
@param {integer} strideA1 - stride of the first dimension of `A`
@param {integer} strideA2 - stride of the second dimension of `A`
@param {NonNegativeInteger} offsetA - starting index for `A`
@param {Float32Array} B - output matrix view
@param {integer} strideB1 - stride of the first dimension of `B`
@param {integer} strideB2 - stride of the second dimension of `B`
@param {NonNegativeInteger} offsetB - starting index for `B`
@returns {Float32Array} `B`

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, 4, 2, 0, B, 4, 2, 0 );
// B => <Float32Array>[ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, 4, -2, 2, B, 4, 2, 0 );
// B => <Float32Array>[ 3.0, 4.0, 1.0, 2.0, 7.0, 8.0, 5.0, 6.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, -4, 2, 4, B, 4, 2, 0 );
// B => <Float32Array>[ 5.0, 6.0, 7.0, 8.0, 1.0, 2.0, 3.0, 4.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, -4, -2, 6, B, 4, 2, 0 );
// B => <Float32Array>[ 7.0, 8.0, 5.0, 6.0, 3.0, 4.0, 1.0, 2.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, 2, 4, 0, B, 4, 2, 0 );
// B => <Float32Array>[ 1.0, 2.0, 5.0, 6.0, 3.0, 4.0, 7.0, 8.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, -2, 4, 2, B, 4, 2, 0 );
// B => <Float32Array>[ 3.0, 4.0, 7.0, 8.0, 1.0, 2.0, 5.0, 6.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, 2, -4, 4, B, 4, 2, 0 );
// B => <Float32Array>[ 5.0, 6.0, 1.0, 2.0, 7.0, 8.0, 3.0, 4.0 ]

@example
var Float32Array = require( '@stdlib/array/float32' );

var A = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );
var B = new Float32Array( 8 );

copyAll( 2, 2, A, -2, -4, 6, B, 4, 2, 0 );
// B => <Float32Array>[ 7.0, 8.0, 3.0, 4.0, 5.0, 6.0, 1.0, 2.0 ]