Depending on how GCC was configured, default -mtune parameter can load
the floating-point constant using either:
    movw    r3, #52429
    movt    r3, 16268
    or
    ldr     r3, .L4

Update the expected code to accept both versions.

Tested on:
- arm-linux-gnueabihf --with-tune=cortex-a9 --with-arch=armv7-a
- arm-none-eabi --with-cpu=cortex-m0
- arm-none-eabi --with-cpu=cortex-m55

2026-01-26  Christophe Lyon  <[email protected]>

        gcc/testsuite/
        * gcc.target/arm/mve/intrinsics/vdupq_n_f32.c: Update expected
        code.
---
 gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c 
b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c
index 81c2e29f5e5..6a01ce47b6d 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vdupq_n_f32.c
@@ -24,7 +24,12 @@ foo (float32_t a)
 /*
 **foo1:
 **     ...
+** (
 **     ldr     r[0-9]+, .L.*
+** |
+**     movw    (r[0-9]+), #52429
+**     movt    \1, 16268
+** )
 **     vdup.32 q[0-9]+, r[0-9]+
 **     ...
 */
-- 
2.43.0

Reply via email to