https://gcc.gnu.org/g:bde7cf998666c449f353d928c9cb70de776c7555

commit r16-5953-gbde7cf998666c449f353d928c9cb70de776c7555
Author: H.J. Lu <[email protected]>
Date:   Mon Dec 8 13:32:55 2025 +0800

    x86: Compile avx2-vpcmpgtq-1.c with -fno-fuse-ops-with-volatile-access
    
    When -march=cascadelake is added, we generate
    
            vmovdqa x(%rip), %ymm0
            vpcmpq  $1, x(%rip), %ymm0, %k0
            vpmovm2q        %k0, %ymm0
            vmovdqa %ymm0, x(%rip)
    
    instead of
    
            vmovdqa x(%rip), %ymm1
            vmovdqa x(%rip), %ymm0
            vpcmpgtq        %ymm1, %ymm0, %ymm0
            vmovdqa %ymm0, x(%rip)
    
    Compile avx2-vpcmpgtq-1.c with -fno-fuse-ops-with-volatile-access to
    generate vpcmpgtq instead of vpcmpq.
    
            PR target/122343
            * gcc.target/i386/avx2-vpcmpgtq-1.c: Compile with
            -fno-fuse-ops-with-volatile-access.
    
    Signed-off-by: H.J. Lu <[email protected]>

Diff:
---
 gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c 
b/gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c
index 7a983808b10c..5e6f43105170 100644
--- a/gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mavx2 -O2" } */
+/* { dg-options "-mavx2 -O2 -fno-fuse-ops-with-volatile-access" } */
 /* { dg-final { scan-assembler "vpcmpgtq\[ \\t\]+\[^\n\]*%ymm\[0-9\]" } } */
 
 #include <immintrin.h>

Reply via email to