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

commit r17-4879-gfcf510403586ecd715c31b357993a16d106eade8
Author: Jeevitha <[email protected]>
Date:   Mon Oct 5 00:50:00 2026 -0500

    rs6000: Fix vec-permute-ext-runnable.c on Power10BE [PR127030]
    
    The vec-permute-ext-runnable.c test uses byte indices in the control
    vector that happen to match the little-endian representation of the
    vector double values. On Power10 big-endian targets, the same byte
    indices select different bytes within the vector double representation
    and therefore produce 0.0 instead of the expected -4.0.
    
    Update the permutation indices to make the test endian-correct.
    
    2026-09-05  Jeevitha Palanisamy  <[email protected]>
    
    gcc/testsuite/
            PR target/127030
            * gcc.target/powerpc/vec-permute-ext-runnable.c: Fix the
            byte permutation indices for big-endian targets.

Diff:
---
 gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c 
b/gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
index f8332652b470..d6bed5120b91 100644
--- a/gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
+++ b/gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c
@@ -269,7 +269,7 @@ main (int argc, char *argv [])
   vsrc_b_d = (vector double) { 2.0, -4.0 };
   vsrc_c_uchar = (vector unsigned char) { 0x0, 0x1, 0x2, 0x3,
                                          0x4, 0x5, 0x6, 0x7,
-                                         0x1A, 0x1B, 0x1C, 0x1B,
+                                         0x18, 0x19, 0x1A, 0x1B,
                                          0x1C, 0x1D, 0x1E, 0x1F };
   vresult_d = (vector double) { 0.0, 0.0 };
   expected_vresult_d = (vector double) { 1.0, -4.0 };

Reply via email to