testsuite: update builtins-5-p9-runnable.c for BE
Checks
Commit Message
Hi,
As PR108809 mentioned, vec_xl_len_r and vec_xst_len_r are tested
in gcc.target/powerpc/builtins-5-p9-runnable.c.
The vector operand of these two bifs are different from the view
of v16_int8 between BE and LE, even it is same from the view of
128bits(uint128/V1TI).
The test case gcc.target/powerpc/builtins-5-p9-runnable.c was
written for LE environment, this patch updates it for BE.
Tested on ppc64 BE and LE.
Is this ok for trunk?
BR,
Jeff (Jiufu)
gcc/testsuite/ChangeLog:
* gcc.target/powerpc/builtins-5-p9-runnable.c: Updated.
---
.../powerpc/builtins-5-p9-runnable.c | 35 +++++++++++++++++++
1 file changed, 35 insertions(+)
Comments
On 2023-04-14 15:30, Jiufu Guo wrote:
> Hi,
>
> As PR108809 mentioned, vec_xl_len_r and vec_xst_len_r are tested
> in gcc.target/powerpc/builtins-5-p9-runnable.c.
> The vector operand of these two bifs are different from the view
> of v16_int8 between BE and LE, even it is same from the view of
> 128bits(uint128/V1TI).
>
> The test case gcc.target/powerpc/builtins-5-p9-runnable.c was
> written for LE environment, this patch updates it for BE.
>
> Tested on ppc64 BE and LE.
> Is this ok for trunk?
>
> BR,
> Jeff (Jiufu)
>
> gcc/testsuite/ChangeLog:
>
PR target/108809
> * gcc.target/powerpc/builtins-5-p9-runnable.c: Updated.
Add missing PR number.
BR,
Jeff (Jiufu)
>
> ---
> .../powerpc/builtins-5-p9-runnable.c | 35 +++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
> b/gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
> index 14e935513fe..1a5f1d6383a 100644
> --- a/gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
> +++ b/gcc/testsuite/gcc.target/powerpc/builtins-5-p9-runnable.c
> @@ -78,8 +78,13 @@ int main() {
> size = 8;
> vec_uc_result1 = vec_xl_len_r(data_uc, size);
>
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){8, 7, 6, 5, 4, 3, 2, 1,
> 0, 0, 0, 0, 0, 0, 0, 0,};
> +#else
> + vec_uc_expected1 = (vector unsigned char){0, 0, 0, 0, 0, 0, 0, 0,
> + 1, 2, 3, 4, 5, 6, 7, 8,};
> +#endif
>
> if (result_wrong (vec_uc_expected1, vec_uc_result1))
> {
> @@ -107,8 +112,13 @@ int main() {
> size = 4;
> vec_uc_result1 = vec_xl_len_r(data_uc, size);
>
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){ 4, 3, 2, 1, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0
> };
> +#else
> + vec_uc_expected1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
> + 0, 0, 0, 0, 1, 2, 3, 4
> };
> +#endif
>
> if (result_wrong (vec_uc_expected1, vec_uc_result1))
> {
> @@ -135,8 +145,13 @@ int main() {
> size = 2;
> vec_uc_result1 = vec_xl_len_r(data_uc, size);
>
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){ 2, 1, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0
> };
> +#else
> + vec_uc_expected1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
> + 0, 0, 0, 0, 0, 0, 1, 2
> };
> +#endif
>
> if (result_wrong (vec_uc_expected1, vec_uc_result1))
> {
> @@ -231,8 +246,13 @@ int main() {
> }
>
> /* VEC_XST_LEN_R */
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){ 16, 15, 14, 13, 12, 11,
> 10, 9,
> 8, 7, 6, 5, 4, 3, 2, 1 };
> +#else
> + vec_uc_expected1 = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
> + 9, 10, 11, 12, 13, 14, 15, 16 };
> +#endif
> store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
> 9, 10, 11, 12, 13, 14, 15, 16 };
> vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
> @@ -265,8 +285,13 @@ int main() {
> #endif
> }
>
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){ 2, 1, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0
> };
> +#else
> + vec_uc_expected1 = (vector unsigned char){ 15, 16, 0, 0, 0, 0, 0,
> 0,
> + 0, 0, 0, 0, 0, 0, 0, 0
> };
> +#endif
> store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
> 9, 10, 11, 12, 13, 14, 15, 16 };
> vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
> @@ -299,8 +324,13 @@ int main() {
> #endif
> }
>
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){ 16, 15, 14, 13, 12, 11,
> 10, 9,
> 8, 7, 6, 5, 4, 3, 2, 1
> };
> +#else
> + vec_uc_expected1 = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
> + 9, 10, 11, 12, 13, 14, 15, 16 };
> +#endif
> store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
> 9, 10, 11, 12, 13, 14, 15, 16 };
> vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
> @@ -333,8 +363,13 @@ int main() {
> #endif
> }
>
> +#ifdef __LITTLE_ENDIAN__
> vec_uc_expected1 = (vector unsigned char){ 14, 13, 12, 11, 10, 9,
> 8, 7,
> 6, 5, 4, 3, 2, 1, 0, 0
> };
> +#else
> + vec_uc_expected1 = (vector unsigned char){ 3, 4, 5, 6, 7, 8, 9, 10,
> + 11, 12, 13, 14, 15, 16,
> 0, 0 };
> +#endif
> store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
> 9, 10, 11, 12, 13, 14, 15, 16 };
> vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
Hi Jeff,
on 2023/4/14 16:01, guojiufu wrote:
> On 2023-04-14 15:30, Jiufu Guo wrote:
>> Hi,
>>
>> As PR108809 mentioned, vec_xl_len_r and vec_xst_len_r are tested
>> in gcc.target/powerpc/builtins-5-p9-runnable.c.
>> The vector operand of these two bifs are different from the view
>> of v16_int8 between BE and LE, even it is same from the view of
>> 128bits(uint128/V1TI).
>>
>> The test case gcc.target/powerpc/builtins-5-p9-runnable.c was
>> written for LE environment, this patch updates it for BE.
>>
>> Tested on ppc64 BE and LE.
>> Is this ok for trunk?
>>
>> BR,
>> Jeff (Jiufu)
>>
>> gcc/testsuite/ChangeLog:
>>
> PR target/108809
s/target/testsuite/
>> * gcc.target/powerpc/builtins-5-p9-runnable.c: Updated.
>
s/Updated/Update for BE/
OK with these two nits fixed, thanks!
BR,
Kewen
On 2023-04-14 17:09, Kewen.Lin wrote:
> Hi Jeff,
>
> on 2023/4/14 16:01, guojiufu wrote:
>> On 2023-04-14 15:30, Jiufu Guo wrote:
>>> Hi,
>>>
>>> As PR108809 mentioned, vec_xl_len_r and vec_xst_len_r are tested
>>> in gcc.target/powerpc/builtins-5-p9-runnable.c.
>>> The vector operand of these two bifs are different from the view
>>> of v16_int8 between BE and LE, even it is same from the view of
>>> 128bits(uint128/V1TI).
>>>
>>> The test case gcc.target/powerpc/builtins-5-p9-runnable.c was
>>> written for LE environment, this patch updates it for BE.
>>>
>>> Tested on ppc64 BE and LE.
>>> Is this ok for trunk?
>>>
>>> BR,
>>> Jeff (Jiufu)
>>>
>>> gcc/testsuite/ChangeLog:
>>>
>> PR target/108809
>
> s/target/testsuite/
>
>>> * gcc.target/powerpc/builtins-5-p9-runnable.c: Updated.
>>
>
> s/Updated/Update for BE/
>
> OK with these two nits fixed, thanks!
Thanks for the very helpful comments!
Committed via r13-7202-ga1f25e04b8d10b.
BR,
Jeff (Jiufu)
>
> BR,
> Kewen
@@ -78,8 +78,13 @@ int main() {
size = 8;
vec_uc_result1 = vec_xl_len_r(data_uc, size);
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){8, 7, 6, 5, 4, 3, 2, 1,
0, 0, 0, 0, 0, 0, 0, 0,};
+#else
+ vec_uc_expected1 = (vector unsigned char){0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 2, 3, 4, 5, 6, 7, 8,};
+#endif
if (result_wrong (vec_uc_expected1, vec_uc_result1))
{
@@ -107,8 +112,13 @@ int main() {
size = 4;
vec_uc_result1 = vec_xl_len_r(data_uc, size);
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){ 4, 3, 2, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 };
+#else
+ vec_uc_expected1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 4 };
+#endif
if (result_wrong (vec_uc_expected1, vec_uc_result1))
{
@@ -135,8 +145,13 @@ int main() {
size = 2;
vec_uc_result1 = vec_xl_len_r(data_uc, size);
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){ 2, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 };
+#else
+ vec_uc_expected1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 2 };
+#endif
if (result_wrong (vec_uc_expected1, vec_uc_result1))
{
@@ -231,8 +246,13 @@ int main() {
}
/* VEC_XST_LEN_R */
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){ 16, 15, 14, 13, 12, 11, 10, 9,
8, 7, 6, 5, 4, 3, 2, 1 };
+#else
+ vec_uc_expected1 = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16 };
+#endif
store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16 };
vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
@@ -265,8 +285,13 @@ int main() {
#endif
}
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){ 2, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 };
+#else
+ vec_uc_expected1 = (vector unsigned char){ 15, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0 };
+#endif
store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16 };
vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
@@ -299,8 +324,13 @@ int main() {
#endif
}
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){ 16, 15, 14, 13, 12, 11, 10, 9,
8, 7, 6, 5, 4, 3, 2, 1 };
+#else
+ vec_uc_expected1 = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16 };
+#endif
store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16 };
vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,
@@ -333,8 +363,13 @@ int main() {
#endif
}
+#ifdef __LITTLE_ENDIAN__
vec_uc_expected1 = (vector unsigned char){ 14, 13, 12, 11, 10, 9, 8, 7,
6, 5, 4, 3, 2, 1, 0, 0 };
+#else
+ vec_uc_expected1 = (vector unsigned char){ 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 0, 0 };
+#endif
store_data_uc = (vector unsigned char){ 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16 };
vec_uc_result1 = (vector unsigned char){ 0, 0, 0, 0, 0, 0, 0, 0,