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

commit r15-3098-gf6b10fe45b9b704fd6a7124ab02c6e6cbd8efce4
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Thu Aug 22 21:15:21 2024 -0700

    testsuite: Fix vect-mod-var.c for division by 0 [PR116461]
    
    The testcase cc.dg/vect/vect-mod-var.c has an division by 0
    which is undefined. On some targets (aarch64), the scalar and
    the vectorized version, the result of division by 0 is the same.
    While on other targets (x86), we get a SIGFAULT. On other targets (powerpc),
    the results are different.
    
    The fix is to make sure the testcase does not test division by 0 (or really 
mod by 0).
    
    Pushed as obvious after testing on x86_64-linux-gnu to make sure the 
testcase passes
    now.
    
            PR testsuite/116461
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/vect/vect-mod-var.c: Change the initialization loop so that
            `b[i]` is never 0. Use 1 in those places.
    
    Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

Diff:
---
 gcc/testsuite/gcc.dg/vect/vect-mod-var.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/testsuite/gcc.dg/vect/vect-mod-var.c 
b/gcc/testsuite/gcc.dg/vect/vect-mod-var.c
index eeed318c62b0..c552941faef5 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-mod-var.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-mod-var.c
@@ -23,6 +23,9 @@ main (void)
     {
       a[i] = BASE1 + i * 5;
       b[i] = BASE2 - i * 4;
+      /* b[i] cannot be 0 as that would cause undefined
+        behavior with respect to `% b[i]`. */
+      b[i] = b[i] ? b[i] : 1;
       __asm__ volatile ("");
     }

Reply via email to