From patchwork Mon May 5 20:27:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887456 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235593wrq; Mon, 5 May 2025 13:30:32 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWe73cPiJXqT9bisoJ5KP758DToyyT5x9bPY8moSLYz0XWT37CDddP3d3wnbCMggusLMo3ePg==@linaro.org X-Google-Smtp-Source: AGHT+IFEleE6XvFum6HzNERj7linbglGxfMWXOiOUI3wAbX3uUgNTFvfVuGFjI+etsQUNRqtiQ68 X-Received: by 2002:a05:6122:328a:b0:50d:a31c:678c with SMTP id 71dfb90a1353d-52b27904a85mr263441e0c.2.1746477031767; Mon, 05 May 2025 13:30:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477031; cv=none; d=google.com; s=arc-20240605; b=Q7Qzbes5Wirdi6v3NoxzC0yR2rFWsFwkiEnff+Np0Gtv4QEtQ5bln1uRXYV96WDdd4 UfGPgAflZqhd1qlKzEDaL1fzjCvhWnKNCbaFBsv01qKM4BbiTuYks2zlgSVrDH7EdELz 6GY2+IdbMyV1UIjZbcn/wGcK0lNy0pqO8h/r9LfyIWApNGgDrFe2c2NiLw0eskv8Xcgt V9zQm6mzmR5oHlh8mrgsOfC7FJbCmXnyhFszsEiQse8WQMyhvzcd+ZOe3i4zHfmxZ26i EXpKQHsb98MqVgpbXpqPs4k6mSU+LKwbvKP44r5hN3esAOe0nas1KUBCIPY3xbs9Hpfl KO5Q== 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:to:from :dkim-signature; bh=lzo/fe/Ua4ApmzVfrV8jd465bb3JX7SLeAZUoYkEF7U=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=RRbg0Pw1WUMv3iW7f+EFkyKwwrh9NXrCood4w8hQCgrbJ9GJ9i9KLq2VHoCzuPwajN h0Pw20XDWkvl6YIHBxOjod7loqFYuh0iQeIwN+e/bUe6Ug84Ea97PFbLKuVys1jDbQDj Bwj7/XiCG7WJPa/swJxxUAayoqDKXVun/BOhJb5EHeX8H4PNt9Dz2e4RJhtH7Y6A+uQW ea8YvSn0NCHNfjFKjnnnftNwuAwNXEgY9Zo2MAng7YriEyPXOCnWYYGpJb8tyLP1YUPA 3akvnXoX1CKKPkG+AAj7X/VM5fw9b6enk9qhl3v/0LnahdQhmmvzI8prLGYlaKCcaCUO VOqw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=qOMzazxi; 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 71dfb90a1353d-52ae4197627si2312747e0c.236.2025.05.05.13.30.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30: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=qOMzazxi; 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 1uC2Q9-0006oY-6z; Mon, 05 May 2025 16:28:13 -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 1uC2Pw-0006ic-SG for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:01 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0: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 1uC2Ps-0000Mu-R4 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:00 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-7396f13b750so5916559b3a.1 for ; Mon, 05 May 2025 13:27:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476874; x=1747081674; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=lzo/fe/Ua4ApmzVfrV8jd465bb3JX7SLeAZUoYkEF7U=; b=qOMzazxi42ncoW7ois7GricBVB4F5pkCkvbMDN+M4+LGqddq2NUsxdBGHzCXFzD4vi nTcJEND7sE+q5ejpye+yeY0+Ah/WLFkhlNLVu3O2V7y8geVfTWzWssNF765zE+ahmX+g WL5QkhZI7wX/RZhhhk9i8uFlB5QdqsJH8V6LWE1J46rSeqFyp6e1IQWOwqoS3JWIg7b6 XztvalwKqRkcUa/Dc05UIBuiWhsOFtAIsUg7iZWFaetT5fC11yv4RR9ENYUQCVwJXS3F 3+vQtVniEBvckpodLjqyYymFkAV3BQNXTj/IhpMZIGtY4rIug8cQMJaYhEAhvIal68GW SbVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476874; x=1747081674; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lzo/fe/Ua4ApmzVfrV8jd465bb3JX7SLeAZUoYkEF7U=; b=RxlsBzU7JWAXJ9XE2fQ1stMGltYMu14pcc7OKm0JfJvFzDsS4iI0BarDrfLfp95IrH LQlwQntkDaGtjORHMOUFIQ5MiGcjH26sc+jgUpWKrRZ6yQwimPvEBG8GsVfrqJL64nI3 nnpJkeuVKRhv1a+wBYmjr0uUTbvTC/tH2XceOtXXUaHn33CjSeE9PpMPgRDb9bL7oZpu 34ElXfOSU5afJIw/jgHtwgrcynr24g91+GchzXfIXH1qReGPjTjYXjOiVCvEf1Ucd1ZJ R1BzhpHE3csuBMWtw5L9DvglllUpuSFV2/WMCS6c7dAPUAWnUx5fFPkRWV1DLKukAy6b jSUQ== X-Gm-Message-State: AOJu0YzBeh7Y8D3q95zE8fj0bZazBc+Pzi6J7oWUspOPmdUMO4IhD6wt l3B03ke1TZ4tLNHmjq7wlDGrwWhXGgOcMGSVyagAK4t1lP6+iT0aLiPjGS8B2w8wMeRcfexrOi2 K X-Gm-Gg: ASbGnctRchFOr5YCedb4hYDdwv7ai/jH4nx/OG+WZrUAuPNJnBrQ/3wPQL+GZUP8NAW PL7wlPTkEIm3/JmyehJRQQkf5IlaIqEjSEPezsOme6Dq6T0PtEFu5c6cg9SjlSKa/mMYWvp3hz6 /1YU1f1Lec49A/F8JTCRagqEqOilz1cr1JcSjNiznjVyC2dzWHUZtIiJMgRJ2Q+UY6FxKKEjsJN JA2DeobrHEiv55qQrjkZap5lk0VtmMHdS0lESZrDlg+EquMvq60OVtQwT8cA6ilFhPCN4q5pE2+ DsOHVDFLIfSj/n9gU4zBX2ojhJUsZMyGmvdNp+PAKI3HNt7Wan0eCpPY6l1oM/a61iXCKgdU5bE = X-Received: by 2002:a05:6a00:908c:b0:73e:30dc:bb9b with SMTP id d2e1a72fcca58-74091a01224mr777083b3a.2.1746476874455; Mon, 05 May 2025 13:27:54 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 01/20] tcg/optimize: Introduce arg_const_val Date: Mon, 5 May 2025 13:27:32 -0700 Message-ID: <20250505202751.3510517-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 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 Mon May 5 20:27:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887449 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235129wrq; Mon, 5 May 2025 13:29:18 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVJMkr+wohYcUub6t6X6YiJ7R26hAA03xy7A3chpG/3LkDUiBRk8d4XrCDR0a5bB/fsZz4/8Q==@linaro.org X-Google-Smtp-Source: AGHT+IEzGXsJNgYz2WzXOntEy1/HzmO8cxdQKmL2KLX6iS4qM3mlBhz+lXdyq8hni8B71zV3g9Fx X-Received: by 2002:a05:620a:c4a:b0:7ca:c5bb:3007 with SMTP id af79cd13be357-7caf1162633mr43664185a.37.1746476958099; Mon, 05 May 2025 13:29:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746476958; cv=none; d=google.com; s=arc-20240605; b=Er92GajG41GQ7DmIu4NEajboEBXN6StJMhHBIRDCJ1zRL61K0bWGLxHuFlVh+wmBM0 AOV36FlIHGTECQvCLbT4cNjm1PCMBI78lw8CqoOzf3Qa1orrgN9GwVm3pTwO9U1zuseR /Ux9P4wd+kvE/EtgfiUsUNdmqkJXFxhVakWW+HyCdZCB1z3nvIx1BT/B6Tk6f1BvSGWw 3T+vyEMibI5hOmBVPJ2Ab1V1I1k42kcio3/cnQyNlUdY3v3WaaQGfz3jByL+fqR0kv4g wXDw5gbDZN8SpD7+PqofeRbQw7eRY9CmBaWGiukKMqvguqKj0ul2H6qKNH9le+Aoe14Z By8g== 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:to:from :dkim-signature; bh=gJLo1eS3K73iIv9rFRGELbydvBB92PuWm+E7Ujpbuuw=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=F8Vep+4gdbSeEQG1vJwfeVl99jAqpcLwQnNIn9NNNC1KLyymNN7qLrPYhf5aDBqMo1 l0vkVHTQgxSMK0ZtgqohBYNlENNhlrbn/lMnioy9ATz5gWOIFUjuHawnpFeyCMIsfc8z EqM/lgYpw9r71baN0Tl0995z3Q/UCLHbX7bx3tlImsgsv2EdulFmOl932oKfqBbFXvLp QsdDRc2pRlIQVW01NxcHCs7ir/ik4dWxKAL4Zsobo6FWbjMGAWrMmab1TXxhja3RKyiE uGJnhaxYvmHxZorT7DaB8ctkmGxb+sWyTrhsFTh76S/XWQeMwiisfk4rVwqzNyVN5Bsq JyrA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Ra1+BvT6; 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-7cad2446081si947822585a.495.2025.05.05.13.29.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:29:18 -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=Ra1+BvT6; 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 1uC2Q4-0006kF-E7; Mon, 05 May 2025 16:28: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 1uC2Pw-0006iX-Rg for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:01 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0: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 1uC2Pt-0000N0-B6 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:27:59 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-739b3fe7ce8so4471786b3a.0 for ; Mon, 05 May 2025 13:27:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476875; x=1747081675; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=gJLo1eS3K73iIv9rFRGELbydvBB92PuWm+E7Ujpbuuw=; b=Ra1+BvT6BXq2U+Xfr2cVbbZTMtqT9Askg0sTGRMr3WVZm3MTLgfQH66m7odFc3hWxi 9fUTlRIP/QAMvBjhjATIqnhgXQ0dDvA9knynN9KVs7yKCn+B164Ucg0zJb7ITPPTparN Juy1YWY0d9DyL8D6ztyuwrplacPoZAbJx+s7F+J9z7qUh87xXzU8vozKsG84N8iHaCfN UE2Gc+tnK8EyU3WajUH2YiGZ/N60eWeapLs8+ml2JIbyEuWxgCUa6s2Mi0L1kjKSG3b4 Fpqmo9iJFdrnqhc/Vth6N/K2cJUGATp/qyUohJV6N+My3jC4VeNSBxji3HkMXfUtoZm2 t0rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476875; x=1747081675; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gJLo1eS3K73iIv9rFRGELbydvBB92PuWm+E7Ujpbuuw=; b=jNgn190OkhaircykouGxvj74neMv3sSrSzDt5uCMqDBDOYCHQzkSESJhLG0ClQVW85 8bQESkzOqOIQX0bEA7avYNP7OmCuNDNlCH9Kq53ZqiM7APyNwQDTw1njl31+ss34aOqY TE6m3ZOOweo1T1sSMnIsnfHyAgUgAvqsjQR0hFiq8+VCuQ8W4ccEeD9WI2ugGITYzhRM jCvShv8T/hz49qRpTlPOTQ6zLYuXvadfab49p5f4M2DqrOap7JhY4Zus79e2UvbwbhMt 0X3pVoLNgGf7mn1xpFr9RVtrvMzqZRIQpiJySX2i7G46QL9es0lHUH9yBrBSEZ+UtJC+ 0Pdg== X-Gm-Message-State: AOJu0YxOSvCTRW889p0hxo15i8zWbANu84ap0Kygu75JFoI04acLxG+T WH8TqYjoX6UwYQwOArp542opO2Z38FCgFIpZkjPGOrAvTAKQyGmkC7oL7GHmuutfJivOD49O+Os J X-Gm-Gg: ASbGncuaGNNPFz9VzZdCXXW8/asK6FDeX3RxkWP65kKk+Qkn6yRMClZ3iA8UpEYKj49 vApWFM5fqkIqarS6vI1jDQXZfNHHgdJvjOQ/KMIseqJc+xICvl4ebMVC95rWdw9J3iJZ68NMG2/ zEGTGDbvyK/j6ZhTKfUjffSoTdqsZeu8IldgBPEl9sfI9b4TU4YQdvVzGV+kqWh8UwAXIRwnody NIV9Mh2XOk6UMCO+kEfca36jwaKSc0gqP4/VcCRtHIPMbOPfF0NdTqRCkDGinSPsc44cBaQmaCP AzJLu/mh8u2NAA1ZlcPO/gKPDIF6wc94zICfP+WBzi3urbayJX+/URchYdCXe+Iq3Qu8fcu+WN0 = X-Received: by 2002:a05:6a00:3693:b0:730:9801:d3e2 with SMTP id d2e1a72fcca58-74091a23879mr834018b3a.8.1746476875367; Mon, 05 May 2025 13:27:55 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 02/20] tcg/optimize: Add one's mask to TempOptInfo Date: Mon, 5 May 2025 13:27:33 -0700 Message-ID: <20250505202751.3510517-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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_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, 37 insertions(+), 14 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 73a272eeb3..395ad8232a 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,9 +1059,18 @@ 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; } + /* 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); + } + /* All bits known zero is zero. */ if (z_mask == 0) { return tcg_opt_gen_movi(ctx, op, op->args[0], 0); } @@ -1068,20 +1084,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 Mon May 5 20:27:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887466 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2236162wrq; Mon, 5 May 2025 13:31:58 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVAwmeNq0WHocsR0sPHyQ+VKYczzrGdAuT5tOKJgioN1tn/jIqEyQG2WmLrMkAW7zCXAbajQg==@linaro.org X-Google-Smtp-Source: AGHT+IH/+dStxAgxXsAiB3mgfUYXkxxyxTXF4RFLm9vyQzFhvBkGLBFRg69muR1V6u98vjUMYZcj X-Received: by 2002:ac8:5a4b:0:b0:474:f4a4:2ca9 with SMTP id d75a77b69052e-4910ca555a2mr3138751cf.25.1746477118741; Mon, 05 May 2025 13:31:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477118; cv=none; d=google.com; s=arc-20240605; b=dJ73kun9GQGR99D4+655bGZj6DXopNNT97xVP1B8huoKZiKZdLMhOpRz6KRVpocxer y+y/DYul6qyg+45JCzC7HI65myZwRaNo18BGttzlZn0Mji8zPzFBNaqr24HgQ/mdtGD4 +4igGp/e7MzAXH5imBRDPFipn0EP3ZOwVyoSDqtepl6QFGpHUI6w6WJuphWN0FpfcwMv HHRg2aYz2bdazk4z0KbXzMSTpOPiF8ZGG91zYJ2EuyoPbul/7YlOZ2zTiJjCgw/nFuJx YDt+pzzYLeSFJI1nISCHOGal3n1JHzp+EekGPhbSEMFFqUGNhkW9UyR0G5DKRLat0cph oVtQ== 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:to:from :dkim-signature; bh=p7ZaCEQNsiBmYp3nl0if94zw00aQ6FdJJAQYLtZwFJo=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=W1rRaIMzYwMzko+btqOzpnJvLQ4uKGPbeYVx5aEsxNE0MyTJW2sQOm6+JxmBlok+bB gGdpgS7FGsgC5kTEMdXF7XZn1O6+QVd4I4/jCElUmoBhXA0acoipADSA2bfG72IQlBsR EJgx2qg4knRv4na9mq/FY8LbobaAxy/ls/V5/plJ6IxQqkvO8f0qcHYAPb3e+DtHorwb 7mjIz6IVTJtMxahtHPNLcJjgFfCCQ1FNhs/9BBeO2dgxVvhI2v1gooOrWCLNBBUNWuXm 3UoRVzjQZf5z30CqB75ZdDFMGXsgW6NPrEg8NGIM5sIoBtzl/yApYmWGfn5oVyg5M/zY Ugjg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SJpvt9Jt; 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-48b98724458si101102981cf.346.2025.05.05.13.31.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:31:58 -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=SJpvt9Jt; 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 1uC2QA-0006p3-Lw; Mon, 05 May 2025 16:28:14 -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 1uC2Pw-0006iD-Iz for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:00 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0: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 1uC2Pt-0000N6-Ie for qemu-devel@nongnu.org; Mon, 05 May 2025 16:27:59 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-736b98acaadso4658318b3a.1 for ; Mon, 05 May 2025 13:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476876; x=1747081676; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=p7ZaCEQNsiBmYp3nl0if94zw00aQ6FdJJAQYLtZwFJo=; b=SJpvt9JtexCRmIpYLYBVZZ4Zf+GT7zfdM/w5sdQw0gckgw0dykJWV5vECyxRxjLc0b Mm+vUYVsWND2xBSaG5KOSBo9NTkizDuiwblJg5g5xL7zfZzCiSwp7aewrplw/ecq4jjG cbvM7X0898KeBFW8y7ZVRFZVtlDtH7hzXP4sk4642CCdNHvO+VaI+utBGAtcE4UHlB2u xQneDcQUNkGrmNkmQFokPC1eleMYgmV1ZAoqpPRRPhVo8aIp4PLqihF4i4Kw7d+KBPqh eHL8TFRHOkE1VwQ6ERw6lS1BzsPmwOS9nvL7i0KBmb9H1yUst4b0x52Q/wuWLzm2a3Oa fj5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476876; x=1747081676; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p7ZaCEQNsiBmYp3nl0if94zw00aQ6FdJJAQYLtZwFJo=; b=Jqq19ZVztVAvdETRONwGsRC5lahFyrQy5d3cR4HXpcxUMaXuzpRFpAo9HxOavdL9NV sPZb3N37W+ue8aAgnC/mTG0HatAnTR3Pqf+gGrdu49s5zkmWuEJOHJjeNZreeCe4FGaH +H94tMh0RKrDTfSX9kHxLmAKNKmw8cgGSHoi26UMLqxEREK/R5In1jMwusIg8rgui1/9 scW7coYRHlHqBvQvFtTRCR+TjfdY6t6KQrAfSIXebfmoILvoa3V3TgFswSSg12dHvz3M 5kg3Rzme3byT6o2XF98p9n30kE5OkNQLQ1Gop2iY/nLNVNa4wDi2PCDFyv8dN1hbkFrE TbTw== X-Gm-Message-State: AOJu0Yzo3uWCBrtIN9D8ybCg4au917f0Pzi1JRYwzMrrQPlas728CHVH OAQ9ONdbRz6R/CYlvFhCla974thoxP935yULSI9hKwjkyZ6AVq9m9GeU2C+AHRFsCOPFsPHrq70 f X-Gm-Gg: ASbGnctA7BXkWygh3ljjDrWzcvfQ8l75Dy5W3TreS0kXgCTaqnJXc3ZAhzG1Q0AFBaz zqsHPD846HeTdfyh4HiODQ98MvWDpbQKOQp+XvYyURTErNHBCEGhZtNcKCPNyongcvpvRq4RN++ wfCnPLCVkd1V49A4l8lCygFWSPY35R2z7Yb9GoyODCCyU+Bn40Ia3UWg3sPY4DulWECGTsFBgOR fxnttVHMEP+3gIpMSat1nMNVdSQ7UpGFRfimwYKfBqpPLnm8awNmdNxtoPp8casXDoiOQra3CU2 ig5Ad+CFWoeMC/OepY0al0yUwbrKRkTq418fZrJfVWZwwcx9oRd/uclQ3oilNTmrBNvv664S39s = X-Received: by 2002:a05:6a00:2c85:b0:73c:3060:d53 with SMTP id d2e1a72fcca58-74091adf89bmr755793b3a.18.1746476876050; Mon, 05 May 2025 13:27:56 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 03/20] tcg/optimize: Build and use o_bits in fold_and Date: Mon, 5 May 2025 13:27:34 -0700 Message-ID: <20250505202751.3510517-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 395ad8232a..c9f0f46b83 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1420,7 +1420,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; TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || @@ -1432,26 +1432,21 @@ 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)) { + /* Affected bits are those not known zero, masked by those known one. */ + if (fold_affected_mask(ctx, op, t1->z_mask & ~t2->o_mask)) { 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. * Bitwise operations preserve the relative quantity of the repetitions. */ 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); } static bool fold_andc(OptContext *ctx, TCGOp *op) From patchwork Mon May 5 20:27:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887461 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235707wrq; Mon, 5 May 2025 13:30:49 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWQWrveE42hmwZsrOoWqdf6nos97/McO9Ma4MNRgf69KZ8VOpI/hkEeUDah8ztwafe0ii/35g==@linaro.org X-Google-Smtp-Source: AGHT+IGE3U4sIUSzSokwvhgCndqsqvO+/eqvyUFlVHjfIUKfdcUrn4cdxErYXHRIdT1aAHwy2i+q X-Received: by 2002:a05:6102:5e95:b0:4c0:3349:cc4 with SMTP id ada2fe7eead31-4db14788db4mr5896095137.3.1746477049759; Mon, 05 May 2025 13:30:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477049; cv=none; d=google.com; s=arc-20240605; b=k9650J7YqJiAgORpDN9VAPEVD44v7Xa8AAaiAIAyzB7T6cdzMkQyITuvP6dJ1jS5ca HoWj+8Ygiz2WGVO8jHdKxJqehUfl57iW7CdpFxSrGwECMiKvDKR1gsn2BrkebQvYpYMR IgZB2Wlrhrg2QXdJhJc7pF64C4FiwDyKiPb73mg8GnldWKGY+39rVm/TVDX4pCFDdz2J VtoPN4IfJ4BtLtuOJpKz3Kt/h9FLBo1HnmkOMuBPrRC/BDpuos15bxav/qdP9cGhHdBK gy8xc5ZQhYSpwW5l8in0QRx5WhL6KiHLGDOcO6+JAx3Q9y842040gS4vn6ZpkcRGnIPd us6Q== 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:to:from :dkim-signature; bh=U+uJdIaBD9egT3YwSM7u2Wx24dmDX5ceZUE2NcP4xK8=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=ayn/8xsSZ5r0Qd/Pxjr/S/Qrl75MLgcKohMDowqay3fKrh0ta2VmfMgYQL+cYqw0nK 8dCGwKZYsYctGMcVRBTOw7fqq9+cMcEpPwWAiMv7kTmwgtp69rSJORDzHi63nde/g0pJ fsdc3en9pMkBeO/yegu4qP/RfQJ9ZU6jSQuocdjlLcdSKDBmFL0YetJzPbfti+DbFYt2 GFIgC71g4xflJl/qVuAZKtqdnlArnNhLpxM8yJIpVf5zBXk3hiyAQOfUFJ2cpkcsxXSA PlKq43vD6dK7OBly4u3NbGz3xycTwGhXMmquXqGuyj+fIBnSmUk0V8YBRQV1zY2GMFKe BNEg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=q5YEkIb3; 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 71dfb90a1353d-52ae413b0bfsi2476278e0c.162.2025.05.05.13.30.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:49 -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=q5YEkIb3; 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 1uC2Q6-0006lJ-2v; Mon, 05 May 2025 16:28:10 -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 1uC2Pw-0006iY-Rt for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:01 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0: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 1uC2Pu-0000NP-Bl for qemu-devel@nongnu.org; Mon, 05 May 2025 16:27:59 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-736c1cf75e4so4392098b3a.2 for ; Mon, 05 May 2025 13:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476877; x=1747081677; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=U+uJdIaBD9egT3YwSM7u2Wx24dmDX5ceZUE2NcP4xK8=; b=q5YEkIb3CC5iM9PW+Y72z9OyM4H2Q0g0b63rxnjCxP2U0EFx9PXoXetUeMNjHO9Dcy j63kR30lgKVTlWLQznlW+YmQnWDUUOOtyodN8tE4Ggb/2qcbH/3VP4S7s9Ms4G8b6L3x 8KOk6lncu52bAwVHBRRG3tBKG8cfB1g8ir4RzN3VEu0l+cDRtywJ4qEDyeCvnSD/qZ51 stjpMiF7O2xEXbHOejODykXAo578uBTT9UyCmNl/vid8bWZ5yajWdoTdnVLOwwlyUk8o N/m7vwB6YW8DDocf+RkrPy5utogdLNkRjdXRsaELzYgJdN8Qkl5ekNf1dtFSl7KivjDd tOAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476877; x=1747081677; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U+uJdIaBD9egT3YwSM7u2Wx24dmDX5ceZUE2NcP4xK8=; b=XbFBMIHCPUQJT8rlpJ1Tu1v8+f9dJKzppfh6gyNLk+AIvjU4I3zkZgRLK17R2fzOnJ 2QhOGi3+CpT8Ij74CquQySFFm0Y6Lw/WGWkYjefAiDxRR100xo5IoTtbVcjMsxbl5KWV dSoOkfDDRxXNQJiYfpUZkOPmkWvy/ZVYv3PkrG1aMYskUBjNclSqlxgkhqMNe2YZuW3y hMH+mftzqUnL89qaP2AxNjMQnsRZRT/YvtcS7EaJKxQPQZTPDSxlE8M6UQal5YfjDgOL /oNwvIGIqoZq/MlOpz6WF0BHeAEiJoUTtb0hFz1ll43+Idxps3+UrK/v5BsoUFKBaTcR zfig== X-Gm-Message-State: AOJu0Yzf1z+QjbXXAzbr9uto4ikQCKGjnuqP1aCipdWwHXQiJcdriM4r o9m/BF3eNZU2F4vQhkZxb2pGVndNWy6k/5J2dyO70sdXZVYyPj8WNHHQbfe1FsepefkC0fwLCgq i X-Gm-Gg: ASbGncvEzzC+ZeD2tLNLvfRf0VDUhitlIw9TwD1So4k78RfYZKMvV8CDjh+7e9p8094 DbZD6ngHclhGliq0INnelF4KfQCbdOCthb9a0BVIg2thpRNBOTvUk+Z+cg+K0OdYeoKXMZohsFg UCuqwC4xs7ifp8/uK0Cb2LpUti8dZl8J4OaA8VQtRGGc4uXNKOTJ8+UZVFBc1R5EHRVPvRHqnAK iD70qAKMIKzzmuQifVnvHmhqOgN1VyUw9hSu0LLqIW1+AShYn+KuUXjW1s7wvOVt+oactR10W5A whpMp66xFoMtmae006XCN8ORBjfIJVN5gQSnc4U5s/lSgTqLM0heFXXVzBX3eOIexWLGGVZ3jS8 = X-Received: by 2002:a05:6a21:9614:b0:1f5:769a:a4bf with SMTP id adf61e73a8af0-20e97eaa02amr13306519637.36.1746476876797; Mon, 05 May 2025 13:27:56 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 04/20] tcg/optimize: Build and use o_bits in fold_andc Date: Mon, 5 May 2025 13:27:35 -0700 Message-ID: <20250505202751.3510517-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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_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 | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index c9f0f46b83..faee3e8580 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1451,7 +1451,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; TempOptInfo *t1, *t2; if (fold_const2(ctx, op) || @@ -1463,7 +1463,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. */ @@ -1484,20 +1483,16 @@ 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; + /* Affected bits are those not known zero, masked by those known zero. */ + if (fold_affected_mask(ctx, op, t1->z_mask & t2->z_mask)) { + return true; } + 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); + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_bitsel_vec(OptContext *ctx, TCGOp *op) From patchwork Mon May 5 20:27:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887457 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235628wrq; Mon, 5 May 2025 13:30:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUhklPew0DfLSSUWpl+PU7+Bz1BY7lws1VmSpno+NGzMy7s8HmKyVj+vq6sEw53lKnYrASs5Q==@linaro.org X-Google-Smtp-Source: AGHT+IFLFLNkc3BMKep+/1/LM9oQFKz9oehv9zI/egfcxFMebvbCKX6k+rclaB6lE0dy5Pxv3qeK X-Received: by 2002:a05:620a:1a83:b0:7c7:a629:8ae5 with SMTP id af79cd13be357-7cae3b05606mr1333311585a.56.1746477037956; Mon, 05 May 2025 13:30:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477037; cv=none; d=google.com; s=arc-20240605; b=FEu/3V29caAGj0dPDN8r1fkdeEGGRoa304/bV5uB9x2IsVOSZDC7zJqKPfto5fCOqa YNGkQAsydiWe94E0Gz9aOLDwhk+SPuy48q+uLcQjr/VMrlYMO35hkrTX5zaIR1PIkUhd L9mzui735rJ9Dqa/uCwmj/AE5hlB6JpxtDqvuUsFs534STwfxlzMDZ7RUsdleJqPfQ6B M5q2cmzkKlKzdS5+25C9LIC8HwMVPKb5QPMG3LmGRaxBXiwDH6JHyH9zA9pqweUWv5wI 9rfgwpuhuTBMKlKKfSLd1zlA+1KD3Pih7RJua0eCdGYGHZ7UYorYCiv6ntZNayyUE1eN PQzA== 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:to:from :dkim-signature; bh=Ng45Q3ozB7fDbFJmX/4XPxigFXCk4HF6+j4a4hv4d8g=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=fzM1SG9uRM/Qnaixh7OI8aqUC6hn/LsA0O5JAnEdRMdBOZZbpNviLNzX6dGmZa/tEU GpcGMFo1GHBFoAex0OrfnNRVb+wENpzxPMYWiWQ63g5YAM2I3yhRkr+gtko/A0Mumk8q 4wm7+IQXbZ8Wzx0Xjz5tpU09tqEWO10xHG4Fq58tZnfrxz0n7DqeQYZNZ12LLKsoQL92 5c9ze85bMipLln5pKVZCjbfrp9cIDWfOjHuG6F21e49bhtOtKA1bcIvJf97Wnz6K+quQ Kb3cWOuFlTldFpPrmihiF5uockeAwYHafe5xp3KC2wOW6DFwfuaXBrfZWcHdFWOA4C8j DR7Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QiX3bMFm; 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-7cad23ba3f8si919217885a.49.2025.05.05.13.30.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:37 -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=QiX3bMFm; 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 1uC2Q7-0006nA-OV; Mon, 05 May 2025 16:28:11 -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 1uC2Py-0006is-4R for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:02 -0400 Received: from mail-pf1-x434.google.com ([2607:f8b0: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 1uC2Pw-0000Nd-Au for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:01 -0400 Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-74019695377so4018217b3a.3 for ; Mon, 05 May 2025 13:27:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476877; x=1747081677; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Ng45Q3ozB7fDbFJmX/4XPxigFXCk4HF6+j4a4hv4d8g=; b=QiX3bMFm0blhibYNXA8+jJ+l+06bnXqr27pTYDicrJRGyEDavHra8jWZVBZSho0UYa HLGAygaotCHMQHpUKoGuBL7oyeHEIhKXSgCbcEUhOy74mPGsTKLPft/Po0am20hPUE+Z dfxpp+kaujSYGgoNfOfx7i/jyDzrtQpDMKlfZa7xYQtLELFGFXtK9sUBNG8yz+qSIEmQ PC6NJaR/WsAmRKCkZpZ9fISkMiNG7B8MaE/N2+1WfmYPu7iVU30TevPWbYIf0gfYXD6V 7CKzQOpOwyKaI860wM89ciokJXcQW0KAdGJ5UTbNfuVmRQt3Kb8BBLKL81VyHYrp5zLC vzJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476877; x=1747081677; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ng45Q3ozB7fDbFJmX/4XPxigFXCk4HF6+j4a4hv4d8g=; b=MKR6lvNi14sC8zP9MH31rC4GG1TiByTw8wJEQykxy4QfCIWfREmr3M1MVLx95Ep67i 8gpl6UTSnO6p6xAfkfBiHjf5NWAMT/naPRoEhPWRzIa+oR+ztxvmRZbTBqUjKASwKejT /wAU5lcUJDj0sIBT/0xlKWA7u33jcfBkPaJs2SMbFduIMhLcab4GpkKZZzHl7lXa+oq/ +gGu0Qp4oa5qfN+Af4XVVTMe797NJ0A3CEx88IN2OJcx3/JSNkOGD4GwAyE6kXGUjjA2 f7XJPCpCXRsq5WANDxR2/LOrqEEREvgVcDwcJZIYAd7XduIQMlOfAgtCG157xrV5bc/x oqGg== X-Gm-Message-State: AOJu0Yz65qQm8VGSAeROJ5PYULsoN4jGYqIRsW+Iizoo0Du5XijlbwFP 0ahocIvI7RmxiGagmyA1Zjr7LHH068QwpmoYUd5R0F2xhgCZH2tWkyKnTvAf7O6OgQUqDPfQbYa / X-Gm-Gg: ASbGncugAkyLY1go9BUtInzmYQIC0vfxo0XCGsgmapp84P7Rr2r9sTuHOiMqz8SUUcT hnoAFtKHPC+6pNdNm5LlhcWtzaDL77vsQEzT253nnHY67mpANr3RHNPZCpA+qCEuAj7HsICwVB2 LoIZpP4myCVjuUnCa+dwmGB+SNEFD/+2iHAvw5KrDMAcIm/HYEIxSX1IPZ+GQHhFK/HwVmIlVQU RWVVolCt5fCv/bRTsvxrisqjbMZ3nzJToCr0fvXQkQqhmycwGdKDdDy14i7g34AfSdGtRiiujCv dyFBZgEVZZnOcLBxH1HX5amS46emVt9AHnRQw0xlZ41B/316cGumMBbQkg+cIpEZ2bTMz4AuWXb ihg9PC9NFWQ== X-Received: by 2002:a05:6a00:4293:b0:73f:ebb:6cb2 with SMTP id d2e1a72fcca58-7406f08d144mr13196662b3a.3.1746476877434; Mon, 05 May 2025 13:27:57 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 05/20] tcg/optimize: Build and use z_bits and o_bits in fold_eqv Date: Mon, 5 May 2025 13:27:36 -0700 Message-ID: <20250505202751.3510517-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::434; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index faee3e8580..08d15e5395 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1917,7 +1917,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) || @@ -1947,8 +1947,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 Mon May 5 20:27:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887460 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235674wrq; Mon, 5 May 2025 13:30:45 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXKLLNYxzxBaj9+vBqGtpMft/nRtYBSon9soaI4QoCuajh4QTTwew/z4n522L034hULfYrW/w==@linaro.org X-Google-Smtp-Source: AGHT+IGMZmrA7zxILdy+yLelWV3Vmah1LFiRN12zHq2WWfK3N68vCWo1Ml/twunpMXHY22NXhmbY X-Received: by 2002:a05:6214:230b:b0:6e8:9a55:8259 with SMTP id 6a1803df08f44-6f528c39c30mr143094756d6.9.1746477045089; Mon, 05 May 2025 13:30:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477045; cv=none; d=google.com; s=arc-20240605; b=VyzEebSMixaTHdn+JzgeuKM0SbWjUwVh+kezjWeFrSKOT12M0UdDDjLqAqdDC1izcr ceJSNbJjjFiImr+NQeK0OcIlawt62tXo3MU83hwO519Mbm7gOZ9smAp0tPmI1blTqWMy KiNlb0Fu38/cDBezsTDKP9T9j0BBzd1aWFgiHuXhepJ+sWEY8k/T+wB+8R88hIBJWXzk BwKkdgLUpykgVyJAKS44ngtSwubhvvsy/Hx8+LsWuUYWh2UrkKmVKWrVLgTHfos7IUAD yzoN4mu3lViF7GeXHvMdGLBm7ZDaSEWj86P2nDA3/MRD7gpNTYAXJnMdkNi6kAXtYLAQ flRg== 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:to:from :dkim-signature; bh=bNMUa6fOg/QOVlgIUDbzwyMY2i8YHnlDdM4yZLD9BYY=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=QqFdNpdEr1aojFIWS1Nu2En5hG0c9Movi9nwEGzez4SVGMz86eoKSRCmCg52Y4w7lU RRTu2IToZufBaiU7pi3lsYshBi4BP0DqpV8SvGKfdUSDL82iuubnvFerOpWDdgD21Uo9 SJ6htqFDpk/GG8Fx5IKkHM5pYLGVUoxJCwY4ny6fOrIaUbeYBHGpcy0otXyDX1f8/jk0 +r9R8wIz0FoPTEcfuEqpPbqZc4rhe7eGyK4Rh2AsYPJHtIyaCkKXVHPNIn97DgaM8c/M 8GsIBQ3YVPvRvTL52d3rIOM+om72hmhI68Gx+JKXFvFEhufGN+WhQOh7FFDbYSm6sqD8 XJfA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aKF37gdB; 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-48b966cded8si95283671cf.197.2025.05.05.13.30.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:45 -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=aKF37gdB; 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 1uC2Q8-0006nz-I8; Mon, 05 May 2025 16:28: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 1uC2Py-0006ir-2G for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:02 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0: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 1uC2Pw-0000Nz-B0 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:01 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-73bf5aa95e7so4650929b3a.1 for ; Mon, 05 May 2025 13:27:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476878; x=1747081678; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=bNMUa6fOg/QOVlgIUDbzwyMY2i8YHnlDdM4yZLD9BYY=; b=aKF37gdB5e32w/bw590fFmHRAygY1M8bDnrqXFnUgtqI8MJjUEcxjBhRxCaBGDQkcG 5KNsRTN0Y76nTZd3fVmeNCLzqEInFj2/Lm+L+4PQB2boq5hkfE5m6CE2CKsAU28g3p1h W5tDJEhmez5gH/YtLDnklYfWh2wpwlrNHGTOX1Hg1wnloi+WiMBN0hp92ByUR+rUSRst Yfa2VSsajOwXzPCWRuwYrodtdr50H1WlfpkbC8s2iZlmoOsqbR5Q7e9oqWDJuFvaWQfJ V5P4ti+j4TbN77bqaUTIcLCnrT066Gj0kkH3SFKAiXbXNt1JEFcN1lcRlFc1uHRcsvh3 W9Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476878; x=1747081678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bNMUa6fOg/QOVlgIUDbzwyMY2i8YHnlDdM4yZLD9BYY=; b=JdvmNhKMGM7RaQN8aNXEhcDoF7sa2lszUt096eya39IiUrS/gUEzMFRk6Dfkva+rU0 uv+jxbg6fmStcEAXFYkmsozBzYa3ouWugNMrlyCpbBaMXbBVjLN+guHkUpQ6g2B1o6t7 ETP+C0Sjg0T+IkF5+HmeRZKBE4dxDusViNF/GRlncDWTd9XvhoQz2f47pUzxnAYSHIdC /CeaAhqnv93UYU8GfZL6fkadtVjrrq35emBcAam1evNI38Ua7+u50fdQDKYSN3Higti6 5OVPpPS0OXVmortlajEC0Oni2a5tEsRQetL1+rvoBpbCxR33I4/FSOSQq90I2fV2H/3d /hGg== X-Gm-Message-State: AOJu0YxXLh9hCYXdfW0n4GPqFiv5HPc8mKVdH1TX4juJTfG5ZXIbHNcH FbPnSIPVzuPKvxVk8RhueGyX6b87taa22zFcTMUj8p+Yu5vpT0Z5ng95fvUxdMZdfHG7WzH0DZH s X-Gm-Gg: ASbGncsP1nB/G3JPe5RSYW5CxzTfIeFzsl4fGi5MsqPvpF+MfMVVFo6tRJHwneo1ndl P7RqiblCnjR1qbiCbIPr8xtEBLwy4mBC48Be//UFxihZk4sajSm5ojdXB5pzZEo1LuaGHROP0pd 0OS1jbBLpr6kXSXQsCT5yEnPfWvawYzS2DQXdPPI6CqO5Y+u16auVYSu3iZiXGdsUj88H+kAorS cqXXrBZYrmUcB4SzjXoWMU6H0Ftic5KMwv/6js9JbBssn8dr8iliwoGJWK2qqct+ojIuXdrq6/B JwGDB2ChZ/yeCsCkBJ5YD/yLo5cjiGFQcPBgJqXdWL/da9EyICqWJdiU7DLRzoTIwwyND4xW/Qg = X-Received: by 2002:a05:6a00:e0d:b0:736:4ebd:e5a with SMTP id d2e1a72fcca58-7406f1a3c00mr12867802b3a.20.1746476878519; Mon, 05 May 2025 13:27:58 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 06/20] tcg/optimize: Build and use z_bits and o_bits in fold_nand Date: Mon, 5 May 2025 13:27:37 -0700 Message-ID: <20250505202751.3510517-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 08d15e5395..9721c80943 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2192,16 +2192,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 Mon May 5 20:27:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887454 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235417wrq; Mon, 5 May 2025 13:30:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUD6IRO2L+nDpYfufMIDn9tPL0Os0hJl3N6xb8RqHj0L90TgMXdShVBeoQvblnsMmjvsL5LrQ==@linaro.org X-Google-Smtp-Source: AGHT+IFTCzrZOlqmhES1cF0cxEZVejnydFQlMG/jI4Jy+yrubzQNNWrnkd4f1a47ih+IUYbQqK0j X-Received: by 2002:a05:622a:1917:b0:490:8ce2:b79c with SMTP id d75a77b69052e-490ee6823c0mr8809031cf.0.1746477005929; Mon, 05 May 2025 13:30:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477005; cv=none; d=google.com; s=arc-20240605; b=leqQ7E6lMTS69zNXeNwBRmpOsfVbKoE0cJjOvkDc5NuAC9sblP8ueJwm4au4teGOIr NVtwDzvufMHN7FD87ovl0+HQwjUdT8w5bMvwA32jlJw+dW0NPEntI1lHtZz2QAcW0hAm vmvHQWG7RUpdt6RM0hslo2k23+qM8LS/GXzfFZPTf8s9G/sRzlnmEXjvayJYf21jzM4A aaBEOz9DmvjrpLaIaEPzSMI9cMTH3bzPJD0WGx7/kzSYy7H+S6gt/w1bNGhHA6S7hLl4 AGQneX2mYAGJnN/b/LmZK33++foCKn0mc/m1REVN5e/3WMyRsykTpzd5gMax+5Oa+Mr4 tq1A== 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:to:from :dkim-signature; bh=H0yKlDOkjZzIDpwxCtwHuK2uhBYRx2fgU8VnadXpyy0=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=cp1K/Pe5ffImYhz3dxvDrg0TtqP8T1Xj/FzSx7FowWBsjELbg5iWWSWe9uMG2e9HzK HQTqIxuGLm1o+b4epDzvzd2w+M6IrPSnTPmgD4JENZs6f9PzpGAAVb8V+/VPQ8bfQPbI BLQ5090daOIg8DpFZuPu1ne7ved5k0tWxd+iSU5utmmzYgvLH6JxT5lhjnTHA0R2fBtu r+w2rgsXlFKmntwAU56Uc1Me75REyWX4sXo0pO2qljevFDMr2QrCLaYT2GPHQoyBGqeL y09/6rSf4Pr3KfOVFFy9PUgIdNPwEsPB4fWek/l3U0GYFWhVbBhh9J9KvaVQvhxEIXrf duIw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=qmUNV5I2; 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-48b960ce1fesi97257991cf.15.2025.05.05.13.30.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30: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=qmUNV5I2; 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 1uC2Q7-0006n9-No; Mon, 05 May 2025 16:28:11 -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 1uC2Pz-0006jd-Ef for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:04 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Pw-0000O9-T7 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:03 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22e3b069f23so189075ad.2 for ; Mon, 05 May 2025 13:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476879; x=1747081679; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=H0yKlDOkjZzIDpwxCtwHuK2uhBYRx2fgU8VnadXpyy0=; b=qmUNV5I20xwh2dVVR8yXWtugVfif0z1CTa0oaaqFkQmviCFwahLij3GTUB9SS/i4t9 uhZMPdrxumZnck/bVwh5luSaVfGcRlIewlp/NZOcSRZCZ8tunv3uN9Fj5eLFcvdtgoyh wls9B0DQIxPecRwobXOttksa6YQbuwoYNJnjk+l+LFimCLAVdFQVCJIBJveo41or+qJ7 Hykydp1Rdlf0V7eVkln6H6a4X2Ut741Zgj7zDc8QavYN22lXo0pzILi2XAYM+8llTfar jdLA3s7S7UnnVIgNOzMNXEZQ/7KZZXp/9zDXEBVPxlVZFGN2BcxPcRUxKb1pr5uu1fJU +VTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476879; x=1747081679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H0yKlDOkjZzIDpwxCtwHuK2uhBYRx2fgU8VnadXpyy0=; b=u/TBZPOrzfEnZpQTaGQZ4+fClgjwLrkd1i0E2uanal8gyayRtMbi0gu3Bi8uZ+KhjT dLhg/bnFakkvA5uaZFKNPG5UTV8iLNYq4lZrChcmfgtZ4uBSrcBH4q5yd8P7pzEUknON BCSiisJ4k6FFGdO3BQiELf/A0CVuU4r+NTbVEntcUhyVCfHN5Sv8lfKJaJc7IxX3ZU/V CHpqTZRq6GFqj5nECxKuUoN6vw2AHE7VusqtZjVbQHRbiaw0+pKSXex8iGk5LTzm6O/g lOmZfN0FDEyb+bSCW3JEkSsp7eFxVOMrjeIKCvOjZP2feeN87+VqEZZ7FC496RXXWhRr RO+g== X-Gm-Message-State: AOJu0YyTZGTthLl7zJEAXjqy5HNOUmrY0xUgskRlitccSkbCLDMZ2A0a q8RPvQLdJCB4QF0DdEG5Z3EnjxVYRKulsEbHloApvP2uGxUqZowMGN5+MhBFDYcooYY3VX/UW58 B X-Gm-Gg: ASbGnctcAkG4TQJ90ZKFrZsMVz7jTZ4819sFvus4Rrk6Hu+m0d0XPE7SLne162kK0/E tShfwV6Gvdre92m+FboGMMWPn84bY619s1+OkvWII/Nl68FJKMiOwnX3ASEfIE9JuRKJSxoCdAZ 0/lKBjt/dgwYFjY2AcyqXObQGfNaE7aCjHtx3HDyDu2zpnZIAGJAFtNe39oKCd+fHYDbdVcTPDl Ym3OAcwVYwd2qNTuDdTcgFkZHO2fTt3rmNMv8JC0S3ZCt5ALyTo0jPYZIohsQA2aLYBWZjfiBSB Zy759z35TtgS15HWpN+FwnGytpeBdiA6ZtICMtIB6LfZhe29fojMigqpso1MeRjvRwHWk9dgei8 = X-Received: by 2002:a17:903:244e:b0:21f:617a:f1b2 with SMTP id d9443c01a7336-22e3311dba3mr10502795ad.46.1746476879304; Mon, 05 May 2025 13:27:59 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 07/20] tcg/optimize: Build and use z_bits and o_bits in fold_nor Date: Mon, 5 May 2025 13:27:38 -0700 Message-ID: <20250505202751.3510517-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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 9721c80943..d5256aa02c 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2226,16 +2226,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 Mon May 5 20:27:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887448 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235090wrq; Mon, 5 May 2025 13:29:10 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVaBciQWNlD+uc3vmjJpF84AE0wCmooO6Myu6+HkZzSuQY1rEDEV6A1X7VRzXQFCktC2r9LcQ==@linaro.org X-Google-Smtp-Source: AGHT+IGBvXKtvg276asEri7iEFUiBcI3rzG+vNZ/sgK4kFY8L2fdpSMCmvYvD7ZIYvG5ohCfKRYU X-Received: by 2002:a05:622a:181f:b0:476:91d8:230e with SMTP id d75a77b69052e-4910e1cccf0mr2155831cf.52.1746476950687; Mon, 05 May 2025 13:29:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746476950; cv=none; d=google.com; s=arc-20240605; b=VZS5nV3GcF3QIECaAXtlhi7/RULNHZ94/yoyV39e2lL8i1+TF3owNly+3BuYmP0mZm VPHNXF6Nh+cc1mbFTpzWO0qTzG0AJnbUOpouqNH6Gie+M0EavfEhsPbLGvtapJIlMbuK T6aBhlePQ9dWnBZZEw3BifX+Ubok79q7fQ3k4Bls29jiiGPZlrq8cZ8zxT3dPyRcvScj MG0sK1lzWoXNp9PGCyuKnZIsutO6lSA/bc5z9aiXQ09ntfrqbSoOHbfrNwLOFDIxyhoR CX+q/nuYJIXSwHxYcssgmhJoa/9a8LWesWGcB4tONGaSjj4DFuoEoFHCwJbFh//XJcYE hhaQ== 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:to:from :dkim-signature; bh=1L6qN3hGtDimEHeziZBjUMl7ndN8s0huzRJQqlZS3SE=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=YRUVO4Qo6sddKtsfYod9xxhwSH1LGpnuzVi4DQrbesnQNw+feqXIb0ccsYq6FJQCSD B46j0h72jWS5CuZcJS0WBtJ4rUS1ypWjUqwAYBmCxLWf85Q1dt75d5w8AfpW5QjJ8xk2 zwEIJ+y0HrPByk8JFNOXqTCcjCoMtEvOqvxg9eIeVSLIfVNGrt5y0gXGDzz4eJ4XGc9t IOFb5t93F3ZtGJ0cKGIAcluonAGZN7rQoruzLskKf7YXipRJ1HEURocf67+PNTuMeTKf Sy2fbzPdZk8pH0St/cbA7PsNer0fKlWmVv5zEWQN+kKw82ttnzPoLyQL3BAliOlZBuj3 bwAw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FSiZgqac; 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-48b98724186si96202461cf.371.2025.05.05.13.29.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:29:10 -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=FSiZgqac; 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 1uC2QB-0006pQ-Kv; Mon, 05 May 2025 16:28: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 1uC2Pz-0006jf-G6 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:04 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0: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 1uC2Px-0000OG-Fy for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:03 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-7376dd56f8fso6739035b3a.2 for ; Mon, 05 May 2025 13:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476880; x=1747081680; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=1L6qN3hGtDimEHeziZBjUMl7ndN8s0huzRJQqlZS3SE=; b=FSiZgqacHOlVpKVyaKbhstbJOBmuQACZkOlA0qtGe4/gx4ycBrr7j3giryaCm6C5q6 NgRwpuNv0MLtrdaF6/HUTRAzmThL4tLRN/XEysK16gUQLJs2eBASdzu3OW2SZhSICn4x majDIxazmprJelA3bfrjR8nHMyKQxUdk3NyfnGgppjnflVuGG/2GTQ0w+r4FCGfSCL74 Rwch/C9a3nVEHyBgnwE7+PY69VZEGQaP28y+C+4xtIEQ51lSJiN1ak+fGmP70Yl8wh23 649TDn+1DxOHaJ84nYhixH3ZFven9KTIdp1L0s5eQ1oz++P7jTllHctcXir3eaYFbbCw Yekw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476880; x=1747081680; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1L6qN3hGtDimEHeziZBjUMl7ndN8s0huzRJQqlZS3SE=; b=gI576Yv09x9isvYKX4eao1rmTL18TMRUBx3U/lEXwIIxdNgCGilGxm+TTG7x2OmxTX 5LaX16/40AfRbWZDgb9LwIBfY/z6i8YIJJzz4Rn1ozOx/7B6WzLljxLVJoGl7m3t5PNx 98xxWBcTI0UD9nURdwJ6qQclJB03gZFLY2ixS0D8u+6zImkSN/2hgEE41BQLlCH81taC FHG7KfAhW+WD0fEYHM9blrJjYhaa6khh9Yjsi6GKk4yBnJTRSjAZvxFMECtPG+Ryoo0a HPY6grIHYw3DS51d2SBZ4EdJQTeq4R/7NR20ck0/dodn9drc04s2P4KsSG93ebrFCy2B zFnA== X-Gm-Message-State: AOJu0YyTtAfipJAeUr4EVJaH8uF4G0zpP+jCZXYGs3Xn2sBoyhVD4wGy hGL8srx5zoickWdtEmQWKhFaBPu+ZREcNwZ2+cL0+c/1PsuQl3ffCb7Z1eCtEhe+IWT69qAQ8LX 5 X-Gm-Gg: ASbGnctdx2WX5IchV33v6FX+6caO0zOTWr/L7tcj6/+wnRTyZmTt2Fcu3Vv7frB/5uM QLNk8/OiTmX5UARBIhbqXW1zeIWGHGVKKShTTPMu5BD9sp7ftbZzC/CJzeb74/raYkRdvmQfmZK CWnePZG9TRX3gbk85EUpIkVkymP1J78WwTmDJrwgGC0jpFTKXY4WaVp+jsmAhIxY/yD4U2lpS0+ anYWKb3cVP9nhKTCbrVkYfDd3LJMM5zkJJlr7D99u9xeqqMHs85dSIRwuKRl2NGaj+Owh51c6A+ t/M4TXQv471DN7npuKx4HA2eLBQx6e9G8SEIRWtSRwz0V8TcFnN/IrWF4BCcKDaKDy+iF6ccC84 = X-Received: by 2002:a05:6a00:908c:b0:73e:30dc:bb9b with SMTP id d2e1a72fcca58-74091a01224mr777481b3a.2.1746476880020; Mon, 05 May 2025 13:28:00 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.27.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:27:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 08/20] tcg/optimize: Build and use z_bits and o_bits in fold_not Date: Mon, 5 May 2025 13:27:39 -0700 Message-ID: <20250505202751.3510517-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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_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 d5256aa02c..8fbf682e6d 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2246,10 +2246,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 Mon May 5 20:27:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887459 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235667wrq; Mon, 5 May 2025 13:30:44 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWe5Ug9h13zdwhfJiaBki3D5TNdsUlF2nMUn1FmrHCJ0wDzwZiGcdFwwWBsSU8RBPHuqtGHYw==@linaro.org X-Google-Smtp-Source: AGHT+IGM/AGXSOfEUPjCMQJbaW8Kgf4ogilz0k16aAg9feQ2UZw/LLBKFSp9quj4Q/gLceHeYhJB X-Received: by 2002:ad4:5c4c:0:b0:6f4:c237:9709 with SMTP id 6a1803df08f44-6f528c9ca62mr172495186d6.25.1746477044256; Mon, 05 May 2025 13:30:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477044; cv=none; d=google.com; s=arc-20240605; b=Ps0Mrv/1Z2b5sSa+JQFsT0hUeWKpRXVgluBO3jzDjis+WGx6kbnNbvnZzLb0Esu4+f t86wFRrk5Xi1wPH6qd8XPYXnSbHq1blnt61TCqnD0yifKd1St5qbopynNjUiNjLDzBMt j4bzZjUwyqT5HcxJTUblq5RAgAPWKFlY5BdNiLUm0zPdGVhF10lFLhm4cELobRD2kgT0 Sx3U71H39qX8faqlfyYtU9GIAXEgsHM3vhoZGiGR8ve3TGIJwTNHYqs7jhhiJJhkTHx9 ZzeTelnJG7mBYFsY8IbxtrDCzKffqSDzSE6vovRWvxjdnB9qKrpjjAeg1CzYHsfcHQPH C5pg== 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:to:from :dkim-signature; bh=FSxWHLphTp6UlArdA8CaklzqquouBrX+hsreO8uW3QM=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=QsmFS6AVnemcBo7VNghqyYe+n58UVtTGvtal2t7FSbQDZGiBR5SjSJK01r3YlGafz+ wpQVH2bBoKpGr4wRP+Hce5nWuPZVFvPUk7b/BloymRwJNf0JsqqJzVqoEBgmwK2kzZKp 2czXJUCnLYEeA+nxk1P+eUVERV6wGXq7n3alshKCYuPOw3PgWYKAvUm5UEcWo8XqhKHC 8pMHIzwy7NIo1efNJFwI9TBUzVKDT1w7hJBAlnAfbOSkm0YgK3I/Oa4jn0gqf+ik/gEs wqUR2G0P6CLlpp7mLXu/fgP9Gczp6PZTkQGKdwyPjcoRFEulINfTFUX3OTqEgwGe6IHo 96sw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ev1qvXKW; 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-6f50f3ae280si92907036d6.64.2025.05.05.13.30.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:44 -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=ev1qvXKW; 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 1uC2QC-0006qK-Mb; Mon, 05 May 2025 16:28: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 1uC2Q0-0006jv-Ee for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:04 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Py-0000Of-PC for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:04 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2264aefc45dso77383345ad.0 for ; Mon, 05 May 2025 13:28:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476881; x=1747081681; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=FSxWHLphTp6UlArdA8CaklzqquouBrX+hsreO8uW3QM=; b=ev1qvXKW8Grbmry0sYSFN6QJG4t18Ve0DsB3t+50cgD2Ro8CoiudcKfRoiJTS6EIzP RSWIZRqYSHLmskeyfdYLGOpBBk0yhgXcKS7hsV/pZlavu2ytUtVzBhk+Itm0myVqAVVP sWg0Ru4JfMX4dY9ybwKHksAfq9x2O8RlvX8p0w69/Ix4G/JWD3WLyT1OfbX5QbmaWAw+ CoqEIShHcZrUIk16dZb/VjqlkVan3M3BrD4/5svgsYVqLHKd+1dSj36IeooXuIt5qS+k Aun7sNPaiWaRkvxpnWSbLgvyFMAneCB8wqyY22XDjpBiGfEWKOzPikoZDPruBCQOa/xk aGmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476881; x=1747081681; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FSxWHLphTp6UlArdA8CaklzqquouBrX+hsreO8uW3QM=; b=J+rlSGHzf9vVpNDvMF33iLvGv2tiwp9Xxxvfive6eyrV1t2J9s1nRPnWr4leITWZ6n uz2oyXbx27oqm5YaYbOHxutvI3M4GBjZPw+e9zZE9ukDknwChUcIAvOStZytqUrBCMAn jswJDdq14jqS3KzN1FnG3d+x9+tdfz1+NJauLGzcU+0zY7wVg/OLSQ6wK+zqIpb3FG+u i88g6guWKYelkztNSyxt3ObKE3DK3lT5tuKlN9c7uQnMYbCypS4Qc26UyPFkg9v/Ek3S VmSeypkhHBhS1sz5vfbmihtc5B2I2G3NcWWMp9qy70ESVWRJCD6f0yRE8dc1SsLWhgvl 4TmQ== X-Gm-Message-State: AOJu0YzRoYMUBn0b1LJROf7bKJ2/iJTMFtEjyGMtvoc+fP8FQVoKgwIF XpMqBfmCuoVr//E8x3MNzeSzZyOWH/YwNjH8Xnng7fG8c9Crkq4Hq9JPfCYyJojCm8UphDcn83J w X-Gm-Gg: ASbGncuHDS7vMVQu7Vyi9WuA5TrJTACM8H4LvYBX6/WIXoubWB0L+kX5OxhVpbC5Q3q g2CTkoOJMV4txWh6fkGGZ1VY5a5LxdxIIk0iK96NIHIZk1AXZahJrXVlyFPSQbX1Cq1IFM3vD0E EKXBd69Ka+LXucehd+YxpREtWtyazOB/MaRFwyvtPHqX/iuTk2TYkQawRL8DQSj+MLl8Z1i8sZ5 2lMVtIpXwb4gILCYlAWhHrV/Ic1dwftf0WUicBraQU3GUribAA3qZ51cttN0xPo9jYQzjXQy2sx w7x87OvvWvZ23T/ewG944FWhs1MZasoeN5OplQTK96ZdOYZ3nnRTNr85V91j5P53Wx9gIt4NFWA = X-Received: by 2002:a17:903:1a08:b0:223:2aab:4626 with SMTP id d9443c01a7336-22e1e8eb4bbmr126321035ad.11.1746476881176; Mon, 05 May 2025 13:28:01 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 09/20] tcg/optimize: Build and use one and affected bits in fold_or Date: Mon, 5 May 2025 13:27:40 -0700 Message-ID: <20250505202751.3510517-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.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, 10 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 8fbf682e6d..22d302c9bf 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2258,7 +2258,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; TempOptInfo *t1, *t2; if (fold_const2_commutative(ctx, op) || @@ -2269,9 +2269,17 @@ static bool fold_or(OptContext *ctx, TCGOp *op) t1 = arg_info(op->args[1]); t2 = arg_info(op->args[2]); + + /* Affected bits are those not known one, masked by those known zero. */ + if (fold_affected_mask(ctx, op, ~t1->o_mask & t2->z_mask)) { + return true; + } + 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); + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_orc(OptContext *ctx, TCGOp *op) From patchwork Mon May 5 20:27:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 887465 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2236119wrq; Mon, 5 May 2025 13:31:50 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV8+No4t9yNi5LHwB5T4xDJL4+kOFpJ4HV6CMdSYw6uSwP3sd6TZ93ATg5PAlgFMGwHKkiqcw==@linaro.org X-Google-Smtp-Source: AGHT+IE9Kc2GCdR2uac47CJl0WULwbYDJ25OeLJbPZmUdvL4433j0c59btW7ag5hMNm5qNmB3yfG X-Received: by 2002:a05:622a:424c:b0:48d:e215:58a4 with SMTP id d75a77b69052e-4910bdc7551mr3123951cf.9.1746477110496; Mon, 05 May 2025 13:31:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477110; cv=none; d=google.com; s=arc-20240605; b=hwPKHGO1QZ76Y0OksUSjNcnY2sfPZxuZ3EInJiCsfVZOmLrvdJYgMBby3QRrWRafN8 OEH5kI0EhuBSdUWFrgtIaEOw9J3mu6soyGsfUqoBTqkcJZDYAstWDPQvtsUvNtcSYMnP fcZYuHx+Csv6QlNAg0jkPYlKHIma2y0o9fnhcq0Qrxnq9AdDNSlDUt7pooUbbzhCpiLO 2XwgioYqKL6wX+SeYJUa8GjEXeBYX+NpFhYx9lqNpy+zLljATpovUB5606p6UzuZlyk/ s88tP6ktGJXo8IkANcVjHR80YrVieiGOZu7o40tCBM81BntUkZ3xfWxHv9LWZgMi6UuG PBlg== 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:to:from :dkim-signature; bh=s1YxZTFnyJUKlNufWpjlXpI0nvYQxw9kcPDoiVpqA7o=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=baQeTD6HBQlVPzhs84USVMT8BAciPxhSXixGWvXA9dPv3ETAIvXg1NYhTICDY+BE6+ mn0vMLo9Ko2d09x6Rsh3NC3miNsWg1p7GgWVadQ/YeFs0WE3mDXJLhjRahrltKnbkHgS we3EXHt6NJjlwTEUGOcLV+SI4wfb2fG+fTjrt9eT9t5ze4OZUOe5hB8KiT7bM1GN5AZD 5vUBgGLRw4IE+JtqYUiSzxE8PSb7JeTR34VMyv8vdqR75ReXe9UfXlhn/yJ82YrvTUDk 4myLQoRIBBx8QIXqqeWqNHkBcRi0Zpkb+Hykfw9ynkIqa9xOD8UIBb8OX0VZ8kPYfhR7 PxFQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RtFKw09H; 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-48ed9957869si34386401cf.476.2025.05.05.13.31.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:31:50 -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=RtFKw09H; 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 1uC2QA-0006or-0I; Mon, 05 May 2025 16:28:14 -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 1uC2Q4-0006la-JP for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:10 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0: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 1uC2Pz-0000P4-F8 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:04 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-739be717eddso3973629b3a.2 for ; Mon, 05 May 2025 13:28:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476882; x=1747081682; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=s1YxZTFnyJUKlNufWpjlXpI0nvYQxw9kcPDoiVpqA7o=; b=RtFKw09HkiIEEiOvP/0LSS9GtrADflG2ITUEqGLsI5gug8fwNCXa4QzYoHUFKSuxVM zRpGF/+JMVIXJh4pYIlB6trGcoBc4A0toDBXp/5Wmpc277STAbLLL6vrFZ4IrJQN3rCU 7Dkds1vGAzYdoMMTwA9ZNwKsvyWUkaOFL+a2CA5CfxxUuoM61B1JudN89Xy4tULPtXXE TM+xOXWSqgks+KLkhVMOYYv0MCTMIfz06dzODRq/kvZkxuv023Rbk/F56RuIBpsMirMT NUHBHWJkjq8gKHwVnZn+seEBs+SG8CWoNm7pAvDzsw0O/SuRl5+Zge88Ka2Pcxy5MRK8 wkZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476882; x=1747081682; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s1YxZTFnyJUKlNufWpjlXpI0nvYQxw9kcPDoiVpqA7o=; b=pA9vQZUHwPtqcbBYcoC9tNml/8O061298FwlC/dcCDcM2+SRNs6a+UDY9YZMIEi4Qf /TVaclbpBNfB3SvvW4JPZPxuu+c0VQ8UWdpsW4+dVyK0LHPBsaMU7omIfX7Pq00FQF9z UMTYz+PLmDUiuNaFm241Kz8qxyfWFFGZxCsVmXIH6Thh/RLFoYNZTXC/avi0C0UaGtz2 jGgjoksArZ6bc34JJsoE7BKfwSewcXn1Ex7qNc/2NoXAh7cYuEXLvqx2qB5zJer/oGpn /8/qgCYnG+OqOX+yUM3KejEvAa08Ld1i0VTHc3YIraHByDUKzIe9iIRoURVsMjez9p8e 805Q== X-Gm-Message-State: AOJu0YxmxAmaoGAP/9vGmbB0FkL3SpjaT5M/fx/kapRQB7XlgAy9ClQG 4PP5Z5U/NsTSqGB5EFiMnaWNlSS5Z30snUwPDgcO0EaWjwhCVbcnR0wZzGBboJrlsgOFua5OmwI Y X-Gm-Gg: ASbGncullq0TJlX2z16cu4oO1NPIs0LLFvKsjMA53j7KgmXBqNQrRjc1nvoNt3Ue3MQ N9cO5Sz++wjNti5cVZj5cJVP79eyJHPWuXuhfhuodQp6MivqEOBvXxmcoibqRR+XYAcPOblGEHl qJ6ENHeoNVlwyij+LmJ3BtrStZzZCB+bmZUzP679gIG3RI/tI1lE/DgJnxenpUoY24+mgbXHTRv C9Q9uiAfcUimsiWdiqWK+CChpnlvFrbp0UpVYfZr/OtQmW8M7W2Ie/dXVSbbbbGGnN+ty9fKjk3 yfMJPD0wJMs3C1BI8yLF0IFzknAQPrZft835XeyuRiDkDnNs7n4H6y18YCkZYHi5NV+XCb9Zcok = X-Received: by 2002:a05:6a00:8d87:b0:73e:2dc5:a93c with SMTP id d2e1a72fcca58-74091a3c859mr756190b3a.11.1746476882033; Mon, 05 May 2025 13:28:02 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 10/20] tcg/optimize: Build and use zero, one and affected bits in fold_orc Date: Mon, 5 May 2025 13:27:41 -0700 Message-ID: <20250505202751.3510517-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 22d302c9bf..5081e3db1f 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2284,7 +2284,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; TempOptInfo *t1, *t2; if (fold_const2(ctx, op) || @@ -2315,8 +2315,17 @@ static bool fold_orc(OptContext *ctx, TCGOp *op) } t1 = arg_info(op->args[1]); + + /* Affected bits are those not known one, masked by those known one. */ + if (fold_affected_mask(ctx, op, ~t1->o_mask & t2->o_mask)) { + return true; + } + + 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); + + return fold_masks_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_qemu_ld_1reg(OptContext *ctx, TCGOp *op) From patchwork Mon May 5 20:27: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: 887467 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2236220wrq; Mon, 5 May 2025 13:32:07 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUtk2MnDoj2tu+BHA1qf3PWowlLTtOEmUH9te6262rWfIfS4dQC2k2+xEsd1+6xZkFEJA7rlA==@linaro.org X-Google-Smtp-Source: AGHT+IFlCnVkq3l1ax1uhvyH2UBsMzP6SPAbg3+0nbXH/++ZpdqrbujcrLrKyp1uEv1AkSJXIAbn X-Received: by 2002:a05:620a:4310:b0:7c7:a5f5:61be with SMTP id af79cd13be357-7cae3ab2abcmr1131563285a.32.1746477127229; Mon, 05 May 2025 13:32:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477127; cv=none; d=google.com; s=arc-20240605; b=KSaGawh9WwifQe6p20PKlIgel+nLlMgSCEbrDCH0nnTDSBL3bfZc3UBntoP9KUfAm0 FpLpQ+NuPlDIf/QEJJALBVgB0QY3fqfJIi3k6i8Hc9JJ4+VxDbJ5YEa38i91w0f+aewY o/j15zueZ71NQffSc22izrovaD3VGeQeRMTeJk9XydZp2EvvDl0FKcrvEbDW5k7OuwLK CfQZzToSNFA2Rz5pRxXquku3cR8UwpCIR7U8NFDc32909j7lNdVy9qyLxEfVNBqzOMmf aO3dDtVIKVObTLhtKznnKfqFsU1J8yc45bAn8DMYmwokrcJlkqZ2Sm9Vkr/lOixS56dS 2Ogw== 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:to:from :dkim-signature; bh=kofwy185EEZLPzQB92vqtuKiKqq4yoFm/cvXaDrv7JU=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=TuOEM+kzHpYCUcWUkcT20FaG2BYdm5yHFy9cxJU7nUR4cDFTaSizY039dVPkEDFS9U T4nibFRymJWRdmpnWOduFfZsY8n4YYp44KPNYfD4q1mnNomU3EevvsC52R8vomc5n2YK gqu+fjLfQp+YNauMp2DqRymvlDqMrvO9Hx3Pn+jxx+p2JW0lEQAMfMJDxM1EiOogRo1+ lZ41Jfj1KP5Phu2LSkvbI0m9oh7EBy5c2Ui2cPtyibzraO9/UiPcHodFI4Ha8rtTUrPH zk8JjdSi2+KcCRnCQRsPeYW9Wlj5Ply8U7WwoSw5NqCzwYAQvBtSFedaddbeTsA7oQ/8 85Vg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kKigjx+i; 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-7cad23c8136si953166485a.134.2025.05.05.13.32.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:32:07 -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=kKigjx+i; 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 1uC2QA-0006p1-Lr; Mon, 05 May 2025 16:28:14 -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 1uC2Q4-0006lb-JX for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:10 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Q0-0000PE-0m for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:05 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-22435603572so61176015ad.1 for ; Mon, 05 May 2025 13:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476883; x=1747081683; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kofwy185EEZLPzQB92vqtuKiKqq4yoFm/cvXaDrv7JU=; b=kKigjx+ilSvP290+4FV1AgQs0abmGmyww05F3yNgx50gFpuXma2XLwTo14cYVGxCOD KqaRdQut6BN16v0WilgyxCPBhfVQ3VElSVsBHWv1I5hBRz/mKm8yhM1kbRIrUirqg4+u EbontWlYZT7OZD2OTK4fXdIUQQhEASldltYHLff4l/2xZ8msmD0IH4360r1X3jIVK0dn rGH1zDfAXGEJ1sd279d+SB36nJf5hws20Jobliv1iKT4gQ3enVgc/VORgnA4gjaQtWtP sIB3avA7zQ8sdpvQ9x5CjY7C0SBOPWv/5bmtcrynMhmAZAXI/URZKICnVlOkhtl0FEB7 AlJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476883; x=1747081683; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kofwy185EEZLPzQB92vqtuKiKqq4yoFm/cvXaDrv7JU=; b=Xs3nyElSHAU/GDHxvIg2jr3nfQccbczRrJQkSCCsQinreZQQCdOItvS8HfsnSJMP20 1NjSIyE8UCIf8FvNVlZ2bLiv8QollJyAkpFlbt0Mj/9io/kOg9MbJ4qDUCCXBmfpaBwd qTs5vZU6HttXVr+8CY4FgDI4BjS49PBl/V+6xm4fWf4HMLw3N33FlNGmQw3BXXSfcomz CpAQot3QOesawrgVsj7UcWfII5Q8GvgdQucLPYN355dAETgf115SD9hkXcYhodzWrDyD P5KiT+IIEDFMivRb3kY8EzKb9gRYCzCGgzTzfCb+b+oXzqCTwKRyHIERkbUTAZEy5c2s DnKw== X-Gm-Message-State: AOJu0Yyez7iB46awrGz6BMjID3ZQtLGDTsQXOPW8G8jYKCkZo0PexXhy Pka4AM90y62ZZmW5VGvXFTakfKxnGjdBo/82Mvu4vDeyLEaMCxIzLIG+on+jJH//EzMBJPAXLTM + X-Gm-Gg: ASbGncskkegCNAQmoUnP6sY3EQsRqWOmWbvEHAEAs3vrES5NLT/+Fkncjp4D58T9qmC N0hKk4ps5Fm6BWJiFwPzEUkf7nrW5T6kQx42mVIAlFE1DCiAxs3iHUGYKKerWetam32cCB7Q+qd Fe0cSNKee2ISj4LXsSAgcW4Ubz4USOVEljJxmBC8SrtMRteh+/qSgMZ5CzTBkrh779MyrfZ2dtG FJrh0JgZg67aWtdD4YrmD3wPvVnY42RFbMzemUsK8xAJTUc9ZC/pdw64EHRPJ///YDnXp5hq16q WDAkNnkLUTkwJGQ5WO8gfv1sPnHoiY2pD5nXdJYKdvIfLJ+GEeqQRUUtO4W+1hk77bA0OVeZhU4 = X-Received: by 2002:a17:902:cece:b0:223:66a1:4503 with SMTP id d9443c01a7336-22e1ea36e9amr120547385ad.30.1746476882737; Mon, 05 May 2025 13:28:02 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 11/20] tcg/optimize: Build and use o_bits in fold_xor Date: Mon, 5 May 2025 13:27:42 -0700 Message-ID: <20250505202751.3510517-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.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 5081e3db1f..a61c7ca376 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -3038,7 +3038,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) || @@ -3050,9 +3050,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 Mon May 5 20:27: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: 887447 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235050wrq; Mon, 5 May 2025 13:29:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWgDxnce6In+2B1D2r8Bh1KDLlUCQDOG3pd9x2yFHk0sdSEEfH2Anx5w/zLEE1FgcpJ7Vlhug==@linaro.org X-Google-Smtp-Source: AGHT+IEl4xG0c1EYOHv1VSCa0/k0yx0/QY+qZStRxBXkUIv95JjvDfwJn2UCaj2HkzHWqqH5bUO0 X-Received: by 2002:a05:620a:4248:b0:7c5:d7c4:576e with SMTP id af79cd13be357-7caf094bee0mr97738585a.31.1746476944817; Mon, 05 May 2025 13:29:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746476944; cv=none; d=google.com; s=arc-20240605; b=i/9sSgzF15ewjuWIupKdopjJGYpYzrixZU+m8zeKBhGuVp7k8d8abqZNCK8gPtmyAe p3PpdssbmhgBRKlqsiXvkzYcWO8EVSwb/wEXAXCNEi46Sd8Qbd6SuzECjkcN1xRcfkOV jQVfT/P/5rjg4CY0WLlv/f7cfuaaKmgorZUHHQzK/5IHrTJ/x9FqmH2DzyYzNwgWAokt tmnpAb+wYWJmObccKqhLbxf8HMRaa+1CRBHti2igggj3cKBpg3WB1F93Inz5wSkcLLBN mOQ0tCekYDzgifWxp80hb5qV7tm2AIWVxyqy/4tR0fA6WEQ9Sb2ov+Regg74Cnl6hABZ n/zA== 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:to:from :dkim-signature; bh=sNMYKS7uUvU3t4vTOZEPR2i1hQCtUZDMO2z8Aojc6go=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=Hf7Lp9ojLk2NMY/7cX0B63HF0avskprzC9o2XpikeoAg5j+Hc3/fAyhH6b+kB7FWgS 3lHX4fNXCGpSFShWW24ZScIYT5gByAtqdPnjkX+1SLp/VMsork6/l44eP+byF7daUqsn DfVqRyCd5j6qhlj0TpZdzI/Z4Ola6CkZOiVg7lgLIVgg0t7Lh/45GqftZEludfhj1foD JfBce2VBE9TLMWCnuDlRhlXEw+zoUGCwMWy9r4optjiJPEjLkZEKRLI+vddDJjftbKPz J+VT2XbJ8LNy1zp+VsCYdS9zTPFD8w2N2Ge0aMPNUBrQT3156uPUF4udgUq0tYsQ1TP0 v5kQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=oH4ipho1; 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-7cad23cb312si993108385a.180.2025.05.05.13.29.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:29:04 -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=oH4ipho1; 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 1uC2QG-0006sm-0i; Mon, 05 May 2025 16:28: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 1uC2Q5-0006li-Va for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:10 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Q2-0000PV-FN for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:09 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22e3b069f23so189715ad.2 for ; Mon, 05 May 2025 13:28:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476883; x=1747081683; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=sNMYKS7uUvU3t4vTOZEPR2i1hQCtUZDMO2z8Aojc6go=; b=oH4ipho1lhmeqnJAnuEt1VDW8fAtlP3EH8qRxWU50FNHE33WK1g7/e9+UgokeRppRX jFBiIfbK6GW4e7VckLCjdQIyePvbyAS4H5/vbLbFcRwBSuaYzGrLSS9bluGs85702eve ovxVgqXyrqs2UuCRDb2PdXySMNvPTnErGKEVwkM2zJq7Yd2/vkmoWPUOdZhidyXMwuf5 6+klTFr+d8PIohda7/qGpFmTYRm0dAOHqSobqHIY7JI5apfKcCeuMbIpalmeuNLcybcB t7C7bOxYmPqm0qW2SBZ4wxKIJCDCORp1CAZYLao0TOj/kIamRPSJjsRg3qaAYhInmeGn gF7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476883; x=1747081683; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sNMYKS7uUvU3t4vTOZEPR2i1hQCtUZDMO2z8Aojc6go=; b=nBqvrL99zFrnyf3NMfF1NNIEP7bEwy4/Qhv365EXhGZ75KcAeIdiFuc+KKSbARArmH Vld1dD+oHJURdvZznV5pSqpBKG+rb3w6J7+hujoqbILnML4g40FoYqZlJya/WQtvntrO ij1xKZubnWu84UF5j03fUNkpVlHSBDSTDmdN5JHQeib3Wa7h/3KVJx33QOZtfO6I7/XP 7Tf+fSdielP3UlajpBUxvor6oMPqqlqYXo45zGCX8q0PNYXs56oQmim6JyELvjNcyeHS yY8/t5E5riuZ+yfvNosxwGGKCOGUn6/Cb+dKll01oxnKrs3jWmdshFCN8h2VCcCSK0mn ICtw== X-Gm-Message-State: AOJu0YyBGT0NGu2+auGLL9S2dWpwrl73zB4zCo+J/fAH60X7TbBgSy2K C8MEZXydnoj9AarUOWFRlEc7GA0NRG8E7gRVtXtULQtQ1IPKEacsjZO3V3mwVprbZi3xIl9+W6L D X-Gm-Gg: ASbGncuADrXGy03HF56hUl4fOd97VV8z5tO2YD70OdePLJiMH72iNzAjrkjcVhmgXUQ CazNv/5FrmlclTTYk+MBAEgLaJZst6MAIer+X0qsy2dQyCP3bqVctRvvfnxkj/tOUJIleK6Fg4o F24Vy2A/tfXBeOdhd0yRCkyvNsahlaeO8Zmt3S8BaveWU4kpDHtw65UqjHhdjBty/SrqHU1NGa1 njAam2HKHfzTp8JcC6n1xrtBSgnZO/00IWJXQgs3D5y+U4XTLXCB11sL2a5td6vW2uFV4hmr4ep KMAROtBHNb3RoX3x3/j5Di13FDx8dJWdyoY/WeWBGpmay0tdjMhD6b1n5iNbPKwT3WZzo1rPdjB YJ0LDsKPGhA== X-Received: by 2002:a17:903:1983:b0:224:de2:7fd6 with SMTP id d9443c01a7336-22e32ba5039mr11669495ad.25.1746476883707; Mon, 05 May 2025 13:28:03 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 12/20] tcg/optimize: Build and use o_bits in fold_bswap Date: Mon, 5 May 2025 13:27:43 -0700 Message-ID: <20250505202751.3510517-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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 a61c7ca376..2898a3f913 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1666,53 +1666,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 Mon May 5 20:27: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: 887455 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235425wrq; Mon, 5 May 2025 13:30:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWQk5HgZP+lsBeIBlQfGVQ+o2lg2tjL+edCyT/SVuaMeb6HlLhHQpHB1RdjTDRz76B3xlHL+w==@linaro.org X-Google-Smtp-Source: AGHT+IFj/dJlo7YdqGphTvPlk4081MHgYHbgGx6p5chbWmvm1/nPYejtoKTPGkDsM6AjHmgpGqhP X-Received: by 2002:a05:622a:400a:b0:48c:4c6c:bd8d with SMTP id d75a77b69052e-48dfeff45edmr156334771cf.2.1746477006672; Mon, 05 May 2025 13:30:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477006; cv=none; d=google.com; s=arc-20240605; b=TSo6zGfwP3LcewsvIsx7TV7oslqV4jKmy9mmzoFS1QewMRGiPnGJf5i40oTylmfhlR bLJ0Y8uE7JqupR9fqqxZXO7jrnHEwRITfgUH2EqNNAhaqM37B7xioN/fnxrPTkiRDQI1 TOSYRQufns5dWnr1Usflp6kRIZNe7GDJUpEuK47lp1mLDpJB3FniUkYsmFEnqTxhPC0v z0nDKmJ0WdHd/bkEtkbVl0Jwe7BHMigqXq/sCI+KwhbR66IFcSRF0iJgniinN3Gp/zzv Lxk2NTq4ms0si7yalLpxo95S4aorLUMDzBhp/J2rLN+87D9xYB5Uo+iSRJh8xzDDFLKD 3HOg== 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:to:from :dkim-signature; bh=4Z9U0xFGsHZfgRlzIcGtK3Ulm26TWyDjirsPoYKnSDE=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=WLi0ckv/Ry7Yt5l83hnkECKtuwJ7uuP+IQZyIFbJV8maLYfp900Efp8t+xY5RmqhGH WciSHUPIScDwAo0uA2kIcn0eKqAI/KXiS0OxHhtoP7/U+mF3MuYy0hvXBzgzZXvdaBJP 7XQassP5N3xnXR0gmUBT2bEfYldNwr23COgHquyMfCr9XKQ8gbwgbPQVIN17bLFu5xpQ 58OOuW5+ZXNP/FdWW9DRgq1RrlIYUmPN8txObzHB2HNFwzkVmG+qGViI3t5oDfCEIWKz D/QcQAGS9Xqa8YNi12E0Rq/8Sr9e2m7BaFHOyiLAVH892ToouU+7yEp3eI66Zi9kaKUf yORQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QJyeVGUq; 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-48b98e0b7f5si100059741cf.596.2025.05.05.13.30.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30: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=QJyeVGUq; 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 1uC2QG-0006tS-QN; Mon, 05 May 2025 16:28: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 1uC2Q7-0006n5-CO for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:11 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Q4-0000Po-5V for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:10 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-73bf1cef6ceso4913519b3a.0 for ; Mon, 05 May 2025 13:28:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476884; x=1747081684; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=4Z9U0xFGsHZfgRlzIcGtK3Ulm26TWyDjirsPoYKnSDE=; b=QJyeVGUq6Iv3qHCn3d+fkpUOSNw7pv7LEeYJ65Swbvh5WWmfmoT/dPtTnwRrAWU6OY U5BmA3E+U/Srdbt2WrY+9pMKeXNNeBO0wZvDOWRCKxrl2q2nrAF9hetoI/98Hw3FPRwq JKv21kFTrqAR3HIZHBgC7tJ2CUbxJ7+ukEmsakH2xOzQrL9zW3154d/iL+RKurIF4XJw yKi8mTFCmeEN46dAUjQC+yKBfhtaBz4BZf+v1iKogdHBPiaQv3eIvgv+6WrfF7InUcSA ABZUZbyJdKKlg5pps06x2Zl5xOhH7SswyLclRcOEvnttrER+axHTm7sipDt4kTMmz9r4 uvsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476884; x=1747081684; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4Z9U0xFGsHZfgRlzIcGtK3Ulm26TWyDjirsPoYKnSDE=; b=BQ3AXLFGHsf9bOed7CwoON+86WQmNN0VxeYsJgv6xf/d6lu1elZefqnoYMx73aKWOn IChyP+E2kYdb7PcHkABnA1cESO5dKbytApFovT3hB3oc7ghgp9Aepwv8o1HtIM6bCATQ ubzhqkQVtvwWcd7r8TvlQXiwf1VY19gtAU/kSRymIGMGKwKAdxeooTD3FKptUP8+8Dfv HyDxY2SOS1tzNVlYx8zT+fpFnp9rkpodZy+Z/u8H8BoWjKr1FPHA1pwLlzcTqFszNQwm nUgC9ub3EdhAQ6UY2qVhEBIPUWnIif+lpC20ya4yUc7uQ5S/Tw/BihjOKn0Y8gK45E22 a3nA== X-Gm-Message-State: AOJu0Yy17p7IhPWnlgn4gaMCtRTY3cFIri275m9G96rIkHPopYx+zSo1 siUH53bwIa5B9o0lL+BIsWdsOzVksqU418ki+Ce7uXcfDPnc9H4GkLKGfEupuvTRZV1gHTz5nBX o X-Gm-Gg: ASbGncv47fXbHpANCQ6qVSv5C244MGmqpa5++celoE2g4uU2oRfBGN5vvJUJnDzYtH3 TprLovLX+Jrz/U39Mw/aPQR6gBrPIGDFPDQcHFDqkSiVNh8fSXu7GlB330rpyQ3Xb4jep2DUBmY KDz2Sy45whv9tMqvCab/Mw/sLKAjsobtlfVrtSs+ON6WJGjqXMbJAVATvCVUnXMpk234K6uraSx y4R5amkgbXqw3tvhJjlrjPR4XkY24+nh7uFnxVuGT5+G5gRaL9iABgHrB1UAHURt0ZPieleV3oR 7nCwKhen438Haw7sjAIcz3uBWrSgBi0KgKLMd809i1LCxuZzjPnsb7CLc5/vQpYJJa/CtEtR3Ty YP2SU1+aPyg== X-Received: by 2002:a05:6a00:2908:b0:732:2484:e0ce with SMTP id d2e1a72fcca58-7406f176b5fmr10428589b3a.17.1746476884488; Mon, 05 May 2025 13:28:04 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 13/20] tcg/optimize: Build and use o_bits in fold_deposit Date: Mon, 5 May 2025 13:27:44 -0700 Message-ID: <20250505202751.3510517-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::433; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x433.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 2898a3f913..886947b82b 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1842,7 +1842,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], @@ -1877,7 +1877,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 Mon May 5 20:27: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: 887462 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235754wrq; Mon, 5 May 2025 13:30:58 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUGQmMWol5NJDhMwTrnSEBpqKy1FNX6q9kSi/0AhZP47uzFvjGNy40xj3BQjaGR1F3qJc780g==@linaro.org X-Google-Smtp-Source: AGHT+IFyZOdWgr4Cx/RrFP4pIdxaK/QKQnn2C+SlY3WVZ9UgE7G2DabTDS7CFQvLL7fkZHW1aMMR X-Received: by 2002:a05:6102:3fa5:b0:4da:ed5d:e240 with SMTP id ada2fe7eead31-4dc638f535dmr593881137.16.1746477057982; Mon, 05 May 2025 13:30:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477057; cv=none; d=google.com; s=arc-20240605; b=LKPSuSyrhZ9ene7ss1pxZRxrqgXOn6n5/lb47wEA0Tw0txwNq1hYmnfCYq/QuadwuH iA/ejagTBebuN6T8es/8IdM1z5qgz39Y0l3s3n6zACe6qPgn/FnZApWXsyMxh3tnUFVP ix0pN5rkWrFf9DCvE3NRTlSJFFCN/HX5wKr7ihegNZblKk3ClolnxwOd16eA5UKb2t7/ iqtJjmEBXng+x6VECxTmRutWmpdVJz+ISOd/zzdaAJmKQQVcuxI2WDHPLvsBlUXDmWF/ psPWVw1uGjuTtFLTAneQK9edumYgJVZT5frrWQHlRP1pnFGT8pTfnTN5gMTuQ1IxjCIM Aiqw== 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:to:from :dkim-signature; bh=x2Y0NbHwSVautraRUSm70pcB+uKrHArjhxj6kfxjpLE=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=kjCD8I3Bmg4XDZe/dxwAJAeELfjGGNSkVSEYlEsFUKu4dr9K0eNTtK7MpdlKKVoonx /F3UJE1uY9r6jnF/GoEADRhGgr9+5S/WbWl7nMOHyyuqqKrGOE9WiyZMBp7ae5mShfUl 5Ce2eePUSF7QueSCOCxpW+2E48S0Ew8wJHiKSvA2qtib1ZdW1y6xfSYF6kDoP5Kyhk1D 6gKiDG0QVJooGmcrAFkDrfoWDz+B0HTIfwR2pP790FGBpJJUIR3iDDILlcJMWvlswLi4 eSc7ZUvbSIhF+eLG3xiPxhXlE47MHzdwDdJTDRgtfF6aTf7TjXyzQb887I+i0Fyq9Kya eSmA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bM4+lO4L; 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 ada2fe7eead31-4daf25c3b28si1896783137.522.2025.05.05.13.30.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:57 -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=bM4+lO4L; 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 1uC2QE-0006rG-3s; Mon, 05 May 2025 16:28: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 1uC2Q8-0006my-9Z for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0: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 1uC2Q4-0000Pu-5N for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:10 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-736c1138ae5so4934963b3a.3 for ; Mon, 05 May 2025 13:28:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476885; x=1747081685; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=x2Y0NbHwSVautraRUSm70pcB+uKrHArjhxj6kfxjpLE=; b=bM4+lO4LinN16I7fzhUPbeuX688TWoEIREA0PcDLNKzJRVRyjepsT/uf2upz8Mnr3+ bu5K/7olD/biC/bWWnvm8qFDJFXumKSGVBSWWcUuJMP3iTDeMlBmFsR5OGg45ncGlLuY pck1rE3kzedhOl1tUg/XoPj8O4RObWxXeu83VaZd7xeyt8avK4rdAF8dxDZhj/6/ML3+ LZXS3CBFgK5Ma1aLiYwGTc/oWkE93zO1gBjtM0+Z1KlJotAMe4huTRNJGcIdyT9TtmNq noECP+/OgRLkH5v9T29h2cVZP3Wdb6Q19u7O04Ktg/jzoAyATUf6SEhtWEJ7IrBYY6so B/bQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476885; x=1747081685; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x2Y0NbHwSVautraRUSm70pcB+uKrHArjhxj6kfxjpLE=; b=cfMpzX3jCXfAHuC74PTLZVi0HXEUNnLlWlq1BwgryWAPsP0ZVWGdbtx1c6pvVhg/Wq sa9XGlEo1CQH7nFL+DQuJ8hcDt/zoIPucXlny98QldunUXDasCGHPBFlq7sKU7o6Qaoy MB0KmzhIh3C4vqMTL/V/sMh99sT27tHkA1HVQszYV/Lb83+dkeWU1OoYeVmKzYys1T8S L/JDu9xb2E/DcBYFT5k5r59cFblVR+UnwVmTcuNxXf7m5mQmuFsD77ASUvpyIXhuu2XA 3u/0X6/iYMWHVWESaftShgRPvkRiK7142t2ynngNMEjIZrfLdvh8ypDNLJh2Tihd7O15 bOWw== X-Gm-Message-State: AOJu0YyYdAH8EngBmhiMxJnpqlCwixxQSUjMBhS5U5xzDevmvkETZyaX VGZHXF8Fz+G5W4/CcD+aUEWQI6cWmvQXDLRltyaWz+gqYdlVdFerww0Je3gO1qilod8EKa5v9MM Q X-Gm-Gg: ASbGncvUi1ZL/zlfCALiI7RCHSeaAgzwm+yvKZ5vgybMbRNY6XbuAeQ01ht7k3xMWsB wzFrFZ81eXM0cH+fAEkU7+WKilGYe7OIwcN3xD2x7Ujfq20H4Bw0WWiqIdd4T/Qr6G+V5kxwrCC bBcIZkEcYszvnDgreCPYFYCnJOQAfrD1fI3VHdhcu59Nh8GSdnfy1qak1c4pFGgqzTSa/a85/gl XvyUCYfqjrxD02uqZIMoVZGhrn4V2x3EsQhjhP5Ab23bZ2gOSNK6JpEMXlHk5Phs4mVzLDH3Oe1 81OVT+bNE2Fyg3LLnEzV6QU0C5WpUydDyiRfR4Vtx0y0BjHZC/7IhoXu5rSpJyFBzAoH7vTPdDI = X-Received: by 2002:a05:6a00:428e:b0:736:2a73:6756 with SMTP id d2e1a72fcca58-74091ac95camr606099b3a.21.1746476885190; Mon, 05 May 2025 13:28:05 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 14/20] tcg/optimize: Build and use o_bits in fold_extract Date: Mon, 5 May 2025 13:27:45 -0700 Message-ID: <20250505202751.3510517-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 886947b82b..c5243392af 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1091,6 +1091,12 @@ static bool fold_masks_zos(OptContext *ctx, TCGOp *op, uint64_t z_mask, return true; } +static bool fold_masks_zo(OptContext *ctx, TCGOp *op, + uint64_t z_mask, uint64_t o_mask) +{ + return fold_masks_zos(ctx, op, z_mask, o_mask, 0); +} + static bool fold_masks_zs(OptContext *ctx, TCGOp *op, uint64_t z_mask, uint64_t s_mask) { @@ -1958,7 +1964,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_old, z_mask, o_mask; TempOptInfo *t1 = arg_info(op->args[1]); int pos = op->args[2]; int len = op->args[3]; @@ -1974,7 +1980,8 @@ static bool fold_extract(OptContext *ctx, TCGOp *op) return true; } - return fold_masks_z(ctx, op, z_mask); + o_mask = extract64(t1->o_mask, pos, len); + return fold_masks_zo(ctx, op, z_mask, o_mask); } static bool fold_extract2(OptContext *ctx, TCGOp *op) From patchwork Mon May 5 20:27: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: 887463 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2236055wrq; Mon, 5 May 2025 13:31:41 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV8JhyVHGKSEnfazdITW5JCtgdvBguxNLjlTsU8WV/haIQlZf0DI/RlbVmUnoq/tHBcUOpdXA==@linaro.org X-Google-Smtp-Source: AGHT+IF4nq7Jv/ig/s62JKU3PngB6PcA3P+h2+8yE25yQceyG56/Ej2UJZ7j3fEGhIEmBtHzUwsw X-Received: by 2002:a05:620a:43a4:b0:7c5:4b24:468d with SMTP id af79cd13be357-7cae3a59f33mr1119159085a.2.1746477101123; Mon, 05 May 2025 13:31:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477101; cv=none; d=google.com; s=arc-20240605; b=lbVrbB2fXeYVhhcNwsxz+/8gNCRQgxpr21k4nTIp2tRumE+yY2P5wdZ1F3iJl9tqWH zqQsbg3kZwvBj16lnhJnLjBgG/9FMhRNWq0XhPPFSMSWlf7RA/kvgUrOxsoOxtqF32wV FiKqSejDsiiLXFoAEud238tp28XwvIo7NiRDpE5k6CRltXl5llP6aTLhxxlGkp+Km5LT KTrbh+fDbSYxK70laDqpK9sXS0H+/I3//+AvJm/ZzRgzyTlp6fHbXSV2Od+gTom0pYdL lF4fLLADplPE63DF6zUJpFJDs73wvUuZUQPDCHmiE10Jycl7dKbr/IZtxAiNbB9XI8uN D9lA== 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:to:from :dkim-signature; bh=Js2PHkGKWnIWePR4QAI//TgTXL4kXU/lMnkleDrme+o=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=XvgtJ9J2earX1BtcpsbSlYVPeIMRRg/DlHMui3fE3Hkw+oYYQhFb+fCMRTbIRihYpc x43X2fUZyawF6JCEOGFK1jJlAui908vSYuoHKTc+q16wR5EOzodJu98LBpu2rOhEAEhW y3pGZDgQmh41vyXmPH3jkTHMhahTTm+46HMdwRxehSQz/iTe7s35utIkaUDEvHZc9X7Z HC4aQJ6XBSUMc2jKEQqfN1A8j4u5130ms0I3DaFY6VzRM3baT3mnfcotcR2htP4yoTHw TWmrhfgBUBQyo1EWlZ/apMQM68day1XhYxMB4rp396xkYng3AG3TRRnh3hlltCP3OlBg 2s5Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=WnZK5JRc; 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-7cad24303e1si991848285a.338.2025.05.05.13.31.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:31:41 -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=WnZK5JRc; 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 1uC2QD-0006r9-Gn; Mon, 05 May 2025 16:28: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 1uC2Q7-0006n4-AX for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:11 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0: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 1uC2Q4-0000Px-5i for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:10 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-7370a2d1981so4053874b3a.2 for ; Mon, 05 May 2025 13:28:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476886; x=1747081686; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Js2PHkGKWnIWePR4QAI//TgTXL4kXU/lMnkleDrme+o=; b=WnZK5JRcVL1IvJUDNZsaqMOrPgW2vqwWiyOsYxJmwkQK6+em2rp3BMeL4LivTMMDDZ IYXvOOs+oYoupMy7j5shBjPH70ZPRAx9lz5X9H3MEFAyDorVpfMB74ZVocUAQOTnJOkU 55dA6MlErmc90CHpKpt6nkp0C/kwwCBt6rWN7laAwEk76tohpG3AZqRIqfaanCyGWYGs FR2+Xw2REXKrEKaJPEmC2PFMeUC1E3CLCHlnGP6uRBhiRzzIXV8B4K8Bt2YZ4aZFoxxC k79yxh55Fg2lz2VTthZ/9fcLHFKwI4wf5DbbPLq3DAKnHQd3e+klHPXhsfYXqDDs8M32 vpcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476886; x=1747081686; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Js2PHkGKWnIWePR4QAI//TgTXL4kXU/lMnkleDrme+o=; b=Nu4+5MJ1XOT1iwDl5yieWWUTfqqLbyHBJorfeX0THaackm+CuYde0Fuv1l3ZVBUA8c 38WVPefldlRF426U3drQZRQ6nm6gBGRbJ0tjygqaiuQLPsdjcpUClNPE7hcZ0o9DmOU4 ofc3oOXE4Ez1rdGBCM+fobSce0St5AJA818/19yCyT4TEwvqA7dtag4LkwHVHWj5lO3Z JXBFPqP7f2+P2sWA6hsMckwR1SDMXjUis1S37ZcK183fJEZDQx5FaD5KPDtytxsgmhWX 8TdN+Hiezz/a3QYJyVx+0xJ4tbn7tQ5BkejkHHOeCNPs6oX57CffEEVPU5lJ3JVxNTEQ nA6A== X-Gm-Message-State: AOJu0YyNzyEyq1fsUuQyhMi4TSzJfEHE3Dg19WpntZjCM7FoZr/DHFEQ OLweKICgPUmqNopTCG+8l1RfDDIpAgdNa0oxI2Jd01RbvkGY7bR3G84IMbOovSNcaFcy1Q5UBLD 9 X-Gm-Gg: ASbGncuV+dO/KYT7ODVb1aQbJ2k0SNgq1sCDlw1LnT82T2RTBOXeQ/gWnZ684pdckEt 37Y+XMRMoH81ou82jqPqc5d3zfa8Sz2XmICROiAJS23LB3Bg/vKWUQ6wqeLt5ZwrsRgj4wCSR6M uljl2ojMVZG+TZ7khXWGPqhgJPJsC4sZnUCeqSaYTzVcBBEf+9oDrZbOkQrWWh1XG2iRJhB76hW ar7rIFjuGomNIkR3i4qaQW0iOU2M2/qusLzWKnxD8yhvVgR0WJerd5mKLxbnoOu8dijeiD+2IXz lHa5BFjqzLnDHt559lBj0GtQjIgtiV5xwSkORfeLKBeIG2kD9zkaqlAzfLaWhDdNA7R/BBlgiQc = X-Received: by 2002:a05:6a20:c90e:b0:20a:4698:9d3 with SMTP id adf61e73a8af0-20e9620568dmr13897661637.8.1746476885799; Mon, 05 May 2025 13:28:05 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 15/20] tcg/optimize: Build and use z_bits and o_bits in fold_extract2 Date: Mon, 5 May 2025 13:27:46 -0700 Message-ID: <20250505202751.3510517-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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_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 | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index c5243392af..424fd57922 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1986,21 +1986,37 @@ 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 v1 = ti_const_val(t1); + uint64_t v2 = ti_const_val(t2); + 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; - } + if (ctx->type == TCG_TYPE_I32) { + v1 = (uint32_t)v1 >> shr; + z1 = (uint32_t)z1 >> shr; + o1 = (uint32_t)o1 >> shr; + v2 = (uint64_t)((int32_t)v2 << (32 - shr)); + z2 = (uint64_t)((int32_t)z2 << (32 - shr)); + o2 = (uint64_t)((int32_t)o2 << (32 - shr)); + } else { + v1 >>= shr; + z1 >>= shr; + o1 >>= shr; + v2 <<= 64 - shr; + z2 <<= 64 - shr; + o2 <<= 64 - shr; + } + + if (ti_is_const(t1) && ti_is_const(t2)) { return tcg_opt_gen_movi(ctx, op, op->args[0], v1 | v2); } - 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 Mon May 5 20:27: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: 887451 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235235wrq; Mon, 5 May 2025 13:29:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXtYuLEGmUN0NWwbuHLDAeQodEfnoELN+D8Lme7TlgK2kfQsOTePlCB4C5/9FsBoHe2W0QxEg==@linaro.org X-Google-Smtp-Source: AGHT+IEAS8ZBeUrAb2cp1bLc4axR+T5x5+YeDZTm0RNJ9Ti9FrpbA6t/x5mX9DPJEsSKm0IL2ilD X-Received: by 2002:a05:6214:2483:b0:6d8:aba8:837b with SMTP id 6a1803df08f44-6f535421f97mr11347566d6.41.1746476973333; Mon, 05 May 2025 13:29:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746476973; cv=none; d=google.com; s=arc-20240605; b=JWxijWFL7P35bFJsrIeFmQsdhTrw5GHbQpMaMmcqPQL4HGnXGMKswgANwpr5ugQE2U KDF4lxUQN4J1AnCHZbA64UBG4GM+87cLv4tJtlcWtPWZGZ3kndC8Sv50/eBo+ylxHdyA c2werurQ7oS/Bz5Zkm2yE/9YNiZALI57ja0d3RFE/0TUXUdEdp6kOz4Run+Mi50uJRkz gR3nr9reeGj6Q7UG3yI+obADSgg8qPSAwaTXuvrVwr3Gzhfwg13PZYtELID80Rg5U5Sq e7bZzaIUVDR1DcuKRbhQQftd1Wefa1qwOyWJ79jQn2PoZCxRvb7hhsc/26MSavwWWbid RoBg== 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:to:from :dkim-signature; bh=9AbSjauKdD8z/AvZIK1KVWP//5BiT2GwV1phO/RT8K8=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=KdBIH+aoB910XOIRHjnq+wDNYXlN8IyK4qjz2qxe/GKTs4y5G1uRfVBaYIirXNedpn O0dAXEdrnXWC/QYW/J3qKH3CskASfJS023lAFMdXAI2695q8QSWl0tgxpdMKK0NlHT5r qMGtZuyoTWfn2jSBwqKbScVkrd98CqNO9rEycCbi6AkXcoFHg7CwvMmL0Nr8UUW7VrtN 3ifusV9hkUbkjU3E7hnOZAIs//7GBx8JW4fOWXCjvGs+6H5ZoBqzNTh0GQF+Ixq0BHO2 HSXXEY172SccHMOWWGzIKOj0HDcPOg+0KfHcc7a/D7gUXyrjd/YQoxlUAL3GbUepfgmo 1OwA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sLKSQfxJ; 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-6f536077dcesi879776d6.454.2025.05.05.13.29.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:29:33 -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=sLKSQfxJ; 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 1uC2QB-0006p4-1m; Mon, 05 May 2025 16:28: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 1uC2Q7-0006n7-Cq for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:11 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0: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 1uC2Q4-0000Q3-DN for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:11 -0400 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-7403f3ece96so6434843b3a.0 for ; Mon, 05 May 2025 13:28:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476887; x=1747081687; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9AbSjauKdD8z/AvZIK1KVWP//5BiT2GwV1phO/RT8K8=; b=sLKSQfxJ54789vWKHwC1Mt//QaRXHVFR55EsOoDX8bXjS/qNidaPoDj2vsFmpA470a DbX9qoElLkbMp4Q7R5nv56+ipzk4Te20T4SV/U4DLEADKt4gOJzBi3JY7VVfJkJkjllx 4E41hLUsHt7FegMuBlbyJNlO1+OZsPAZJTgXqWVheXMUp04XEhpMwluhDq6IA1bWvQnp 7euGReD5AMx+CEL/lXt6pFcCQ6/6VLdpWFI8ZzDIlUJD2UReoL9QsS7K6RkdhgZnZvCh lox6EQHvjH95oZA6C/S9nkD/v/Qc4kUU8Vup9EZOpjLYm+W3yNTtQGNMmyE0Htfq7+wE pRSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476887; x=1747081687; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9AbSjauKdD8z/AvZIK1KVWP//5BiT2GwV1phO/RT8K8=; b=iym7BrHpjuFp+vfm9G5Clk01MOFH/9c1pJ+23l2x6pZiPe9vBXAmtyGPv/o41o6MJ2 lP310Pi7V5+FMOhvrYS60FnPcxy1g0s+CUSRi+P+9oTAB27HK9H1J1K/h0Q709KzqRJp 8izqwMMuAtFvtZzhTJEtvWasPghtEoSS0Lqh0G6Zr3d2GWbIvSDI5BkY77SAM+aTU7w/ NKhjmFzPxII7JSsaJiO+ZlvnITYei78XWO55WCt/g9t7LfWuwlOPmTcnt8yexjdFMMLY r5NCYTsL84W6DXL/NGpBeOZby99LGRzaG2gF115m/HztrC2+a/mwDb2P1okbZaqwxgoR olDw== X-Gm-Message-State: AOJu0YxP9lkYvCddYOCEUH9QNWG0oGR4tUyZ/Gtgl6uk7ZW9wBnCNXlW 6vmBem9ZZtclpkrYCaQA5P3FoQhUtUeg/5y2kNx7bDRyUQQYmtytvdupb3148PMcUb/41golqT+ V X-Gm-Gg: ASbGncujvB/MJRH6HNdWFPL57wmWsMzbxhynOSE4MzH/vY+w8c31tpW+3Ix017so9OI zdrYlzD0KjKJ1SN3GMfJgXYMkdEJCazvLkbQnnraDtv2TZuQNYCjWz3HJwavXC3gXfn0JzIy1qe vBmKclnevmWqB55+Yd2SZtCZAmYqvPr3F+6aJT6ICX/wD0d1OOwo0luysczYG7buYa5r6+duX3Y VyxVqxrbVfxXpXjE8ogojdT/GjuvAThnOfcU1qOw1UNMwOKlB+1vJORVFFKzOe2y6s971oIsYWr LBsri2iJ9sUl2GK0NlOTvupraNjOEcmOCezA0k+FVwgWYG2TOMFd9kUc+KlkKH6KmPr1iV/+G4U = X-Received: by 2002:a05:6a21:2d0b:b0:1ee:ef0b:7bf7 with SMTP id adf61e73a8af0-2118143a34cmr672182637.19.1746476886552; Mon, 05 May 2025 13:28:06 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 16/20] tcg/optimize: Build and use o_bits in fold_exts Date: Mon, 5 May 2025 13:27:47 -0700 Message-ID: <20250505202751.3510517-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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, 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 424fd57922..d7f017accf 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2021,7 +2021,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)) { @@ -2030,17 +2030,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 Mon May 5 20:27: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: 887450 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235175wrq; Mon, 5 May 2025 13:29:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVeS+S5Dalw6nPOJT6PyVNGyC6eW1U8UGble8XtsojW9Njnq7keLVx2y5/wWlzsCmFbQYLA3Q==@linaro.org X-Google-Smtp-Source: AGHT+IG/9k7tPRblLGYBI48eRSv6Nu7wxaHciP/FRt8zGS3DW0Qt8HqoIA8tvMtJtsPNf1qLLLib X-Received: by 2002:a05:620a:438f:b0:7c5:5cd6:5cea with SMTP id af79cd13be357-7cae3a9166cmr935297085a.15.1746476964295; Mon, 05 May 2025 13:29:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746476964; cv=none; d=google.com; s=arc-20240605; b=dEtWcs1t+ouRQ2/r8cSUfio1kN+nT+GWITpvsjVzm3kRJrYbbQemKJZJPdoR3T3mWv QHHHRafzG5dZymWTDeDJav8HCCx332zRSUPWelx3gWn0jeT75ZL8HU/vcl2hAoYK7Klv 3LTxhWZZUYpiWknwpT8W64kBrjr0/ku2HlJsPEhl4yVIh5EDbyBO3eVsISJBMtdeQ76F xlQ7krW17f3VNH77jmzzVd9EixYPdw8jl7MOW3AxpFhecYP0JF3hPxkuTbfmhWW8+6+k MqohStw4xafyDYw/LzyEb2iG2nxEtfPPb+lYbN1wE9uzVdty38ltOfT/OobxZglwArbS WX4w== 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:to:from :dkim-signature; bh=B2Cl5cxSEvk06/qY2HwzkAkBtGDWvMDnYfpljfPamAI=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=kWC7YCEsjFICpHmLntbHg23Vyt40KEV2oLlaZZCJvPBDlce46oykwYmNyx9RonWire Bbb67O4ozCQ7psmmh+bh9rS+joYb1dJX3HFl1nPJGnBHDd3izVBLLW7dcrBYuhzLOQB/ bbLJuoiE7UmAWMZyn1xzIeOJxWiQgfSHsonltX2KVfCYl1/J0csIInyKzRX7F+NhKgBL eFlG/bX8Gdt6/vsQxKPcdJC9bvSeMBClkD90OwSAFM/TOQoK2en7YSCqupOAB15RWnpK CR80FW3DRiLZY8NJlcU7kFyobqrc05xdPDeYg+ynoklV8jPVnh+1t5KYde0Jxxsthl7F f2yg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HTN2cXVW; 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-7cad2435ef7si985397485a.409.2025.05.05.13.29.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:29:24 -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=HTN2cXVW; 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 1uC2QB-0006pK-J2; Mon, 05 May 2025 16:28: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 1uC2Q8-0006nm-Co for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Q4-0000QH-Rl for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-7394945d37eso4075169b3a.3 for ; Mon, 05 May 2025 13:28:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476887; x=1747081687; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=B2Cl5cxSEvk06/qY2HwzkAkBtGDWvMDnYfpljfPamAI=; b=HTN2cXVWyx+9eytZmPYBifVc8Y73Mpm7WIcYPL7ufHLA7F5Y1vjHSYNkukRTWiFb4e IP8c9KEqcKc98LY3S4BYlHr8T0jua5rYUdYGnkYOXKjyf2s0fHSVp88bV4pbDNUxKXgt cfxrSQErCPl3s3Rr221EO/MaFnLsJur41xQTJnvEQCTR4psg0DFnMmIvvSbXNMWxleR/ ZAPK6XFxktukBSa6M4wvJpsFPuSrysX8FcigFVoVP2IhfsWONWvw7d/I+7CUGTFCCbhD tm/s6WHEvqYXsfzMs8EvHOwwWbqln96GjAczCNc8A3keorzLaAOs61om1xY7+wN3GWdq HS6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476887; x=1747081687; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=B2Cl5cxSEvk06/qY2HwzkAkBtGDWvMDnYfpljfPamAI=; b=rtXre8LR/hy9UuwQX4K96jO52nsLlFPfbx1oXA1iKs3ey/IUe6oGpVEQ8JJ8goLNq9 pUqlJay0bz0zNmCIf6aISOjz33VPgorW7pdfwCkVYoGHRRmZ+Y/1jh5q8KPtMjEzlkA/ tIxgmtETHoN/hF5rM+sp70A4LLhpeF54SO6dtpy+1igVxZB3/SpLf6j5DEb79RVytP1l w1f7txYElcVEYkgsx+6Yr/+nhm7cro1eeRlxxruuVT0n0YqGS8gtEMYfZGx8Yjf6P/3s XrNVt1GN1V/HkhL6YBrjYCy75O0mrnzGXTS8RqdC5PNYm7Y21tVj8yQeclbs5twDBJ+p wmXg== X-Gm-Message-State: AOJu0YywDkQePkUAkhp5eEWjwqwyvjXIqAczZFArCZuvRAHmWOc3Bpvj xVBRqIm4r/k8TKxjPgJCM0BH9mTcHIKt0F6Q+SeBEcAys7o9JdA/h4j5Aa9PjYgnbkoz5qZZlGS b X-Gm-Gg: ASbGnctk56PLS/9yA/FE3Cvo3CXZbzz4ewfCBkHuDflkjzcFgPCmYs8WRsrkqdQQqLd aP3bnwWbGe44Utupb2zmzGhU//onYbJc3nsoobMiwu67oH/WXOTXupiTXgdNEQlvXLkot7tdjLP ZB0dYIw67CnQ2O2mXWtGwVpraYN9Q2pF6QNsEolqsikJQZnES8GckodZqv0uTeAzWPTsZePgP37 wQ9DLcIzJCMzYW6h9n1CGJCkHOk927UNfyq09G8IWgeVQBifg26O5hRrheR8wIJ2m/U1MAnBpnV y256oNYG8e3jC3HRJtst6I/Qn98Owv/X0Ca+G3bvl1L9zYJOUsRtSPQyVTiaisMDlU7ehvik1+g = X-Received: by 2002:a05:6a00:369b:b0:740:3830:4119 with SMTP id d2e1a72fcca58-7406f177d74mr12345418b3a.18.1746476887402; Mon, 05 May 2025 13:28:07 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 17/20] tcg/optimize: Build and use o_bits in fold_extu Date: Mon, 5 May 2025 13:27:48 -0700 Message-ID: <20250505202751.3510517-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::433; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x433.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 d7f017accf..1d722bebc2 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2047,25 +2047,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 Mon May 5 20:27: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: 887453 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235394wrq; Mon, 5 May 2025 13:30:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVNJQlR/28rXD5P8arGbNkMv6ASf9cMh+joc+ejZIjxL/p6tanseSdSIhpt6HPubN78YVfqjw==@linaro.org X-Google-Smtp-Source: AGHT+IGVt8969H4j+nfTSXiTQcN2upFKEtI4uA0EezzwhKpgn5q2vRuk5Dn9Up+WsLxyfBMWr8X1 X-Received: by 2002:a05:620a:280c:b0:7c7:b4aa:85bc with SMTP id af79cd13be357-7cad5b37e36mr1715894985a.17.1746477001815; Mon, 05 May 2025 13:30:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477001; cv=none; d=google.com; s=arc-20240605; b=DYChthuK9Xxqfu8GuwjtL6zaAw+LLVHj8wgQcg/pbjFGP9d7DRHuYqcSbL7xZs8lh2 7J/VHC/CDEfXCDKN1xIWeLdUoy5V92sttooZasCx+ACnmtqkUBaAPtg5sE28cPd3q2WW 3tEHlF8bZ+bh22FRvz24E/fe0FKRE4toxSYH543PHYtdaNnJMTpY4V6VoSjrmzEwc6bh TMqBajvHp17NfynFViQJiH+/KBDqdErIfyxqyDPjW0kV6nS6qoYixk8OZUStLhfsTz9A ku7zAQgiEK/yMHIh3/MUhFejtOJa66AQ1JvnbWuPsjp6KV7kyI1zjLYOKja6AcsGNWHN 9GxQ== 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:to:from :dkim-signature; bh=//jTx+xrgsbGn/aMj2raUmnH/lr9//Bq0ITGijiGoV0=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=fwo3ArMQPMhyHb71nnCeQm2tOewwn+WAztD5WZnTEGuo1c5f8v50X07RlFG/2E4B7J jm/o5xef5BPs+xB3v6VYdzuNPZGcXqkmbNvIV3FLqy/TmGsuEY1PmSxO2NU6UVCnWWZX 3ZnF6vXehSyKyHjNqFaYBRPr5nW82W6n5ey50yJIKizVSmnMp1hwrd/+E80ufvORrdeR 0IeNqSeE2K3o9Rhkg9XFM/Z+UwHKRXe3C4Z9EFEDigHDxv1AJDQFRYJMmVNMUgEX+l8k SeN2lvhm6oVcCpT98CXpkURtax9VKBrDPRwi40FYgDwoPFzvxeDr7P6MO8VGMuzucsBm BjSA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lHJwLgSC; 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-7cad23c8136si952721185a.134.2025.05.05.13.30.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:01 -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=lHJwLgSC; 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 1uC2QG-0006t0-9g; Mon, 05 May 2025 16:28: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 1uC2Q8-0006o1-H7 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0: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 1uC2Q5-0000RH-Un for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-736b350a22cso4071066b3a.1 for ; Mon, 05 May 2025 13:28:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476888; x=1747081688; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=//jTx+xrgsbGn/aMj2raUmnH/lr9//Bq0ITGijiGoV0=; b=lHJwLgSCV29/CEazPD655tN0B/Toe0r/39VlNaNgfT2HkTPZtKrgaAbIEiZxsrQc/g P4lldPigEqdhZhtT1orWyeqtOybkQA+fg+GccmFyEnm3odTD9UBWLw+R4fCBVSsEsQYm ykmxMMgzV64AEJhAtH4GQP7cicDgVXJIvsI+UzuQllEU+BC78VCxEjtQJpxpvvDXyzeJ 1dk9B3VdRKe4aVLqzJU+rWrJMv16kti2hVgpV3ABp4w6PyLDOwYgPfrIAJn7e7BYT/nS X2gjHo+v6PoQj5Km3LPCoyQv7PrM+rKXV5Sdaw+ehWV7FsxWYJq5wsBAoMat92aU/ths wqiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476888; x=1747081688; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=//jTx+xrgsbGn/aMj2raUmnH/lr9//Bq0ITGijiGoV0=; b=dKWzHTHC93FbJlS2C5pw8kXT1fYV0BE/EMZu0ghhY//3w60l9Cfqb3bAFsB3vRDtGz XXch2oVX2pl5q2sIS9XdWmvZ7jxBpyBldRdnIm5g49MsJDe8x51FFFWb651KvtAqkhCD IBqkB3Bvf+PLVe/ISZyloAbLHXFwxI/TTncMAdtCUQnyM+fJCBq6I+CsJ1LJdXVrTRy0 ykkXaBRGWIC1fs5IsbnXQAiGyGMEwwHgvEzZvPc0yRPPNyqnjyQFFm040ts0Guwqgcpr SRvZ4ELyKD6Du5m4Tynwff/OCgYWO734vekceGSX82s2tujdhnO2A3EgV/5qv5QVN3Ca yTgw== X-Gm-Message-State: AOJu0YxmZ1z8E6rIjwYEe9oh7f8G/d+qerdv5pNXHh/loZEKsw6ZpdEv tGJO/bFwvybhRj3JG/IVR61BKKTxhv0sQOwRf4J4tmvBT1HkbGrCz96rBCc+2hGscinibubwo7J / X-Gm-Gg: ASbGncsmUPUORqQa37PvKFebLKJtMt+9OvwpjCctRqWm6gegMe9X9T8l85RSCCwp83F bHuBlzo8UoKZPMnQ59mPkJic/ULWzVfA4jVFsUU154MX6Z/XSRpxBbejFqU2YasI2uaYdR4bFtc ghjWSEQQ2xTOn89IQXIbGpg5KLFBIVK3ncT0TuuWcRao09NINbUIyyG92d741uyWiWjUjLhSWih IUTXZ3XcK1t3Zv+SoOYbo7OMEz2Z6KT/giG4wWYOy2GaTlzciKH9sBkOcDnLmrMplgoj+5fkowS UifmYzH0chgDzWg6guPF2yzCPI9rF6KakCKvUovVKz7EzUzABwYQndLHsOQI+QjufHaPyVNBDwg = X-Received: by 2002:a05:6a00:301f:b0:736:9e40:13b1 with SMTP id d2e1a72fcca58-74058b25ab3mr20965051b3a.23.1746476888383; Mon, 05 May 2025 13:28:08 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 18/20] tcg/optimize: Build and use o_bits in fold_movcond Date: Mon, 5 May 2025 13:27:49 -0700 Message-ID: <20250505202751.3510517-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 1d722bebc2..1040e67220 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2105,7 +2105,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; @@ -2131,6 +2131,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)) { @@ -2153,7 +2154,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 Mon May 5 20:27: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: 887464 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2236095wrq; Mon, 5 May 2025 13:31:46 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWblyhytcmK/W9zNXQM/coQ9TtbCABEjHjZ2Fqq9vkFoO22bggOx0fcdVoz2cJj5Z8R6EVgbg==@linaro.org X-Google-Smtp-Source: AGHT+IH5CBSwrEkuXeAwsen8EZnjnd270O8flhGsu64pMAKUSqs/iOXztfZbX7piaZUzRo8Qenqw X-Received: by 2002:ad4:5f06:0:b0:6e8:9957:e705 with SMTP id 6a1803df08f44-6f535417556mr13275276d6.34.1746477105886; Mon, 05 May 2025 13:31:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477105; cv=none; d=google.com; s=arc-20240605; b=CDIT/cXYT6dNj5a7wzly+epRZr7+g2EVMnN94Qj/svlVVWAvNbsRTfSBGr3ON+ZyVg kLJ6s0G/++1jLXXX5ClqFagy3fZj/A9mQ6k7sucMTxZdAY+tgl2uxs74xkJkvtynT+Db MUHnna5AG7slmp5tn28Lg5fnYuGVPe9FeRCmCf+ttf2Fq9w7RhPASgOun8hSTf6Jzp9R mSQtFWTzQfrwY2B5Th1tCQhpWfZQ/SSY72jfRQC38EfG9kyg9NB5SWZlIAQU2I57eHXL vuKqFOSPiPCSMawE6HV8fQhJRxVU/2JIQHzYnQqtfH1Z4/MOPbcYq4ifcdTJ3bHpQajs PMVQ== 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:to:from :dkim-signature; bh=PzuW8adBEQ6Y8G4mfGa8N0GLrEoIeBeGx+gpNE1HJDY=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=Ev7Ndlgg+m7d8raxMpw8rRwD4TK1fb+gJSaumDHW6/NZdVkCbm5k81Eopg0c2skNMq oobMi+nDRe866032h2QISOU373eK+AupI7UTI9u9LbayO+qECtabmcszL9tflaJXHQZn L7p/gvnTogkU7UVQv+3fczAsSz5plj++a+7Q04gsj4wtmF5q/8J+i3wphZgrdWhNSshf Hy/h9GmPrC//98ThrvuiXI013WOfREYhNhLag73zpBJY9BFYGBlDWOx/bFGq8VwK4hlh 1TFL0XuGSCY9TKx9v1Lg9l95j+elSGAXKbjmAAEJC9W/jorUPJzrHIKLRcIoNAPtg1+b I0yw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wzvQY8k3; 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-6f50f49070fsi90462156d6.355.2025.05.05.13.31.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:31:45 -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=wzvQY8k3; 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 1uC2QH-0006uM-KU; Mon, 05 May 2025 16:28: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 1uC2Q8-0006o8-Je for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Q6-0000RZ-U1 for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:12 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-7403f3ece96so6434894b3a.0 for ; Mon, 05 May 2025 13:28:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476889; x=1747081689; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=PzuW8adBEQ6Y8G4mfGa8N0GLrEoIeBeGx+gpNE1HJDY=; b=wzvQY8k3kukIKqFdBMgyMjN5YACSmaUj44kdC/X8WNjZWVyUtkSrklivbLs8ej/Xbh OvyOkmR88xJIQYWudpXDWleJsY/xj4+07e5qxLC6XGLJ4FkxRHQVansIAanyeUY1dqxy YDa4pkac7XJkMrQi/kmWaM6nopCyfYYQo7xsCXOKcYZW7cjEzB6tbEDoPyiNLk09lCSQ 5wrn04Tvti7DEq0EHYTUCR7tslL30VIdvUyDtVkL79vpWQCO3uHCmbZ62neRk+No/fXX kBEwkmj4tkMngyTkFJNviDsHB/4isgYXgHo4oK5LPWRkslRfTGXFY1iF5QS/fD6zuyzR UF+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476889; x=1747081689; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PzuW8adBEQ6Y8G4mfGa8N0GLrEoIeBeGx+gpNE1HJDY=; b=wQMWOZ6s99+Uzj3eCVMCLlIguMQIu/gu5yK+D10qdDziVwf0s5j9NYI+7a7KYveiKq Yu3IVqPjXMU7vyp5YZ2VjcV9uK+sPeAvACIAhgPpYfTV1RTR4i0PihvzmI7s7Da20KSg /Jdk1RvhXdd3pX7er9kBI+mS/OvrZIuI6r3c0iAAKp0BoI2X+tAhEm/B5LjuwmWk56KE UX1oQ2nH94MsSdalxxATwvYGHr4ACjmmSkB3KAU4qUyKaFem0jSLiQhpyD8j8lQINoAg swSl6D5LR2OVIxH4C5+s4JTNlAzgSiSQyHltqb0m29AXl5P3vcR5nOR3RBMdJOJRbOHF s78w== X-Gm-Message-State: AOJu0YyDpZOSqghB16YK4lGBk1PF/QxNxn0zxJYnimVVtZMxlznaMm34 D09YlhizdBJmIjRjVn8NwgOEquLpZkHltmDQ3PNa27jUesDXfhKAlIBuGkABoM15irOhlqhtwiO a X-Gm-Gg: ASbGnctjetAya2xGDC6T0o8uCnfGo3HU8o4FL+D5TPwwRqyQsIf4sWhXWORUEXEnqDA wf8K1W7B/1FWRzpiJsDMm8knqSBkDplQ9huwsiADirtE6fmUOkhD6gGHAYrsC9ADu/SoKxEPqIc 37ivkDifiAlQEujtxR3hQxMZnt7vh1XPvTtckE2JpbP6by6ET3ufyP3aDxAHq2g9Ht3p9uYeuqb AvSveD7PctFoj4NKKIXTD3om2GHx5gtaVFeiw0+x83TNz2gKa/Pa4bMXm/31iBLSknXNKr45lR/ Ki6iFXbgS9XIpAEW7qXCs4M9AQWSBouxfN3/rH9h97X57pFR7Q7Fy3UIqqIEe1we82vk09pV93o = X-Received: by 2002:a05:6a21:6f87:b0:1f5:874c:c987 with SMTP id adf61e73a8af0-21180f5668fmr811301637.15.1746476889275; Mon, 05 May 2025 13:28:09 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 19/20] tcg/optimize: Build and use o_bits in fold_sextract Date: Mon, 5 May 2025 13:27:50 -0700 Message-ID: <20250505202751.3510517-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.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 1040e67220..f36636ed02 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2681,7 +2681,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, s_mask_old; TempOptInfo *t1 = arg_info(op->args[1]); int pos = op->args[2]; int len = op->args[3]; @@ -2700,7 +2700,8 @@ static bool fold_sextract(OptContext *ctx, TCGOp *op) } 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_zos(ctx, op, z_mask, o_mask, s_mask); } static bool fold_shift(OptContext *ctx, TCGOp *op) From patchwork Mon May 5 20:27: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: 887458 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2235660wrq; Mon, 5 May 2025 13:30:43 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXYF1DiBtxiX9k/xg7QvKvNo3mMvBJMWxDHYBvuYFRcievC88v4oz6Hz4SDX2AeLZ2ERriVvg==@linaro.org X-Google-Smtp-Source: AGHT+IGgEd1mrbkeY1f/FdGk+SLo1rJPfsI9ThC1jvFuM0tZEasT/eh1ZGR0x+xYbsoIf/tZzbJ8 X-Received: by 2002:a05:6102:354e:b0:4c3:878:6a62 with SMTP id ada2fe7eead31-4dc62afe736mr782555137.8.1746477043330; Mon, 05 May 2025 13:30:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746477043; cv=none; d=google.com; s=arc-20240605; b=UdIwSs0oA/ceEdV7f6rRPgiZsoyZR2r9HcmAs0iQqGDYJ5+5RdBBlZYsnMrd2y/kF4 62HuJ9WT3gj+gG2v+38WWbbgTZ54C91KUfYQljlisz3MeerkyhO+kxXKyiMKx/voFi3N /WOHGUd1XpCpuQ99l654dosmu6tYO0DMJJ4yvkqAH+FKA5ZEr3LbU67/Lz0PdBZvXPEv 7Xyn6j+aHNwyy+oUWdBw17ekzGlG+xNRULpdp9qHjBBlg8BgPQpSGNZQAAbQr4axoR0S +JdCLe3svsWYbtlZVcuaJd0mATpPwzfx7tR3qvxPrEUYMpivDsJQNXT5ZOB3YJr+Dzbk dclg== 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:to:from :dkim-signature; bh=KOt17JQNeTedx3lg3bvKkZN2IA0gQQiBK1NKxrnMp84=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=aSBHWCY9lk/W8I2ke0ukvs17uJfJCY6/nr43cpwLS7s6dJ03jsFdqLYd9xhJz8Pw/p 0H2ERbgiTARhhO08jMO1NJqZwnkdQH+pYX0mlY+Qan53/RN07Is0dJpP1ONDBSf6i5bD 8RsmhUM8H+H+s1u5ePrO18dTyKPGkLPzhH5UJyE6cnye7wY2ptHbHPVSBcWAofg+4SdC LckNxMxYnlLV5vhqNTEQWYzwmvKKFgctW5rTmgEs/+F2LDtI15RuA0jezUJXpC+9P/I9 hQlORDKXsmCL65Gsm3COWyoDMe6h0D5bRvlt14DMApxS/7isjbXFbBDn/YFp/842K6Iu 00JQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yLUzUuJv; 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 ada2fe7eead31-4daf264f78esi2132139137.671.2025.05.05.13.30.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 May 2025 13:30:43 -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=yLUzUuJv; 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 1uC2QC-0006qG-CJ; Mon, 05 May 2025 16:28: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 1uC2Q9-0006oj-Gf for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:13 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uC2Q7-0000Rw-MF for qemu-devel@nongnu.org; Mon, 05 May 2025 16:28:13 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-223f4c06e9fso44644795ad.1 for ; Mon, 05 May 2025 13:28:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746476890; x=1747081690; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=KOt17JQNeTedx3lg3bvKkZN2IA0gQQiBK1NKxrnMp84=; b=yLUzUuJvsj3p4E6+iDw0dUfVqllc1d21bTGJmUFkICmaCZowsy42PePUkiYVXOy7pd Fhc0sSuoxFgKDuploaVwfTEs+6NN0DnTcc3HAqePLef5Pt8gcuObjzODFCTIsnRLfWGh tNMN8dyjWhzeLWTnu+40H7L/NKwGkmPnukMld+ITf4P6IBCIbUCHOZZi9pxskglmSrm9 9/l0gGFJ92MTUsYo/ZQ1ozQ3V9aAR4DqVORZj5p9kG1fuqwWUQ42eTY5SpAgJFd84tc9 oPkNfxt5XTACg0jEJHi9mfXi3mMADGTKWXaChsexio6DanKxuRMRY8uZgGxAVCxfuXIc lEPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746476890; x=1747081690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KOt17JQNeTedx3lg3bvKkZN2IA0gQQiBK1NKxrnMp84=; b=Mr+fFz2lzb3b9zBmhwE3fv6Czin3Md/e1mo7h8vW0lsLflyHH+FVCOxAXAfG7xIKPM oYVM0psMHT+SVWUMSqUIwnmMPN4mW2X3h/qQLrkSzJ/ImyDRvxAVPP724hvcBXCIL9Em G5ZDpuPjz5mMvPQG9wXoKrFVsYWBtlLn+z6R20onhYNFNDzGWp2W3RTlJ+j4yo/4xlIX oGbmuMYReZr/dJBcUHe61ogqaIPI6FEwmvbKkX9tX6MPy6V8dXIPUv5S3OJ/DaHCNPd2 mCsMPm6hyiaVZ2+WrxvUhFUIhuDFVzXjqENlZ4mG0G61gEBNYawT8aPnl06d6umrU/P3 deTg== X-Gm-Message-State: AOJu0YxvgKbIti7G4ryuyCpo6Q+9VJXU9MJKcPAWzg4D1OaUN1zSS1kz F/IVaBOVNUjiBLMUhbp2hD2Ce+MHIbibGnGrrNBjntbhzBHeBtj0xq6hdaBiC6k3LS+QazMMOq0 e X-Gm-Gg: ASbGncuhBfp5PYRcI9IVhIDgvRQShskwohTC0MXL7KQ1iUR3TWHy2PlzIoEe5quuISi Q/xHl30xe7N2vsZ1PpdfBEoVvYo4W9a+MxdIXBBxj8IX7/2DfCE/fUnAgP4VviZ0+hOR+ZL5BdA hilf6DYzSJyYI0xPpp/KAdxIZmHTDLMMxkozff4CGp8VMWJ53FUeI84CWS+dnhwCwiS/GgCEydh 3Nxr+XHbJw1pf+oNdJFqKJ8vUwx6WvejM99TOZhHXMGTlQXtOHD2MDwvVHNkzJWAVPEHIFoxS0j XLyvSMOQobg/PicBWzvwyel5DBdSGZuVskNQE6aiKdBO31thX+BxhwTFL8L4QE+4qOAL3TOKEAv uiClMSOaj0Q== X-Received: by 2002:a17:902:e78f:b0:223:4d5e:7592 with SMTP id d9443c01a7336-22e328ad820mr10416175ad.21.1746476890057; Mon, 05 May 2025 13:28:10 -0700 (PDT) Received: from stoup.. (71-212-47-143.tukw.qwest.net. [71.212.47.143]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059021067sm7516485b3a.107.2025.05.05.13.28.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 13:28:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 20/20] tcg/optimize: Build and use o_bits in fold_shift Date: Mon, 5 May 2025 13:27:51 -0700 Message-ID: <20250505202751.3510517-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250505202751.3510517-1-richard.henderson@linaro.org> References: <20250505202751.3510517-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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 f36636ed02..ab05206ee5 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -2706,7 +2706,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) || @@ -2719,14 +2719,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) {