Since two hosts now have (optional) support for min/max,
I thought it might be worth implementing natively.
While I was there, use some more of the FEAT_CSSC extension.
r~
Richard Henderson (7):
tcg: Add integer min/max opcodes
tcg/optimize: Handle min/max opcodes
util/cpuinfo-aarch64: Detect FEAT_CSSC
tcg/aarch64: Implement min/max with FEAT_CSSC
target/riscv64: Implement min/max with Zbb
tcg/aarch64: Implement ctpop with FEAT_CSSC
tcg/aarch64: Use CTZ from FEAT_CSSC
host/include/aarch64/host/cpuinfo.h | 1 +
include/tcg/tcg-opc.h | 4 +
tcg/aarch64/tcg-target-con-set.h | 2 +
tcg/aarch64/tcg-target-con-str.h | 2 +
tcg/optimize.c | 52 +++++++++
tcg/tcg-op.c | 48 ++++++--
tcg/tcg.c | 4 +
util/cpuinfo-aarch64.c | 13 ++-
docs/devel/tcg-ops.rst | 14 ++-
tcg/aarch64/tcg-target.c.inc | 169 ++++++++++++++++++++++++++--
tcg/loongarch64/tcg-target.c.inc | 16 +++
tcg/ppc64/tcg-target.c.inc | 16 +++
tcg/riscv64/tcg-target.c.inc | 52 +++++++++
tcg/s390x/tcg-target.c.inc | 16 +++
tcg/sparc64/tcg-target.c.inc | 16 +++
tcg/tci/tcg-target.c.inc | 16 +++
tcg/x86_64/tcg-target.c.inc | 16 +++
17 files changed, 435 insertions(+), 22 deletions(-)
--
2.43.0