testsuite: Fix mask move testcase for power10BE [127156]

Message ID 92fe684e-5116-43d7-9235-5d1da0a6ea03@linux.ibm.com
State New
Headers
Series testsuite: Fix mask move testcase for power10BE [127156] |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_simplebootstrap_build--master-aarch64-bootstrap success Build passed
linaro-tcwg-bot/tcwg_simplebootstrap_build--master-arm-bootstrap success Build passed

Commit Message

jeevitha Sept. 2, 2026, 6:28 a.m. UTC
  Hi All,

The following patch has been bootstrapped and regtested on powerpc64le-linux
and powerpc64-linux.

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-09-02  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>

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.
  

Patch

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 53fd99ed299..204568a319d 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);