On 10/26/23 02:13, Richard Henderson wrote:
+ + sh = ctz64(val); + ret = op->args[0]; + src1 = op->args[1]; + inv = cond == TCG_COND_TSTEQ; + + if (neg && !inv && sext_opc) { + op->opc = sext_opc; + op->args[1] = src1; + op->args[2] = sh; + op->args[3] = 1; + neg = false;
This needs to check the validity of (sh,1) as arguments to the extract opcode (and perhaps the opposite transformation should be done in tcg_gen_extract, when creating a 1-bit extract on a target that does not support it).
Paolo