>>x1f604+(OP)
On gcc 13, the difference in assembly between the min(max()) version and std::clamp is eliminated when I add the -ffast-math flag. I suspect that the two implementations handle one of the arguments being NaN a bit differently.
https://gcc.godbolt.org/z/fGaP6roe9
I see the same behavior on clang 17 as well
https://gcc.godbolt.org/z/6jvnoxWhb