That will make you learn how to write Asm like a compiler, which is useful if all you want to do is read (compiler generated) Asm, but otherwise it only strengthens the notion of "why write Asm if the compiler can do it anyway".
Good handwritten Asm has a very different texture to it than compiler output, and (at least for x86 - perhaps less so for RISCs like ARM) can be substantially more efficient. Many years ago, I remember having to grade students' assignments on writing (x86) Asm in an introductory course, and it was very obvious to see who cheated by using a compiler (probably at O0 too.)
Would love to see some real life examples as even the professor in my Computer Architecture class wasn't able to provide any.
I think the notion of compsci students still having to learn ASM is the relic of an older generation that needs to feel like their outdated skills are still relevant.
If you want to see more examples of handwritten Asm then look at the 512b and below categories in the demoscene. Some of those have appeared on HN too:
The second example only proves my point further: It's a demo from the demoscene. Impressive, but pointless outside enthusiast circles. I'm not going to comment on it.
Regarding the first example: Cool! Really interesting and I wish the contractor / employee all the best. Not many people who can do something like this. That said, are we really forcing compsci students to learn ASM for an entire semester, on the off-chance that they'll end up in a leading security role managing major software products? I feel a different curriculum would be more effective (maybe one that teaches how to avoid these bugs in the first place?).
The only real life application of handwritten ASM that I'm aware of, are the initialization routines for most programming language runtimes (GoLang and C++ come to mind) and microcode optimized shaders in game engines.
Good handwritten Asm has a very different texture to it than compiler output, and (at least for x86 - perhaps less so for RISCs like ARM) can be substantially more efficient. Many years ago, I remember having to grade students' assignments on writing (x86) Asm in an introductory course, and it was very obvious to see who cheated by using a compiler (probably at O0 too.)