From patchwork Tue Jun 3 08:08:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893850 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180439wra; Tue, 3 Jun 2025 01:14:17 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXJBUfqCJwa50Hvb1lAs8reD8E5Fnkr1uYZfUwMFcp9UsYCp228VtETlNotoViA3DnmVq4DhQ==@linaro.org X-Google-Smtp-Source: AGHT+IGzj4eb3SKRU2nEiAIk9rrcJoZCcL5S25XSuk0QY6nF5Fg2uo1g5K290/6yNo/DHsQ4Eg+a X-Received: by 2002:a05:622a:8ce:b0:494:6e91:99f0 with SMTP id d75a77b69052e-4a59adce222mr23390031cf.3.1748938457036; Tue, 03 Jun 2025 01:14:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938457; cv=none; d=google.com; s=arc-20240605; b=PPdJBlIGxtek3Iw4qQqJedqf27fisflVSa4OYivZ6F/a+s5BGyPxoYNmiybcKkjVUg F7FdGl6P08oj1bqKEJtq9KGkZTC8TOXPp7njDSCjmhzV5mX7TaelsZSg+cH8nN6I7fE7 XYnhmmqFYG/TnQtl6t2mpOBgAw/HaBt0GU73uW91SD2tJ3M5lhai4kcYp4ehxAmHOdOF r6y2mZpSOmN7jKSWKmHhROomRFedWMmN2gZYtJ3kB9q/tmj14uEEbH4GJlelmLiR0afg 7TK1fMW7WHbLIut0a2T+LwP5BJ5hf8Vw6BCaMPAvkeMZpU1kRJ55xpcE+zBfTOtAP7ie q4UQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=lzo/fe/Ua4ApmzVfrV8jd465bb3JX7SLeAZUoYkEF7U=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=kv/CW4YwRTghbbrv5WEwvK4A8Rg7Uj/cmc4LcMe7Yw0VBb3YpkvFAedjWhYd/Q1VnG riGZXReSjTmYjEfxFoxLVH/LDlckvBWouZ6jp9//Whz3gt7MqFXj7zVzwE4MNAkeG9af HyBGygVb5HojGFDnyAydrqB083PHcw5nS7LGyFLHh6oaZmjeerRn59iORDYxXXbnXlI9 IJoV3PG2Vg/FC2LFjKOeMrkK4MZtnR7nAMMttPa1L3tAWgHv+9a9usr4ehonkvKLwAwK sISKoczCHIJxdfM2n1KbbqGx/NX382kKEGJ1lvGXlCGjDIJIQmqOxozC8tPjsOOMWIfS 0PSw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="M/9hYEYt"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435a50153si134083191cf.471.2025.06.03.01.14.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:14:17 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="M/9hYEYt"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMiK-0000kI-FL; Tue, 03 Jun 2025 04:09:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMiI-0000iX-Aj for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:38 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMiG-0005Sa-9q for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:38 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3a3771c0f8cso3205487f8f.3 for ; Tue, 03 Jun 2025 01:09:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938174; x=1749542974; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lzo/fe/Ua4ApmzVfrV8jd465bb3JX7SLeAZUoYkEF7U=; b=M/9hYEYt8iVHqHMxWX5kmqGfrrbgyp08JX09bWMsvg5cerY2lIEL5579AbieXZa86B y+pC1r5LEAbP/1apaIHTg8nu5wAM8rSW5bVOnwvhZKu1AcYbJSP+n0GZnb8qqQN4Vwvo sKRLrKCwtcIRjsm8FTYnyKPcQ7OqvkmctvGMSlQKO3d2mUtlNkCrfdsvTZrCfadtyKV5 jhIJoa4U7kH/iQ9IAOP94TOWm/edb519hdkKtPujNtEthY6BCHmEbXWjR+fPxs0McC/r csf6ftt01atwI8ygaDOsUhsLcFhMK3x5b7QmYyeZd0osfE+yXVtfAG6m5Z97vJqzcL+1 pOKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938174; x=1749542974; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lzo/fe/Ua4ApmzVfrV8jd465bb3JX7SLeAZUoYkEF7U=; b=eiqlIP0eOiA6cwz+jJfreUnGp92Le0whz2g64+WCmSZPCySmL2sgpH6mMsRyXBDGSB WeFUvpTf+TL4BZDC3801PAyhz7eOpgkz3ep8KA7RTpzyXY8IBPc+gWjh+zDhrE252mHJ +memN7/CHvi57P3DLPKMrvEnPXnr7f2qAOUJnhEcB+Bbd4B+DsQ/PLXAAdI3DtnSWVIh SlvgsI91ndQ5F7Qg6vgLrsbLlq0Di/aQE96rReUFM/vAJUjiJ22Vkh+nQ/sHzocOKV7b isxpuPyZA0th5Kl85rwwCApwvFBpsgyNA+fTaKVNJukSpvZCpsO6oTVrKd4XXR+HLvPK gxVQ== X-Gm-Message-State: AOJu0YwIqcbY4fohQgxTK4d3q7g/RpV3yRroi2nK5rQYFX+9Uwl3U7JB ZQpGFGTXZEMw+wPaaLcwrEjthbraIjx6BASyjy6msT7dntjkyMmsDulN/qd8lMronopBpaVvlt0 pj9rfPUg= X-Gm-Gg: ASbGncvxHriTGqEpCyTvq8gz7HDY4AyO6peCr+GUSvcPIXa8L9tJZC35TC/0dqD2w9p Zc+5h/SWdWyFVcI7SsENDcDPxUnJUbj4UHb6hAd/EPhgWPptCw7Weg/ygynbfoscURUceXz4XIQ 3L+m/xLAOZ1HzS7GMEU9UHR33CP8EJIaaN8OGNA/V1b64G3a7vJB4Z0EQmMiIDwMcy3zSAZJCxy YtSSaqcHM1FvbtHldrPX1cMiiocpmF+dZNkQtQCGbt49w9aJQiwbvzihsmvvEQLL0HlHQalnoq4 +puimWVgM7n8EVhWdrmMRqTy77EGmkruop/x/gTyEgTH9tH/T1wN2SAR4er5X2E+uqyEvZ2XPVd x7L/vBtcQUDoD X-Received: by 2002:a05:6000:2c10:b0:3a4:d6ed:8df7 with SMTP id ffacd0b85a97d-3a4f89e2536mr10036211f8f.59.1748938174359; Tue, 03 Jun 2025 01:09:34 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.09.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:09:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 01/27] tcg/optimize: Introduce arg_const_val Date: Tue, 3 Jun 2025 09:08:42 +0100 Message-ID: <20250603080908.559594-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Use arg_const_val instead of direct access to the TempOptInfo val member. Rename both val and is_const to catch all direct accesses. Signed-off-by: Richard Henderson --- tcg/optimize.c | 78 ++++++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 10a76c5461..73a272eeb3 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -39,11 +39,11 @@ typedef struct MemCopyInfo { } MemCopyInfo; typedef struct TempOptInfo { - bool is_const; + bool is_const_; TCGTemp *prev_copy; TCGTemp *next_copy; QSIMPLEQ_HEAD(, MemCopyInfo) mem_copy; - uint64_t val; + uint64_t val_; uint64_t z_mask; /* mask bit is 0 if and only if value bit is 0 */ uint64_t s_mask; /* mask bit is 1 if value bit matches msb */ } TempOptInfo; @@ -73,12 +73,12 @@ static inline TempOptInfo *arg_info(TCGArg arg) static inline bool ti_is_const(TempOptInfo *ti) { - return ti->is_const; + return ti->is_const_; } static inline uint64_t ti_const_val(TempOptInfo *ti) { - return ti->val; + return ti->val_; } static inline bool ti_is_const_val(TempOptInfo *ti, uint64_t val) @@ -101,6 +101,11 @@ static inline bool arg_is_const(TCGArg arg) return ts_is_const(arg_temp(arg)); } +static inline uint64_t arg_const_val(TCGArg arg) +{ + return ti_const_val(arg_info(arg)); +} + static inline bool arg_is_const_val(TCGArg arg, uint64_t val) { return ts_is_const_val(arg_temp(arg), val); @@ -137,12 +142,12 @@ static void init_ts_info(OptContext *ctx, TCGTemp *ts) ti->prev_copy = ts; QSIMPLEQ_INIT(&ti->mem_copy); if (ts->kind == TEMP_CONST) { - ti->is_const = true; - ti->val = ts->val; + ti->is_const_ = true; + ti->val_ = ts->val; ti->z_mask = ts->val; ti->s_mask = INT64_MIN >> clrsb64(ts->val); } else { - ti->is_const = false; + ti->is_const_ = false; ti->z_mask = -1; ti->s_mask = 0; } @@ -229,7 +234,7 @@ static void reset_ts(OptContext *ctx, TCGTemp *ts) pi->next_copy = ti->next_copy; ti->next_copy = ts; ti->prev_copy = ts; - ti->is_const = false; + ti->is_const_ = false; ti->z_mask = -1; ti->s_mask = 0; @@ -394,8 +399,8 @@ static bool tcg_opt_gen_mov(OptContext *ctx, TCGOp *op, TCGArg dst, TCGArg src) di->prev_copy = src_ts; ni->prev_copy = dst_ts; si->next_copy = dst_ts; - di->is_const = si->is_const; - di->val = si->val; + di->is_const_ = si->is_const_; + di->val_ = si->val_; if (!QSIMPLEQ_EMPTY(&si->mem_copy) && cmp_better_copy(src_ts, dst_ts) == dst_ts) { @@ -687,8 +692,8 @@ static int do_constant_folding_cond(TCGType type, TCGArg x, TCGArg y, TCGCond c) { if (arg_is_const(x) && arg_is_const(y)) { - uint64_t xv = arg_info(x)->val; - uint64_t yv = arg_info(y)->val; + uint64_t xv = arg_const_val(x); + uint64_t yv = arg_const_val(y); switch (type) { case TCG_TYPE_I32: @@ -801,14 +806,14 @@ static int do_constant_folding_cond1(OptContext *ctx, TCGOp *op, TCGArg dest, * TSTNE x,i -> NE x,0 if i includes all nonzero bits of x */ if (args_are_copies(*p1, *p2) || - (arg_is_const(*p2) && (i1->z_mask & ~arg_info(*p2)->val) == 0)) { + (arg_is_const(*p2) && (i1->z_mask & ~arg_const_val(*p2)) == 0)) { *p2 = arg_new_constant(ctx, 0); *pcond = tcg_tst_eqne_cond(cond); return -1; } /* TSTNE x,i -> LT x,0 if i only includes sign bit copies */ - if (arg_is_const(*p2) && (arg_info(*p2)->val & ~i1->s_mask) == 0) { + if (arg_is_const(*p2) && (arg_const_val(*p2) & ~i1->s_mask) == 0) { *p2 = arg_new_constant(ctx, 0); *pcond = tcg_tst_ltge_cond(cond); return -1; @@ -849,13 +854,13 @@ static int do_constant_folding_cond2(OptContext *ctx, TCGOp *op, TCGArg *args) bh = args[3]; if (arg_is_const(bl) && arg_is_const(bh)) { - tcg_target_ulong blv = arg_info(bl)->val; - tcg_target_ulong bhv = arg_info(bh)->val; + tcg_target_ulong blv = arg_const_val(bl); + tcg_target_ulong bhv = arg_const_val(bh); uint64_t b = deposit64(blv, 32, 32, bhv); if (arg_is_const(al) && arg_is_const(ah)) { - tcg_target_ulong alv = arg_info(al)->val; - tcg_target_ulong ahv = arg_info(ah)->val; + tcg_target_ulong alv = arg_const_val(al); + tcg_target_ulong ahv = arg_const_val(ah); uint64_t a = deposit64(alv, 32, 32, ahv); r = do_constant_folding_cond_64(a, b, c); @@ -989,9 +994,8 @@ static bool finish_folding(OptContext *ctx, TCGOp *op) static bool fold_const1(OptContext *ctx, TCGOp *op) { if (arg_is_const(op->args[1])) { - uint64_t t; + uint64_t t = arg_const_val(op->args[1]); - t = arg_info(op->args[1])->val; t = do_constant_folding(op->opc, ctx->type, t, 0); return tcg_opt_gen_movi(ctx, op, op->args[0], t); } @@ -1001,8 +1005,8 @@ static bool fold_const1(OptContext *ctx, TCGOp *op) static bool fold_const2(OptContext *ctx, TCGOp *op) { if (arg_is_const(op->args[1]) && arg_is_const(op->args[2])) { - uint64_t t1 = arg_info(op->args[1])->val; - uint64_t t2 = arg_info(op->args[2])->val; + uint64_t t1 = arg_const_val(op->args[1]); + uint64_t t2 = arg_const_val(op->args[2]); t1 = do_constant_folding(op->opc, ctx->type, t1, t2); return tcg_opt_gen_movi(ctx, op, op->args[0], t1); @@ -1486,8 +1490,8 @@ static bool fold_bitsel_vec(OptContext *ctx, TCGOp *op) } if (arg_is_const(op->args[2]) && arg_is_const(op->args[3])) { - uint64_t tv = arg_info(op->args[2])->val; - uint64_t fv = arg_info(op->args[3])->val; + uint64_t tv = arg_const_val(op->args[2]); + uint64_t fv = arg_const_val(op->args[3]); if (tv == -1 && fv == 0) { return tcg_opt_gen_mov(ctx, op, op->args[0], op->args[1]); @@ -1504,7 +1508,7 @@ static bool fold_bitsel_vec(OptContext *ctx, TCGOp *op) } } if (arg_is_const(op->args[2])) { - uint64_t tv = arg_info(op->args[2])->val; + uint64_t tv = arg_const_val(op->args[2]); if (tv == -1) { op->opc = INDEX_op_or_vec; op->args[2] = op->args[3]; @@ -1518,7 +1522,7 @@ static bool fold_bitsel_vec(OptContext *ctx, TCGOp *op) } } if (arg_is_const(op->args[3])) { - uint64_t fv = arg_info(op->args[3])->val; + uint64_t fv = arg_const_val(op->args[3]); if (fv == 0) { op->opc = INDEX_op_and_vec; return fold_and(ctx, op); @@ -1876,7 +1880,7 @@ static bool fold_divide(OptContext *ctx, TCGOp *op) static bool fold_dup(OptContext *ctx, TCGOp *op) { if (arg_is_const(op->args[1])) { - uint64_t t = arg_info(op->args[1])->val; + uint64_t t = arg_const_val(op->args[1]); t = dup_const(TCGOP_VECE(op), t); return tcg_opt_gen_movi(ctx, op, op->args[0], t); } @@ -1886,8 +1890,8 @@ static bool fold_dup(OptContext *ctx, TCGOp *op) static bool fold_dup2(OptContext *ctx, TCGOp *op) { if (arg_is_const(op->args[1]) && arg_is_const(op->args[2])) { - uint64_t t = deposit64(arg_info(op->args[1])->val, 32, 32, - arg_info(op->args[2])->val); + uint64_t t = deposit64(arg_const_val(op->args[1]), 32, 32, + arg_const_val(op->args[2])); return tcg_opt_gen_movi(ctx, op, op->args[0], t); } @@ -1958,8 +1962,8 @@ static bool fold_extract(OptContext *ctx, TCGOp *op) static bool fold_extract2(OptContext *ctx, TCGOp *op) { if (arg_is_const(op->args[1]) && arg_is_const(op->args[2])) { - uint64_t v1 = arg_info(op->args[1])->val; - uint64_t v2 = arg_info(op->args[2])->val; + uint64_t v1 = arg_const_val(op->args[1]); + uint64_t v2 = arg_const_val(op->args[2]); int shr = op->args[3]; if (ctx->type == TCG_TYPE_I32) { @@ -2127,8 +2131,8 @@ static bool fold_multiply2(OptContext *ctx, TCGOp *op) swap_commutative(op->args[0], &op->args[2], &op->args[3]); if (arg_is_const(op->args[2]) && arg_is_const(op->args[3])) { - uint64_t a = arg_info(op->args[2])->val; - uint64_t b = arg_info(op->args[3])->val; + uint64_t a = arg_const_val(op->args[2]); + uint64_t b = arg_const_val(op->args[3]); uint64_t h, l; TCGArg rl, rh; TCGOp *op2; @@ -2330,7 +2334,7 @@ static int fold_setcond_zmask(OptContext *ctx, TCGOp *op, bool neg) } a_zmask = arg_info(op->args[1])->z_mask; - b_val = arg_info(op->args[2])->val; + b_val = arg_const_val(op->args[2]); cond = op->args[3]; if (ctx->type == TCG_TYPE_I32) { @@ -2418,7 +2422,7 @@ static void fold_setcond_tst_pow2(OptContext *ctx, TCGOp *op, bool neg) } src2 = op->args[2]; - val = arg_info(src2)->val; + val = arg_const_val(src2); if (!is_power_of_2(val)) { return; } @@ -2669,7 +2673,7 @@ static bool fold_sub_to_neg(OptContext *ctx, TCGOp *op) TCGOpcode neg_op; bool have_neg; - if (!arg_is_const(op->args[1]) || arg_info(op->args[1])->val != 0) { + if (!arg_is_const_val(op->args[1], 0)) { return false; } @@ -2719,7 +2723,7 @@ static bool fold_sub(OptContext *ctx, TCGOp *op) /* Fold sub r,x,i to add r,x,-i */ if (arg_is_const(op->args[2])) { - uint64_t val = arg_info(op->args[2])->val; + uint64_t val = arg_const_val(op->args[2]); op->opc = INDEX_op_add; op->args[2] = arg_new_constant(ctx, -val); From patchwork Tue Jun 3 08:08:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893826 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179068wra; Tue, 3 Jun 2025 01:10:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWG3OTeS3JmLFchY6ytxHUYyn3NzKL7D8RsbI7vkRHLYTd5Y1dugc9fBrj+7FU//Iz05sG82A==@linaro.org X-Google-Smtp-Source: AGHT+IGNi8MJwwfHBCVmiRDByL+uNLE9VgR7MubOI9h2gyMYzpHZtcOfdUZf+rMB8/Hj1GqOjIMH X-Received: by 2002:a05:6214:27cf:b0:6fa:c408:5a3b with SMTP id 6a1803df08f44-6fad18f350fmr246629226d6.9.1748938219075; Tue, 03 Jun 2025 01:10:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938219; cv=none; d=google.com; s=arc-20240605; b=jYQd0qpkVPuI4h8skFLp0xUBjDozbVxdPi9ghbhNzUIAsXKG0CJ5gwFiGc3tzUqmsV zbhUNLPPJ83QQtlCU0KBNNDtGTgUeVldKIpgfNYduICtsdFfRSQLcHAZ5UMNTh+7czcC /HMoRnRlEaEiFBM1hWQDHDgv1ZfdjLfaJWqea+7kXiCUYTvyXf19yuNgX4MVyrF+QKMX X0Fk/Ij5daQzn3KAsuimwwJfwW4KWp/coGxliyZrEH+ePVpJ7PeakAXlljOQbCycyg7I itp9zcO5QL6vZLDZowhXEqITccLGW+JpkdP1t9tBdgdxjjG9DFwS0tZlseuhbcVjaRi+ ianA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=sTSTjcuH6N3aWQwpF6uVc7bfNUPVXbJSpmTvFWDJcJc=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=TVuojfuDQdcxSZNhjAnZd7hJKQ3nLj4Figps6XDPzx6QXRjyRzuG004AAX09/aVQqj nFdgGsAp4145AG559IlUIlYJcfti1grpsD3FEH4hHzAp7LSc+7aA9N9UF7rqfVK93VpR s1egVlkfkD/H8E2aruQ1GsVnDx6u/pDhlJNMd2VCD3N+5Sd9Qsyzj007zhZhWIs1GO1M OU07v66aH3brnrZH/MlTViT+Qqx+so8pvhGxAhGbIn8C+jVUFc3hPG4hjSNjfKUuKLSX kmQtZwN1uFADFl2HAGWBWajP2w+P4fcCqcGiRSmyV6xeCfcuP8yQidAhXaR1WOYjgRLo 0fNw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KR+5eLF9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a1e0f4bsi1171494285a.205.2025.06.03.01.10.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:10:19 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KR+5eLF9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMiQ-0000mo-4U; Tue, 03 Jun 2025 04:09:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMiO-0000lP-5r for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:44 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMiL-0005T3-9P for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:43 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-450ce3a2dd5so46197155e9.3 for ; Tue, 03 Jun 2025 01:09:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938179; x=1749542979; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sTSTjcuH6N3aWQwpF6uVc7bfNUPVXbJSpmTvFWDJcJc=; b=KR+5eLF9+YoGkmNV+8AvJowxzVVPBov5xUbOlGyWFeH3ttPq4F5o4oeEcU9nyJnHGh QyutVW9glKeimE8x2/vlfiwnwEoMHzexO7+ipbiRgKBc+8aHUms+Srj7mYAB886g8JsD P+WhOBQxYTA/V8MVRiYS10quGmJk/9KZ6XHspuXGnxnnSQrDwnL47jlonvFb0sOu2Voj uEbNJ0MDmAWtg1J05uB7cLZ1U1TkCDRqWtyA5yJnMS3l3LrYhurXOyuIkRcpkgs5Fe5h wRVBUm3re60RoDFY//R3Nnbuu2S6aY6/hDTS56ZfJ5pjUvkjrGTxTb0cVvVkI02KXWEI w82g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938179; x=1749542979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sTSTjcuH6N3aWQwpF6uVc7bfNUPVXbJSpmTvFWDJcJc=; b=tz7eQahojn76bnYMG7TvFphu0us0rOTcSXmT89XQU6hW2tuFvd7M/PFgTARhQpiwFe phGU2WrwF1oh2V2lkdAjsVAcYPKm1owts0RaadHl1VK3y5gG19kKWyMHvQYPXe/WHqVZ U6vE/bGBxa1mVm37SBJnpUxk9HxOPdM188XlZXFSVyCw0zyGlisaIYNMXtrGxrihzKBN Ur4Em0LUhsPN4rCNjp6usy+LCJYFIf6jArWL6ogUddg0b+8wpTs2A3a5mhyL6QleeFXp iiOSqkfzMjxbbUzg//zgYFxlFIz4/0bLof3eM4Uvwl9CWxuPz/EghfLgSeMaxUU3vLkw bB3A== X-Gm-Message-State: AOJu0Yx9mD447ZiWAaCwp6zgdWHHm5llgOoDGljfs8oSPzE3cLkEF38A 2a8+z8KYZ8tHDwai7RDpMJk1bXevipAJojR2ab8LACPJNkIhM/8DeA0L/VI3FLpnbuw/STwPo/U 90SFeIB8= X-Gm-Gg: ASbGnctu7zeiOESR+tmquO2V2jKT9UpVRItR8wDJqeZoHXUAVrPCvb2f5SSY9o3b0Ze osgSPzKTP35LHPB2WKH/o3kcBLyHnJVmdz3k6OOFsLOZTn+Dv/0lxOHzSDOHTAPQl0ws9HUwvTp PVlkpTC72RFh0XdBjUW6z/L/PmFffeSr3wmGhpwRco9RkNysok/daVMChOUrALuQ5mXW1NgaNPR RL4d70Vk6F8/ulFLpjDuxIs5QwvEMuoSItto2J1EH9IK7lie4qaQxFk7e18KocFPjo3WAhaBq+Y uFwaqddtRpONtrwIamfCvucltmSQhKpGVMUHGe/TjNx4P1xIiDzQ23wViyStv083jaIs0JvdJac 2nYOoxOEZBewMBzTtwmttzXI= X-Received: by 2002:a05:600c:3510:b0:441:d438:505c with SMTP id 5b1f17b1804b1-45126574c37mr81634935e9.32.1748938179473; Tue, 03 Jun 2025 01:09:39 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.09.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:09:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 02/27] tcg/optimize: Add one's mask to TempOptInfo Date: Tue, 3 Jun 2025 09:08:43 +0100 Message-ID: <20250603080908.559594-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x336.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Add o_mask mirroring z_mask, but for 1's instead of 0's. Drop is_const and val fields, which now logically overlap. Signed-off-by: Richard Henderson --- tcg/optimize.c | 51 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 73a272eeb3..ce3cb4d7bc 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -39,12 +39,11 @@ typedef struct MemCopyInfo { } MemCopyInfo; typedef struct TempOptInfo { - bool is_const_; TCGTemp *prev_copy; TCGTemp *next_copy; QSIMPLEQ_HEAD(, MemCopyInfo) mem_copy; - uint64_t val_; uint64_t z_mask; /* mask bit is 0 if and only if value bit is 0 */ + uint64_t o_mask; /* mask bit is 1 if and only if value bit is 1 */ uint64_t s_mask; /* mask bit is 1 if value bit matches msb */ } TempOptInfo; @@ -73,12 +72,14 @@ static inline TempOptInfo *arg_info(TCGArg arg) static inline bool ti_is_const(TempOptInfo *ti) { - return ti->is_const_; + /* If all bits that are not known zeros are known ones, it's constant. */ + return ti->z_mask == ti->o_mask; } static inline uint64_t ti_const_val(TempOptInfo *ti) { - return ti->val_; + /* If constant, both z_mask and o_mask contain the value. */ + return ti->z_mask; } static inline bool ti_is_const_val(TempOptInfo *ti, uint64_t val) @@ -142,13 +143,12 @@ static void init_ts_info(OptContext *ctx, TCGTemp *ts) ti->prev_copy = ts; QSIMPLEQ_INIT(&ti->mem_copy); if (ts->kind == TEMP_CONST) { - ti->is_const_ = true; - ti->val_ = ts->val; ti->z_mask = ts->val; + ti->o_mask = ts->val; ti->s_mask = INT64_MIN >> clrsb64(ts->val); } else { - ti->is_const_ = false; ti->z_mask = -1; + ti->o_mask = 0; ti->s_mask = 0; } } @@ -234,8 +234,8 @@ static void reset_ts(OptContext *ctx, TCGTemp *ts) pi->next_copy = ti->next_copy; ti->next_copy = ts; ti->prev_copy = ts; - ti->is_const_ = false; ti->z_mask = -1; + ti->o_mask = 0; ti->s_mask = 0; if (!QSIMPLEQ_EMPTY(&ti->mem_copy)) { @@ -390,6 +390,7 @@ static bool tcg_opt_gen_mov(OptContext *ctx, TCGOp *op, TCGArg dst, TCGArg src) op->args[1] = src; di->z_mask = si->z_mask; + di->o_mask = si->o_mask; di->s_mask = si->s_mask; if (src_ts->type == dst_ts->type) { @@ -399,13 +400,19 @@ static bool tcg_opt_gen_mov(OptContext *ctx, TCGOp *op, TCGArg dst, TCGArg src) di->prev_copy = src_ts; ni->prev_copy = dst_ts; si->next_copy = dst_ts; - di->is_const_ = si->is_const_; - di->val_ = si->val_; if (!QSIMPLEQ_EMPTY(&si->mem_copy) && cmp_better_copy(src_ts, dst_ts) == dst_ts) { move_mem_copies(dst_ts, src_ts); } + } else if (dst_ts->type == TCG_TYPE_I32) { + di->z_mask = (int32_t)di->z_mask; + di->o_mask = (int32_t)di->o_mask; + di->s_mask |= INT32_MIN; + } else { + di->z_mask |= MAKE_64BIT_MASK(32, 32); + di->o_mask = (uint32_t)di->o_mask; + di->s_mask = INT64_MIN; } return true; } @@ -1032,8 +1039,8 @@ static bool fold_const2_commutative(OptContext *ctx, TCGOp *op) * If z_mask allows, fold the output to constant zero. * The passed s_mask may be augmented by z_mask. */ -static bool fold_masks_zs(OptContext *ctx, TCGOp *op, - uint64_t z_mask, int64_t s_mask) +static bool fold_masks_zos(OptContext *ctx, TCGOp *op, uint64_t z_mask, + uint64_t o_mask, int64_t s_mask) { const TCGOpDef *def = &tcg_op_defs[op->opc]; TCGTemp *ts; @@ -1052,11 +1059,16 @@ static bool fold_masks_zs(OptContext *ctx, TCGOp *op, */ if (ctx->type == TCG_TYPE_I32) { z_mask = (int32_t)z_mask; + o_mask = (int32_t)o_mask; s_mask |= INT32_MIN; } - if (z_mask == 0) { - return tcg_opt_gen_movi(ctx, op, op->args[0], 0); + /* Bits that are known 1 and bits that are known 0 must not overlap. */ + tcg_debug_assert((o_mask & ~z_mask) == 0); + + /* All bits that are not known zero are known one is a constant. */ + if (z_mask == o_mask) { + return tcg_opt_gen_movi(ctx, op, op->args[0], o_mask); } ts = arg_temp(op->args[0]); @@ -1068,20 +1080,27 @@ static bool fold_masks_zs(OptContext *ctx, TCGOp *op, /* Canonicalize s_mask and incorporate data from z_mask. */ rep = clz64(~s_mask); rep = MAX(rep, clz64(z_mask)); + rep = MAX(rep, clz64(~o_mask)); rep = MAX(rep - 1, 0); ti->s_mask = INT64_MIN >> rep; return true; } +static bool fold_masks_zs(OptContext *ctx, TCGOp *op, + uint64_t z_mask, uint64_t s_mask) +{ + return fold_masks_zos(ctx, op, z_mask, 0, s_mask); +} + static bool fold_masks_z(OptContext *ctx, TCGOp *op, uint64_t z_mask) { - return fold_masks_zs(ctx, op, z_mask, 0); + return fold_masks_zos(ctx, op, z_mask, 0, 0); } static bool fold_masks_s(OptContext *ctx, TCGOp *op, uint64_t s_mask) { - return fold_masks_zs(ctx, op, -1, s_mask); + return fold_masks_zos(ctx, op, -1, 0, s_mask); } /* From patchwork Tue Jun 3 08:08:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893827 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179143wra; Tue, 3 Jun 2025 01:10:29 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXg7ptzfQr4dvwL37dy3vAZuWRbY7ZkzB+UJ9FrYc5S+VSIFAm9x6aO0XSzerL5R1Vr1N+0UQ==@linaro.org X-Google-Smtp-Source: AGHT+IHH+LMz/KpkpGR5Lpe06r0d2lyS8esv9TylBRcgc2dTbxI0AzBKO5MNnA6Y8qj8dA9pG5yh X-Received: by 2002:a05:620a:1786:b0:7cd:45ed:c4a5 with SMTP id af79cd13be357-7d0a1efa4a6mr2253114785a.0.1748938219074; Tue, 03 Jun 2025 01:10:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938219; cv=none; d=google.com; s=arc-20240605; b=TVoJEBLyksSSaqEwbEwL/Yhqkz6E5RF5UonaYk/c6rCD0Hd6DCTvOeTliVUXCE06g8 SXAh85OJkPywCMqEyAA2lK9VhpUvypBbfrQd7MPpyKb0z+OSpw96k4tR7DABFRdoaAhr Kjiif6jMGukVHKk+330gVTNZ5vpLu3VbwEgHIGRFEz3Pb/WAiyn81G84/fbNjtHkC8/m pWtwY8SRGXEiSXIPyJuhUjCxqnQ7IYW8cuN0OLD7532sY4Cbd6tNlO4UEJ+7u5JtWdr9 eyVGolBW7xum5JFu+389kuf801u+6I+T+CdVCRCd6zF4SHOIDRptrjuFzCN9VrVnVku2 tAgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=tmwJBz7F0rnN0Jca+1BmXr+MUdOgft8U8n0tUdpppT0=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=RIV2Q/Sf0PtYHxdId8RjSfXoT2tj5GnBja5IBdGoJ7RuRUNPw04s4gQxh7Czz2Aq2S n6sqAQSJkK7LGb1f0TQMigk+4TU2qpeyiT0rICzcG/jYNKs5ZPTeLwkiG35JNqCehNXV B0gSOg9lM3qWBHmRW1+xrtPKFmR0CnnEoYk7WXxNC5bVmiILiebJyoGef2q+yDDSvaWO 4DH2sc8EvamuVFPEyLLB9YqfGFunMJsJEErRU8Ssfk2nx/Y6tA76tNDIG+MpxRpfM5y+ TVqSeGsOOSbF6GiNx3CCnZ5nhoE0cDQCrjXhbH+uPady9aRKllhTloIzS7hyG+VXH7Rs 9glQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bumZhcOJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a12ebb5si1272539385a.190.2025.06.03.01.10.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:10:19 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bumZhcOJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMiT-0000ob-TN; Tue, 03 Jun 2025 04:09:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMiR-0000nV-SZ for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:47 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMiQ-0005Ta-9C for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:47 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3a5096158dcso1591349f8f.1 for ; Tue, 03 Jun 2025 01:09:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938185; x=1749542985; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tmwJBz7F0rnN0Jca+1BmXr+MUdOgft8U8n0tUdpppT0=; b=bumZhcOJU5LFKEa1hSdk1sft33jZuSXZRO14nIa/ttMqJcTPF7ADmkJJ5H5eJBcf9b KBHbx94I2Pc0tVl+mMY/2yMOwOfqMNCt/yI2NhhViX25XKQTE6M2nta/3qRbOJ0Xpev5 8GY2gE9j4VLapWohIAtBBC1WaqF6rHvPZ7Qg1eqc32JKNhp4H2CEzQw97j2ocnSuxWXr JjL6r/5jLtX68oK/C1XcnYG88y0YCScpRDzMgDRuQpJeztC//bmC/4+oMmPILmY4k3dn u+EHJEm6R0R5S16ee33QLOV5bjWsdRpdWmnq5x9TJjX2IrBzYnvQZkZFR11dteyCkSLX Ru7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938185; x=1749542985; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tmwJBz7F0rnN0Jca+1BmXr+MUdOgft8U8n0tUdpppT0=; b=e2Hhk15FL72XnPLyk91mOfkXr5wwv9QjMx4yRh5HxeaD/9718Co2czCS3DZdFRqXS+ EoVN6PxdERVrVKydps/m+koAhwQx0DW7JozefoulODxt/RGdKY/tm3WZ3HKnBiTw3sth rEbxxsn/rrlHxl7xWxnaUGQ3eaCe1GT+YNe+8iMdbRAW8mOCzmL71b2k5rOBOrl9P06e FZBl6/JHfsKNH5UCa10riPv67hhQzZ2wKtp3GrjEU1tDTVWwTu86vRImnGnbR1IMORg2 KMorNdxgSeQBrNn6aFqcsl1YHdcYkL35nL1lJDFB1Ii2qgWyNEXnfZPPEIF5J0FZfEi8 nX/A== X-Gm-Message-State: AOJu0YyJVPW70Jsoqw0Sl52XO23JsoF44FmOlIJCxUtEZ1GowuDlJNmQ cBNbxWx4W4sFaWerKGhE2bkljO2wqNSRE1tC3Bg6mbA+3lF6/iLPgbZktogLxtxujdGHdEppirH IU65RENU= X-Gm-Gg: ASbGncvCo82AMviF0N5Q4tGwBbxkG5JE8jbICKr6+whqCpRW2sIcpJIoksUJnU8KOyk dHPm7eTEHGf0+q4tFFD+Dk5Uopj6/0ygiK2wh/2g6BQnTFPoNDXConeKcgW5oC4o/ituFsu2t94 SuFEmXr2gMJtHcBTVHPO0hr3uAKoymzLdOuINkY1V/GajLf5+SaaUksTgrrbf3IivnH7I4R/duF /DOrR9lDnFxSCeoSsask/Zqzcm/luTIe850IUT4OUsjS8vQ8ZYqX/Y6WOTX4IJM2LvgKxN60dhw lBlngEp3KXnP1DzETMPPE69yoHPx4wQORFRtXk6JLpvaOG9M657pbjBEWMoO1F0BpLoWj5SprEn xmU2fe/LBXnFDJY0CzvqJHIM= X-Received: by 2002:a05:6000:2c0f:b0:3a4:e6e7:3acd with SMTP id ffacd0b85a97d-3a4fe16a68cmr8965081f8f.18.1748938184722; Tue, 03 Jun 2025 01:09:44 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.09.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:09:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 03/27] tcg/optimize: Introduce fold_masks_zosa Date: Tue, 3 Jun 2025 09:08:44 +0100 Message-ID: <20250603080908.559594-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Add a new function with an affected mask. This will allow folding to a constant to happen before folding to a copy, without having to mind the ordering in all users. Signed-off-by: Richard Henderson --- tcg/optimize.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index ce3cb4d7bc..49ef039932 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1039,8 +1039,8 @@ static bool fold_const2_commutative(OptContext *ctx, TCGOp *op) * If z_mask allows, fold the output to constant zero. * The passed s_mask may be augmented by z_mask. */ -static bool fold_masks_zos(OptContext *ctx, TCGOp *op, uint64_t z_mask, - uint64_t o_mask, int64_t s_mask) +static bool fold_masks_zosa(OptContext *ctx, TCGOp *op, uint64_t z_mask, + uint64_t o_mask, int64_t s_mask, uint64_t a_mask) { const TCGOpDef *def = &tcg_op_defs[op->opc]; TCGTemp *ts; @@ -1061,6 +1061,7 @@ static bool fold_masks_zos(OptContext *ctx, TCGOp *op, uint64_t z_mask, z_mask = (int32_t)z_mask; o_mask = (int32_t)o_mask; s_mask |= INT32_MIN; + a_mask = (uint32_t)a_mask; } /* Bits that are known 1 and bits that are known 0 must not overlap. */ @@ -1071,6 +1072,11 @@ static bool fold_masks_zos(OptContext *ctx, TCGOp *op, uint64_t z_mask, return tcg_opt_gen_movi(ctx, op, op->args[0], o_mask); } + /* If no bits are affected, the operation devolves to a copy. */ + if (a_mask == 0) { + return tcg_opt_gen_mov(ctx, op, op->args[0], op->args[1]); + } + ts = arg_temp(op->args[0]); reset_ts(ctx, ts); @@ -1090,17 +1096,17 @@ static bool fold_masks_zos(OptContext *ctx, TCGOp *op, uint64_t z_mask, static bool fold_masks_zs(OptContext *ctx, TCGOp *op, uint64_t z_mask, uint64_t s_mask) { - return fold_masks_zos(ctx, op, z_mask, 0, s_mask); + return fold_masks_zosa(ctx, op, z_mask, 0, s_mask, -1); } static bool fold_masks_z(OptContext *ctx, TCGOp *op, uint64_t z_mask) { - return fold_masks_zos(ctx, op, z_mask, 0, 0); + return fold_masks_zosa(ctx, op, z_mask, 0, 0, -1); } static bool fold_masks_s(OptContext *ctx, TCGOp *op, uint64_t s_mask) { - return fold_masks_zos(ctx, op, -1, 0, s_mask); + return fold_masks_zosa(ctx, op, -1, 0, s_mask, -1); } /* From patchwork Tue Jun 3 08:08:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893825 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179070wra; Tue, 3 Jun 2025 01:10:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWQXhk8GzYkxkOftalDSxQ8/h8sqtMtv8EdFu75K4Wq1H2iGmOmi7vwLDgL97bMIXz8GKUfQA==@linaro.org X-Google-Smtp-Source: AGHT+IHVfh33dQmdFjEq21Lo0BgxDYzI7ISujLE3WnjbKgLtmxorPHwUz4xk+//X+t/pUUceOhjY X-Received: by 2002:ac8:5749:0:b0:4a5:9b5d:716 with SMTP id d75a77b69052e-4a59b5d0ac0mr24383471cf.2.1748938219161; Tue, 03 Jun 2025 01:10:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938219; cv=none; d=google.com; s=arc-20240605; b=I6waikFWokvMufI5gzbYqhM8fgXMaFK15Mg08tX1aVelqzTi8U794K2gRa90q5fnnp o4S6qiSrTBOuLhLrTqwpBxPxVDqG0+w3dajeJS+NGz7NHdgYwx2tFaJglvuhubgquudN HdHNoAo+2O3LMUGyk4dVW4vPU/jeOIEnmVTZ5OAUdeDReqKkHd+jE4ftZSm6VhIp57Bk sfr1WwtDyzGVhD+RV3WZjUOqFPKdWy55S3l440sgjkC3pdchIsDqYretNU26//Lsqxjb xVjWAnySbvzQyf8yOnBpukPE3jlldHVS8zM1BmxNmolLHoCcRcKXLjlFqVLjctBQK1HT fBHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ERsN3wV+fcXb2xmdBpByK0N2LC/9kgwvDEhvl3/V1A0=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=O3otkcS9iWpya405VeIB2qW8zJGs5l3o0o7v6603h4AinAXOIpn2BxAhUhPNZ6WyoX TlspGgM3dNLg5FL7K2p5JgNn/8T+N1RTJ7L9AmQK6Au8w5wxMD2xL6cpoocVcIl4R51j ZJQHSSzTMaq2Hujy4RYL67IagbwRRBnOQGXg64dykgqBYKlnjwsyxNAObNNLKJgB4vec AQ+vKwUxTXrOT3TyQxRlrm17dqjC7OVtiq2Tlr2/R1q79AshniSTdgf0+p92VNaDAkMh i5ieCofEdsnYOaF4iCNmbsVeG/7XEpGzyhgXbKHzeSgljxTHQgk/j21J4WcMfN17I5BB fFkQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GXn1HlOO; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a4359eeceesi117619731cf.221.2025.06.03.01.10.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:10:19 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GXn1HlOO; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMiZ-0000r7-EA; Tue, 03 Jun 2025 04:09:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMiX-0000qf-Lg for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:53 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMiW-0005Tw-3p for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:53 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-3a36e090102so3022160f8f.2 for ; Tue, 03 Jun 2025 01:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938190; x=1749542990; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ERsN3wV+fcXb2xmdBpByK0N2LC/9kgwvDEhvl3/V1A0=; b=GXn1HlOO8y5GQOwY9wRq5g5bPy6dMZbagP3YoL3WT6iueJ0Ph4v34LUPX6FXl/6y7e pnJBcJxYtTTUxIk8Mrl/1AimfPAXD9JADfeByR3VLGTel2/Q39oKkLEfaMa9Wk0lJQ/8 FGY0StIYngdq1xZC3Rs1xoo5gqkf0BGpgwlHObmsoR/+vzJeOnhU7jbVIhMoT2CP+Z52 ZlFsqGwLYe/hpOgcyIIJ3+l7JqRlVcTLr/m6FP/C59sKL2+dmGyl9Phlgwj8RNzJZFaX VIh3szbzqZEDljsg/Xaka6OQtswV03JllJWEdR+zO9oMEXtgYV+vObO65W1GVaq9jcAm gKew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938190; x=1749542990; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ERsN3wV+fcXb2xmdBpByK0N2LC/9kgwvDEhvl3/V1A0=; b=E5O1wjVsl8BRISvBZi8GbcmQSfezZZQClLDokAXAnYLpYvWdyDiEAibr2vHx2KO9t3 kvIRfaW7jaeABZBxLQYE5RZDYz2GbrWc6FlTSuYZwuG34xoYOnjxNJtjOlFv9cwCSKkI JqC38lvFfDmU9ujZJ0gt8puZGIaakl4D0GD42bpcGB1XFdehSftL6yWdGIQy7pgRZ0XZ fvDdXLkw0Y6dePJH5IWfNCO4Fe8mHBDjAz9yzz7oKAfTA1dl9hAwZIr56KeInQm9pVjI lmO7NVOssiGYum1zOm/8/Wz0ZpUFAOPYozwEqW6QCygOC5iNN4UwEZQwRflTckXjFAZ6 Cthw== X-Gm-Message-State: AOJu0YxNTM1E3d+CsijzXL4lU5kqxkRIeN3ZOHpEGhSDeZwZJRyVblZi ygQ5iI6NP8tZ0EhZh5rohxFmOafZNpgAef0oJ8Jgma6OBMbNqzxQ6amFQbcrQbqv/ZcQ+/EVjZB yLEqgi0k= X-Gm-Gg: ASbGnctJfvyR+UCmdepNA2djA2QuJi4BEWxSx54C+Xcp5CyUAbJ5YBCS0dilqWn7R3r fu6T0wjuEAKeus/p03s2aKWiznO+VSBnX4TfrPJBSMxu+JA6arUuD/TB1lzkCAhZa4tWNqLKvta u1j3z1diuSrKZvo6HLx1r2CDnAKDSUxUz/p6/iqOJ/FXL2yGbbSUw61+hhpqRSu6D2JRTsvcgm5 ZnmUGcWh/kLk2H9SS5FdFvqX1/sKwtPgDv+2n+PjisPhJ+q9yZHRBK559FNhK0Y7pSf2fyUBmmd cO10bVofXyqAZ2D4zHYtaxfmKRZZpMJXG983Hfsh9eKR/DAcY8B7KfzLa3whYuVNqEibrGzduE/ bh/JV1YgPJ6NB X-Received: by 2002:a5d:5889:0:b0:3a4:d53d:be22 with SMTP id ffacd0b85a97d-3a4f7a7dd8cmr12562304f8f.58.1748938190455; Tue, 03 Jun 2025 01:09:50 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.09.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:09:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 04/27] tcg/optimize: Build and use o_bits in fold_and Date: Tue, 3 Jun 2025 09:08:45 +0100 Message-ID: <20250603080908.559594-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x434.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 49ef039932..d9ccbb36e2 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1422,7 +1422,7 @@ static bool fold_addco(OptContext *ctx, TCGOp *op) static bool fold_and(OptContext *ctx, TCGOp *op) { - uint64_t z1, z2, z_mask, s_mask; + uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || @@ -1434,18 +1434,9 @@ static bool fold_and(OptContext *ctx, TCGOp *op) t1 = arg_info(op->args[1]); t2 = arg_info(op->args[2]); - z1 = t1->z_mask; - z2 = t2->z_mask; - /* - * Known-zeros does not imply known-ones. Therefore unless - * arg2 is constant, we can't infer affected bits from it. - */ - if (ti_is_const(t2) && fold_affected_mask(ctx, op, z1 & ~z2)) { - return true; - } - - z_mask = z1 & z2; + z_mask = t1->z_mask & t2->z_mask; + o_mask = t1->o_mask & t2->o_mask; /* * Sign repetitions are perforce all identical, whether they are 1 or 0. @@ -1453,7 +1444,10 @@ static bool fold_and(OptContext *ctx, TCGOp *op) */ s_mask = t1->s_mask & t2->s_mask; - return fold_masks_zs(ctx, op, z_mask, s_mask); + /* Affected bits are those not known zero, masked by those known one. */ + a_mask = t1->z_mask & ~t2->o_mask; + + return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, a_mask); } static bool fold_andc(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893830 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179374wra; Tue, 3 Jun 2025 01:11:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVIXbdDv7GXzdhPXpJ90eg8sOVwgs//DkEKNk+9nQuvs1EG206fkupl9k4w8pftkkm+LjxQDQ==@linaro.org X-Google-Smtp-Source: AGHT+IGaV7otGKFWXO6yIzKHN4JSIGIizgFrAGB/NfkjfSmxkoDYNZB+SZJSM/tegryms5ZYpkqo X-Received: by 2002:a05:620a:4010:b0:7cd:43f5:8b27 with SMTP id af79cd13be357-7d0a4e39516mr2364621585a.32.1748938265780; Tue, 03 Jun 2025 01:11:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938265; cv=none; d=google.com; s=arc-20240605; b=b+sZd9BptIurpIC4PnU+oayOXXhmhVGaVhxlDPz0487nB0H2Z4xn68U8DeH3O9xE3t 9qKMwRUsVYKjY9DEDMrn8An8cbGnDiVt1Do15pMAC0QVrggFfDYPecDVoK+hzDyXpFIi QZFWD9k+OmjJ66UR9g0B0LCoZgjQ+QNjfr3iLU6fj3UQ/2Up4GLfJ8T6alNWP14nYGFT woMWa83fhH383gfTLHIJSq6wKJbZddqvDhAjgNmpuC6/wABsPi5P0gMyb58B/BpkUAB1 AA4Z/exzX+fyr17OXpuIUv2TPMbiCPS0TcOTT+1Us3B0fmVNOkoBRG9gAOs5eoVF3TbR +rJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=kvC+gvYwUpDvO0mMy+5UZVX/B+N/FUSqeH9gL/AbVPY=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=B6APGD74wpcT7IIDhjCh2sWgEcmnZJ0SMdpu0lAzKEGrH3KYNLKUvpM5CMdTcfAm63 mX2+KrcRCx9ECdUjWkh/l+62NKQv6Rxcr43Tn/QlK+25DjdhLz9YZNDQVYeXO21zUJ/M KsbShWX+BuLp0wL4bcVAlb18g/d3pkNgelVs0FbmnRYx7Vjf3Y3W8mw4zxDUhW1MjlJL WLOdtd64Gd5/evmzVUCAShLAaEASFrAFtg8DtIKQEPVdRF32p48Zd9q/nPMV4ei8N2Ye G1Utdwa0aWRnfy8ggVX49Zhap2obLZw4Rd/rLX3BqCyk7B78/9foOLKIKhxHlMGV6f/x 0dTA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=uQxJVsw+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d0a5a96ba6si921092185a.88.2025.06.03.01.11.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:05 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=uQxJVsw+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMif-0000sh-6b; Tue, 03 Jun 2025 04:10:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMid-0000s7-EQ for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:59 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMib-0005Ud-O5 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:09:59 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3a363d15c64so3650729f8f.3 for ; Tue, 03 Jun 2025 01:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938195; x=1749542995; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kvC+gvYwUpDvO0mMy+5UZVX/B+N/FUSqeH9gL/AbVPY=; b=uQxJVsw+EWEZwYTRyCO+Cwgq3giefRXcEedYRd8gpONRNrX98sV4B0gXbNofFCQ2l5 72bjJrjyMm2QqIUTePLJ0v2ISi6NtV8YzteFTcXS1j+zCjtJxomhfqjUBkEP95pgzTpV AnnmvYnp+30DZZBLJ8GhDrmzEP7L/uHxbvXKQi01jTKoXPI4p71OSmGgenG/TtMe1/sH iE8voDQzDdzcX7S+87z3ppG5z6+kcJ2VNznvhMssBRycKIZpPIdgnlFDYZz8meLjNsLU c/dFEAVT/h1i8Xn/HRHPoo3VnkP218BsECMM7G6zsYqf7wkmp09vY4Q8ND/LuTiX64cv GvTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938195; x=1749542995; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kvC+gvYwUpDvO0mMy+5UZVX/B+N/FUSqeH9gL/AbVPY=; b=WHv0cSFOQJzT+ciprWL79FTOnug8z5ZfGX3GHYNpeyiSvuaFqq/5Q2J6OYjqptlv0Q 7F2DCqjVtfRyHHFqTuBhnkArG1ui3rsRdGMrOg0fO9Zcf9NmMDaSQOLE/a/wuATgzIyg WUAZHIknCvwijdNRIej0BNKIujPgvLpb2uL+m+ZbW2onn4Tb4p8UepwMjYBz3CO3gX5F zX/FyOL8vEweQ+rJXfrw16vv6624CJ4IaRPt5NluoomZWdhIj8L1TADLspZcud6parCw V6ueI5SisjA0aWj8td/q5XjWUvDp6aA+ubW+bC/BMWyy9MUX+3ZaW3eR9CSx/V+WySz7 EhhQ== X-Gm-Message-State: AOJu0YzUbKriDqeTI40s5wnEbm6UrNLHbeWz3YjXz9DFov/XvZ6dB7y6 biUgJ4QrF/bXFrDbOXnlR0Mz+Umznjp1E9xxnMx8bUFkAwbRU7ABTdZnsW9FK19aIAdSbgEK87m +m7pCnSQ= X-Gm-Gg: ASbGncsECDErZx5bXDj3QmU6o9sHuk0pGNYv1cQSm/WmTBXKhB0NmtsvX7vXPv9v0gk XZhoALM4Sb8ydPeLdj6wH6GsqfV0YWCHIjFv6zi2PJyK6tnPPdBCxbHQ+4Jwh4oYPavdAVWlhzR LqLV+20vTsQupMD3ENdojrViGXpeVFFGxrUvJ1B4I2gNfbfJ24ICAvoxMelNsZxxD4UZFTMMff6 R5q+mIun65TGgsGAHjZgorbzxsQPZvjEhvXCdKAfjuE52OB19FWmyIvKWSSL/5EkHqoIrI/9oAF 5v7j9xS+aXmS8Mvj9pnifeSSYi+YvWuXSMliuFwqJAFJQ+WU/YN+VZ06qB7s4/cb0Yna9WxlidV IgPrz6JZaZ2y3 X-Received: by 2002:a05:6000:2303:b0:3a4:dcb0:a5f with SMTP id ffacd0b85a97d-3a4f7a1c78amr12072098f8f.16.1748938194899; Tue, 03 Jun 2025 01:09:54 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.09.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:09:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 05/27] tcg/optimize: Build and use o_bits in fold_andc Date: Tue, 3 Jun 2025 09:08:46 +0100 Message-ID: <20250603080908.559594-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index d9ccbb36e2..123734b167 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1452,7 +1452,7 @@ static bool fold_and(OptContext *ctx, TCGOp *op) static bool fold_andc(OptContext *ctx, TCGOp *op) { - uint64_t z_mask, s_mask; + uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; if (fold_const2(ctx, op) || @@ -1464,7 +1464,6 @@ static bool fold_andc(OptContext *ctx, TCGOp *op) t1 = arg_info(op->args[1]); t2 = arg_info(op->args[2]); - z_mask = t1->z_mask; if (ti_is_const(t2)) { /* Fold andc r,x,i to and r,x,~i. */ @@ -1485,20 +1484,14 @@ static bool fold_andc(OptContext *ctx, TCGOp *op) return fold_and(ctx, op); } - /* - * Known-zeros does not imply known-ones. Therefore unless - * arg2 is constant, we can't infer anything from it. - */ - if (ti_is_const(t2)) { - uint64_t v2 = ti_const_val(t2); - if (fold_affected_mask(ctx, op, z_mask & v2)) { - return true; - } - z_mask &= ~v2; - } - + z_mask = t1->z_mask & ~t2->o_mask; + o_mask = t1->o_mask & ~t2->z_mask; s_mask = t1->s_mask & t2->s_mask; - return fold_masks_zs(ctx, op, z_mask, s_mask); + + /* Affected bits are those not known zero, masked by those known zero. */ + a_mask = t1->z_mask & t2->z_mask; + + return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, a_mask); } static bool fold_bitsel_vec(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893831 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179418wra; Tue, 3 Jun 2025 01:11:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXRf6coUo0qVbOoAWgrzaq8ZUPmkj9xsFOzNBbi5l7SNADWlE5K9fEErJhQJ7ntoliA9Hpgxg==@linaro.org X-Google-Smtp-Source: AGHT+IGpgbT9H54jGbNEWPbo1Dcx5NZTGeDV7cupWfE6p3KZlRixLbRV5wXM/sqGSna7O7uaRwXd X-Received: by 2002:a05:622a:1f91:b0:4a4:2d64:a7e3 with SMTP id d75a77b69052e-4a4aed21882mr179839141cf.38.1748938271962; Tue, 03 Jun 2025 01:11:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938271; cv=none; d=google.com; s=arc-20240605; b=Sebtrvqd6Kx7JNr6joDaIo0esOdxquKjpIExuDm8vMaA3NXThIJudTAz5fh5g6piR2 /pea7nq1zzbA/i0H4npgX+Avn7+vHtwLehxIetYJPHi8sWcEzjlQyRszhiQRnrCuKS+E u7BtwjeArIMVMnMWcupDjRKhjeEeq4a9X8aFhXApuVhSxavHm7dvob14gQ5ifbQ8c+nx r1eKUp+KlObCTTUZj+8vfleV8AZmU0+SF6gHcJxwKHVtIcsOT2wYiS1UM2RtBFQafaWE YPXlmHiImbZ1xoiGO/noWeGfG6oF0pdhMLqqlYJFxMZbdvTw0WuPWScSjtPBQruM4QHg rD3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EduPdK0hs3KdPLN5zRRNqJ+RcugXH4jp/mLgIRGtCBk=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=UDt/MrHV91z6Wu6u1U+0zIYZhPGQ9fcxrLE9zRL9fF0Wv9cGobLIO3WWPYtvXpy2O0 JcydLEQSAnMEdY23ffsC/VR8wI3oTQxEDMar+VEoVLFfkCB6P4J9bP4eMzbL79rpdH0D dxMz7auuQqRfvDESB1jYGxWJBy4KXi2G9qd2JM47GdlNicIFEzZc9Y08BsRN07OZuati LKGZGpu6QSKE+hR9Vdde03kCjxeEefCYNtgvXGo3JfcH3sPj/vTxiXmOq5fedZLIelkz ipsRc1Tu8w/xO3NePGjBA86Zd/j7odS5scxP0bCZdxLc8QRTWjqQy0GtdMcS3g/51X0H tfxQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YQDduJ3F; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435886550si121740881cf.36.2025.06.03.01.11.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YQDduJ3F; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMim-0000yn-1c; Tue, 03 Jun 2025 04:10:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMik-0000y5-BQ for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:06 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMih-0005VJ-Gj for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:06 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-450dd065828so24906785e9.2 for ; Tue, 03 Jun 2025 01:10:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938201; x=1749543001; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EduPdK0hs3KdPLN5zRRNqJ+RcugXH4jp/mLgIRGtCBk=; b=YQDduJ3FL2O1SvhlfuMwNt7L/R32/BgD6G9ns5+5Denx5G6cmrnngZT3RB7RPcN+XH jUc9Est95P9Tbqz8Q9mRTIejoPEAihYn49otrYNNQ6zVBpCAYq8z0+/q40trzndMAKd8 erqoFlDGhl0zvZqH/m0WW+4+zf5paUxAEMW3Hc1jP8xs/eh3QyeHbZahtEjiBPg4E0fg Cntd18Glhqh8z9hGu6feDsSOmydkhPmbOUGpFkLItW50Fi3pFVDW3gIAhQibTzmdhiJR V60Ss5KEeirdYHgGQ6MNphCrSPCKpUeC0PVgj/e3lT4k/A19T2Nj0cKvZvIKzyld5KUG okXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938201; x=1749543001; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EduPdK0hs3KdPLN5zRRNqJ+RcugXH4jp/mLgIRGtCBk=; b=nQcrXJkFlzsVBo9e4HHRciaaF+BR82HrAluxxjzu60ufHlyUQj6Fk0wq0+zojRoFqX UytBAfOFNL5nJScF4nj32Yd5uZoFScs8M4wAf3YaKbfK6Qqki4ZcSVAEOoTqZIhB3Fb0 tK+BBHk5P+AGk4oCtUxYeUt5lQb5lFgxOUEsjrZphSl5f/JSTYKNdf9UT0LCD+JO6mxF KF6k+wWBdzYAf4EF0aJE1QvFamMT2ydIFYUa/wQ8nrqRihAGiDaCvi8Bf+Oh8AKN1WnY hL9pfUnW/8sd9QDjH2e/ybywDQrJkYPjjrYuUkKGhFBXGbWxPPgkA4Lzh5BkzIJ2BUPx 3faQ== X-Gm-Message-State: AOJu0YwffBFnWhHkAg6vaa9pJTdwbBbh5lhbhe1wKRhcsP5/yQnXuGZT nz/r6Q1i5D9OweohbIn4HcK5KtonvRcBCFcAaJZLyDrCWvBulSKx3nCkjNH99gfDABIZD5GtM6/ JYXynQnw= X-Gm-Gg: ASbGncv5PZDtTvuUCstlwwAR24MhqyNOpqL+y5IHwOIJn7XMWsKQUfdWifdpMQ390Pr JQLtmLxYgq03Ww0/w4FHl1hX5lIT+ptJNo8f0AbdvbZ/sbmK951V//R6R+nHMkvVhXR4jUB2NBt ZzhxzcT/ZLnMZ4Av3LENPf+7atG2E5VuYNiwUWFh1FRplepYsBlB7HQbOqr1Auv0HybAuWP+ijF IUx0lf1V1SeEleDz5TL6ftEE5tMQmBliE8a3mE8Zss5C+ia4Nyba2UGtB9jPllBBslaykqP9QxB /y+od7zeSvltrpVKX0FNmOpqArnhaVy4LOU6YCqZAHEy4oswsgJJZZGlZD7CXBAaasi8zZFa9BU aRHt5gn+qKCLp X-Received: by 2002:a05:600c:468e:b0:450:d00d:588b with SMTP id 5b1f17b1804b1-450d8819daamr157569765e9.9.1748938201604; Tue, 03 Jun 2025 01:10:01 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.09.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 06/27] tcg/optimize: Build and use z_bits and o_bits in fold_eqv Date: Tue, 3 Jun 2025 09:08:47 +0100 Message-ID: <20250603080908.559594-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 123734b167..6d35a2e58b 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1093,6 +1093,12 @@ static bool fold_masks_zosa(OptContext *ctx, TCGOp *op, uint64_t z_mask, return true; } +static bool fold_masks_zos(OptContext *ctx, TCGOp *op, + uint64_t z_mask, uint64_t o_mask, uint64_t s_mask) +{ + return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, -1); +} + static bool fold_masks_zs(OptContext *ctx, TCGOp *op, uint64_t z_mask, uint64_t s_mask) { @@ -1916,7 +1922,7 @@ static bool fold_dup2(OptContext *ctx, TCGOp *op) static bool fold_eqv(OptContext *ctx, TCGOp *op) { - uint64_t s_mask; + uint64_t z_mask, o_mask, s_mask; TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || @@ -1946,8 +1952,12 @@ static bool fold_eqv(OptContext *ctx, TCGOp *op) } t1 = arg_info(op->args[1]); + + z_mask = (t1->z_mask | ~t2->o_mask) & (t2->z_mask | ~t1->o_mask); + o_mask = ~(t1->z_mask | t2->z_mask) | (t1->o_mask & t2->o_mask); s_mask = t1->s_mask & t2->s_mask; - return fold_masks_s(ctx, op, s_mask); + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_extract(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893832 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179423wra; Tue, 3 Jun 2025 01:11:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU87BlXhAcbxXgEGNCl2FmA6EroC3B3xD1ShX/bOmOJbUI3ChtcVAZr6XZ/YHb9+Zg8mHyU6Q==@linaro.org X-Google-Smtp-Source: AGHT+IEkaoPkVgcumfqD7iqpo3gFX57Ul8mPUvcjsJ+OJGPpLTji68Vd1r3v8BM9nVZJOEPZoTGn X-Received: by 2002:ac8:5cd5:0:b0:48c:c121:7e27 with SMTP id d75a77b69052e-4a4400cbe10mr333234141cf.50.1748938272569; Tue, 03 Jun 2025 01:11:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938272; cv=none; d=google.com; s=arc-20240605; b=Er6aptCyGEyavu3kYiNWPPgGHUaM71nRdwiziJwQrXjzhM9JQ07arUYpvKQacWILkj Xv6rE6ETVQdUVYfXjIv8bqIIPf2jIGSTq6xwlTjn8dFd5Y7WWtrGVfcdUYthInYHh7rf Acow9Lj2h4y+XtN0RQN1bfBmpKbqKW8LskGG6SpyNxkT1wwnMs+H+m+k7gOWKXqLBcUX 86lh3W9YGWjGmV/l6WgcaTXlnnA1+hQw41qBIZZxbFuZbsj3Tv3/6en3eQk4W4BKbf2H IbmImjS3aHYYpXHAnCGg5a+WL8QafLe5ovZgXJib0eSXZGufftWm2sVOijsJbGdmQP+t +12A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Sb4IKKb0kLmPSCYm8QqmAMxB0ZWKcO3Z/T7FCPZckVg=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=jEq96e69OK0vJkyZWp8Q/wvoMgEyPBWgLxDo+hQKaIbisc4AvzUszvJq/NJxdGn58Z R2UJ24rr283favSRF2V3dtP5RIlqXPyZsvMgFn1HSci2/UBzj372xmRMmOyYRrUBOYOs 6Q+KtUA6nRw8SXUgL5WQGLmzbMSZQc62TWZO+IS1SgpRSw53dixnTRaO5Qi3boN6FDEN RcO+xEXksPB5RG2spwUkYkHjpGpd1MK7Cn/kRKcvqBlWPfSe1Rg5ZRU3qttVGgsN+0zR EsPEPMD+ExtMt4D4B1K7Z90KFKo1X2BuvzPAbORaFga61X50N3HmvMXoU7yQZ7/RU+1K nPMQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gejlii6b; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a581977b8asi69463271cf.40.2025.06.03.01.11.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:12 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gejlii6b; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMiu-00012u-T9; Tue, 03 Jun 2025 04:10:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMiq-00010Y-Oq for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:12 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMin-0005i7-VD for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:12 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3a4fd1ba177so2027286f8f.0 for ; Tue, 03 Jun 2025 01:10:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938207; x=1749543007; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Sb4IKKb0kLmPSCYm8QqmAMxB0ZWKcO3Z/T7FCPZckVg=; b=gejlii6badDbS0pjBQA/Y+c7PCDlk0vNn0C5VIbHT2qARt26osQUjB119vn7kKV3El VW9usvhMP49XsnUs5RzKZa+mBBJW3RBFJABZqwNke3M3kwKasaq8mEtUORWpMm01c24r /Hl4Imb8IdKmiACsDoGfNhDbaj+g0TtZCrU9P8Nasq0G+s+HMqRbkzNbBi1M714Y+nVr ZCMjazQlucdvnBXjwe8k1YA3Ley6KGOVTNnWVAFOphfYDKPggCKEzCGpeXhjn8e+m4S8 AuIqdWL+xVrj5UaKkHmksx09UBpXu8eXemwGy5qL0DPZSVqmEl4XWr1RuZWppOkcxnxx vTbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938207; x=1749543007; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sb4IKKb0kLmPSCYm8QqmAMxB0ZWKcO3Z/T7FCPZckVg=; b=MqnWcr/+kSFxLbGO/LVWpP8X/R4qk+VNi6iSUVQAFgPWwDbYu+ydrm22E3JuEvuFRg MEKzBLFZuKnVPx2AoTm1BXckzeUF+tfxUl7IhsUsfseZMBJG8w8jpD721lvqhFi2JQcG NjLoyQOd3rYmHqldPQG72ltXI6paEs4fe6Z8MSM+dPRQ1VF669TArafpt9dZW7JvL/EB udhlZUMh9bWzLV2XL4cEvuaaO5naeDukipiTQ82aaJYwtTpD0A5XSYFy95PjKmy3jXLU Di8HCS7aT5iArzbevZmMX/RusHDsaq8HXmQcPJvnLaosT0LwZATXBRqtJ3BR+clMRm3f mTyA== X-Gm-Message-State: AOJu0YwFAwoviqJrGVhAl/ffaFLuBhZ5HfWgClsOr1cEn9ZveYp+e1LO uI346aGnNCtHWUDkRzmX/VCbBtCgPyzlVHSBuKhaJdy7noxan+vsNLAcZMJFLHv8FN37SmBipkO OUomEb3g= X-Gm-Gg: ASbGncs7Exg8evAzMAHt+/GvmZJz8jQulPMuDclFfLrLy7ZNP1GsU37u2Pgta7ZRiZq WiqoNxbdUcaY9mZMhFKMUdlW9dBt6PxVXncghwgPOeugKEb6a4nYk3BQd5OBO80QMYziJzX8AkH gbxLYAAUSBM+6TG2OGSeTT06JpWmik7ZNlZ0Qe0yOW4LkxpHTRfVTNRakALVRN1vn1yPF1Gc+CR IHNjl4SLPolvPM9V/iGjV7mVIX1nhrHaTnAc53wErmrvBtlt08A36yQX8QAqgIa1sEZURfMnClG zfAHPDBIOaV0/v30ypROn+L8Ig8wSp+k2J53mTdn1XRpyt98R1I68BFpC8djkO7zbzLQQ4IMExM U9si7UeSLMUXTrQCBEBMyY94= X-Received: by 2002:a5d:64c3:0:b0:3a4:d79a:3599 with SMTP id ffacd0b85a97d-3a5144c2ec7mr1003998f8f.11.1748938207031; Tue, 03 Jun 2025 01:10:07 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 07/27] tcg/optimize: Build and use z_bits and o_bits in fold_nand Date: Tue, 3 Jun 2025 09:08:48 +0100 Message-ID: <20250603080908.559594-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 6d35a2e58b..758f7b142e 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2197,16 +2197,22 @@ static bool fold_multiply2(OptContext *ctx, TCGOp *op) static bool fold_nand(OptContext *ctx, TCGOp *op) { - uint64_t s_mask; + uint64_t z_mask, o_mask, s_mask; + TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || fold_xi_to_not(ctx, op, -1)) { return true; } - s_mask = arg_info(op->args[1])->s_mask - & arg_info(op->args[2])->s_mask; - return fold_masks_s(ctx, op, s_mask); + t1 = arg_info(op->args[1]); + t2 = arg_info(op->args[2]); + + z_mask = ~(t1->o_mask & t2->o_mask); + o_mask = ~(t1->z_mask & t2->z_mask); + s_mask = t1->s_mask & t2->s_mask; + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_neg_no_const(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893828 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179190wra; Tue, 3 Jun 2025 01:10:35 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXzdYa7/n5fzJRXsP/sFYjsfLXu2zOA3JPR8d7HnobzUpB+uZ6yHywLwOrR/GMPErxrml7nkg==@linaro.org X-Google-Smtp-Source: AGHT+IEfIwSQjzGQoVJQ9f1Rh+y+j+ir+IY1WSqzW7Nak0uhAxRRYkibWjirB9hKr0pTG6VJldus X-Received: by 2002:a05:622a:1b2a:b0:494:b316:3c98 with SMTP id d75a77b69052e-4a4aed1a9a2mr145963161cf.24.1748938235278; Tue, 03 Jun 2025 01:10:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938235; cv=none; d=google.com; s=arc-20240605; b=CLQZfYi1UsukqVYEaBcloX6c0Yk88ZEeiqYCNC9xJt1BVg7m3kAfBWogtkzH6lCC0y M6Q9rn3SZUPPCbVkfETbCMFZlPkJHQIku4Nb47COAJ4GsUPXyaW54p5hJzUXg/zJWsvK ccdEsZvCXaSpn6SYNZL25OI9RM/aRhNF809GTCHPM5/WiSWGnIVR71l9s67z5Zn+1Lgc KstkcY9S6bj00uGNwYlqNx9jrrgWl7UPylBBAIuZKh9+SDgjoi8sbaDFnnJeCKhND7CM zVc56EK0KbgLJE9KgpmOC6gbqgR2uZaQr1YOqRVTXlRYk6Q93EAVyNW/Cw3a9qtlmoUx qQiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=K1bQaAugGeMJSCKz4R3NKt0GivJQ1nRUOrHwJAgAoZY=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=de3zG+PC6kmAMfkTVCX8MVg4FQjFt2uN4Gg9aW0YOv+fI7ftNuw+Qe97Zbh2JOinvv ztdVW09dJnwCq3aasGxy9BI8tBoHvhzNbrkQM6zUOU4OmgKIjeveffp8b7lWmaBdJdRv mHJghLpiFlUxemqwaY3wRPN0dlf/H+2j2fEoQmE+cX8IlD5ow3fqPKLcsUrtWV8wu7h/ AMe8DbvyMA4CvWzzP4QSJxQgyJVmhNfGgGq4Th79dpP5JOxlTUoLAIh8xnVHGl5qS8LK 4Ag2acWE2Ebf0Joz1rcdwhScExy6v0FsFdT84PiJnem+wYiYlhe10qx3vVgEO28vecQ2 ZwIQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Nyhrpzxg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435a9ab6csi121316291cf.623.2025.06.03.01.10.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:10:35 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Nyhrpzxg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMiw-0001BE-HW; Tue, 03 Jun 2025 04:10:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMiu-00014B-6l for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:16 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMis-0005is-Jd for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:15 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-450ce671a08so33347685e9.3 for ; Tue, 03 Jun 2025 01:10:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938213; x=1749543013; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K1bQaAugGeMJSCKz4R3NKt0GivJQ1nRUOrHwJAgAoZY=; b=NyhrpzxgrKry6GTKYR7Zv2BiXBAluqP/aovN7JJ5yz0V61RXpAfrSSrNo2IONj6tQ0 DN2joN+lx0cX7dHpK7glPiRgbNzlFd05bv914gncthnPNOTrJ/dHhs1HBB8W4GBZoby9 AXRFmHbM8offISkKnmtRcukfiyFyVKblOGQC3o2lVGH8Uimt+7koBOZBOcwb6dTDkFUo JWbhrNaYt2FIQk4sAB6xctJucEHY0c1qjKPZnkfrhSRBiP+gApFBY9Ao2VGwsCll/MZi I89cM+c3lu0SmvVgnQtdP2feftv7MSb9AAUKMnVH1MP70Ld10kjEBZ1ai4k6Q/slojFM dA4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938213; x=1749543013; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K1bQaAugGeMJSCKz4R3NKt0GivJQ1nRUOrHwJAgAoZY=; b=cETvwcqUsb0UpIdOznmH494RY0GDjudSIh6z6p+4O3tuPPgn8rO10YGVfDX4ExpHER QCLjbouz0eoptPRWq2r5aEPYzESQa6gRRKggvi8KcAa2Pd6s+5SrXDFCThnB/LfubwF3 Tyth5R7bNKSTo+rBF75/9xCBX21U8xTccKpdwgIdF1oC0Zf/fNiIOFUZF8xLiVUx+6Sl DjvK8PnifzA2f702135Ss02kkoJgN7vkgEPrsy+y08JJ2vjbkbozz8U5S623N1As/sOs BvnPXEUjsRWXQ33VRzpK6wKhwxZtXtMKMKZfi6N1bjEPmBCb4Tcq4ELYA3Msj4fCs8mT j2eA== X-Gm-Message-State: AOJu0YwngHWvmo5WPVwa0eJLiazo1jDSMzbKU/T6pTPPtx0xt3kM6QLC cWEYoH1CIEsYOkAN6r+VyjAf0TdlAG+v5RfKa9WYoo7OnLZioi0t0aL4ExRnLAlqjIRAgR7j6zA 05V6Ucuw= X-Gm-Gg: ASbGncstpD5vIFWG+fHKxMfqepe9tCzSGARpHcSroEfkJqH/mMjWSr3GRqZsWC+VG/a Fba4EpmW89SFU6qVI8yPfnohAUMJOxu0WcljAnikWHHWaYUzUePCw8+vbkXplstFjIcRsucCnCz 11KkchZLwCAhW0THJgdLN8qUcP5BXx6STFmaQJ3hCx1B8Gmt2Y2AcypcDzo4R72UWp0DlD3HWD5 TNVb5/+c8v8AiXCWlag2GC1QLdq17RwfJjsmSQV/Uy+SkFxT8zknEdMVlRlcX/12nss/qHP/Io0 BBrzH4xVYDxiBFc6h601cEHxeeVRw/uppICmvg5oorrNMslcPpFYMemBUuAnfMFEZSFij0vopOa W55friMKQnoW1 X-Received: by 2002:a05:6000:18ad:b0:3a4:f7db:6ff7 with SMTP id ffacd0b85a97d-3a4fe3a7c8bmr8244935f8f.52.1748938212873; Tue, 03 Jun 2025 01:10:12 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 08/27] tcg/optimize: Build and use z_bits and o_bits in fold_nor Date: Tue, 3 Jun 2025 09:08:49 +0100 Message-ID: <20250603080908.559594-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x329.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 758f7b142e..29d1f29124 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2231,16 +2231,22 @@ static bool fold_neg(OptContext *ctx, TCGOp *op) static bool fold_nor(OptContext *ctx, TCGOp *op) { - uint64_t s_mask; + uint64_t z_mask, o_mask, s_mask; + TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || fold_xi_to_not(ctx, op, 0)) { return true; } - s_mask = arg_info(op->args[1])->s_mask - & arg_info(op->args[2])->s_mask; - return fold_masks_s(ctx, op, s_mask); + t1 = arg_info(op->args[1]); + t2 = arg_info(op->args[2]); + + z_mask = ~(t1->o_mask | t2->o_mask); + o_mask = ~(t1->z_mask | t2->z_mask); + s_mask = t1->s_mask & t2->s_mask; + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_not(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893829 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179266wra; Tue, 3 Jun 2025 01:10:47 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUYTzs78Q26gGJJOPwu5iOFRGcqlFKqrNeDMrYRopu8Vp9O4h45xuMx4msNh3h9jjDuBEyVgA==@linaro.org X-Google-Smtp-Source: AGHT+IHY3IfhCmRYN9vUoTSiMZyLYvBpTQzoV4MvI1wwspC7e3l3z6c5+4QAA0cGnWAT84LBWyMQ X-Received: by 2002:ac8:5ad4:0:b0:4a4:4154:d44e with SMTP id d75a77b69052e-4a44154d4e0mr252886331cf.8.1748938247084; Tue, 03 Jun 2025 01:10:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938247; cv=none; d=google.com; s=arc-20240605; b=jLCM6CmoJCFNJW4R3pCO9594l4SyetPjQTdYvBLsn48x5u97HbXFUdBGZy5Mo3M9eX 4xlw0fyyMs2rhQ0bnzsEro9P3RF6nsaAHxEHsdDIzPyGrmEcCK3nd9vrRUWWhkftDVAI K43mZ36xEup89sFoujt2cOAsmDpb88UEmrPKoEm5axorCMt5kLx40fOMM5tZIeLfBQCY eMWntKDJFwajj+BPVUX1xCrWpTPTN1ZpWJh91nvEy0dWce8TAyDWf2OATjxtrz0Qm2+U 2npHRSIdek7f5IyQYZtqh29x2eM1ta6hxVLxNevLGG4d2r7dACGNSmNrim3xIKtTadRp Ifyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=L0SwvWowjG300ItHhNzuHDz0e7MhZ1a2+OzLfYrOBWk=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=EJEboVN+MdtccI72j6gIPw3OqQRZkkO0xnpf88sqD1LHAfLBlNKGY/+xArjPUSJ6uQ cd5pw8tw2yw1niunBGm3hRvE4AzFRFCRDAEX12evuiSsk24i6L5k6k4yJSO3wh6cvjo/ ATlG5jIRDU/AnkAyoHuZ1j6qjaWqsLacYQE7ncI9kJtRodY2b+fWyY0Wq4iajjvasbUO NwK6cogrXbodygmxxz+p7uDDzFHjlrpD4busjVSiQY06gmUlm0Sy1eoV5mylRjx9h5Ez ebIZcDLk5RdEUN46lMYIb456R7/g6Cp9DSFeEQ9CCftK9mCk39xwMPyTuEtGcefiyaAo Ahug==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jejwyEQR; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435a21a2bsi131394321cf.375.2025.06.03.01.10.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:10:47 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jejwyEQR; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMj2-0001QS-R7; Tue, 03 Jun 2025 04:10:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMj0-0001NC-JK for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:22 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMiy-0005jY-VQ for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:22 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3a4fea34e07so1593032f8f.1 for ; Tue, 03 Jun 2025 01:10:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938219; x=1749543019; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=L0SwvWowjG300ItHhNzuHDz0e7MhZ1a2+OzLfYrOBWk=; b=jejwyEQRAzB7SXOsVwv2BAh0SVAcrOSNEhGFEKx0PZqG5VAncHtClV7UtzmOGzsyi8 PvoZaoVtmFWSVYFbLmkY7uw/0DgWqZe4sLployTfHSECktyvfWeNexwqcKi2PobLmT5S mGjbKIRYH/kc+kIthjb3wlNRQxsbtNIj/+IIUOkNB6Z+0kJ16WGokkgYeeBLgTFELI4u BSDHMui+XH+tVjnhJa5i0ArOlfHX5a9KijhX4vkg+If9Ol6AgwN6z7vew5yEtnZ8GWEz H0GSHbZ0n1XJS7OOePeQoLklqzz3dV17H/V5xFlTOtsDz310whyoxt478hXMAUQdqQhc adiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938219; x=1749543019; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=L0SwvWowjG300ItHhNzuHDz0e7MhZ1a2+OzLfYrOBWk=; b=fkM5kgnE63BLQxhk6vEBIa3axCk1ot+Z1zjd0XSn+MRD1JuAu5bd9/+qhXbnUX2XDr Frt1cI7bKw1GOod1vrhZuTa1EJEoGQpKNlC+C2n8p5CZlTXb9JkKalaQMVX+y4XK3ImU 3D2bAkdPUlw9QF7V7GTeAYk6EfgYQBlBAxjQO1ZMbOW+6rIQHELDqDmIqx0xQKPjhSUD DvVYj5a0+cloMVOcjPBCLWwHZY57+h+O5T4aauIgOa0iumL4igf1iMirK0ZdzDz654D6 WUlM+NkJ3aGsptqmANjNJDDS5Zamt8X5AlONrdG5e6cHuW/ZsuxcWh0VXDaEFBp9bHwi q6yA== X-Gm-Message-State: AOJu0YzpEVBRPPNccWmsAtKYozxELIJ7o1A86SWv9pmei5TB1F3XJ6SW bT3x2Vkd7bBCheZl6BzTZVDeyiIAoEH+WltBO/5oYE9VofhSrzLZvXU9pBSpccMlPebcMyiuPg5 CqlMBbvc= X-Gm-Gg: ASbGncttdgcYIkODK2dXeygiRR8VN35tqD5tC7e9rLTH28bx/2MifI8siizoXDDYMO7 H2irfrXMTqYLDRSRC6/G/2slX4j9sfX4bmPyqESws1GqG8Cp+Nm1RcwDa4q7J+Ji5jtz7xJGrkg LBVBQnhIgn+R5gfAz95xmFezM/E1yVoAp7RLEkaDWqbXS4pvoXKN9Si/P3eNAhefB4cR/5JAvN4 psyX7yG7Ty7XPsRHctiFfSTD49LLV+fxpQc/5sDKilU5QNTfRUFL49pljA4mLtikZgWWnbHiLof p2oI7ovBVIr7uBUL8ZPZBw2YvxgkQ7oO4GRW6BuqJdm+sF6XHNl3YbG9Cwf8Q7qO3qOCwBPPiRI wJHoPu2DUEaLFgwmXvPw1zCs= X-Received: by 2002:a5d:64ed:0:b0:3a4:e672:deef with SMTP id ffacd0b85a97d-3a4f7a6cd16mr11708636f8f.36.1748938219459; Tue, 03 Jun 2025 01:10:19 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 09/27] tcg/optimize: Build and use z_bits and o_bits in fold_not Date: Tue, 3 Jun 2025 09:08:50 +0100 Message-ID: <20250603080908.559594-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 29d1f29124..d22396f6d7 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2251,10 +2251,14 @@ static bool fold_nor(OptContext *ctx, TCGOp *op) static bool fold_not(OptContext *ctx, TCGOp *op) { + TempOptInfo *t1; + if (fold_const1(ctx, op)) { return true; } - return fold_masks_s(ctx, op, arg_info(op->args[1])->s_mask); + + t1 = arg_info(op->args[1]); + return fold_masks_zos(ctx, op, ~t1->o_mask, ~t1->z_mask, t1->s_mask); } static bool fold_or(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893838 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179675wra; Tue, 3 Jun 2025 01:11:53 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWqFDoXxYI6gHhQTnJMFHNRpqusmPDkP+jEguYPI4tPGI6uWCjmxPffdObw1pWckOHZfcZnMQ==@linaro.org X-Google-Smtp-Source: AGHT+IG9tVF9gy9JBlSvK7bOYsv7MC488sTs8Amj4GGU4NgvnrgZEXf1T9h015mnWgJn9kdD1UJ9 X-Received: by 2002:ac8:690e:0:b0:4a4:3e89:d5bb with SMTP id d75a77b69052e-4a444013037mr293408341cf.49.1748938302892; Tue, 03 Jun 2025 01:11:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938302; cv=none; d=google.com; s=arc-20240605; b=IKhL6eNhizTRCg8Lx0CmcqSYQYI1pLoG5WLJ1VyrrfkN0FfACENoOLwd2vutg6AKT4 oUmLsORmuvug+y3YwJK55mPPX8DIDH39pOggdg6nbZAi/0y7G3CSvz2DJksLXNVXyTrN 2hhznhAlNHC//ae4bIhijgryCD1jNjy97WbDakIBu7y+oU4uH/+/3g3SfJDKKgjkAOhb aPMxXd0skj/uryncbZR20y36UBzNz1RUk4oMnKL/0E8nlL7zPbgVV+lLpMPu5DcqyK1L bSgTcbV+LfsBE+m3IuO3XBi+nKXBid41ulOSmcqdN5OnhKdOcbGBN7it3i/fuDdESBCl oNAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=h/En86MJA4wGrPSUzTe8W/lAeFa1J49kbPISU8uT+6U=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=T4f3WvaqmRFdne52MI9/8SFN0iXsp+p+kfgpg1n/hBy59nayBwV1612O8LDchZMpcF XFO/uZy0CmgFZ26FHiMlAz/+gusca6CzxuZAWs/7xCOjq89fWHRAmcF39RP8LX1jhkCU FeC7IFybSCGr72s9ZYRKSCRGU+kQ5Gz8ttS3fejRA3TYtd7Zw7415vR01sM4zf/cvZlg HZCA2m9aoXaVVA7MBJsPEjzC/mtCA8n0kQovyXN51EKmuGzUPKBHsq4J4H+wrN6i6Njh KEZR6quCBqq2QllNSJIMqoIbP6qoGw0s1vXln+vyV/6mVQwKWUrnJo8wRNteWp7VdE5W P+Vw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O+s79kML; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a43587e12bsi117078971cf.128.2025.06.03.01.11.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:42 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O+s79kML; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjn-0002uU-Gg; Tue, 03 Jun 2025 04:11:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjI-0002FJ-MP for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:46 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjE-0005kx-B8 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:39 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-ad891bb0957so936014266b.3 for ; Tue, 03 Jun 2025 01:10:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938234; x=1749543034; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h/En86MJA4wGrPSUzTe8W/lAeFa1J49kbPISU8uT+6U=; b=O+s79kMLwAklvxfzZDNgoXAQPXA3t8W+QXRBYg1SlL+5Pva73Gg4WE+3fhgiwIKx+Z qb+03GMY4Hvt8vkHYiQEMbIWpWg1u08bQVjuNr9R9SmC1R8Sry8FOH3ptVS9fjmi98au E7Hsh45msmWP2FX7a0aoRw6w/XNqnrBjb8evgb3EKKRc35uPWnTnqKFxdav+c+PjpZf/ lOl4aJ3hZeBGJ4xsJslTf6wN3eogAInLva341Uvw4pzbd6Sxx9rrS0CF3t3/S3vhjrQ7 XTMue/Lb8trXGYXClE21JckJiX9pr9mmw8mPPkKY4eX3WVsorVTtfXqPVZDVGAV/TBsM W2mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938234; x=1749543034; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h/En86MJA4wGrPSUzTe8W/lAeFa1J49kbPISU8uT+6U=; b=NPEqBBOtIBQWc4Wl5PmIUsvH+c25C7Zb8HnpStIIX3DHBMLXuZk2M4q7PEZCQwGjkf KDiDkF1BskwYjg7TzSg8wdUv/BIP7UKAZ8mdM0Af3ma4faqmCH0LPAsByHwc4+wmEhXg GnuCPyKl92HEnYltdP50AOGYd/xJ65kI8Dbnou58q7Frp4bOH+vlnvDx9/aYnu3U6maG L5rmK0HBZYcn9PfrFAbxY8uVTja5NQc11q4q77VwvEK+DvtPYn+m0EyPLIzxuYhxELD7 47LdyoQpboMLmr5mAXxYVfOpQ9wdkTqlwDBB8//dNemqzR2rbn62NrF2dreDMVJ/dP89 29Zg== X-Gm-Message-State: AOJu0YzlU3WAGi2/2NEDw32BA0Qc1hbvzi2xsnMwRMotR35qEkpOsY53 IXMPZxA4DJOx2hbE00nmxCDVIm3HKhg/Mmnn/78FUbKf6kGHyhhsJjsjWK44rpJ3eEbK1X6YsaT U6BI6Yzk= X-Gm-Gg: ASbGncvGwtf2bsvC6M7KJi2LDCVziwlkd2m7Im6xafDirzTCFUkQV6L4DMtuQ41bsFy n9sifBLCuppaPpm/YI7J+Nwm2kZZz9Za+zfgeee2sLWwp4fJh2HBUpNhBMXY4ml7J9liMdsGswB W0tG8WGZuCwiBDaj8DXPPGpeBCWaUlU4Zijq0LXbLFSJsO88LYhPQT0/4bvgqAorJmRUAF2tTbq 14ste3V8PzMM+R7CfWnG2tQARlQQ7VHVAjKTYc9+gCHkQSHcF5eF8IuJ+ghuDRzXVuIKXQivf8s s/1XgLVhQ26ahQZaB2ZuyZpzFkfoiJEzYWhuvQrOQfstxAEe38NtDR0QygR9qUBAxlHio27EjN1 ISMaVHCREm5Ee X-Received: by 2002:a05:600c:a088:b0:442:f97f:8174 with SMTP id 5b1f17b1804b1-450d6547524mr161838295e9.18.1748938223862; Tue, 03 Jun 2025 01:10:23 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 10/27] tcg/optimize: Build and use one and affected bits in fold_or Date: Tue, 3 Jun 2025 09:08:51 +0100 Message-ID: <20250603080908.559594-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=richard.henderson@linaro.org; helo=mail-ej1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index d22396f6d7..ce065d0e22 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2263,7 +2263,7 @@ static bool fold_not(OptContext *ctx, TCGOp *op) static bool fold_or(OptContext *ctx, TCGOp *op) { - uint64_t z_mask, s_mask; + uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || @@ -2274,9 +2274,15 @@ static bool fold_or(OptContext *ctx, TCGOp *op) t1 = arg_info(op->args[1]); t2 = arg_info(op->args[2]); + z_mask = t1->z_mask | t2->z_mask; + o_mask = t1->o_mask | t2->o_mask; s_mask = t1->s_mask & t2->s_mask; - return fold_masks_zs(ctx, op, z_mask, s_mask); + + /* Affected bits are those not known one, masked by those known zero. */ + a_mask = ~t1->o_mask & t2->z_mask; + + return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, a_mask); } static bool fold_orc(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893834 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179534wra; Tue, 3 Jun 2025 01:11:31 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWo8InzgTqPSYaRJzZv8RZXWEFWqE9Gqu54VVojbHxq4ZjJ6ikKstUzCSTxvmFOvp/e3AnJcw==@linaro.org X-Google-Smtp-Source: AGHT+IGvx1hb3hLArMF5HtZfZAvmw41Yvt07a4oq9T801zFYZAvJSS9lJt7mrFoMfYm3Ihhezy0p X-Received: by 2002:a05:622a:4d09:b0:4a4:310e:94c3 with SMTP id d75a77b69052e-4a44009d09amr315323331cf.39.1748938291230; Tue, 03 Jun 2025 01:11:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938291; cv=none; d=google.com; s=arc-20240605; b=A3LOWka3WzaeXOUHPjiPCYW+V8yJxuS6+FzMWGsMHGKbNxKgRNQ9aE68IVzvQfzqy/ cer5moITeMdsFDKVeBLwY4fX3AHcWNNlXMO4pdNE3o7A9kYisBe+h/sc10fruQE7BjYd fJnNs10mnBnkJxN2TJNI5OM26rNjLnhVXOVs5xjeDcFzC70sG4lBaCHcdiLWdshS3Yiz SNldtczAycsMPuxnBNcpFNmUDQ1IQxH47Y1TJkjzXHWfEvsrevXEsjaXYx8KvUjsK8Uo LLtsQcMgXYLPR4AL37obd2RuLIN5j3s+TZkUv3uaz44r2souk129mXfXdmX/zAEvl3f5 0eVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=lIiN8Y95z2H9yF0XmnL3s2gEm3tNlVfWIaOr6l2WCKI=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=CnxZ1nEU8T5sUdBSmvCpaGAs49ifA/zct7qcQks/zGqRnI3vJBd+GZgi2DhXrhSiXs qVLv7bbppqWxM5s67xbhL+Ex4khIz82PexeBL0hSHNGpCYnvElULRTSJCvCewIiL2Ti0 /ufafzrLFf/IYiZ5sPkercBB+RYNAVDzUe9Ss36KxoN3VgDv6u3Z6rZg8fooI6kQiLI9 ZfGCfVUFOrJb8Z8eriEq0e95YGOhHK/qS9tNsZPl42dLwMczd1yBEzugaZsXskaSgCF+ z2qtUX7YwGBPZaVc3gikPkNE5yTRbtRrVTAp5NEc0JsLTAFyPJ6jBUZjRNcYvRLa0F9k 9eGQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yLYrJJPY; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a4358b9039si121845871cf.180.2025.06.03.01.11.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:31 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yLYrJJPY; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMji-0002WQ-L5; Tue, 03 Jun 2025 04:11:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjE-00027H-IC for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:42 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMj9-0005kV-RD for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:33 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3a507e88b0aso1865082f8f.1 for ; Tue, 03 Jun 2025 01:10:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938229; x=1749543029; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lIiN8Y95z2H9yF0XmnL3s2gEm3tNlVfWIaOr6l2WCKI=; b=yLYrJJPYzXnxAwDSd5QgJ7/9NvKVEpTj141iFgnqaVZoza7mBIkuM9Bz30d3QfwUIE sTq9E65XEqLFKbsrsr8sTYo99ItrPNLgSKiJDuTVVRwtwAgKbzaSCAgqQfti5GfIwbus 3/7tWch273sio8tN3eY0A3f9Cy9bmZwJ/XGwfnWqA8ca2Qu8c+P2rL7QsDRqsR0fcGpa w0V3I+N2cL6MsUCP9XmWO+g2BrHL0Pt+kbfd/osOND3hH/OdZXlxXZwD5sQ8trWKPgeb xHrfsUHae/KkiJ8EyfVEc0sBi3ikkSZx2UC7oK4SSauHzpFd5AjaREMk46+8m8WpydGq AiJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938229; x=1749543029; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lIiN8Y95z2H9yF0XmnL3s2gEm3tNlVfWIaOr6l2WCKI=; b=tA5r+AilWTjxXrmLlKxFuak4n+3SwRHrDZZH2Y4RI71s4RgDW7pCxzkC3rY9TYfFfH WqTUET3yVvMLBJW/sdOOJg9cO9chOeGeFbBJkI0bqhhnE5LR/3TUB6XDtG4EdiSM+Mzo wChn8HNB6HN2Tqw2r8fOTjCKJbfPP+NueK62rB7273j4B7tNGgClUjIYBgPkDAGSvwqU S67BANEB1TsNAbxsREHgB0C0UFagncPJRVzuxs9GhfWGVs1hT4ZQNS3NXm5auBkO7Zn6 CK+JLc2C1rSlY9uqgG8YIHcZiHPO+5SOb9Bv1ZEpUBqCIt+feXD8TSUu0+6uSGIr3TcY OJWw== X-Gm-Message-State: AOJu0YwQGCrgk0m9Sx49vvF+z9mJtkaUIVANdmuxOdMMEkAJtgfYcU2E SlMEu7gSOwSuTDUBcZVUIPdvjsQEmGn+md/G8WW+EIq42Pd7K4xW6FfOMSEGQ9fnPRPQbXjw6hF rFQYzbFE= X-Gm-Gg: ASbGncvtfFZanHoH1CgljZxQ1pgRwQV2ZtzSacqJAJpMd34jr+hmV98bVjT8Co3CYcG jqjhqK3iMFJ6j1wJMjTcpwXFvfTtc8KT2c61lY0FFdM/L+bH1iR/9dArUoE+A7yY9EgJvfUJhqr n59afpzceG3mPBn8hMtv9b0GqWvDPwK4G0x5HwCDnNEmMTdBnQ43O9x/HWHtMZHrqMcngUcqj/K h6/KTSUS7oo3Vg6A0NKIMaI8RWMb6qksJjTAmQLoPwelOOWg6vQw+DSzanwGTfXqAllUejJhcNz l7NciIo4cE6RcRn/t/32fY1+X573c+CB5NnHWyRvGGJSPW6SrqTcpin0gQMtgjVMmKsBIJE/gtt Ffdn+Vr7YWqc5 X-Received: by 2002:a5d:64e6:0:b0:3a4:e68e:d33c with SMTP id ffacd0b85a97d-3a4f89daad8mr12751583f8f.47.1748938229178; Tue, 03 Jun 2025 01:10:29 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 11/27] tcg/optimize: Build and use zero, one and affected bits in fold_orc Date: Tue, 3 Jun 2025 09:08:52 +0100 Message-ID: <20250603080908.559594-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index ce065d0e22..795f1c900e 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2287,7 +2287,7 @@ static bool fold_or(OptContext *ctx, TCGOp *op) static bool fold_orc(OptContext *ctx, TCGOp *op) { - uint64_t s_mask; + uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; if (fold_const2(ctx, op) || @@ -2318,8 +2318,15 @@ static bool fold_orc(OptContext *ctx, TCGOp *op) } t1 = arg_info(op->args[1]); + + z_mask = t1->z_mask | ~t2->o_mask; + o_mask = t1->o_mask | ~t2->z_mask; s_mask = t1->s_mask & t2->s_mask; - return fold_masks_s(ctx, op, s_mask); + + /* Affected bits are those not known one, masked by those known one. */ + a_mask = ~t1->o_mask & t2->o_mask; + + return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, a_mask); } static bool fold_qemu_ld_1reg(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893837 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179670wra; Tue, 3 Jun 2025 01:11:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUBED55GTcb4ykGU0Wn+ImmAnf86yXM2hF10yX6xMHZBJMUcHmBr6KhbR4whUOYDiT8wnu7Qg==@linaro.org X-Google-Smtp-Source: AGHT+IHqt95FmcgZkQ3B4KJxelEpQEMhShxt0vvG+W1ooZoEjqf/9KQqEO5JnrnKyHm6D+HNvoh8 X-Received: by 2002:a05:622a:1e8c:b0:4a4:2f7e:64fd with SMTP id d75a77b69052e-4a4aed36d5amr202169111cf.48.1748938311456; Tue, 03 Jun 2025 01:11:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938311; cv=none; d=google.com; s=arc-20240605; b=S8M+/orL/uGAwVP9+RAXDGpzHGYAI219+dJM8pg44VNvIhd6pSVsh//p6w54mI0PKq JjeZMlOLdL13Ac25NUcG1Kbx1SZLU4MZJNHNZJwPv1CqVJtAKeOiFfx1pDGAPVQ/1+RR 8kHVOcPW3uCX994wT3d32UWTlm+miOjYEhXgAiwlqUW6/+iAoZHo8eXi3UHS2OfpsnO5 bTeu2+CkGEKdZd3O95oPNVGbIjin+hiH8tvMi4ImYayzEEAqu5y+DMYUrk2G6ZmfjjDX SQyjjrVzTdkrQNlQA5KdDwXGtF8Dkslfh3K1z/7nRwXpr591xEH1EbShu0dQK3A+mvTO 2Q+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=JC+LOnHAVgWdjSaAq/ZSXpa/AKiqqGPj5EsBUAOGzFY=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=AZkdKfiF05zUgorTe0aFqiuF4zxuVaP2oBx1JvFq7na2F3sIK4Pec/xkfOo0fnl7Lp tNyOAImObGfzcGJL2HqXYfKg5PRSvE+EVmpBs2UahoeybKFfgkTFnFAGYOSUYUrZXvbS mI5UnaJ9EJe23M2/Tdy84Ices/deS0vMaLekNaCzbIs9yMFIXFvJk5o+nyzx9Zegk4IZ 7/hAnDva84qh2mxHBUcGXZiwXs7RpPhN7xsz3gbDBtmtUO+kdPfDi7HJSy+4tlIOXwSz iiLA4v4exTkstPNDi7Csdf9ZXkDC2Fj4WCGoMMTnhr4mhzXojpqxaynvWn+eJSk/alkT uNVg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pvd01jf9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a4358b8d45si119490181cf.183.2025.06.03.01.11.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:51 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pvd01jf9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjk-0002dY-K2; Tue, 03 Jun 2025 04:11:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjN-0002Io-RW for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:46 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjG-0005l3-3D for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:45 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-451e24dfe1aso9120045e9.3 for ; Tue, 03 Jun 2025 01:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938235; x=1749543035; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JC+LOnHAVgWdjSaAq/ZSXpa/AKiqqGPj5EsBUAOGzFY=; b=pvd01jf9vXS889JgG061+TJ4rlERV10Lb3TMmyKaw8/cMyCDM8oCUNxgx6EPE4vga0 PgA6drJWtqYhYyoE6W97YqS2lFYynmQv2Cp01bCGgvAh5FYMPURaarqVtGXU2ILojA1X 4LV0mkSV7JA0Cy3D6sYvZuNZ+5EROoEo5dCmK0hRVhwn/9tRpNvyJ/ijR7BM8DnLzyUm s3foHINZGunrVhDU6hIlQGCG35LJ6thjIk+U6JmwNjVd/Eaau0aTrLjeZ5klKLEErTRl lhd/pfnuXnRXFzr2Vy07qHomGadOMtxmH0+dVz3eQ0Deem5Ng2fxVHtQTh9ZMaEnOHiX fNxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938235; x=1749543035; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JC+LOnHAVgWdjSaAq/ZSXpa/AKiqqGPj5EsBUAOGzFY=; b=kmjWf7eOVyoJFCjfezs+vjCaV7luEO5Lk+UJojQlJNMKKbsuQ70sD/qbMwnNIvNaVE vuFoA4iSGVLbxWWufuCrw9cbfHDgha4mS++BinaoumCYQ+Iro1T+u7yOa0WIwtDarXaL SvQSp3nCF0eCU/165aCHLPg//M2KkDqbi+plZfFqUFW+mXCeflXZiRibYMQKfDVbuP/B DyNHjH7MnnjsgWS95LRp2VkmRnL20S86OsAV/zkgZrmwQ3BSMHn21YNLFWwkNHJW/sac zz/q9nIrQ9VT4CuY+6Sc1oYgYUSnv+NIohL3/u4Y2gRyqtRs6pn9o2/xEuSPRjwFIPPM Ubgg== X-Gm-Message-State: AOJu0YxpeCurg3UKHPFESsjyIBUbXXSPcbUJCXVoWRDCG3N53hVTlbGy DgIYGXD6a72CwBsWaCAv9MWi0ow45g0MZbqONGw2ApIyuQQ4I5tvfsbN/Mjjfq1aTDG6SzqbIk+ 14y/q0pk= X-Gm-Gg: ASbGncuWK8uno7rONU5z/5eSMUZUInARbuM29b48H/dhxSu8CA16iMOMNyjnALcF7jh HmYfNxVDZ2RGnW9qmu9Joh5qn69dIAVkdZ0CX55pjSI4MX6MUeuc9p+RM0UIFiJeGCB1JVKgR+g rR0IyaBxZ4paX9uqeK+5HW4h6fBrE9tr9vXUIsEc/S8881CcAZlCxmCTpZVJA9C5cOXKEgNa7Bz 9MUqB6kGEPtsvv/PDKc7B1f6YxMcBYP+GB4HII198fvUrvNxwOtpR4FyTZ6gOh1FREz+x2PajX1 48QBv8UvItWlxrY/IIA+8r90U/VsWR8M53q22C1W+q9KysEXwbBzrjrisQgY8GUOuUS9PqwM/DZ 9v+R59HjY9IhM X-Received: by 2002:a05:6000:310a:b0:3a4:dfc2:2a3e with SMTP id ffacd0b85a97d-3a4f7a6d223mr14390259f8f.39.1748938235195; Tue, 03 Jun 2025 01:10:35 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 12/27] tcg/optimize: Build and use o_bits in fold_xor Date: Tue, 3 Jun 2025 09:08:53 +0100 Message-ID: <20250603080908.559594-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 795f1c900e..572d314578 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -3039,7 +3039,7 @@ static bool fold_tcg_st_memcopy(OptContext *ctx, TCGOp *op) static bool fold_xor(OptContext *ctx, TCGOp *op) { - uint64_t z_mask, s_mask; + uint64_t z_mask, o_mask, s_mask; TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || @@ -3051,9 +3051,12 @@ static bool fold_xor(OptContext *ctx, TCGOp *op) t1 = arg_info(op->args[1]); t2 = arg_info(op->args[2]); - z_mask = t1->z_mask | t2->z_mask; + + z_mask = (t1->z_mask | t2->z_mask) & ~(t1->o_mask & t2->o_mask); + o_mask = (t1->o_mask & ~t2->z_mask) | (t2->o_mask & ~t1->z_mask); s_mask = t1->s_mask & t2->s_mask; - return fold_masks_zs(ctx, op, z_mask, s_mask); + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } /* Propagate constants and copies, fold constant expressions. */ From patchwork Tue Jun 3 08:08:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893835 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179547wra; Tue, 3 Jun 2025 01:11:32 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXFPmQPNEcBJVosrFyH94TufRmxmZJ7RVGfHhQDFQFIh774lQwldA7Nh01wwzysoRfg2cSZDw==@linaro.org X-Google-Smtp-Source: AGHT+IFWBXUHsF8aHD3eG8mJUxOeYakNUHkRONV9lAZL6zHhMPbGwfbizjjuzQfO7Ckw4f5cIHq9 X-Received: by 2002:a05:620a:690d:b0:7c5:dfe6:222a with SMTP id af79cd13be357-7d0eaccc34emr1466379985a.42.1748938292668; Tue, 03 Jun 2025 01:11:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938292; cv=none; d=google.com; s=arc-20240605; b=WT/ZPTJ8WHyZLpjSqCaSBgrUkxx9D2wHYGuaMrMwWtu9rTQ7UrJqrGnCoDqj/2WWnY EfXVcfh9X3mA4KbQNIXCi3oAUWNG2WQS2cLu8SkCKVH/QtayV7P6OmPN2fdKKl6AmL4u tXzrGR+/9HUfzX4//waEwzMGIbxySakK9+iuasfDkfjBP6qifEJMClfZGDcHup+iHnbm n/Qh1C/DG3wphKC28g5+JctCVQ+TBwZTnTQnjRnUsc1nZGWnW5sEkbJevx2DXzc/KpGc +b4lCdJ6f35LlYQTP8/KG8deWPqVAn2+n2ILAlE3wfZbVMV0w4EFKgvW8zTFGmYcheJT Do6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1GeEM9Ch9VEaUM7S3fIXujIMYq38Z5m15r1GdbDnYbA=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=M6FCdA6DrWm8LCgZjilARdx2tX6+2MSjaH09gPyZUXgVaSvjOw/UXp31UQoGOnBnFo sGz4s6ddgO6Q4jYTq4Z4PrhbFs+8HfdWu/4Oq5CXLvlXgMdo+SLZTWbLT3sUWbA7i0d1 5h4+6V0RMwUsqHlL8N6rU3YMKMl34x1qC1MAz9cIM+CHxmE3Wt/5DlyR+ulB0AvVX8Gf xDjzmOUWcJ1iQpJqqxYBeRgEzpXTXon48IJwxeX+hRuB+Ga0NtxvMcQmRfvtXTcaVecm OkEK+IkFnsSK+I04eL+C8vO3Qs2vfNOO4opYD+gjjiOCHJwn3Fv+o/huL4aeRVPXpWBA K/gQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mRzQW3Hs; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a110c60si1232794985a.96.2025.06.03.01.11.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:32 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mRzQW3Hs; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjz-0004AY-Ku; Tue, 03 Jun 2025 04:11:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjN-0002In-R7 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:47 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjK-0005lg-Tl for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:44 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3a0ac853894so4976038f8f.3 for ; Tue, 03 Jun 2025 01:10:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938241; x=1749543041; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1GeEM9Ch9VEaUM7S3fIXujIMYq38Z5m15r1GdbDnYbA=; b=mRzQW3HsMGLV+xIHhv7ZtNcOZu+wjyMo8DlGam/yUDa98sAoymf84yeJp45hHGXdJC gmFFrxmqBI+A4ZbHW+4I7mo438Lt3Py/kP0u8b/MSyBlUoCiNjF6LYcDJa8LHrZbDfhc 7xnBVEXo9ZriZ/MY3wL6qOt2zDzm2r47KHJ/8oH1qaKTKFymfHAamUqt6AV0+uUNefOC UKFkqQiv1y+LJPa6c50wQi3Z+0e7PRT5Vnt7K29JJGsQI86vicYUqC9VpXikpn8Pwkvv HUXcDBihUrvMrARAUBBsigJpgeow/FW3kJaPOoIEMaiqK2dTHD6VRGMMkxNkTYa0VoLj lqNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938241; x=1749543041; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1GeEM9Ch9VEaUM7S3fIXujIMYq38Z5m15r1GdbDnYbA=; b=Uxr7ERC2sf2Az0H0RlLzs1EkWd3Q6YandXKMG1BMKFfGY3UqzEdRFQnNcyqeGT+ZLx nzleVSETIZEBYWkab/N+6AQrIwP8EOpykQoapzFDlj5xIaSoC0K+tctrBBhMNFehEmSk FZxkBCOPWvHo8DHSK1bt4u1BJfdNp7gLWQQLLv6ZRwANylBaXK/wIxmEvNlacDpNvqS9 4PnBiOq0uEfDKxGcOlbXKKsa4t62toj4yk+0PDc2G/O2EWCKSaqreGYqwKlfZKRCSEZF nJpuwB4TyipxMqEqvcDG+ILY7bYBGj3Vs9LYgZbol6PpxjLaem3XN4LyxYxliJwZ4Ryg OUjQ== X-Gm-Message-State: AOJu0YwJy7nHNlZVG8T/BdrkMOH0PHt4nOjVjiceV5X3Ha3Q0d3PoxKt liki5KPtD7K62EeK0EM+LjBgObsL1fdaOgOjiD8ASMUg2/ALu6MFhUk95HEi/cD2D2kJxoryuQr mAiHVREg= X-Gm-Gg: ASbGncuDincweYrQDD/zbBEvTl8CgmnY2gph9RKA4x5XuDPm94yknamiV/5LEklx4EQ b8YaZO+/usmFFPaOAM7M3eMal2yhNDCxx26Fuoh6bdXIKdAumIQE1lK/cvOUl/8uA3NTETWFpoe B+ioozXlyb42HYCfsgcaDrANzNEGbVQSnP5MAtl2Rofl16WkD6NiLouFFmSuQsA1DUXre8hpnqF 6rK6BoD5dIgTZf7xoaRAbkXd9FSQvW8e7KoEW5FQVhFfZ6N2P+Mf9fuwjJbmAH7E/JHZSAWC1D2 eOo2SLKdotI1sCclbZ9Dh60Q74WZvYWM7TPNULekNz85mnSXeyTn4AiX92dXozyLpZmYNVxdZ+2 FUhi1+A4VGcS3szSYVjUGu+s= X-Received: by 2002:adf:eacb:0:b0:3a4:ef36:1f4d with SMTP id ffacd0b85a97d-3a4fe391bc4mr6832825f8f.38.1748938241178; Tue, 03 Jun 2025 01:10:41 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 13/27] tcg/optimize: Build and use o_bits in fold_bswap Date: Tue, 3 Jun 2025 09:08:54 +0100 Message-ID: <20250603080908.559594-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 572d314578..c9c53f796f 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1671,53 +1671,52 @@ static bool fold_brcond2(OptContext *ctx, TCGOp *op) static bool fold_bswap(OptContext *ctx, TCGOp *op) { - uint64_t z_mask, s_mask, sign; + uint64_t z_mask, o_mask, s_mask; TempOptInfo *t1 = arg_info(op->args[1]); + int flags = op->args[2]; if (ti_is_const(t1)) { return tcg_opt_gen_movi(ctx, op, op->args[0], do_constant_folding(op->opc, ctx->type, - ti_const_val(t1), - op->args[2])); + ti_const_val(t1), flags)); } z_mask = t1->z_mask; + o_mask = t1->o_mask; + s_mask = 0; + switch (op->opc) { case INDEX_op_bswap16: z_mask = bswap16(z_mask); - sign = INT16_MIN; + o_mask = bswap16(o_mask); + if (flags & TCG_BSWAP_OS) { + z_mask = (int16_t)z_mask; + o_mask = (int16_t)o_mask; + s_mask = INT16_MIN; + } else if (!(flags & TCG_BSWAP_OZ)) { + z_mask |= MAKE_64BIT_MASK(16, 48); + } break; case INDEX_op_bswap32: z_mask = bswap32(z_mask); - sign = INT32_MIN; + o_mask = bswap32(o_mask); + if (flags & TCG_BSWAP_OS) { + z_mask = (int32_t)z_mask; + o_mask = (int32_t)o_mask; + s_mask = INT32_MIN; + } else if (!(flags & TCG_BSWAP_OZ)) { + z_mask |= MAKE_64BIT_MASK(32, 32); + } break; case INDEX_op_bswap64: z_mask = bswap64(z_mask); - sign = INT64_MIN; + o_mask = bswap64(o_mask); break; default: g_assert_not_reached(); } - s_mask = 0; - switch (op->args[2] & (TCG_BSWAP_OZ | TCG_BSWAP_OS)) { - case TCG_BSWAP_OZ: - break; - case TCG_BSWAP_OS: - /* If the sign bit may be 1, force all the bits above to 1. */ - if (z_mask & sign) { - z_mask |= sign; - } - /* The value and therefore s_mask is explicitly sign-extended. */ - s_mask = sign; - break; - default: - /* The high bits are undefined: force all bits above the sign to 1. */ - z_mask |= sign << 1; - break; - } - - return fold_masks_zs(ctx, op, z_mask, s_mask); + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_call(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893836 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179651wra; Tue, 3 Jun 2025 01:11:48 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV53dgCRmaVa+SfmGnqNdX+y/OGwNTWR1qK8K3wZi+/8HEeWXQFvC+XSHIO/iujo5KcBaPiBA==@linaro.org X-Google-Smtp-Source: AGHT+IGj7cRafXSpqrrti3Bxf7iKevXLVeKsczyjpP7ZKW6m1JCaAQees/Zw5vzKoDgDzKQ4wRna X-Received: by 2002:a05:620a:1929:b0:7ce:e8d6:37d7 with SMTP id af79cd13be357-7d21154aa66mr266326185a.4.1748938307869; Tue, 03 Jun 2025 01:11:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938307; cv=none; d=google.com; s=arc-20240605; b=VcKq3sO1Khit/WAqqiZEGfwP0tvtjZ/juUncw//LuN/jVgw0b5YP5l0ALPu2aYRGJN G2am9R5q0J8QZODB1wfw1u5iQvorCSfbaXmh9umxQl5+weXPjEtKqUzk0CxXC+m/xTHq HLkJhwpa497vyDB3gJVavENY0SomklwIg3vboksS6wtEFl1Ucmi2gwM/FNjT+/f/a40D hWZNZPsIMlIjsK+Nx9JFDgYtcdh7SzIuOC3elWybrd9bWokOVdKye/3ccuswtlo8ocVH iQLPwatDwT+EcdPHHQmyDzioppz/Fd10mmYLhDZ2z0dY0LVmlMkRe3f21CajDYtWGTSw NPKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=HbV7CB/vme0Aevai0jjNyEglAqtC776CtVcj3Rlc0uA=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=k/xdQw41r9rP8AcoK3FtVfq6TO45XryejA1pFsHgreg8qpx6BOLw4jXoJ5z0Uwkrt0 07qsgSpOQUpXPfF6DFIKUj+wFuFd0Fh+LsPA70VrE5Z2muWI7JL0gKaSg1zmI/ty9GP/ bunvZkLDNaPwhh3emt3ac3YD0kdPrqzfA526v+CTqm83i2u2XEL7k89crMkRgoffX0Yc IbSefHX8Yf5sJwLRVX70+yQJDgMBRr2MmD10LtTmp6rylaVeQoAviccbGDRZ3vwKhrkL 9KjrUwaJjSEveNDWOgs6mi7C1dqhrwp2+g3pzHIiyWgJtpxejmTbIz2DY1HqYwKs6mbB 5wAQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=u3qfQwPT; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6fac6e8d777si116822456d6.309.2025.06.03.01.11.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:47 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=u3qfQwPT; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjt-0003NJ-5S; Tue, 03 Jun 2025 04:11:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjR-0002LZ-Qp for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:55 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjP-0005m4-4d for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:49 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so19701365e9.1 for ; Tue, 03 Jun 2025 01:10:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938246; x=1749543046; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HbV7CB/vme0Aevai0jjNyEglAqtC776CtVcj3Rlc0uA=; b=u3qfQwPTxsCfEx9KrHz9GWxmrT2hBaGgo0qZiZZcDrGb/bOedmFxIyL+265TeJsYSS 9c1HtpVMAbvrqG7Y7uTbpFZu7B4ksf4BQiUmsV4bwk7daj1MtuTGpDvxi1M2xbb/srKu yFnhN/aHkT6xt5ONaINvFrlgqAsL4aj1+0qS95V/im3CmGTskglRU8vH5U9WNxfCAZDI dxL485O4KrjCiJoL/5LEdBNlTaNaiU+AN1kIqn1bYgY6HciNIe2J4ogp1sTxxys93lRN RBxpcxXfUY/JkIo7iqUCbF02mfV1HenLTqYNge1U/WjvfBGN58up3ovPoUeFeyEAERRk ktjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938246; x=1749543046; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HbV7CB/vme0Aevai0jjNyEglAqtC776CtVcj3Rlc0uA=; b=meQ1mcnlxQ39hCIUgC55GP8UmpaMbIMuznN/gHcCeuF8IdGTKz6BsobQ1KBEQGL8Zi D8uI8XLItTSBGAqY6TAsA0rmY1XBckrQ+7BL6aQLLKHIzDQtnFMnVMd6vGXx/Ulg3kKu O7WQ5N9+7zTXUtoVxkauMEZ3OCCDWookXauvlT2gJSiu9e+pK7vKyWW76/SPjX1BQsSZ zpf17/TRml0ePwoBU+hWZojD0x4t92rCXYbLdjVfST5NhVtzW54cfbrfo2BUQNG1vYB2 BCegO8HNA+pBpcOMuqrQtxyUIBRkR9ceOPweoLKQFuHBZzYzNr6X2u5oS9LM20wfEaZ+ 5GfQ== X-Gm-Message-State: AOJu0YyLL5/vAVQIa0TT8lMJFAkuWMegkMpxqqb0y+iqf62y8VO+Aj21 ycqOedBDBBykxwsfQg0yIXMHUeU3OXQBRzujF2pSq4XlREPRrT2uRvwy/KlMFynf8BsEe8z7AHG f1N5NWfk= X-Gm-Gg: ASbGncvpgluma1Vqg94v9yVXQL3FUlfFMQiTA6BvqnA4zIFD9f8yJXhzIpdilt5H/1J sGHZk+DLGsWp5+QhYCCsnj0/INRv9dKRqY0NEIOE8vvBBipX51kGgXCrEKyoluSHO5sJwSCG3ao iz97syhVN0iFZGRfMGhwuIInYfKcp8cgvYwAy64edwFP6YCsvAFE6RG3c9+DiLpDnM1mKqT+W6v ZY29+Ek6Gwb+rWUaqsVEcdIyYArpvBjMmjH6gu/3TX4CClRQhuGepZteTQ7IHj8GxhAiqsqMzET H8ZfXjv0w1E17iWqnoVvds32xLpt4D42nQR3Q+971MV1s+nAUrN7yH2xTu374rFM9UkqsjYEnTt lXDA4M5U+bepg X-Received: by 2002:a05:6000:b4e:b0:3a4:fc3f:8d5b with SMTP id ffacd0b85a97d-3a4fc3f8d96mr7515454f8f.47.1748938245664; Tue, 03 Jun 2025 01:10:45 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 14/27] tcg/optimize: Build and use o_bits in fold_deposit Date: Tue, 3 Jun 2025 09:08:55 +0100 Message-ID: <20250603080908.559594-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index c9c53f796f..043568a10d 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1847,7 +1847,7 @@ static bool fold_deposit(OptContext *ctx, TCGOp *op) int ofs = op->args[3]; int len = op->args[4]; int width = 8 * tcg_type_size(ctx->type); - uint64_t z_mask, s_mask; + uint64_t z_mask, o_mask, s_mask; if (ti_is_const(t1) && ti_is_const(t2)) { return tcg_opt_gen_movi(ctx, op, op->args[0], @@ -1882,7 +1882,9 @@ static bool fold_deposit(OptContext *ctx, TCGOp *op) } z_mask = deposit64(t1->z_mask, ofs, len, t2->z_mask); - return fold_masks_zs(ctx, op, z_mask, s_mask); + o_mask = deposit64(t1->o_mask, ofs, len, t2->o_mask); + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_divide(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893839 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179722wra; Tue, 3 Jun 2025 01:12:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWRrTc8dhlFOI/VgOGe9sEis8I/J44QI2huoZ7wF+kwAFetP+mDjIjNnlWVwijyy7PHpJMVYA==@linaro.org X-Google-Smtp-Source: AGHT+IES3P3NLKIOh7KxSEZ9+yicDfRYSHMzEBxgcc+atUcrHFJMMNUSG/bmY9NCXWej37EK2WYQ X-Received: by 2002:a05:622a:260a:b0:4a3:5ba8:4978 with SMTP id d75a77b69052e-4a443c8fa12mr259713631cf.21.1748938322426; Tue, 03 Jun 2025 01:12:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938322; cv=none; d=google.com; s=arc-20240605; b=G0Xyb6n3iBcHTeGbHhT02KkfoPxuISPs4OVOpAuKKnUR+Ru+iH5mmW1gGmGDJEu5uf O9Dw6TlSDpuQAeccMs5fsNkYG2Ecyy/iV3TVJyXrVwP7TZU5Q6lY2xaQvIX9cXXtWIR2 TQ4vVmNdJd+udVpKnTn6MfxLnAQ96/sLVsg5GESgoObyQdL8qcLS9tmy2jWZ0ZRWJSnt yFOc7RoMKVdc9L3QBXK2ljmB05w2oZoUak/nhza8rXA9Do2LegzFwO1FUrlUCkGUi1lU EyXw2wC+JNSnCEEzDvNAvSxa5GLtN60NDqKRhhM48xRNjt2u/b74QjJc4H9toIqOmPxt dCPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=alu4+06hafBjdM//+iURuOExniKuVOhxa2fbp54muUc=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=RzEwW+SZttisQsWZiyCSxrqexNrcxNgx7hQF8mnEVLToAApYyr2IJL5Ud24gnp1EFA rEPB54zbC8eR09eQSgTBA8iu34kKP+/Iy0NruFzVTRBrzdaP3cBb9ZV1X5eP+q4gObMt ADbD4FIL0QLjCDUJr2Ft4woKv852tGIxTnx+JX61TrXTZgbV+jzIr7RZ8bMVsEg4vHpL 4Rg1D0zYauR50u9u533dn7n+JzJhJoubL4J8IJQTTj+kSTs+ys20rkAmoq59d4xJ27Dh chBUGgOvwiHo0Gxi3JSUzbsxU7L3n3D0hr1ZBaGcSzt7XUwrhBf/ost8I6AuasnTMrDj SJnQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="iq/NZmaG"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a4359f7ed6si119211721cf.206.2025.06.03.01.12.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:02 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="iq/NZmaG"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjw-0003hz-FC; Tue, 03 Jun 2025 04:11:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjX-0002Ov-MM for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:58 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjU-0005mX-EK for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:54 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-442f9043f56so31729215e9.0 for ; Tue, 03 Jun 2025 01:10:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938251; x=1749543051; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=alu4+06hafBjdM//+iURuOExniKuVOhxa2fbp54muUc=; b=iq/NZmaG/DlwTQtBVi+TocSK7e1ZRGGkGD/aNP0OvTs5cb8NSoRnwee0EYrpGKLamG eXRFCiRvWD6p1pp5HhmQLu3hQ0LSAX4PXKeGE5nCCIzJSpK2iUlenMUiuYmKP7pImhzG QeYq+bfXy4ovFQtLFgi4dEhJyjNhhuEVNInsBoYAMC+2QpUzrmGzuVv/zfqD3jdu1baB ypwUUcS04ByvVsg1lYsN5+2L4eKpgLhqoMLssQNZRdvN1gYLX3djySY4a6WpChpSeTPc 7vb1neT4oTFQef5WPQUA2MXPB9t4KU/61xyBqcgYEbzyU34di/mJTqGMWhRirDcOxEVc 5nTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938251; x=1749543051; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=alu4+06hafBjdM//+iURuOExniKuVOhxa2fbp54muUc=; b=H/H6WZ7j/ASVatxBd61hgRqp7I3mjr7Q3NZBvuzA8S0KYrxruFMPtHa2hM3Z5utjKE jrkXNw8+8EmcPTxlQR5EgoEzqlDz2w32eMpMuWYJ8LPvlGjQ8wmIZJonQeIvkzWqwoVs vuOemXp/Z01radv9El8keAHr7lFFfg7sV/2ZaaIEq21ZPuyI7gly/FSxm2PFvus8Kqf9 r3t1kEVOkgDQIu8ayC0rXTHqEw1K4aTRhR2EYUJhqK2eLkxpWq2HzE35ujC/oKz1uc8e ogjDuBI4pFj8pNnT8FGgH8loKSuwQ18s74LOWy4W79seTM3zcPFwoK04hO3JXoEQ5VEt wAog== X-Gm-Message-State: AOJu0Yw5cJV48biKR/ZngqHWaCYXjm/uoqJMZzahw3YeUBz2xkr7f5Ih TJ6tahuZYHzTSZOOrNSlfiGasQ0HSJfTo+vJadXp8ykucSS/MGYimnuiGoK3MoMZoEMH1I/z2kt x09SUSyI= X-Gm-Gg: ASbGncv42+ykblBXBdNx3nD/k1DYjMl4yEYQQ5DMbl8tCjDCO5X36fqudCAH+l/7iaz hQlIvx7dLPjbpjkRH2YoJwesTH2ScSgt3NdaME2EGuA2EOJrspEQhmNhmC4vzJRLEJ1ozu1/JvM 0tREF2ezdarCzRot/skh52AowEiFemfmR2LCU5H8HnLEmTodU6puxHUTiLkN97Oss6uarBBJeJc 5R7CHVr+mW0Q1zFip/0KyyrHQGMMqr5PQZ2hfAnP1Ag/pehQGFBUqbtiV0lCRc1PjDfZjJxl0lZ JtJql7Z6blDSnohK77L6vPVo0EsAKIAAurWXuW33GsgOlBWhJGL61UbM/iGN7KDFKWoQJWpn5fU v4CkKvpXWD42mJ9FiNAxHMe0= X-Received: by 2002:a05:6000:2207:b0:3a4:c8c1:aed8 with SMTP id ffacd0b85a97d-3a4fe398eb6mr9657602f8f.39.1748938250766; Tue, 03 Jun 2025 01:10:50 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 15/27] tcg/optimize: Build and use o_bits in fold_extract Date: Tue, 3 Jun 2025 09:08:56 +0100 Message-ID: <20250603080908.559594-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 043568a10d..f5fc0cfff9 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1963,7 +1963,7 @@ static bool fold_eqv(OptContext *ctx, TCGOp *op) static bool fold_extract(OptContext *ctx, TCGOp *op) { - uint64_t z_mask_old, z_mask; + uint64_t z_mask, o_mask, a_mask; TempOptInfo *t1 = arg_info(op->args[1]); int pos = op->args[2]; int len = op->args[3]; @@ -1973,13 +1973,11 @@ static bool fold_extract(OptContext *ctx, TCGOp *op) extract64(ti_const_val(t1), pos, len)); } - z_mask_old = t1->z_mask; - z_mask = extract64(z_mask_old, pos, len); - if (pos == 0 && fold_affected_mask(ctx, op, z_mask_old ^ z_mask)) { - return true; - } + z_mask = extract64(t1->z_mask, pos, len); + o_mask = extract64(t1->o_mask, pos, len); + a_mask = pos ? -1 : t1->z_mask ^ z_mask; - return fold_masks_z(ctx, op, z_mask); + return fold_masks_zosa(ctx, op, z_mask, o_mask, 0, a_mask); } static bool fold_extract2(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893833 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179472wra; Tue, 3 Jun 2025 01:11:20 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWF9RtDZTTu826FtNT1PLKm5bIj1bOTt3/YasBNl/rLRFbDwPoC4EP8ALAKnblvZJCbPmw5Ng==@linaro.org X-Google-Smtp-Source: AGHT+IElOoY4c+4sXb9CMEfyhwE8dbtiEjs6AB4k17K+srYtgXtYdWy+wSURSE88FTcLH7EjmU/l X-Received: by 2002:a05:620a:2a01:b0:7c7:bac6:8b7f with SMTP id af79cd13be357-7d0a4e3d3e1mr2216768085a.45.1748938280271; Tue, 03 Jun 2025 01:11:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938280; cv=none; d=google.com; s=arc-20240605; b=RSYLvyp4ukJDpCexcLNdC9eLskiVM85dPJmDzy3XJJ1nHIEp85AONCpyoxfPf1Kw0j Ipkn8PJiL++u+dpU/e1404XBvvG0jloVVG9CNbCCq65ye/HzOHt1ErEyZ5bW8mrYK7DP I7CfT0FDuLnToNwsVpaGSM9XL26IeHbkjv7kVdtyAwzQaTsaBo9GqfEdf3oWsjuqm38f GWhzv627t7Sf70olQDJkKpIbZ/T+leLS+xQnzlPPeHZhkL1MPcxE3E1cQ9QThURCoqtY +Tuyamz130PN8NtpHLlEBYHSZp7/ipuzvHgKznok8on9QiXljfgJKyEAhC8lD1f+QcRe IjxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=JvZ9wF8gq0in8xmAGr8eSaPA7UGsf3Jvx+0+VWev78Y=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=EQ16RXfOIbM8YMKhNWIxggZrHBwCEt2MerSFeQIYS/HtS6M+ndTVM6GB2DCGDdZddP h5bBFtxy8zueS/TF2liQk4hW3N0xZF3wgPPQhu2QpzIZtpASAP+spwDu1rWx4ZdwG0jS VbTtsSeLOUrgWGlt0bK/QaLCZlMo555vUZ7jeS9hNfRLYcqxvr+ycQJ20roeoclriAyz lhX+xfNgDqocV/l7qAUMnFE6r0kX7RYT6ih7YyMScSN5f5c7F7RoOQEsnqvzc/ip0HMU 9oooIt0ZJ2gtbKTXP4AgG8Nvxb9iFBBxknCDPA3R0/LBg9h4yUI6e/k6p2fE8MdXhq87 OWMA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QnLSGCJD; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a1fd828si1237452085a.433.2025.06.03.01.11.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:11:20 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QnLSGCJD; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjq-00034m-My; Tue, 03 Jun 2025 04:11:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjd-0002Up-Fp for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:01 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMja-0005nH-Aj for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:10:59 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3a4ef2c2ef3so4220915f8f.2 for ; Tue, 03 Jun 2025 01:10:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938257; x=1749543057; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JvZ9wF8gq0in8xmAGr8eSaPA7UGsf3Jvx+0+VWev78Y=; b=QnLSGCJDPmFmVWCBFlMPPby4lB1mVKnVpflMCxW92x9k3TKcdXOjpJzI9eg9Q7Q8oX XqXE5fRUYADmZppnWJ9tgmmZM5+FHYWg38Q5K7hu9taQMR7a55ETxYPzoGc9XDfyraBe ctW6gdueIVuCwpO2eTX7OMecJIdE6WtQJhmZXclG7kJRLRzeMSrLf55oFwDrRhxb/zGf dFoF4856s03DmrBSK+3vHnQn4DL+x5LcTF20ogqpcy5HwshW5ex40dOg29COXZyqgv3r m1jDws5DYZcFhsN2cKjmr3SmM/7bdpeJX/HAH32jPsrzelNisHvSrcylOShmyAru2fDl qieQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938257; x=1749543057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JvZ9wF8gq0in8xmAGr8eSaPA7UGsf3Jvx+0+VWev78Y=; b=lsYOBUfieiH8euT0HKqXwVNDSmiNxrzXCs2i2lSuuqolshz+unIqwCRcBZhleOdYJX LMP6x5Kje9q2l9dduN5wKmJCQ4iI8jIWFfzWxD0BIEgDoGeGY34gwu8O4dNSyTfq6ebo pdZ4N3dx7KHSpnMYsJAs8fFEKNHl4YRzZlj9lDQpFMSaKIc0ov6VUEby6ZFIiqqDvTnV 27KBLc6SyXsIfPScJKldeQ/JPQ/nha0Mvb/FdHLX1iuJDjh0rlYObDT8BNcsel+DLTww 9HFu4eO4ZYJd/8ZBnG3zqkZGGuRTMgMBVSTXErTmOva+wy/mV+Tf+QbLenHsXjqwbxsp y/og== X-Gm-Message-State: AOJu0YxkOZe/DuOteA4e6+tC8/wZwK+whJMRZ24QYu4yO6mMWBe7uVBT T0rTqDA78VSp1Bxz4qPtrdf4aJmO0EC1nY0N8N3gWsI6OKXeAqcXMoN82XVYBl5b+4rVBmcKZHF XUoLDHvc= X-Gm-Gg: ASbGnctWcjD6TPq4TwiYh+sNDq1Hu+lNFrchrdeGLgMlgPtWwWbUweCvSRzOZKTT3ua cA1ro9ofQkCbCyZd3jFHEivrlkC2KCC9N5eUKlSwzuVNkGmv43rnyE01t9Loe2VSUHRp7Ox+hGQ FRDVXr7pKOkZNYMiTtlMdykT6xT39x/BgFGdbQYfREo+tTJE6dna96cJOaVMRaYCTMMnRJxK9L/ aY+JSqB/2yyqgsphEP1vtcTtxzZ85EwuUJGl0XPaWCl0Jxs4UdsAgZMcSqWv4Mp8ZZqkZTMueR7 Z9iMO/T2HWHvtXbDukBZzKaPBi3cx3b3QcSFo0eB25QHZUVM0bvDLbFRaogeTkUtlBT+2mXcdNM 9qa/6s6iXiA3Y X-Received: by 2002:a05:6000:3109:b0:3a1:f8d1:6340 with SMTP id ffacd0b85a97d-3a4fe391a05mr8462056f8f.34.1748938256766; Tue, 03 Jun 2025 01:10:56 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:10:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 16/27] tcg/optimize: Build and use z_bits and o_bits in fold_extract2 Date: Tue, 3 Jun 2025 09:08:57 +0100 Message-ID: <20250603080908.559594-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index f5fc0cfff9..86d958267a 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1099,6 +1099,12 @@ static bool fold_masks_zos(OptContext *ctx, TCGOp *op, return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, -1); } +static bool fold_masks_zo(OptContext *ctx, TCGOp *op, + uint64_t z_mask, uint64_t o_mask) +{ + return fold_masks_zosa(ctx, op, z_mask, o_mask, 0, -1); +} + static bool fold_masks_zs(OptContext *ctx, TCGOp *op, uint64_t z_mask, uint64_t s_mask) { @@ -1982,21 +1988,27 @@ static bool fold_extract(OptContext *ctx, TCGOp *op) static bool fold_extract2(OptContext *ctx, TCGOp *op) { - if (arg_is_const(op->args[1]) && arg_is_const(op->args[2])) { - uint64_t v1 = arg_const_val(op->args[1]); - uint64_t v2 = arg_const_val(op->args[2]); - int shr = op->args[3]; + TempOptInfo *t1 = arg_info(op->args[1]); + TempOptInfo *t2 = arg_info(op->args[2]); + uint64_t z1 = t1->z_mask; + uint64_t z2 = t2->z_mask; + uint64_t o1 = t1->o_mask; + uint64_t o2 = t2->o_mask; + int shr = op->args[3]; - if (ctx->type == TCG_TYPE_I32) { - v1 = (uint32_t)v1 >> shr; - v2 = (uint64_t)((int32_t)v2 << (32 - shr)); - } else { - v1 >>= shr; - v2 <<= 64 - shr; - } - return tcg_opt_gen_movi(ctx, op, op->args[0], v1 | v2); + if (ctx->type == TCG_TYPE_I32) { + z1 = (uint32_t)z1 >> shr; + o1 = (uint32_t)o1 >> shr; + z2 = (uint64_t)((int32_t)z2 << (32 - shr)); + o2 = (uint64_t)((int32_t)o2 << (32 - shr)); + } else { + z1 >>= shr; + o1 >>= shr; + z2 <<= 64 - shr; + o2 <<= 64 - shr; } - return finish_folding(ctx, op); + + return fold_masks_zo(ctx, op, z1 | z2, o1 | o2); } static bool fold_exts(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893842 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179771wra; Tue, 3 Jun 2025 01:12:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUk20Gcd3i5VMQSTitOmOA1MkQ6E9+fsxaYmHxz77MN2p0cA5BANS7qSCuoS/0dxZDQq/K0OA==@linaro.org X-Google-Smtp-Source: AGHT+IGC7hD0clTA3YBwXnOvQ+DZL/2zDdMIv5MfGGpB5hijAW8huxiAtfxrNLeU0I75ajhxJK9J X-Received: by 2002:a05:620a:56a:b0:7d2:265:c2c1 with SMTP id af79cd13be357-7d20265c30cmr1402686885a.27.1748938331787; Tue, 03 Jun 2025 01:12:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938331; cv=none; d=google.com; s=arc-20240605; b=IdznV6cc+cHHS5aL1Gb0EhnFf39gjfTslpDN1QWY9XayMh+FH1+ZiOcDyZEzvDzaWe z9Ca/ZP2fcJaA34v6tIPPPngD22a/lFwMxlKmQ+h6B/rfpNqFRL/V0ix61lM5yZytDVq 8zbYun8EcHMgQWAVv6f2BzzFJwo7F8AQYZGM3rTV1u1+fzMhgr/VbJOoliygZU7w1mKA bwirdZNxEMSM4UOJNY0YJ/59SCkXoT9kSKtTXWOy3kxfL2UQNnarl9Mg6O7rOJb1iAGL 31MrknjwpFRFgusB3xuiK8Fe/0eKke9lJTQSrlCJj6WqBDfgruFyUl8oSkotHrEGu885 LX5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xymrH7QM4U86RLentxPog9De8K7YteKDldYGgug6hEc=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=NydsAmRrSH/sLwalkU7sICay9r0jDegMJOgWDH8IZLMiBgXLUmHtHmVXSg2SgTG1cw UrabV+PywiUUFUKAM2yykjWGLy8XJNY5cLo7gvGpeI5zaG/aFQ3jcXSIdGbrnlrdCt6b qJj9BEp9G46ZCEYmoIgHA2t/zd49MYFk6wm0im8hKfZ8LskMJ3irVG20nBIWQMJtBLuH qfPHIsiqIyVQJN7DN0jyVVHd0fGbkuOxzgp0JG/YuohN7NkL8u5ZN8iRfQEVKUTPVP5w f70SavB8gBL+DoQQh0dLkY2YZQteeHDdLnlNN9AoSbcE3fzfmm8tt99oOVucjU08jAZ2 eM6Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OkGZO+HW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a12d7dasi1218792585a.137.2025.06.03.01.12.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OkGZO+HW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMju-0003UZ-Fw; Tue, 03 Jun 2025 04:11:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMji-0002aM-Mx for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:07 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjg-0005nw-PB for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:06 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3a3798794d3so4503071f8f.1 for ; Tue, 03 Jun 2025 01:11:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938262; x=1749543062; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xymrH7QM4U86RLentxPog9De8K7YteKDldYGgug6hEc=; b=OkGZO+HWoYg9Dwjnk3N+YR3EEACgvwgiPWjjyNCb8wC9sWTnmMRIcN9yzE88ipv/4t WogITvsRD4TNQhMKGjo/n9SauzAbwcPdjAa2U2nOIIPIupT7JT/3zomHzQsxqmtn2TE/ +MckmKVathxMaVeOB6n9uWVlsVKDJjMhjCQTrwO3S+vKJom4BcL+iOB1ghwJVrZrdJWl N7xGAX9TFO7ntdrd4wOpGlmyo5bA96mL5Y05jQN95lm81m4KlvxAqeiTq7C71IZQEeIn d5hId0huY6z1LUr0zYdb522jwCZcN8lD1moX1f/dSjjNhHg0ZkKTx4XYzuyvqAay5tAY +oLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938262; x=1749543062; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xymrH7QM4U86RLentxPog9De8K7YteKDldYGgug6hEc=; b=LbiGvEu5w4WzlA9KA1L6b9yJbc6RoJ51ecGAiYGKDHpsA+9upLpcbcCL+MnaAgHnd6 LjjmSbkJKE09AY0f9w+bwNW7ubLTrpvx8ZKgAoU1oHP/Jiq8k7D3qW9lurLC0ZPY3/v9 uJHnENpqELGyqowREr/krz9feg9iZuws2tkWnBZacKOEpzTyepajgW6H0JBSYqS2uzdl NToLO/P1f3g9LHOEeNmOyovqk4ubllk6uKoOAN+fy4sFZpmKp6phO1walfgM05osn+QN BEFNazWhBC2cTjmgwrWZyNcbCCRsw5OAK+v9K8dwfD7H+k9eBt44OqXpgrSUrngisZit mluw== X-Gm-Message-State: AOJu0YyrcfV/H9Gp9iRxJTIcVTnyWSbIL/qQAHLJwSLI0ruppgIDQc0t zbp5ys46WZPSgxANaGsh4nMFBO5U845C1tn5lkF8Rs/XW9TAUhqhgDHeuDv1MswlvEWWpv+R8O1 bmBpLWSI= X-Gm-Gg: ASbGncvAIpGyxfxcUOTyMmhtmtzw6Vba20djIGvau41UYbAv+LjkKARw3V3EaJgMtl3 mfpiB/rAwKrVLC50yJK1XYEDS4pIdbmyUYdgDu+m2XxSykzyft/0skYZqoMNH8gQ7KAMI5ZA2pp 5QDC6PfqOAj5cbVBHaQoEL2GEU1g5PqC29G6VIf6VC+6LK1A3yAsxntO3NJDHQdFKDLoXpPhW3g gX5QUPRbehTaZ48T8zncpKU9fxKjxTpe3eB9bP1vGl/iOdMtFe1TFRO8o9FkUp5nSSqaD1MPuay c9flqQ0Kg/ysMh8f5PFMnm0GandEBYTMM89cE7bhQlYZ4tY9cNO8+OOyvL2/0D5e38f2hZqQ4RC x6ewxDggE7t4IoOkTThx2Ve8= X-Received: by 2002:a5d:64cc:0:b0:3a4:f379:65bc with SMTP id ffacd0b85a97d-3a4fe39884amr8620072f8f.40.1748938262026; Tue, 03 Jun 2025 01:11:02 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.10.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 17/27] tcg/optimize: Build and use o_bits in fold_exts Date: Tue, 3 Jun 2025 09:08:58 +0100 Message-ID: <20250603080908.559594-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 86d958267a..103c94b12f 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2013,7 +2013,7 @@ static bool fold_extract2(OptContext *ctx, TCGOp *op) static bool fold_exts(OptContext *ctx, TCGOp *op) { - uint64_t s_mask, z_mask; + uint64_t z_mask, o_mask, s_mask; TempOptInfo *t1; if (fold_const1(ctx, op)) { @@ -2022,17 +2022,19 @@ static bool fold_exts(OptContext *ctx, TCGOp *op) t1 = arg_info(op->args[1]); z_mask = t1->z_mask; + o_mask = t1->o_mask; s_mask = t1->s_mask; switch (op->opc) { case INDEX_op_ext_i32_i64: s_mask |= INT32_MIN; z_mask = (int32_t)z_mask; + o_mask = (int32_t)o_mask; break; default: g_assert_not_reached(); } - return fold_masks_zs(ctx, op, z_mask, s_mask); + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_extu(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:08:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893849 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180405wra; Tue, 3 Jun 2025 01:14:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXEuKwt/1Y4r5NTS2Q4e2p+3DoMo0wuQ9LDqTtFA8yNEsdrVJ5fVWjGY4Ll5ZyNofsjQvcq9Q==@linaro.org X-Google-Smtp-Source: AGHT+IGTfR3MebPbCR9zChMmNMCJYBIh1I1pncLQ94A4BYAs9MyHfjgCDt+Dyyt1lAiD9XbeEv2I X-Received: by 2002:a05:622a:4d96:b0:48b:5656:bb01 with SMTP id d75a77b69052e-4a4a5e90199mr150972091cf.10.1748938452164; Tue, 03 Jun 2025 01:14:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938452; cv=none; d=google.com; s=arc-20240605; b=RfkjAxvE189lc8Xl/PhfcV5okduZUXkZTgl5J3z8B/6jqTBz1YtGENdwTSsId4ozF4 tlXM7GpqLUAIoFu28E4WZXglvOC7vkRhMI/Hk4pW4F34ZVMl1kqurSeVJf8/TQjmxU5N wsjK3rLHGBtFnuiBdZZI7rMRQKXwwvkERzWzLITTNpJMdXZBbOXO/pdE4QgT0rWdsYHf WsF6kisEMGNe0adP5EEOmhwCFqiTFPwNi+mOH8xG+3yIokfObtBMcL36Sp0UP5gfcpNe 7q+DUO1bl0ChpiCmZZnbKlQTuv9E/6G4E6JlnFnGVhejn1mG0bteOItJNmF/Tp+SotCK Nn2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=+GqWQo+w+tjyq4sllYwzFk28p9KJiT8wTCZDpo4XdKE=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=SeDZHmuJs3sbtRn7skOBmw4ouyvRG8N49QmUjXY41Vd78EsNMJI71zcd7RYOgQklKr 58dgISt5W6j0iIVX5UbNIWGd+2hHdd1cU52d4rfw1UkZK+q4zj0hC/J4qGl5J1ug/8N9 rv+F9YHHgpESb3c5NC6Z5HjyRP/yX2V+xBR7sHkvDS9Or2d7bapS1toi6bATVZlRVvvr q5qJAtcMHJ2vmBs0AfS/9uIxE2qr9ZY/sZSTEZj76feMazRjOt7FWsP6NzUxUZNJcRR2 t3KoBcUDF5FfgjVriACe9e33CkQy6hV6Ihzbw45sexgaKeRK9vzZOKA5WJQH+IXf/Xbm 8A/g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UzxohZL3; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a4359f8e70si125210461cf.255.2025.06.03.01.14.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:14:12 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UzxohZL3; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMjx-0003om-H2; Tue, 03 Jun 2025 04:11:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMjo-00033E-4w for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:12 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjm-0005ow-2K for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:11 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3a4fdc27c4aso1613710f8f.3 for ; Tue, 03 Jun 2025 01:11:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938267; x=1749543067; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+GqWQo+w+tjyq4sllYwzFk28p9KJiT8wTCZDpo4XdKE=; b=UzxohZL3NHh+K5DQB1YefAO4pGK6jN9FrWXYdqOkNK3Obw59T//D/2mWTf/dDTtPgk Tj2JtTWSd/DQiPCg1VyMAFzjwEtGfKZt0Fl6Onu78QBMlMzFsMMhluTkymyf0aUCafwM lIFshBdYEUa4yuYyKmOevVkKpDctN1DXRTV5qSOE/f6VgxMNmEDyItgWc3DeSb0RafpR cl86jFHq/S7yW0c6NXrHIfZbrZ2Ij0twoCX4thA2zwOjVFvIiC8cWhmDJLcxD3wP+haD +TccMpku3JTU/Z+dsQ1VbF1v+vRxEYYM3gptN14lh9VvNa4LnXKvMp0w8PqYo2t9DLy+ j68g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938267; x=1749543067; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+GqWQo+w+tjyq4sllYwzFk28p9KJiT8wTCZDpo4XdKE=; b=G1xm6ukpQcUsm+BJ8ofYHTsGOrKtsGOMsZYqAfCCIgEs0i/fFcb/XzwT2COJsYdGb/ 8mrOrYdhAAFxzTca8aMUOjxD8jH0RspCON6Aw54slLpW6TD7fGgmlsqbEeW67kTXGBrs b6kvqdr5WwiPEM3eszlXZzjfktY9lPQTxSJt8SP75ONKDNKN6q/xI6TOCh54Hl9tncnx JQZj1SpVr5BS0tOenhykNfPAK06sQbGwO1gtwuod7LGqB5BfLjAKZgjFYYb8X31vGeyg v/XhfmhWXAhzCaJOWXQpkcBG9HfxUUqE3S197TRWsiEsJU4sZAujuSw8hI1gJd6vL6qd 7+7g== X-Gm-Message-State: AOJu0YytE0Qj3ATpx09BoY+198HDOyHOCHrY4oETFKKo6TfaSio2U6rh oDQ4VR3EpvQgXYipf5cIxa/051xYIUWmvE8zQlDEnu4BJiorWM/XqpbBHrKRMYYuArADVmy+c4x v2yOXoOc= X-Gm-Gg: ASbGnculWe8f9ZWABM84zrUHgq4sllhrAFY8O8fJOXywDyoUIiB0b/pDWoYypIZYqC4 MpyaKoGVOYEFGuWPU/RhBR+g22whF6ERJf2doJPHl5Kpil/xbyXbZeCdCp0HFkDqV93IDUlhY8l fJdw/ijGveJlsmK7Ir4zBb17o2mvLo0E9HweCPRZ9yJyoAv8+aH3EqsjsVPbEHAYStYN6uZc5X6 B1MOAFgipwRoDZeiYenekSQw4ZArWoi/CuWQOoYcVoqAZI6m0wub9zNlKFyRX8F00z34cOb0dbP 7igGKZMCLqUMLwXMtpXuOO0GjUWJ8+d7lh4TAn95bhes6KCLi/svRHjjoch1DZVZuL4i7DNp61G 3Humu6oIA5RfWVxUZkbT2hogt9ibcpjsjZA== X-Received: by 2002:a05:6000:18af:b0:3a4:efc3:88d3 with SMTP id ffacd0b85a97d-3a4f89ddd87mr11965415f8f.28.1748938267189; Tue, 03 Jun 2025 01:11:07 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 18/27] tcg/optimize: Build and use o_bits in fold_extu Date: Tue, 3 Jun 2025 09:08:59 +0100 Message-ID: <20250603080908.559594-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 103c94b12f..42d5ee23c0 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2039,25 +2039,31 @@ static bool fold_exts(OptContext *ctx, TCGOp *op) static bool fold_extu(OptContext *ctx, TCGOp *op) { - uint64_t z_mask; + uint64_t z_mask, o_mask; + TempOptInfo *t1; if (fold_const1(ctx, op)) { return true; } - z_mask = arg_info(op->args[1])->z_mask; + t1 = arg_info(op->args[1]); + z_mask = t1->z_mask; + o_mask = t1->o_mask; + switch (op->opc) { case INDEX_op_extrl_i64_i32: case INDEX_op_extu_i32_i64: z_mask = (uint32_t)z_mask; + o_mask = (uint32_t)o_mask; break; case INDEX_op_extrh_i64_i32: z_mask >>= 32; + o_mask >>= 32; break; default: g_assert_not_reached(); } - return fold_masks_z(ctx, op, z_mask); + return fold_masks_zo(ctx, op, z_mask, o_mask); } static bool fold_mb(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:09:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893840 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179723wra; Tue, 3 Jun 2025 01:12:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXBbUdvffhefUswQslzsbwsU37ZBlYGZPPkoqks8pMFM2rFs78vfTZu/ABY2Q2ukCxum9T21A==@linaro.org X-Google-Smtp-Source: AGHT+IH2gCBDmHA4u6Nw0O4MJb+aiJdHcdLDnvJGJUUrWNdeQOlgqnvbb/NDLyYvjsjYcnQc1Bro X-Received: by 2002:a05:620a:1929:b0:7ce:e8d6:37d7 with SMTP id af79cd13be357-7d21154aa66mr266415285a.4.1748938322443; Tue, 03 Jun 2025 01:12:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938322; cv=none; d=google.com; s=arc-20240605; b=IirD0kHKaB3+ord15YlBTCqPImHqss1dGRNeLZaYrmQUruhwTK8tFaPhhPZNQsK9wa tQaw4etikg3kc7tOzfFGJcvDG6kBZwxzz7Pq9CWXX9Bfu0MquE92LeYLZDD+6NtVpham fUu08Mfk0VWsBsav4zMnkVjF8r0QyjMX7UGUTvu5IpQxhmlp1/eYSjhtNmR3mh1pEZGK YF1QS0e2KiHYD5adkNrVLzB0p7JT4L4zmJk0zuDhCi/7ptRGkKq4p+OCDb9tTVJfkWUl nXrJFhw0BNkf96lvIYi6tp/wwXmHDreWvMV6m+neV8lHlreaBecPnMtBsnwjgTxS7iH2 9b2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=imo6l4YAJCNpBwtK2gFvupgfZPyatWqKQn0WtDN75Hg=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=XaHtN4q0OoLVB+nQr0XEEfpqP8AMgEUe58XzgLWQ6gGXi0/xwBDelv095StVCkY/Z3 fq9Jmgm6m/6rCUkQmkePJ5cmP1uqx/6KaqWKUOnjNFo9JC/S8eoa49P7fCp/DzlZiynk bejE8zd3TCxRcNh33orhjGpTjFAKNA97wl6msSswQaojmzIwc4VQTSLI5HlvXF8FAZJf 86fk06aEwLlFhbuO98+l1uIDqPQ8ecpUO0VGAAOI/krOt96rzduJyMA/wFvKNw1Rgpqm lUa4O5VkFpSSQzjAarycdqaR7zzWnF7sxo6p4RNwAIeRddzA57cLHtbK1q2NmI9Dckpr ecUw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FAYGwiNW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a12e6adsi1210188485a.144.2025.06.03.01.12.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:02 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FAYGwiNW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkB-0005Z0-KU; Tue, 03 Jun 2025 04:11:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMk4-0004vC-Gf for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:28 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMk2-0005rJ-KO for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:28 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-6020ff8d51dso9128271a12.2 for ; Tue, 03 Jun 2025 01:11:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938283; x=1749543083; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=imo6l4YAJCNpBwtK2gFvupgfZPyatWqKQn0WtDN75Hg=; b=FAYGwiNWCu/xW6Hh1riPXXTxIIrRfHN/c66ePQ3aG5L2vBaVm39jbkW0yq7K0ygryu oprn6eKekBEa6WVDxVVFKteJ0vRNTk02LwSoBqRNHXsWtB0ocK/b/vkUctKxNad3BM9b ADAUHS87rCd5gQOYsaHyvTvSQ+mVQPeDIw0Eh0AitpreduW1chyhtfLEpNTyJ91r0EZw +lTGNxG6gNVXjQLd7b1FinujUYudoB+3pZJLmqt80XRKNwj3YyIgafxMkiGohOKTQbKK glxlkjegVP7AffF2DjMiEN2oU4U9hP0LSnP4r5B3JTK1XgxNCWNHVp0Z6H7hXZml7Lpm nLYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938283; x=1749543083; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=imo6l4YAJCNpBwtK2gFvupgfZPyatWqKQn0WtDN75Hg=; b=oJzRV9komP8uiA7xPndXwJYQxgAfQzKe0YnZ9uPjbNyVfXdWaELsUZfgvUGdzO8NF8 tY1TP/lf3E/IWqCuzfmPiwqow2bqvEPLrl0Xy8KlPhY1z3jilp9sDCHAeQDTH1Al9R4L 2BvbLExIYtdzgXWpI9icevjvaQ+4+0c9sVfb21ljaHg3NRiQ9gFRq75YhPFbVnaL4hPG Mz0/ipugM+GofYhgFb7wV0yVY0NUb4t3SBEX+4xS8/JIWUwCzVLRu0Xi7wa1gIV3SG8M 1mR7hLik4w+pgs54Bo2maJm/NQJLnUju7VpGkbRtKxj0wqqLqE69rFGSIQsbwsoLGMdu EKzA== X-Gm-Message-State: AOJu0YwsWczyEH7rBdcsaw8g/QJ4XMivTKGL7F4I0Q/wEN9jul7n/ndn zSdiV7iRRl1CJXYAu21vr0+rvV+niZ64pJHBmBOCFJ9vS/7kDfyhTuyyhYsBlnt0yiltR2ktlB8 vofXCocg= X-Gm-Gg: ASbGncstF6ANdIK+pT4CAVaTwnwb1R/wKHp63bnOZArXHPkwGedByOCETBLa7k7vLJu wDswKNVpaeOwBvY8ls2NCy4WOZc54e+3raAs8DxsqWullM+YhbvWSds08KaNL7jqAcU/rUu6Eut FaWx5U/Bbr+kmaKqa+I9t/LGY3dnqn5ndtCWHM61fnvo5AmE8qSHxs55LDuThFNreCdZm3tS6yX 14VRT0Tz2z4bx4SIrQ+4ZXkfwXBg4yxdNI6wjgBmWaDT80vYNlezjyglYltDC/+0OTbovBEABYv +wgD40SbHILLCfjrunB61WPUxj3qusKhgdw3aLEZcr/pCLh062l3MGz9+lkV+1Ec7AQ1tUJXTQY 68hiqPIuw0YodhGlp8Me++K8= X-Received: by 2002:a05:6000:2901:b0:3a4:fc3f:b7fd with SMTP id ffacd0b85a97d-3a4fc3fb82bmr9282150f8f.19.1748938272569; Tue, 03 Jun 2025 01:11:12 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 19/27] tcg/optimize: Build and use o_bits in fold_movcond Date: Tue, 3 Jun 2025 09:09:00 +0100 Message-ID: <20250603080908.559594-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=richard.henderson@linaro.org; helo=mail-ed1-x52b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 42d5ee23c0..abcbee9111 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2097,7 +2097,7 @@ static bool fold_mov(OptContext *ctx, TCGOp *op) static bool fold_movcond(OptContext *ctx, TCGOp *op) { - uint64_t z_mask, s_mask; + uint64_t z_mask, o_mask, s_mask; TempOptInfo *tt, *ft; int i; @@ -2123,6 +2123,7 @@ static bool fold_movcond(OptContext *ctx, TCGOp *op) tt = arg_info(op->args[3]); ft = arg_info(op->args[4]); z_mask = tt->z_mask | ft->z_mask; + o_mask = tt->o_mask & ft->o_mask; s_mask = tt->s_mask & ft->s_mask; if (ti_is_const(tt) && ti_is_const(ft)) { @@ -2145,7 +2146,7 @@ static bool fold_movcond(OptContext *ctx, TCGOp *op) } } - return fold_masks_zs(ctx, op, z_mask, s_mask); + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_mul(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:09:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893843 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179873wra; Tue, 3 Jun 2025 01:12:29 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUb1ykB47G+KpsXHL8sYX7k8Nri7JDJRAPYG45+nlwDhQgABUu9lYdJ5WMR/jX+Y2JnuUnYRA==@linaro.org X-Google-Smtp-Source: AGHT+IHGEu/ik9Z0w+Zsd6z1g8gKNetoRYzsE5A4/VNEW049qEbYwpV7dzQ9Z+KU2ZPPejhokbM4 X-Received: by 2002:a05:622a:4d4b:b0:477:4df:9a58 with SMTP id d75a77b69052e-4a443c6ef39mr265477231cf.18.1748938349042; Tue, 03 Jun 2025 01:12:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938349; cv=none; d=google.com; s=arc-20240605; b=c33TfQa/FW4oQi09Wv8giG3D5bvuXaAO97qlzwaqX7ky4bX8W0vj3TI6ABxpokTyaP qvPs1g6siavgCyAPeLPN1m77s9X14mzSIh1GBlSD/Hi4fa6GH6+2AIzSgbOpkAfFXG0X 565yDRvLTb+TOhPxrh1KgcMKyc4dpYB+QU+Y+8IZGn28X0vWbNVtB0y6mEZr2IkDpVod x78QT5q40tbh35AYliqfsh9cuTfMJ1mSAmCEhELrt6LkmqfODH6yJhwA1T9zHmzrvVeL vLdCcaVBhtrHoc5EHGFtG1BJQyLeDTaDre/GqyO/WFQPwvG012S0pOmAwMT66SagC56y CJpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jLyCJWwAAJN3vJgUym1RFGXdMsRqGuFjKTLnad9b308=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=CfpG4qukAAy6guafdygtaXSgED8qH3LKwobNByTaphAWnq841fV1yn7U6yajxBQxQ+ 8gVvOXrZIOrlRiF3m6qu6GEULUOq1Q+d49QDPTOT7Y7XbTNiaWmFuwV4a2nAKwN8/Kjj o5ZMYMUG2KzKso527PRRnxpEl+R1L75XFkNly3bvhZWbNMQ91iH/QSY3m8oRMyOI/jyr gx9kV0ILsuEzGL9UHwf/J4mp2HOLSbzUb7I8N6GpLViK5UPdNOTFnPefL+xQed52uiKh MipCrjuGOOJ6LsEto0eyrkKJm13SGgevzyz71GEGxJA7ugLeFYgyDrSovvX/QwVDgE9k fiZw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="k/LSsmkY"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435a5e495si124462351cf.491.2025.06.03.01.12.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="k/LSsmkY"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMk5-0004vY-9e; Tue, 03 Jun 2025 04:11:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMk2-0004VO-5V for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:26 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMjx-0005qg-8v for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:25 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-451dbe494d6so19978025e9.1 for ; Tue, 03 Jun 2025 01:11:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938279; x=1749543079; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jLyCJWwAAJN3vJgUym1RFGXdMsRqGuFjKTLnad9b308=; b=k/LSsmkYguol8tAhKuR2EhnDRvpYUMcUJot2em8CjMu7O2HeL5t7PK/LTmczuJEww6 Kvgr4v8yzta1YrFULbgfNb3MpeOjH05lAXLpNLVIy7Oajz1l4/xkFpuyIpUC22tImcKI vXvuuOegECqos3fD6yoe7W6F/L/s3wuXZRmtlDyp/j+QJWx0aOX8f3aBgdeQuLZfVENf KdfdcTIifQ1S3LuzWXjdNHP/7fTTODVi5WbUdFgo1wqzYTbvOywHNeBI40oya16D/2xu TAph0B4R9zz6pNGR5h5sOAizawD78oTirn9d+ql63G6ByI3A7JCgixl12vJmBD6JiCcw k1Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938279; x=1749543079; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jLyCJWwAAJN3vJgUym1RFGXdMsRqGuFjKTLnad9b308=; b=jxytURGaIxfm+lWrvr6QjHV8cqEv7ylYe8BBsJxC/llnP9R7J6ZTImltrX2AxSVrA3 Na4GGbSX14jUKfrmpPdmGsAT52RhX0VKhIJ14SXu08Hp14uZQrPQFUnEmrapU0yL2/nv yamQKaEWrJta47ghRZRMaoHK7dWW5FAvFTFlQQ6J7CKIC6D0wiFwwI0ppRraxLDINhUf F1RxcJwz5f/0Va2VexUGgY57UMbLVQJDQymJqzdeiz4lxCCDNITfRiui9kxg3pR5G7xL 41sqCWDR4IZLyzOogqsV/ZDAfKypG3I4W0pbwVZTfEEEJfQJ183mK7SgtB/PzydGcFOe KQug== X-Gm-Message-State: AOJu0YxGL3xC6aOseAjjJ06JgwsIKuEgWUiMxpYvqK+NSQj6T77e8bsf EQW/XpzFwnYdzhztwKvnk+05sJum7IcQ4pWsSF6EE6OraxTzYKEsxA1IUdbAB6I+kL/MMfrjF5B Hd50aJSI= X-Gm-Gg: ASbGncuAXBo4+OH1WyTx5Gkcqa4ry/1kFd0mzoJU56aYITrDe1VnySjUEhNBnA2pfCs ir8yhf5siM1jpOCWuifWVRX34v8Xagobh6Pb4rWn555j1ELhNCwgXvIe+bb4LxZM6v7N5i5/7R0 EZ1QXyKdGsmxbIluzZAFJXlg1/qm/mppLRRZyWOlJ0LSnIpPdPcvL41R+NuMTflbNjOyfOFEH7A u+CDWhKtmygi1TOaWeyGFvBmcPac3xG5RJ9yE+CqcsaXBUdxtAN1p4VaCwdcewQPW0DYj9FQsdH M3g8MLKmqtfnSxOaUc8jT0yMF4PeqnPlSu9tLrt4mLPIEP+AZNrMu5ruIN+vNG5vTrE89rlZkiv gasCC1KBck1mO X-Received: by 2002:a05:600c:3e8f:b0:441:b698:3431 with SMTP id 5b1f17b1804b1-451221a1bb4mr76609435e9.28.1748938279338; Tue, 03 Jun 2025 01:11:19 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 20/27] tcg/optimize: Build and use o_bits in fold_sextract Date: Tue, 3 Jun 2025 09:09:01 +0100 Message-ID: <20250603080908.559594-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org This was the last use of fold_affected_mask, now fully replaced by fold_masks_zosa. Signed-off-by: Richard Henderson --- tcg/optimize.c | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index abcbee9111..673849f07a 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1121,22 +1121,6 @@ static bool fold_masks_s(OptContext *ctx, TCGOp *op, uint64_t s_mask) return fold_masks_zosa(ctx, op, -1, 0, s_mask, -1); } -/* - * An "affected" mask bit is 0 if and only if the result is identical - * to the first input. Thus if the entire mask is 0, the operation - * is equivalent to a copy. - */ -static bool fold_affected_mask(OptContext *ctx, TCGOp *op, uint64_t a_mask) -{ - if (ctx->type == TCG_TYPE_I32) { - a_mask = (uint32_t)a_mask; - } - if (a_mask == 0) { - return tcg_opt_gen_mov(ctx, op, op->args[0], op->args[1]); - } - return false; -} - /* * Convert @op to NOT, if NOT is supported by the host. * Return true f the conversion is successful, which will still @@ -2669,7 +2653,7 @@ static bool fold_setcond2(OptContext *ctx, TCGOp *op) static bool fold_sextract(OptContext *ctx, TCGOp *op) { - uint64_t z_mask, s_mask, s_mask_old; + uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1 = arg_info(op->args[1]); int pos = op->args[2]; int len = op->args[3]; @@ -2679,16 +2663,14 @@ static bool fold_sextract(OptContext *ctx, TCGOp *op) sextract64(ti_const_val(t1), pos, len)); } - s_mask_old = t1->s_mask; - s_mask = s_mask_old >> pos; + s_mask = t1->s_mask >> pos; s_mask |= -1ull << (len - 1); - - if (pos == 0 && fold_affected_mask(ctx, op, s_mask & ~s_mask_old)) { - return true; - } + a_mask = pos ? -1 : s_mask & ~t1->s_mask; z_mask = sextract64(t1->z_mask, pos, len); - return fold_masks_zs(ctx, op, z_mask, s_mask); + o_mask = sextract64(t1->o_mask, pos, len); + + return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, a_mask); } static bool fold_shift(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:09:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893845 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180008wra; Tue, 3 Jun 2025 01:12:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUx6W7XeLTRtvCYaOTWU4yQKdL5I+SEYMboX2kF3H1gB90ULJrWhHND1YdUHfcPiToxOZlR9g==@linaro.org X-Google-Smtp-Source: AGHT+IFjxE3ABlU+qN+4PVbjsjAx/FTXlx5xfdE5l9O/heIt8YB5kxhihXfP1BtwUnpUYvRdX1gp X-Received: by 2002:a05:620a:4012:b0:7ca:c9cb:ac1 with SMTP id af79cd13be357-7d0eac3f065mr1609942885a.4.1748938371626; Tue, 03 Jun 2025 01:12:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938371; cv=none; d=google.com; s=arc-20240605; b=I1G+inyH/5JEXGHEGWwsysKf5UF8ZBNV2DoSxAWZwoVr0oueDDAAuK9Y4YO6T5xJiW THi1kOntDSa/NKmSdXP0J43n9xixg18tZoZ1YWYs9O6QWmBb45cX5cO37LLJTxXiv2Op itm8QzHgnBzBaZUTFSbBPk+CH4+TcIfoo1uZK1/gN8BqKyqMvlD5PnCSXkBLwT8lk9tQ ZtgWvnZ78MvFJywjqXSav0vuUkVDI9d2cnIWviHMGOvGZaZ6vkNqKmQSVN0JwVEawAue vxR9fZDDIYYRkqbuK/8rsHkDDQx8KtQ9T0Zv97bzgawThKDYKlCgoFPpVOcFqhHbxhML HHLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6tHAVSHiF/BVRJDZGSakF1c3dFxbLYF+WOUXWRiDRyY=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=fTMGHollu8437J+6p+VBIitj6OMt5PHribU9qXSjl99VogUakKx3Bf5gkI1E7mFkkq fmD83OCQPU+K5LHuQJs+J6SANVYUFJovyKpezcUp0szWA9e2ZXAhb420P7QLZVr/DWrx g8xrnvmjnEVBN/Zu9+Abub5faT3joEh5rWq1Bu6rj4Do6oldLqvxqnIAGYrDqze51VAC WRJH3RKIEE/7MFDk0pR3rWPnj2KgnveBhsmW8LJDTxQ71ZpORRBBa+K9JCTGkZUnRLX0 9IRb8Hwzav14XbAZT9B2ImCt13ARv7VbR5iXIVRMKr1eWWeU/CaZbGVWMuomGGyGF5wl GP9g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BDuNkshq; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a1fc0d8si1222546985a.397.2025.06.03.01.12.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:51 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BDuNkshq; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkC-0005ZN-0E; Tue, 03 Jun 2025 04:11:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMk7-0005Gb-Ip for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:31 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMk1-0005rM-Gp for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:31 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3a3758b122cso3504895f8f.1 for ; Tue, 03 Jun 2025 01:11:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938284; x=1749543084; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6tHAVSHiF/BVRJDZGSakF1c3dFxbLYF+WOUXWRiDRyY=; b=BDuNkshqWHvJaZbxjd+L33vcCzuwgllmzGRLkR9wEOSPLnQQBT63htT4WFTHqhWUGd 62/v/TnKkQSyyWRyznfsmOZRo6yO3/q8rf3hWOJz2Aipofoy4gD+KhIW19SW4ddcVfwO p8tiX6m8El7bYNL/432JbBGl1DB0x7bZhaJGsdtSkE6PT+RJCYNNF6Cc8m4gQ7dt989B KePBtSYMZ4ruCfiEXwDFDU+f8jyQ5XEoFhceW8bMwiDcuQFuRov1beXnnzyxkQwL9J0w tdULu7xKSWRdMvJBCHLGsuB8VBu9XW4QnfBLOXyLp4FBwnjyjEjsTjxslhsMLV2DKARg 7kHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938284; x=1749543084; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6tHAVSHiF/BVRJDZGSakF1c3dFxbLYF+WOUXWRiDRyY=; b=FPjhrNFppMXUsgoWZhkpY8a8YAkGhIo4oEW7ST6JuoD1+G+4sZRL66nlK6ENue4Qqe oWB16joFg0tckXCIeXHMVupQ60HX7IkP/dQMBt0rV8tWyR0gL9/guj3Ws32Juj5ErqU0 yaH9YVpZdIlkfw1EUbTVc5JMjOv8i1VZUz9UFMaSXFm/SZ2SQTg2iDq5RQU69X2VpfuM kFiE2vHucvdJXOEcY2C40HHZCU9yVNQuYu4v2UQvge9IaZpDe74J8l1rgT4NK5YGDcqf gqB1I98n0jid8/Fdh/MPjHPg+BdhynP+HInWctVo1kc/C9vDqD9thcPBCCXpdogKvhoK WMMg== X-Gm-Message-State: AOJu0Yxd1Fy+0UjvacI4wUfUFlYOJlPq/wnrtHNO2MVtCIAwrh1Zgl7O q0uMY6rFaDoiKa/AoyyS5f4qy4XJwIAktI6KDPFg6a8CJ67Jsd82wX/4PYZWNuOoEwxbfUbAFoW yoKoOOk0= X-Gm-Gg: ASbGncsZAsdANUtwlrhv9h7Z36GyzmES8bgc8To5wpni8QfN2uzYcyn1tPU974Xgf1Z M+Q7s1i/Hx8mXC00V4hNt014aNwOgQcUgLWK5N2WksuDUIHdUUVOJomDO3+bk3vaRBgYTaiwSbd odWg3G/zaewS/EuZxp0aUJ5c0AYZ1xXKGEsX/No8e2F2CuXI99xuxr4t9q//nW/pZ8I4DKOlT6P hZ1pg4bK315GfuLLnY3LJsUIMsyySDIAAqT4h92lx1Ltjt0gQ8WJw13S6nmuMGWjC8dTIebq0Rj dffLyd8mxRSDHrn7zfo+JmQ0rdSi6O2RW5IucTQU6s6jcl5KHd9UThkvcUqZDfnEVxO4HG/KxOy qkdlFgbvIPGzDbWZxHQ+e+rM= X-Received: by 2002:a05:6000:4287:b0:3a4:e6bf:38b8 with SMTP id ffacd0b85a97d-3a4f7a6534cmr11264733f8f.30.1748938283683; Tue, 03 Jun 2025 01:11:23 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 21/27] tcg/optimize: Build and use o_bits in fold_shift Date: Tue, 3 Jun 2025 09:09:02 +0100 Message-ID: <20250603080908.559594-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 673849f07a..0b441bc611 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2675,7 +2675,7 @@ static bool fold_sextract(OptContext *ctx, TCGOp *op) static bool fold_shift(OptContext *ctx, TCGOp *op) { - uint64_t s_mask, z_mask; + uint64_t s_mask, z_mask, o_mask; TempOptInfo *t1, *t2; if (fold_const2(ctx, op) || @@ -2688,14 +2688,16 @@ static bool fold_shift(OptContext *ctx, TCGOp *op) t2 = arg_info(op->args[2]); s_mask = t1->s_mask; z_mask = t1->z_mask; + o_mask = t1->o_mask; if (ti_is_const(t2)) { int sh = ti_const_val(t2); z_mask = do_constant_folding(op->opc, ctx->type, z_mask, sh); + o_mask = do_constant_folding(op->opc, ctx->type, o_mask, sh); s_mask = do_constant_folding(op->opc, ctx->type, s_mask, sh); - return fold_masks_zs(ctx, op, z_mask, s_mask); + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } switch (op->opc) { From patchwork Tue Jun 3 08:09:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893841 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179728wra; Tue, 3 Jun 2025 01:12:03 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXr5OFCLL642BFvptcrgPvNXThWAFj+dxGo9xPyjNfpN2hrQVVhivfvAVHoYWaF1KF8pDixZw==@linaro.org X-Google-Smtp-Source: AGHT+IFB2htFf1OOaRZ8sgXn/HfjgkWh+GLiePWehJjSEhiBqP2te4WyxoUz6pn/G9GEr2fCyj5k X-Received: by 2002:ad4:5ca4:0:b0:6fa:c45e:34cb with SMTP id 6a1803df08f44-6fad191193fmr214634416d6.5.1748938323128; Tue, 03 Jun 2025 01:12:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938323; cv=none; d=google.com; s=arc-20240605; b=UK2FEg6WjdeF5UaLXrTawdSCzFkA57IYArJGt4QRhyyn8EHJzaZ8vSnTY62OCigLpF JXfzCL9LURApG6T6kOvYsKvLiMBBnzv1WiLr2ZgnRPltF14WqHiuu88W0VT/0Y3e3wsb zkrP+lsjNwBmMG1tOQRQaRObI3rHsNr6YW79g5gSY04vYuL2iGZa6fzGafZL9Fa8bLDx VYXeQ2WALJclzgHxL85BAXSzKT63UZd5mcais1qdFlePC3mLe3eko78NKLnTS9b8LA50 6OPftEovF0l1Up+HsMuv3BZfQbCybzhW8NSF99vFvv9zeL7tHkLVVjc+WtOGsQJuHIcw iL0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=W7U4qvIdnSjKEmKjhZg9LPBWKFbOmg9j7tuwb6rQ0l4=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=H4EiG27UmiNJms8uUVoChfh5pZBSNgBDFbncJ6A7k/Bj0mIHP4n1m0jzR/KeDlikjv OZQi34R/XvN0oFxAyavIyWaTFfvygSB1YdOIfCrpWGBFkpiIXEIpSlQfHnngsfioIUnw 0JgNoR+ndD1rbeSiY3jF44nrly8HxrEZJ8DwQPcBug9DvQahjlg4IJdPihjHmjnk6imu uYdTLUJ/n+AGphlnvKEd0FhvpyJM5gF3YzMH75M4Khdn40TMzXm2DXCnIFQJh+P/oY/Z A0uLVKbiWIYKHlt/oaHQVAf6nM1JP3Sz9dqk+hXG4M0s4qOMb2zgjUqmX7Xhx8Vxh+0j JS6w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PUud556+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6fac6dcab65si123200936d6.158.2025.06.03.01.12.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:03 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PUud556+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkF-00061Y-4e; Tue, 03 Jun 2025 04:11:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMkC-0005gJ-1P for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:36 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMk8-0005sa-KV for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:35 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-451d54214adso19343705e9.3 for ; Tue, 03 Jun 2025 01:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938290; x=1749543090; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W7U4qvIdnSjKEmKjhZg9LPBWKFbOmg9j7tuwb6rQ0l4=; b=PUud556+N2c+WWpWCyjH705xWj7NoEDpATX4ZNHrd0h0FAIdk6LA2BqSOs/B5AP8gw qJBShVK6NWhGkZG1gVL9BPVqG8VOWZiCdIV4fRRMrq6NPuXy+mnxPsH5KQMYrCeI2D1M 0G8nA5BL1VeYen/UrluMTiGVN15nW5payFF+bxLpjdeWUOJNmaHj8WWfGtC6t7jY0zd1 c0BO+UAL2I7z/++tBO7LTZT8Y6SaZABHvY541j0t9xDuhFDDK+Je0fH/64juTWlErG9z eYAmrWQVlt6EW/03U4gwg2mAvoCHeZOy+erjVN6ErcvdeXdIqFXfsIeiC5p8i37eMzDo CUlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938290; x=1749543090; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W7U4qvIdnSjKEmKjhZg9LPBWKFbOmg9j7tuwb6rQ0l4=; b=WbqoD6Uw61ZAwX4bmMEWBr1bXBjiHnE3c3bpBJE0QhkyP2gkXn93BrJK765ON8XP3N dJut4Jc8nY3pVhnlaPaXI68d2a7RFJ5wqXqRDlpB18z3j4LlKGXwl/vpEDX4OTQS+5An tfXKmI6zgT7Wz4NUiho0hk/hMgK2oqvHGQGZEEY0PhKUBND2uWYMhigsqwBy0RGG0iOx h44vkcY5FVO+tArGx8z5agrY8aQFGLUVeEcJdfHCz1CHS3069CsfaoTPYq0THtOJQb5j Ehym6iI2ep8HSORUAkT5RbpDsELxWbPGSdfhgi5B2h4w6ryfTZvh5tuKmBQwgtzJxd0R e+1w== X-Gm-Message-State: AOJu0YwNjWx6Kt+xJBDOjv0jRlvqxOI/Z/Ns2z/hw33OuiuzqoHguz8C Wku+LYzUpcLRrcR7qC72NdP8b6Q88FSYtEUjg/DKHow2PUSuK/xjWCqmmg6QkyRnnTet2GK3LkD eYCwF/Zk= X-Gm-Gg: ASbGncua6Ul2Gdievr9yWD2G87OgfvqXg0oMniAbJsO/+vfhAx4LLWrh46Gm504xF8G lx0aoKBAXQR+vKEBdhWhI9048e9DJLn8v4aTUxk/WTkEsb1FWf6efRs2SRnam+BX1xHiBBxEY0q soJSfVuEbGygpoXD/mtFk9q/MSNV0ZSTZ2mW2OaEusWSPiG4hBJsR/J+U1rsrSZBFpIw9iahw/g cG8UpQN48NVdaaqqaya9aZP12OMK/eeewFTkRmtDOx+0UxQ3zDudbKPPF9wokh+0ireQpp83lbk ZTm/5IKqe8DMAYN4jQFePFtnsWgMLobnUDl1ftjwAmbep3Koa5+O3if3J2UOlpD8R+vB2ujvpKJ OyVFySlOu8LyBrJX3LVxPYSI= X-Received: by 2002:a05:600c:4387:b0:451:df39:f7c5 with SMTP id 5b1f17b1804b1-451df39fbe0mr26618885e9.20.1748938290604; Tue, 03 Jun 2025 01:11:30 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 22/27] tcg/optimize: Use fold_and in do_constant_folding_cond[12] Date: Tue, 3 Jun 2025 09:09:03 +0100 Message-ID: <20250603080908.559594-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org When lowering tst comparisons, completely fold the and opcode that we generate. Signed-off-by: Richard Henderson --- tcg/optimize.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tcg/optimize.c b/tcg/optimize.c index 0b441bc611..aa64f15779 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -784,6 +784,7 @@ static bool swap_commutative2(TCGArg *p1, TCGArg *p2) * Return -1 if the condition can't be simplified, * and the result of the condition (0 or 1) if it can. */ +static bool fold_and(OptContext *ctx, TCGOp *op); static int do_constant_folding_cond1(OptContext *ctx, TCGOp *op, TCGArg dest, TCGArg *p1, TCGArg *p2, TCGArg *pcond) { @@ -834,6 +835,7 @@ static int do_constant_folding_cond1(OptContext *ctx, TCGOp *op, TCGArg dest, op2->args[0] = tmp; op2->args[1] = *p1; op2->args[2] = *p2; + fold_and(ctx, op2); *p1 = tmp; *p2 = arg_new_constant(ctx, 0); @@ -929,9 +931,12 @@ static int do_constant_folding_cond2(OptContext *ctx, TCGOp *op, TCGArg *args) op1->args[0] = t1; op1->args[1] = al; op1->args[2] = bl; + fold_and(ctx, op1); + op2->args[0] = t2; op2->args[1] = ah; op2->args[2] = bh; + fold_and(ctx, op1); args[0] = t1; args[1] = t2; From patchwork Tue Jun 3 08:09:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893846 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180122wra; Tue, 3 Jun 2025 01:13:07 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU5o8YNf/wXFXI9Qi/ajVN23frau37fF/HQ3D5bzAPvHA7cg3GpQX+8HRxbl50v9SJXGeUzbw==@linaro.org X-Google-Smtp-Source: AGHT+IHPtvozrT/l5HNYKeKILfOjMrTA7eCdXS1vrkitUK9wW+Nkw4ap1lTM/evQUVel7acY+KWY X-Received: by 2002:a05:620a:260d:b0:7d0:9847:39eb with SMTP id af79cd13be357-7d0a2035a53mr2273669185a.48.1748938386994; Tue, 03 Jun 2025 01:13:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938386; cv=none; d=google.com; s=arc-20240605; b=cy5y703TOg4sbGfz66SMttYfnvOW0u1q0gGPs2Bt0RE8xD/mSSyA7J08giOhSI69MN SxT7U1AEQRa0E0lx/Svqcw2OR8fE+ocTHlJGRHxm54cUp4osD9S6T0F6IgvStQk42BFt EJrMr6wLLSjZG/CcNnUZs691yoW8jrVMdNvjtak8kplYhqGWgPtUonKa1tBmke/8FPnZ Vt697tzbDu0hOkwAYgID55mBXVFeMLvKsuCBAIomSZobymmGy1W2bj/ylCEAhepyRJbJ oOD1ZtaqnNAowogE+hdfNyyGuNk/r917c7jOhr0beE6tN40E3FfWFV0fEp0JSL1EngS9 E6Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=H0aoE+Pz39j8pYHji37eDW/+OJ5q4qy3VlkGMlCSnDM=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=CeG31Unn39ngquxyQKwHYKOgomb5hOEVqYs/s1l+ZAjigZ0xWPdM/IPezrnRAhPd1c C+urOCoF68Km7gfG45Xjo6dSbsXQkBSqPsmjEw0rqsAAzj3xuM/257kYKKv9RAU+cq4F 8Nz1Qa3zvnZ70t+MuxQDVywu53AyeqebUIU6gydTkr3ufFu9sq6AD3uDwcqmp3uVDLNO LoxcLHGBxv3/2Guv4CHgRfQxaCXNhh1MYJQJZpAAXVNJTyzcragwK9TUUkq47SzzD5Oz 6hvyZaBFS2phDV1tGbpE30NwUJBGg7zJ0aSrOjgGqfRpHrYzEsXF/GImdjXhy57ojjDg rdSA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=V736SSss; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7d09a1135adsi1208735685a.30.2025.06.03.01.13.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:13:06 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=V736SSss; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkM-0006wS-3I; Tue, 03 Jun 2025 04:11:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMkJ-0006jP-Qy for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:44 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMkE-0005tH-QP for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:43 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3a0ac853894so4976704f8f.3 for ; Tue, 03 Jun 2025 01:11:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938296; x=1749543096; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=H0aoE+Pz39j8pYHji37eDW/+OJ5q4qy3VlkGMlCSnDM=; b=V736SSssRmJVHvnTLXiXqIuF+WnS3snbcThovtb753l0j14u1xqvbfLu8Ow4YFYmSN yJ7cTiyM6jqaxzV3SeiZzd3VQ5GWWE2FokfvJNnOCpmYBnhaMoUNZzxqLFtN+TeyV0i8 esMMTI4ckiAyWsYoQCMjne2dZPxOr9RVcHU4y6JPqe0NxlHrHloK0S03IUUM6h1vCZBX OJyUWRru/XQcnvs0LmaSxLHf8iH5itaOu0QMr6MnGEccFXbxG1KzMzXaKTd3uDxVm4dD zSMklTOl0v7AnrbpQ7KsO+0J6yVOn0Ew4U2A5PtdAUEmn57zvDTWrEILq1CKtY5gIHxl hN2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938296; x=1749543096; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H0aoE+Pz39j8pYHji37eDW/+OJ5q4qy3VlkGMlCSnDM=; b=VNAyxfB/7u05Mbe+ZfwBbJplE89pnwCmTWiGHibkr9/8R7rFkxgdvXJ8SGJjRHc7eo e0jaModfgs87FctlfXFnEZH/Rj09saRl+vy9H/kUmsn8ETRw21YD2aGPbSwAVGoeBDf3 zAZU/nzcyLBEOHBPzKPSIoUbkp6NQ00dpkYCqHy+TiA0xDTXyTrj6Zdvx1dqAjKmmR1X J44zYPGy6JsGzvk9LgidQTzo6vtpx1RoulTFQBvHyKZeiJis5RXYwm/Xqk0VVwepxVA2 /ZO6q+Bo4ZLQp0dkiytY0ut8lUrqcaWwgAB/AjzLhWeTqV4OQCwYRFdjvuEPUFLekeSE HB1Q== X-Gm-Message-State: AOJu0YzROztyxUgMZfHo8ZegIsrgO2iGiG49hYXnwIcrMYx+sUTynJrt tWZJhfRGexKEat90Llwjd41GZsGBPXVpo47a5e2WdbPwO51f3Sjf2OSAJM8p8JFUJZucDbaYwaa j5UzMzQI= X-Gm-Gg: ASbGncuMGOulNzG9cOFmiEuhof2+U+nHNzw7OoRazA/x+mTQ70M40OyoJ9Hlw4Ve1Wt KVJJmQjMLe7SnGCp79klt70e3fWn/fUq2PojB3cz5nVG+B3UeYnGh3WXyUXvSYgP+PDOGjHOflC 1p1zJTaZFPqyMm0Ex3Gm/tFf2Sj7SttkZ92omDpQckgyUNe7V9+9YUiBrmBnIfguB5gbl7tPZzS NRFEY8oimSOX9zb9R2M25puUBDQuP/MKXnq1spFCQ93QfVrUw5CZCHSEh5GVqpTjN7iGwfitr6s ykAv+kMZshBz7XYj2Le86TaIXMCIz/jUQGrdmeEw7z71bxJ7dwNNKWazl53TmPh8xbvsLHL2iZN tpmJHfKtjOBAK X-Received: by 2002:adf:e28b:0:b0:3a5:1471:d89b with SMTP id ffacd0b85a97d-3a51471dbcdmr1095032f8f.53.1748938295631; Tue, 03 Jun 2025 01:11:35 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 23/27] tcg/optimize: Fold and to extract during optimize Date: Tue, 3 Jun 2025 09:09:04 +0100 Message-ID: <20250603080908.559594-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Richard Henderson --- tcg/optimize.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index aa64f15779..06ccf39d64 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1044,8 +1044,9 @@ static bool fold_const2_commutative(OptContext *ctx, TCGOp *op) * If z_mask allows, fold the output to constant zero. * The passed s_mask may be augmented by z_mask. */ -static bool fold_masks_zosa(OptContext *ctx, TCGOp *op, uint64_t z_mask, - uint64_t o_mask, int64_t s_mask, uint64_t a_mask) +static bool fold_masks_zosa_int(OptContext *ctx, TCGOp *op, + uint64_t z_mask, uint64_t o_mask, + int64_t s_mask, uint64_t a_mask) { const TCGOpDef *def = &tcg_op_defs[op->opc]; TCGTemp *ts; @@ -1095,6 +1096,13 @@ static bool fold_masks_zosa(OptContext *ctx, TCGOp *op, uint64_t z_mask, rep = MAX(rep - 1, 0); ti->s_mask = INT64_MIN >> rep; + return false; +} + +static bool fold_masks_zosa(OptContext *ctx, TCGOp *op, uint64_t z_mask, + uint64_t o_mask, int64_t s_mask, uint64_t a_mask) +{ + fold_masks_zosa_int(ctx, op, z_mask, o_mask, s_mask, -1); return true; } @@ -1448,7 +1456,26 @@ static bool fold_and(OptContext *ctx, TCGOp *op) /* Affected bits are those not known zero, masked by those known one. */ a_mask = t1->z_mask & ~t2->o_mask; - return fold_masks_zosa(ctx, op, z_mask, o_mask, s_mask, a_mask); + if (!fold_masks_zosa_int(ctx, op, z_mask, o_mask, s_mask, a_mask)) { + if (ti_is_const(t2)) { + /* + * Canonicalize on extract, if valid. This aids x86 with its + * 2 operand MOVZBL and 2 operand AND, selecting the TCGOpcode + * which does not require matching operands. Other backends can + * trivially expand the extract to AND during code generation. + */ + uint64_t val = ti_const_val(t2); + if (!(val & (val + 1))) { + unsigned len = ctz64(~val); + if (TCG_TARGET_extract_valid(ctx->type, 0, len)) { + op->opc = INDEX_op_extract; + op->args[2] = 0; + op->args[3] = len; + } + } + } + } + return true; } static bool fold_andc(OptContext *ctx, TCGOp *op) From patchwork Tue Jun 3 08:09:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893847 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180210wra; Tue, 3 Jun 2025 01:13:32 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVIeHn5M6v8czo+Zq4VXN5jO6G0EbxEylFBR3rTluE0LMLBqFuG2updVBmw4mI+mg28LFG9+g==@linaro.org X-Google-Smtp-Source: AGHT+IEMxL/E8tvzlew3FUgUCqR8BMt5sDsx6hPSUIZ5XetcQSiF073+6KZ7OgZ+1llCoX1O28HD X-Received: by 2002:a05:622a:2595:b0:4a4:413c:ffb5 with SMTP id d75a77b69052e-4a443c5344fmr247097551cf.2.1748938412310; Tue, 03 Jun 2025 01:13:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938412; cv=none; d=google.com; s=arc-20240605; b=U5oE/N1cMZAYjHedYvMSCRfR2AOh12AmPbs6KZxvEGCqutO0NhYvTDSxcAJE/vrE52 kxxpupGB4JByFjaJawewc+PdjrlKYXbZxnBcPy8JdvhqVbbuXxHvMtREPqNWsTzRoFsJ BNfl3l3cB0WidXV9iOVMfQWYV7zvtE952Tuzl6+cMQyvoT4dhnXaj3DUJqeSiVOVMkWi HSTM0ZlS9EtW8gkFMWnagX25jWzwsj/u8QAnYHidBQEu7JXopZxK57pDDZVpQEei6mKD 38Vz4AJkP9XBNRedlHW2t/2dQvdFPQIsGmkO6yHGF4n8LNINAKF2ZJYnd+T7vZ/7KkDu eNzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=oDvLviD3nK7LgDkX1sD1R/tH/8Q82WUdE6uBnZ3E9wU=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=RBy0mev1kTDag0uM5+NX1whBEZuRgHH1Zc5DJ9BsfT0fQ2tCz0T21ZT8nttNYJLaVO Jgi0KGWSTqKWe4+6wBB42Pmyu5epzIoboteBswUWmHKWCF4/m5HHWH7wAJ8+cf95wxB7 fTdlAKZAKB23H9rxCtE54IaHRp4lk9j1Jj4rjgzOaRGFnTaLMD+eN0orjWUD3bz2FIqx ts5dOLW1h8IqTlcDTCW+Fx6JBtdXpJJF/6kD3V+0nOLQo/6sli+pj9SPGFnPezcAcT6D UqrFEHxbaZs6rB4mEyT25QyKmVMJugeI7TDoFQ5+rB05vAF/PGGGVNk965kYGZdvAVls H8Ww==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sBJH8lHV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435a8d640si119172001cf.574.2025.06.03.01.13.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:13:32 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sBJH8lHV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkX-0007kT-UR; Tue, 03 Jun 2025 04:11:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMkS-0007SL-1r for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:53 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMkN-0005uE-7U for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:51 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3a4e742dc97so3957115f8f.0 for ; Tue, 03 Jun 2025 01:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938304; x=1749543104; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oDvLviD3nK7LgDkX1sD1R/tH/8Q82WUdE6uBnZ3E9wU=; b=sBJH8lHVGBwacKemxQjtFufIpS3GT181qHuYfwJ+FAQj2oLvYdOeCX6Vq98w5xtYwj 1mfdFQikPhZIqlrwx3rKVnJGWcZnt+B2+/8JTU4L3iHBFy2qKgbYPrxsnF8TWpUl624A 8ve1L7SK22LD6n+/PhWOcheoSHMMvAmk0Tzl1K1pEzuaxRj0Tjrjypcmqglvg6J0GHXQ 8rHENp5qoS8UJgRGoDB6Ey5oPJO3/J9Yfk7kJqN/AsipZX/BxVGwnWxMMHot6Ii6j/GQ pDJ+0sOf8ZZavZk/XL2e9hBM/vlS3oXw3JgdI+lk0wHroUZO1WmExUFgwbjY8yfAOJef K2OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938304; x=1749543104; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oDvLviD3nK7LgDkX1sD1R/tH/8Q82WUdE6uBnZ3E9wU=; b=i6+0nhxXTebUoogYHcFRmGK92wJYRCI+ECmbEbvuRAde7beKWaNpP7jFWKK5mYjnnf 1xn4+V/gtkQBpM7GxI2IxxlYcxGTnmQhxxGs1+Jx8eZ7lTCkw7YbuVj2p6xzmKAO5W59 ldt+GKDM/9TZIii/67aysrDnX33tSQJygin/wha4dJN65EELpzeYpG57BrIfywKeOiqD ZtlLuMAenfBlzosdeqCqDGr+w28tSt/QSX4NffV1ITOHMcWl3bPheK3sLOlFFqlyuZnX NufCLTs2HKy8DFAqUo6Cx5YBO1qGJwPUWgKc4EHb97sokOtvSeAHT3prtmeSB9w7CIMA Lrjg== X-Gm-Message-State: AOJu0Yy5/2qs5XTycYmbM2Yog2VB43Qhuvfy3Xv5s/VqvAA6D8WRYhDI Ikbvvwen7uOxU9jxN3Zai988S6a19n49/R/dugtlIpEpuAXqZ0rSwccFeK34LLlMGsBdir+1od5 k1iAIFlM= X-Gm-Gg: ASbGnct70ah5R1fdvaTvYJ4K6UD1/SI3NJjl28BNmNmsTQQ+XHrRo7GwKphQg9/URrq XziGcXmMfcrumpvq5hz4juopdflXEb/aKQAIU86zy0NixkKbvyE8Z7JD5uKPkFUyyuTIPNwcg+V 0FbuzSVe15CGYpkG7kXhsvMwptypz7pnos4PklCkQ3Wt7c5Vbh9RIuGSY4C5FkDmy/YQxKODfxK YIOG+YcdZxJcCb+SH/n1VC+Nl0wyrKvExggArbS+NvZzxGDrjls2JxuBIMcJhROKJYE0hS8K6Tw VW+8PiAuxDw5dpfTY1R125lrJDOTcS/MhwSNP63JllrZT15sy7gVrn4e/1feQF0AqFn0cxu1Dqk H0yZvdXMOpUF3 X-Received: by 2002:a05:6000:3108:b0:3a4:d685:3de7 with SMTP id ffacd0b85a97d-3a51417af94mr1144369f8f.8.1748938304271; Tue, 03 Jun 2025 01:11:44 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 24/27] tcg/optimize: Simplify fold_and constant checks Date: Tue, 3 Jun 2025 09:09:05 +0100 Message-ID: <20250603080908.559594-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org If operand 2 is constant, then the computation of z_mask and a_mask will produce the same results as the explicit checks via fold_xi_to_i and fold_xi_to_x. Shift the call of fold_xx_to_x down below the ti_is_const(t2) check. Signed-off-by: Richard Henderson --- tcg/optimize.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 06ccf39d64..f3a2328fe4 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1434,10 +1434,7 @@ static bool fold_and(OptContext *ctx, TCGOp *op) uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; - if (fold_const2_commutative(ctx, op) || - fold_xi_to_i(ctx, op, 0) || - fold_xi_to_x(ctx, op, -1) || - fold_xx_to_x(ctx, op)) { + if (fold_const2_commutative(ctx, op)) { return true; } @@ -1473,6 +1470,8 @@ static bool fold_and(OptContext *ctx, TCGOp *op) op->args[3] = len; } } + } else { + fold_xx_to_x(ctx, op); } } return true; From patchwork Tue Jun 3 08:09:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893851 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180506wra; Tue, 3 Jun 2025 01:14:29 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVhrl68ISaqFFm5MGZuA4X58FlKqd+c9VG1qMNk352I/luiU/XVCFwaQmqApldNvGIzGLgtmg==@linaro.org X-Google-Smtp-Source: AGHT+IH20QqHHfez5EyqKIFhUNT4ji5WrATnGit/o0HIbetRRc8wdf1EWeUW7Y9dJeIw2SAM6brc X-Received: by 2002:a05:622a:558c:b0:4a4:2c75:aa55 with SMTP id d75a77b69052e-4a443f39083mr200680431cf.44.1748938469421; Tue, 03 Jun 2025 01:14:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938469; cv=none; d=google.com; s=arc-20240605; b=gEg80luiXSE+M1WUbmnnnMH5fPU+yIibIK5A5/MmzahEqdEtdf0HL4JUKqHPYQQD4j wGiKfOE706dsnJTieduGVwu+/05zr8jHOhTcGxO47QHLw9AylAt14xJ70B0Qinzxkd/I Ph+LHJSmbp1XW2YEQCmonLyb+4UakNhaMOtbbGOi45DIYluJVCWizl8B33xFVHRiHFWN y2lP+ZLr+oQuEI1e3nWhmJ8v1UUXZV0mUWWaF9h3R5oLY5INxr7yWV8XO93tvmCku4d7 Wp8VIInuYbWIb5hPIJGvjGzim2jxfMGJMbR4IqAexgPnxB0PU4cDLiQBJ1k1Z5C2jtWD raRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=g7MD0/Ee90ZrXQaB9jW91JelH8N1BJVB8xK/qD2yN+w=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=SS9BijaCLvfFzeynu5tJN84x1k6GsnyhOo4+0p6EQoVSkCxPhoZnYE7Q1DyaC/0wId tP/fTK09CU4TH2GkVxoyE2MZg832vRy6baFPzNRXSd2YG9wPSq04kSGT3tYJnLaRdo6+ hyW5LW6/ExkekdnKQon+ppuFg+SM58Cm0eduh0Yl2+BjPz986BuS7jcq4oBHpVY8esko Ja+qbsg/vqYaujtzHiau4eHUsXOd7IlRX50thWe/RfiA9DEVE0zLWvM582mGL28nf5ba lWqxup3gbGUhvwXyH1SsUGsYFGVcts/Pnz60PVRfl5NhgbupANJEHSWiAxn9279lsZza BXwg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aPceGHAA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a435a26feesi123149571cf.390.2025.06.03.01.14.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:14:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aPceGHAA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkZ-0007vJ-NL; Tue, 03 Jun 2025 04:11:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMkT-0007Yl-Sx for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:54 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMkR-0005uk-Py for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:11:53 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-450d668c2a1so27077475e9.0 for ; Tue, 03 Jun 2025 01:11:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938310; x=1749543110; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=g7MD0/Ee90ZrXQaB9jW91JelH8N1BJVB8xK/qD2yN+w=; b=aPceGHAADZqpRhr51pN5leIeYjROFOc2QxjDUjoWM9E8nzoji0MfDiq+JOfzwjkSo2 P9pQctHUPYEthSIrJOSmaxVOeLB06joW+cWmUpS3KH5EcEBcW156RWKVGuTV/NTR/Sjo Pepht9gLjafyIKEMd3XGGkqXVdBcc61fVskl8y5QkpMfIvmIi7EkyNnq6onxi4ShCwhU qXsa/1lbsa/3vENzr8Q/jbDHsAxqUapH4lhCU4K8oVrA2/DkocIlrjzILkXtFiIWUkC4 gYYVzW8gwY/OfcIShtAYXUNblUJWFupvSlY3Lt55cwgfJOwphek4Df3181F3iICpzmJH wUcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938310; x=1749543110; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g7MD0/Ee90ZrXQaB9jW91JelH8N1BJVB8xK/qD2yN+w=; b=ircgZceDnkYl9iqdxG4SlpC/1AJxWKrQSf4yyct/8uarbIUVh+xt6k746hlvSbYm8R rxiA3wYHsvWiNT0Yva1skJZLAaWXDdeLAwlWGEDytdlngCz9LrZ5Q86+mAc5KqkQEhbs d6oUdOsGZEScK1Rzn/ZZrdYVQEgIwUuXD9TUf9teeuLwpXPVRDr69Zu2m6jQ2g6GlUON vqq5KSmWMwhaL2Tu8NsQcCHKRL4Zgrrlk3GqrhBe3zDCuElEmT3g2SoY5ARGE+959Tx+ 3u1Tt6PVLpmcncYyXf5asrQRYgK2wsjr13Fengi0YROhWyXnGQ7sNC7r1QrRQEAqXVFp G5Tw== X-Gm-Message-State: AOJu0YyKYMKN++srWjo+4ud4oK2Tuw/gXYY8HpSDL5+RZf8JVJcHYi33 edUCwLC3X6Srf9QuYpWCQyJzl8sv2vE2eMxvwHkLXU2IgLRNcyTk5chfTLT2H97jpnG2lmKYCDl RW0gwp9Y= X-Gm-Gg: ASbGncu2sxSJstFviYHsHTyl8HP6Jms3zjWxfCz4YhJi/c05Lrp2Mkj1aF/n9jh709y z/QPYmqh7Fn471mpCh4PekTGV79SJH+cKLGEhgyAGWs8wHQ2Q8gEMBTUOfqiBuA+dd+THXRxCfq N3b6Zmjou7l2Chm16BEZxhOp51USPPU58FXayPYyGrqfihQlm61qrb+t9AFgV6yfmjLH+SHkQVF F2LDVusiO4tITodDyB8/eNhQGq3RpNK2qEcoBzSh1SvjUrT1Mics/wbWJNhrhG5UAqAmYJOQIrw jw+dZK2GpDjn5fjMmXv87sW+IG0SBCDuFsP2XnooPWu3n13YPsA2rLQ049kABWbTo2F8cIFpf/a 6eOtfDHTNKsSJvR0zQrrU5AM= X-Received: by 2002:a05:600c:5849:b0:441:d228:3a07 with SMTP id 5b1f17b1804b1-451e61215admr11369155e9.13.1748938310098; Tue, 03 Jun 2025 01:11:50 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 25/27] tcg/optimize: Simplify fold_andc constant checks Date: Tue, 3 Jun 2025 09:09:06 +0100 Message-ID: <20250603080908.559594-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x32b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org If operand 2 is constant, then the computation of z_mask and a_mask will produce the same results as the explicit check via fold_xi_to_i. Shift the calls of fold_xx_to_i and fold_ix_to_not down below the i2->is_const check. Signed-off-by: Richard Henderson --- tcg/optimize.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index f3a2328fe4..8d14a38f9d 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1482,10 +1482,7 @@ static bool fold_andc(OptContext *ctx, TCGOp *op) uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; - if (fold_const2(ctx, op) || - fold_xx_to_i(ctx, op, 0) || - fold_xi_to_x(ctx, op, 0) || - fold_ix_to_not(ctx, op, -1)) { + if (fold_const2(ctx, op)) { return true; } @@ -1510,6 +1507,10 @@ static bool fold_andc(OptContext *ctx, TCGOp *op) op->args[2] = arg_new_constant(ctx, ~ti_const_val(t2)); return fold_and(ctx, op); } + if (fold_xx_to_i(ctx, op, 0) || + fold_ix_to_not(ctx, op, -1)) { + return true; + } z_mask = t1->z_mask & ~t2->o_mask; o_mask = t1->o_mask & ~t2->z_mask; From patchwork Tue Jun 3 08:09:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893844 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp179878wra; Tue, 3 Jun 2025 01:12:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWQCgp+b+zXJBAHPRihEjmdYFAfP0/YbU0ai+XCZyHwP3tHanbPSxkfMBQv2Km9ahM2mDzx9Q==@linaro.org X-Google-Smtp-Source: AGHT+IFU0a4pDbn3BHPQQl3huDnRwu7dx4+yDpUFfAEdpPGVK5AmWTKi1YMm68kEwbUwgkiS2Dzn X-Received: by 2002:a05:622a:428c:b0:4a2:f0c0:e256 with SMTP id d75a77b69052e-4a4a5e8be8amr205084281cf.4.1748938349902; Tue, 03 Jun 2025 01:12:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938349; cv=none; d=google.com; s=arc-20240605; b=D3UnraEr+1yw1SRnWiOS4a9vVQdS5wZeXfZQ5fbxa5v0n7ylsr6Gg3j+uuU0McuVfD tDgd+JXl+VMOsn1L+FrImINXJryf+Lsw45mmzHHMxW/NMwnJLlTroSDu8gP/PKkB1MfJ W05hs0K9NaGyYRn9c42RWwkKrZfxOUfPEN1WwHaQj71e18MieP0oobbxiPst0B3K1if0 Ggk6kcyPAFRAOIqNzDR2TxffkVmN5/t/YhnRh0OAf3YZ4/HEBZYJbEIR6AmiF8gSV85R W1kptO7wxy2bFAIvONjhXfudA45WlHO/Ix6vRoaYZgQwMP/78ctPd2lP8wbMpx38+uVm FPSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=5tIbiNLH/Zb4M+vkarpmZzOW22aZ3EjbIGp7vOL8+9k=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=LIFh96Cu6bUQC30RQJsZpLv8HPXivTFeRI03+M2LkyXOcFSuXlQfwQmkLhtoGoBRQ8 PX8E5P1e3992vSEcZkz5OnntOcDn+RdZHB7Isr2cPhvXGFfV6RJ/QQvSmQRZL9R/bGUF t+6d9FlXdXw76K5ixpDHl19BeedkC8Rn60tu/Vo4zKq08hKcMA5l8Yh21e10urdaNpaE NFS7Zgv+QtguofwDnViYO0d+QhW0eqYSLOKmDQnosyeyuvBkNv8M0XlqfDCaq5vUmiW4 TLQ58cyMQcBwD5SLnbRQIydnmenbTYRk+nTejDQuj2UGNKLLSjVuBU4ZU6mlR7ZC/Yoz hdOA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=p+v9+sav; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4a43588a342si119001091cf.24.2025.06.03.01.12.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:12:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=p+v9+sav; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkf-0000Nl-Un; Tue, 03 Jun 2025 04:12:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMkb-0008Q2-Vv for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:12:02 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMkX-0005vF-T5 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:12:01 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3a374f727dbso4591811f8f.0 for ; Tue, 03 Jun 2025 01:11:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938316; x=1749543116; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5tIbiNLH/Zb4M+vkarpmZzOW22aZ3EjbIGp7vOL8+9k=; b=p+v9+savRPZcej+Tt/mOxGm9ZqxQ9Q4uUzY/r3HkM1kqqDC1VNv5pzoH1ezc9YvFYR 9cg6r0dzvudiQLICbobNCKUeYWiZJ3q3y8yHxbHJX5IWRxDQ7Eo8rxth97Z3i7Qibuv+ oXHOfT4S/JYCZ6WFyX0PWcBJB+37SdI30aOaXRQLZDb+WMLluR5nQIW6y1lfWNwJiBkW n1E0DHDjgfrwH7diq6E3JMOukGTkVIYT+lbNu/xZN0b1dYctuK8NnsUuyoQTgr30ENia sjwokB1bZh306hUnlSN7L57ZZwN0WZxt3B1ca0Val0fCfIRYP9k1baKBQUd4UTqhajFD 8zDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938316; x=1749543116; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5tIbiNLH/Zb4M+vkarpmZzOW22aZ3EjbIGp7vOL8+9k=; b=oqqFi8wJVgoYPLFGGp8lJwgYTUx6Gz1hSdxxlQW/I0GN9RqmKO7Nog1UUqxtVy92ti sDGybpuHojYcUV9x5vaFU1K7do087KQx3Lq4hOgfpq5Jm3+fWo3LGDlzh9pgXNVZwBts y7JrTmQo7FJoNZgu2l81PFn2R1oCJaACizKPTY0i+pdjHDTZ31qIkykpd1xjgL5/w16E LOkQglySH4+3k2SSEQbcWOCex+cbEsPdxfgyBO04Y6HVtqVyy1U9hcx1JAQ6de9B3pP7 wxTx1G3/3y+eF+4pOXBK5pSnfx0Yh7gWTT2usoi0PJx/EjlNxqNTVabWHxZZTN0+/Rjc Zf6w== X-Gm-Message-State: AOJu0Yx+/wPODxk7+emOlSaPwpSutycHPN9sD2hF3ryGr+zIABsWQsJf HxyIFg4fzDeoGsFwB0Dbsz2DOdnT3BvOXB6yLarePjBr/uR3ReQjVRUSW8K9rDwoD8I3cb/egL6 jQMaRfjc= X-Gm-Gg: ASbGncsJiyYPooHTjtKDZitXXx4xrhXg/8xoCrCxlIv98KCIQdt/D6CHxV0lBc2+7H4 qvWQ9Kb4VjTn7s83UYVZtlvi8akusTrBb8DBbRkvTGdpuFvQOvnEnzdOfZ9B+BPIz+fAv32uhix RztCUg0nRyZuVmBZIPhX0O3p8bCRLrrWtoof0Q4QTjewArJrUfTnZB6hkHgd2LFra96AgRjjzcR YnZSQEvy0IVeJr1dTN4VlFlikQfc7bGRrSCGI63pn9mLHhOZ7o8/lNVZTzsceANPWXjGekvJeuo d5fbtJI/e7P1IbIfLDGN4sed/0faDLuJ7kb/3x2leyj+Bwpt2OvreE0Fc6oUKaabXMmPGwVKHOs 2TsLN6Y8Ts1vb0CIrDZOjjJg= X-Received: by 2002:a5d:4082:0:b0:3a4:f8fa:8a3a with SMTP id ffacd0b85a97d-3a4f8fa8a6bmr10018522f8f.18.1748938315798; Tue, 03 Jun 2025 01:11:55 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:11:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 26/27] tcg/optimize: Simplify fold_orc constant checks Date: Tue, 3 Jun 2025 09:09:07 +0100 Message-ID: <20250603080908.559594-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=richard.henderson@linaro.org; helo=mail-wr1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org If operand 2 is constant, then the computation of z_mask and a_mask will produce the same results as the explicit check via fold_xi_to_i. Shift the calls of fold_xx_to_i and fold_ix_to_not down below the i2->is_const check. Signed-off-by: Richard Henderson --- tcg/optimize.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 8d14a38f9d..a48ddd9171 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2326,10 +2326,7 @@ static bool fold_orc(OptContext *ctx, TCGOp *op) uint64_t z_mask, o_mask, s_mask, a_mask; TempOptInfo *t1, *t2; - if (fold_const2(ctx, op) || - fold_xx_to_i(ctx, op, -1) || - fold_xi_to_x(ctx, op, -1) || - fold_ix_to_not(ctx, op, 0)) { + if (fold_const2(ctx, op)) { return true; } @@ -2352,7 +2349,10 @@ static bool fold_orc(OptContext *ctx, TCGOp *op) op->args[2] = arg_new_constant(ctx, ~ti_const_val(t2)); return fold_or(ctx, op); } - + if (fold_xx_to_i(ctx, op, -1) || + fold_ix_to_not(ctx, op, 0)) { + return true; + } t1 = arg_info(op->args[1]); z_mask = t1->z_mask | ~t2->o_mask; From patchwork Tue Jun 3 08:09:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 893848 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp180400wra; Tue, 3 Jun 2025 01:14:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUjCrlO86HLWmJXe4ESxiSNXqfUc+eGikWTM4J+0hJcsG1rFOa8KCLFLg/8FfReDSlUA7s9RQ==@linaro.org X-Google-Smtp-Source: AGHT+IFkjeyhyoAqAfTdzUe1HKVUg0JHuy7KEbnp2LW2l/25UNDxWBEDo03DMc2PJWtSSeHvs3hU X-Received: by 2002:ad4:5cc3:0:b0:6fa:c0f8:4e11 with SMTP id 6a1803df08f44-6fad1a795b8mr193885356d6.26.1748938451776; Tue, 03 Jun 2025 01:14:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748938451; cv=none; d=google.com; s=arc-20240605; b=dr1MGieoEiwQ693P0Fbi2U2rDtUFKIwYhHeHHVpBfpYXT2nppk7tFFgodRwqDnZ5eB g0F5H3vk/qO0PK3Q6h4LDT2v6PO2J23NKP3i0ILIDgetcJXBIiWdklxoPy9FcVZbKW+1 v8nH7/XPnKcbKyIyoN9rpN5EWhDi/BXHLfDetNc8MY2052Wu4UKae3z+k0V95WxGZN60 OgogCSP/eMTVF4EkZhuLyc1qPS77OeTAd10csu8aeipQiFGPBCWfd4+6SboYKzOPpIzt qeiWE7gqpF1Gde8GBQjmy6uyC0Bp9SleaazEe6ewdDi03XsoT+ApTPDKd8/ov6S2J6ah f7BA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=J2GrhITiUEId9uURHoQBm+QSLG5+mucUTsm7cNKS9ak=; fh=3mEp7FusppN5Drq2PN08R8D/9xXM9YdbtG5TkJxJBiE=; b=Ryuk4HVu2NpXRTy0iS4PyeKrsWrNbI8OgiDlkFoY/LK9NpsjXPtZMbQnqd/OcbZIfI WKPLpFQAQP6ALH/AZdjUg1tWpQqWR6yqdoKmLxGrbjR1NEtZWspcdoOchMVDMzTw+PCj juiEHxxis0wOwCe9PvdZZz08UCCtzeP9EiHHjndeUBw+Ws7DgTuZWFSnV9iBzlgs3+EG xaZPp6NcE5byjvhVH8U9cuBOkU5gBY0YOh4j8/ZHnyu6OxXs6SOA4nxZw7I1Cg+IJnKi 7jfhMUx5Fvx+p0g1eDOaEPuXgtKtR31XFyYfxQzxrbySVdjUudtXTlbiN5mF2+1rxNY1 N8eQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SuVz+V2r; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6fac6dca9a1si117714306d6.105.2025.06.03.01.14.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 01:14:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SuVz+V2r; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uMMkp-000116-WC; Tue, 03 Jun 2025 04:12:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMMkj-0000n0-KP for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:12:09 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMMkh-0005vx-FH for qemu-devel@nongnu.org; Tue, 03 Jun 2025 04:12:09 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-451ebd3d149so921445e9.2 for ; Tue, 03 Jun 2025 01:12:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748938324; x=1749543124; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J2GrhITiUEId9uURHoQBm+QSLG5+mucUTsm7cNKS9ak=; b=SuVz+V2rwvo9LZbAfbsmdl/7RqYNDgE5avjMCe9LAzQnj1fUwB4D0h9C2o3OVpBCUX nn/dlBwiWu5CYkvPVPUqFXfp31T5o5lcZMWjMlLvtA9HJkw6lcfmSzUxHnREFDExOB/h uIcTTD7eFfs7Kt2yuZTmxgLIEThzqzpQ52+pp3w6/X5Yj+gi5nf0b23lGS4F5UKTo9UB ECakS5HTAlXigJ46vzziXCyuJWgR0pqdOjOttRAcM0Zf7bk/dEhI3hRYq/51ORPQsBlj obLTfI9U8tXxkXIV0qyyI8/ZMwUUDM8Mt8QPjt0Hj+jhtTPu3JC0IR32tbC70lZ0FuAy +ybg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748938324; x=1749543124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J2GrhITiUEId9uURHoQBm+QSLG5+mucUTsm7cNKS9ak=; b=Em81QcLi9dSlR2UT4HXR8OjjKmKxK0HNVTBeHjmwq9PoieXCztDrRHJ1vUZ6AWikef tAit3SY3W7cXojb8wxp7f8lAN1FEs1oCWKYhF6jOKwZYC/JZQn/9w0dH70k3o9VhNmbQ cjZ5T2dUVZDaZn9fopLZA173mQ5a0GggT6Yp9/DIinCFx5RMKplpIE58U/OD7C/898LT r9v5DOeJJwUHvzZyhFpHxDV5Crla0xm/Buly9mMBIdRV2BU3Nwl5h+UcMPqAUEVs5Br6 bJvDwUjc3fRyleubmAOzF+1gjA5pJCL7cSGC53ui6KmyoY7Ane2/OMOcyiSDTZdMWkhz cLbA== X-Gm-Message-State: AOJu0Yxd6iQuVyz6FfED7bIRk3Vf/O36L1mHy7jZFmbBOpH5cLlAFdZK /XapzeCgbXfJ+PNyXHaUbGxegA7SVyCmrKcRtxFpV8uoqqJp8G+1FCzv8o/hn85UwUOC4/7RKeY 7+bWHjNg= X-Gm-Gg: ASbGncs9ZDhxjeng77Vpt4iOYybMQbgpVdovjVVBBZ0hXDuP8PPUBtsoS3VhmiUNRHn 5RkvMyjoD8eWBgp3ObZZsbYN+3DcXO/K+XZlv9XGN8Fq1FfAfTmJSyoEjLnGEQ1cTHbZ3plt0qj 49+WsUFsISkgPM9Il8rqLR6Qbt9JRfpy2RoBvcclWMJc1jaSIomCxetyBDBiEq7vOd4pFpslOiM Igaz2L1CcWFrXH0A2GWoAU/mGWLsZ5Cg7dm9U0xBfOA8I2TxeDXLLGqt4s93++LxSm1omMW7TbV e07U+WKJAgvG+ELDJkkRbWnqsMNLAdw8+EnQpSLzbp4Nonm1OHc5OeW6NIExqfZxUZrbwdr7mOn 1uKpjv5jC8+0C X-Received: by 2002:a05:6000:250e:b0:3a3:7cbd:39b1 with SMTP id ffacd0b85a97d-3a4fe17c35emr9371624f8f.24.1748938324630; Tue, 03 Jun 2025 01:12:04 -0700 (PDT) Received: from stoup.lan (host-80-41-64-133.as13285.net. [80.41.64.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4f009ff7asm17668852f8f.90.2025.06.03.01.11.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 01:12:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com Subject: [PATCH v2 27/27] tcg/optimize: Simplify fold_eqv constant checks Date: Tue, 3 Jun 2025 09:09:08 +0100 Message-ID: <20250603080908.559594-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250603080908.559594-1-richard.henderson@linaro.org> References: <20250603080908.559594-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=richard.henderson@linaro.org; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Both cases are handled by fold_xor after conversion. Signed-off-by: Richard Henderson --- tcg/optimize.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index a48ddd9171..62a128bc9b 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1948,9 +1948,7 @@ static bool fold_eqv(OptContext *ctx, TCGOp *op) uint64_t z_mask, o_mask, s_mask; TempOptInfo *t1, *t2; - if (fold_const2_commutative(ctx, op) || - fold_xi_to_x(ctx, op, -1) || - fold_xi_to_not(ctx, op, 0)) { + if (fold_const2_commutative(ctx, op)) { return true; }