I've encountered a bug after updating from a fairly old (~2013) version of MKL to the latest version that SORMRQ now fails if LDA < M, even though the only stated constraint is LDA >= K.
It seems to fail for any set of parameters where M > K/LDA.
DORMRQ does not appear to experience this failure when the same parameters are used.
For a specific example, using has parameters (SIDE='L', TRANS='T', M=256, N=251, K=251, LDA=251, LDC=256), I get the following for a work query (LWORK=-1):
"Intel MKL ERROR: Parameter 7 was incorrect on entry to SORMRQ."
I get the same thing when trying to call the function through the LAPACKE interface.
This looks like a bug in MKL. Can anyone else confirm?
I can confirm that (after adaptation to MKL) the example at http://www.nag.com/numeric/fl/nagdoc_fl25/html/f08/f08ckf.html works correctly in double precision and fails in single precision. In the latter case, the failure is accompanied by the message "Intel MKL ERROR: Parameter 7 was incorrect on entry to SORMRQ". Note that, in this example, LDA = M, and the work array WORK was already allocated to a size much larger than needed for SORMRQ because the same array is used as the work array for an earlier call to SGERQF.
For more complete information about compiler optimizations, see our Optimization Notice.