Commit c66fe5b04d for qemu.org

commit c66fe5b04d643d013e97cbbede5b736b56a667d4
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Wed Sep 16 02:16:54 2026 -1000

    tests/tcg/s390x: Add regression test for #4449

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

diff --git a/tests/tcg/s390x/issue4449.c b/tests/tcg/s390x/issue4449.c
new file mode 100644
index 0000000000..0c9c80e8ca
--- /dev/null
+++ b/tests/tcg/s390x/issue4449.c
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <assert.h>
+
+#define CASE(name, old, cst, sh)                                        \
+    static void __attribute__((noinline)) case_##name(void) {           \
+        unsigned long t1, got;                                          \
+        __asm__("lhi  %0," #cst "\n\t"   /* low 32 known, high not */   \
+                "lghi %1," #old "\n\t"   /* whole register constant */  \
+                "sllk %1,%0," #sh "\n\t" /* 32-bit write = deposit */   \
+                "brc 15,1f\n\t"          /* ends the translation block */ \
+                "nop\n"                                                 \
+                "1:"                                                    \
+                : "=r"(t1), "=r"(got) : : );                            \
+        unsigned long want = (unsigned)(cst) << (sh);                   \
+        assert(got == want);                                            \
+    }
+
+CASE(a, 256, 128, 1);
+CASE(b, 128, 128, 0);
+CASE(c, 512, 128, 2);
+CASE(d,   2,   1, 1);
+
+int main()
+{
+    case_a();
+    case_b();
+    case_c();
+    case_d();
+    return 0;
+}
diff --git a/tests/tcg/s390x/meson.build b/tests/tcg/s390x/meson.build
index 57ea6c5ca5..39a480033d 100644
--- a/tests/tcg/s390x/meson.build
+++ b/tests/tcg/s390x/meson.build
@@ -84,6 +84,7 @@ tests += {
   'cpacf-pcc.c': {},
   'cpacf-pckmo.c': {},
   'cpacf-prno.c': {},
+  'issue4449.c': {},
 }

 foreach src: tests_s390x_pgm