Hi All, The following patch has been bootstrapped and regtested on powerpc64le-linux and powerpc64-linux.
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-08-26 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 --git a/gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c b/gcc/testsuite/gcc.target/powerpc/vec-permute-ext-runnable.c index f8332652b47..d6bed5120b9 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 };
