RE: [PATCH] Remove test_vshuff from hvx_misc tests

2023-05-09 Thread Taylor Simpson



> -Original Message-
> From: Brian Cain 
> Sent: Tuesday, May 9, 2023 3:01 PM
> To: Taylor Simpson ; Marco Liebel (QUIC)
> ; qemu-devel@nongnu.org
> Cc: Matheus Bernardino (QUIC) 
> Subject: RE: [PATCH] Remove test_vshuff from hvx_misc tests
> 
> 
> 
> > -Original Message-
> > From: Taylor Simpson 
> > Sent: Tuesday, May 9, 2023 2:28 PM
> > To: Marco Liebel (QUIC) ; qemu-
> > de...@nongnu.org
> > Cc: Brian Cain ; Matheus Bernardino (QUIC)
> > 
> > Subject: RE: [PATCH] Remove test_vshuff from hvx_misc tests
> >
> >
> >
> > > -Original Message-
> > > From: Marco Liebel (QUIC) 
> > > Sent: Tuesday, May 9, 2023 1:43 PM
> > > To: qemu-devel@nongnu.org
> > > Cc: Taylor Simpson ; Brian Cain
> > > ; Matheus Bernardino (QUIC)
> > > ; Marco Liebel (QUIC)
> > > 
> > > Subject: [PATCH] Remove test_vshuff from hvx_misc tests
> > >
> > > test_vshuff checks that the vshuff instruction works correctly when
> > > both vector registers are the same. Using vshuff in this way is
> > > undefined and will be rejected by the compiler in a future version of the
> toolchain.
> > >
> > > Signed-off-by: Marco Liebel 
> > > ---
> > >  tests/tcg/hexagon/hvx_misc.c | 45
> > > 
> > >  1 file changed, 45 deletions(-)
> >
> > Let's not remove the test completely.  Just change it to use different
> registers.
> 
> I'm fine either way.  But IIRC we added this test particularly in order to 
> verify
> the potentially ambiguous behavior of the same operand here.  It may be
> well tested otherwise.

I confirmed the hvx_histogram test executes this instruction, so
Reviewed-by: Taylor Simpson 




RE: [PATCH] Remove test_vshuff from hvx_misc tests

2023-05-09 Thread Brian Cain



> -Original Message-
> From: Taylor Simpson 
> Sent: Tuesday, May 9, 2023 2:28 PM
> To: Marco Liebel (QUIC) ; qemu-
> de...@nongnu.org
> Cc: Brian Cain ; Matheus Bernardino (QUIC)
> 
> Subject: RE: [PATCH] Remove test_vshuff from hvx_misc tests
> 
> 
> 
> > -Original Message-
> > From: Marco Liebel (QUIC) 
> > Sent: Tuesday, May 9, 2023 1:43 PM
> > To: qemu-devel@nongnu.org
> > Cc: Taylor Simpson ; Brian Cain
> > ; Matheus Bernardino (QUIC)
> > ; Marco Liebel (QUIC)
> > 
> > Subject: [PATCH] Remove test_vshuff from hvx_misc tests
> >
> > test_vshuff checks that the vshuff instruction works correctly when both
> > vector registers are the same. Using vshuff in this way is undefined and 
> > will
> > be rejected by the compiler in a future version of the toolchain.
> >
> > Signed-off-by: Marco Liebel 
> > ---
> >  tests/tcg/hexagon/hvx_misc.c | 45 
> >  1 file changed, 45 deletions(-)
> 
> Let's not remove the test completely.  Just change it to use different 
> registers.

I'm fine either way.  But IIRC we added this test particularly in order to 
verify the potentially ambiguous behavior of the same operand here.  It may be 
well tested otherwise.



RE: [PATCH] Remove test_vshuff from hvx_misc tests

2023-05-09 Thread Brian Cain



