]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
tcg/i386: Expand sari of bits-1 as pcmpgt
authorRichard Henderson <richard.henderson@linaro.org>
Wed, 27 Aug 2025 10:33:27 +0000 (20:33 +1000)
committerRichard Henderson <richard.henderson@linaro.org>
Thu, 4 Sep 2025 07:49:23 +0000 (09:49 +0200)
Expand arithmetic right shift of bits-1 as a comparison vs 0.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/i386/tcg-target.c.inc

index 088c6c9264b01b4022d7edde61783b27d7e790be..4cd5d4276c992c61cdd57079e043bbeea2293ff1 100644 (file)
@@ -4357,6 +4357,12 @@ static void expand_vec_sari(TCGType type, unsigned vece,
 {
     TCGv_vec t1, t2;
 
+    if (imm >= (8 << vece) - 1) {
+        tcg_gen_cmp_vec(TCG_COND_LT, vece, v0, v1,
+                        tcg_constant_vec(type, MO_64, 0));
+        return;
+    }
+
     switch (vece) {
     case MO_8:
         /* Unpack to 16-bit, shift, and repack.  */