As recently discussed, with the optional fallback to setcond. I include a patch to target-alpha to test correctness both before and after implementing the opcode in the i386 backend, as well as in the optimizations.
r~ Richard Henderson (5): tcg: Introduce movcond target-alpha: Use movcond tcg-i386: Implement movcond tcg: Optimize movcond for constant comparisons tcg: Optimize two-address commutative operations target-alpha/translate.c | 102 ++++++++++++++++++++++------------------------- tcg/README | 6 +++ tcg/arm/tcg-target.h | 1 + tcg/hppa/tcg-target.h | 1 + tcg/i386/tcg-target.c | 29 ++++++++++++++ tcg/i386/tcg-target.h | 7 ++++ tcg/ia64/tcg-target.h | 2 + tcg/mips/tcg-target.h | 1 + tcg/optimize.c | 49 ++++++++++++++++++++++- tcg/ppc/tcg-target.h | 1 + tcg/ppc64/tcg-target.h | 2 + tcg/s390/tcg-target.h | 2 + tcg/sparc/tcg-target.h | 2 + tcg/tcg-op.h | 41 +++++++++++++++++++ tcg/tcg-opc.h | 2 + tcg/tcg.c | 11 +++-- tcg/tcg.h | 1 + tcg/tci/tcg-target.h | 2 + 18 files changed, 200 insertions(+), 62 deletions(-) -- 1.7.11.4