I was trying to verify if it’s possible to generate all the possible x86 conditional jumps from Clang, but I didn’t manage to obtain 3 jumps: JA/JNA, JL/JGE, JG/JLE
This is an example illustrating the flags calculation (hopefully correct) and the conditional jump generation: https://godbolt.org/z/a13qPa. I know these jumps are not common and that the example is weird, but I still think they should be foldable.
My assumption is that there are no backend rules to fold the generated patterns (including Jcc and SETcc instruction) into a single conditional jump instruction, but maybe I’m just missing a command line argument.
Am I missing something? If the rules are missing, what would it be the best place to implement them?