https://gcc.gnu.org/g:c308d38b0849729b845b1f5015fdeb606b1737e0
commit r17-5316-gc308d38b0849729b845b1f5015fdeb606b1737e0 Author: Jeevitha <[email protected]> Date: Mon Oct 19 00:01:43 2026 -0500 testsuite: Fix mask move testcase for power10BE [127156] The vsx_mask-move-runnable.c testcase assumes little-endian vector element ordering when checking the results of the vec_genbm, vec_genhm, vec_genwm and vec_gendm intrinsics. Use endian-dependent expected values so that the testcase correctly accounts for BE and LE. Also remove unused variables. 2026-10-19 Jeevitha Palanisamy <[email protected]> gcc/testsuite/ PR target/127156 * gcc.target/powerpc/vsx_mask-move-runnable.c: Use endian-dependent expected values for vec_genbm, vec_genhm, vec_genwm and vec_gendm. Diff: --- .../gcc.target/powerpc/vsx_mask-move-runnable.c | 44 ++++++++++++++++------ 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/vsx_mask-move-runnable.c b/gcc/testsuite/gcc.target/powerpc/vsx_mask-move-runnable.c index 53fd99ed2991..204568a319d1 100644 --- a/gcc/testsuite/gcc.target/powerpc/vsx_mask-move-runnable.c +++ b/gcc/testsuite/gcc.target/powerpc/vsx_mask-move-runnable.c @@ -34,23 +34,19 @@ int main () vector unsigned long long vbc_result_di, vbc_expected_result_di; vector __uint128_t vbc_result_qi, vbc_expected_result_qi; - unsigned int result_wi, expected_result_wi; - unsigned long long result, expected_result; - const unsigned char mp=1; - vector unsigned char vbc_bi_src; - vector unsigned short vbc_hi_src; - vector unsigned int vbc_wi_src; - vector unsigned long long vbc_di_src; - vector __uint128_t vbc_qi_src; - /* mtvsrbmi */ num_elements = 16; for (i = 0; i<num_elements; i++) vbc_expected_result_bi[i] = 0x0; +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + vbc_expected_result_bi[13] = 0xFF; + vbc_expected_result_bi[15] = 0xFF; +#else vbc_expected_result_bi[0] = 0xFF; vbc_expected_result_bi[2] = 0xFF; +#endif vbc_result_bi = vec_genbm(5); @@ -75,8 +71,13 @@ int main () for (i = 0; i<num_elements; i++) vbc_expected_result_bi[i] = 0x0; +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + vbc_expected_result_bi[14] = 0xFF; + vbc_expected_result_bi[15] = 0xFF; +#else vbc_expected_result_bi[1] = 0xFF; vbc_expected_result_bi[0] = 0xFF; +#endif vbc_result_bi = vec_genbm(arg1); @@ -93,18 +94,25 @@ int main () } } - num_elements = 16; /* Should generate mtvsrbm as argument will not fit in 6-bit field. */ arg1 = 0xEA; // 234 decimal for (i = 0; i<num_elements; i++) vbc_expected_result_bi[i] = 0x0; +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + vbc_expected_result_bi[8] = 0xFF; + vbc_expected_result_bi[9] = 0xFF; + vbc_expected_result_bi[10] = 0xFF; + vbc_expected_result_bi[12] = 0xFF; + vbc_expected_result_bi[14] = 0xFF; +#else vbc_expected_result_bi[7] = 0xFF; vbc_expected_result_bi[6] = 0xFF; vbc_expected_result_bi[5] = 0xFF; vbc_expected_result_bi[3] = 0xFF; vbc_expected_result_bi[1] = 0xFF; +#endif vbc_result_bi = vec_genbm(arg1); @@ -128,8 +136,13 @@ int main () for (i = 0; i<num_elements; i++) vbc_expected_result_hi[i] = 0x0; +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + vbc_expected_result_hi[5] = 0xFFFF; + vbc_expected_result_hi[7] = 0xFFFF; +#else vbc_expected_result_hi[2] = 0xFFFF; vbc_expected_result_hi[0] = 0xFFFF; +#endif vbc_result_hi = vec_genhm(arg1); @@ -153,9 +166,15 @@ int main () for (i = 0; i<num_elements; i++) vbc_expected_result_wi[i] = 0x0; +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + vbc_expected_result_wi[1] = 0xFFFFFFFF; + vbc_expected_result_wi[2] = 0xFFFFFFFF; + vbc_expected_result_wi[3] = 0xFFFFFFFF; +#else vbc_expected_result_wi[2] = 0xFFFFFFFF; vbc_expected_result_wi[1] = 0xFFFFFFFF; vbc_expected_result_wi[0] = 0xFFFFFFFF; +#endif vbc_result_wi = vec_genwm(arg1); @@ -179,8 +198,11 @@ int main () for (i = 0; i<num_elements; i++) vbc_expected_result_di[i] = 0x0; - vbc_expected_result_di[1] = 0x0; +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + vbc_expected_result_di[1] = 0xFFFFFFFFFFFFFFFF; +#else vbc_expected_result_di[0] = 0xFFFFFFFFFFFFFFFF; +#endif vbc_result_di = vec_gendm(arg1);