> -Original Message-
> From: Marco Liebel (QUIC) 
> Sent: Tuesday, May 9, 2023 1:43 PM
> To: qemu-devel@nongnu.org
> Cc: Taylor Simpson ; Brian Cain ;
> Matheus Bernardino (QUIC) ; Marco Liebel
> (QUIC) 
> Subject: [PATCH] Remove test_vshuff from hvx_misc tests
> 
> test_vshuff checks that the vshuff instruction works correctly when
> both vector registers are the same. Using vshuff in this way is
> undefined and will be rejected by the compiler in a future version of
> the toolchain.
> 
> Signed-off-by: Marco Liebel 
> ---
>  tests/tcg/hexagon/hvx_misc.c | 45 
>  1 file changed, 45 deletions(-)
> 
> diff --git a/tests/tcg/hexagon/hvx_misc.c b/tests/tcg/hexagon/hvx_misc.c
> index d0e64e035f..bc4e76d7f0 100644
> --- a/tests/tcg/hexagon/hvx_misc.c
> +++ b/tests/tcg/hexagon/hvx_misc.c
> @@ -342,49 +342,6 @@ static void test_vsubuwsat_dv(void)
>  check_output_w(__LINE__, 2);
>  }
> 
> -static void test_vshuff(void)
> -{
> -/* Test that vshuff works when the two operands are the same register */
> -const uint32_t splat = 0x089be55c;
> -const uint32_t shuff = 0x454fa926;
> -MMVector v0, v1;
> -
> -memset(expect, 0x12, sizeof(MMVector));
> -memset(output, 0x34, sizeof(MMVector));
> -
> -asm volatile("v25 = vsplat(%0)\n\t"
> - "vshuff(v25, v25, %1)\n\t"
> - "vmem(%2 + #0) = v25\n\t"
> - : /* no outputs */
> - : "r"(splat), "r"(shuff), "r"(output)
> - : "v25", "memory");
> -
> -/*
> - * The semantics of Hexagon are the operands are pass-by-value, so create
> - * two copies of the vsplat result.
> - */
> -for (int i = 0; i < MAX_VEC_SIZE_BYTES / 4; i++) {
> -v0.uw[i] = splat;
> -v1.uw[i] = splat;
> -}
> -/* Do the vshuff operation */
> -for (int offset = 1; offset < MAX_VEC_SIZE_BYTES; offset <<= 1) {
> -if (shuff & offset) {
> -for (int k = 0; k < MAX_VEC_SIZE_BYTES; k++) {
> -if (!(k & offset)) {
> -uint8_t tmp = v0.ub[k];
> -v0.ub[k] = v1.ub[k + offset];
> -v1.ub[k + offset] = tmp;
> -}
> -}
> -}
> -}
> -/* Put the result in the expect buffer for verification */
> -expect[0] = v1;
> -
> -check_output_b(__LINE__, 1);
> -}
> -
>  static void test_load_tmp_predicated(void)
>  {
>  void *p0 = buffer0;
> @@ -489,8 +446,6 @@ int main()
>  test_vadduwsat();
>  test_vsubuwsat_dv();
> 
> -test_vshuff();
> -
>  test_load_tmp_predicated();
>  test_load_cur_predicated();
> 
> --
> 2.25.1

Reviewed-by: Brian Cain 



RE: [PATCH] Remove test_vshuff from hvx_misc tests

2023-05-09 Thread Taylor Simpson



> -Original Message-
> From: Marco Liebel (QUIC) 
> Sent: Tuesday, May 9, 2023 1:43 PM
> To: qemu-devel@nongnu.org
> Cc: Taylor Simpson ; Brian Cain
> ; Matheus Bernardino (QUIC)
> ; Marco Liebel (QUIC)
> 
> Subject: [PATCH] Remove test_vshuff from hvx_misc tests
> 
> test_vshuff checks that the vshuff instruction works correctly when both
> vector registers are the same. Using vshuff in this way is undefined and will
> be rejected by the compiler in a future version of the toolchain.
> 
> Signed-off-by: Marco Liebel 
> ---
>  tests/tcg/hexagon/hvx_misc.c | 45 
>  1 file changed, 45 deletions(-)

Let's not remove the test completely.  Just change it to use different 
registers.

Thanks,
Taylor