When passing arguments with __fastcall or __vectorcall in 32-bit MSVC, the following arguments have chance to be passed by register if the current one failed. __regcall from ICC is on the contrary: https://godbolt.org/z/4MPbzhaMG
All the three calling conversions are not supported in GCC.
Fixes: #57737
I think we could improve readability here with some named variable booleans and by avoiding the lambda. These come to mind: