Oh yes they are.
In a PM parasyte mentioned they were the same and showed me how do do this:
$ cargo asm loop_blocking::transpose_2
A bunch of instructions here...
If I then try that for transpose_3:
$ cargo asm loop_blocking::transpose_3
[ERROR]: could not find function at path "loop_blocking::transpose_3" in the generated assembly.
Is it one of the following functions?
If I comment each one out in turn and do that I can save the asm of both and diff it. The diffs are the same except for the name at the top!
I guess parasyte was inspired to dump that asm as he had noticed the run times were identical.
I think you are right about the clippy directive.
Remember that a Rust neophyte I was (still am) searching for hints and tips as to the right way to do things, the "idiomatic way" as they say, all over, the docs, this forum, around the net and of course clippy. Also I was having a terrible time with the rest of that code, like how to create those arrays in the first place, which is non-trivial in Rust.
I'm surprised that nobody here popped up to propose a solution like I now have when my thread discussing it was going on. They were all either slow, unsafe, or such ugly code I would never dream of having it in any code base of mine.
As it stands it's a toss up between the two versions, use the directive to keep clippy quite or add that little bit of verbosity. I could live happily with either of them.