Message ID | 20240307032327.4799-6-ltaylorsimpson@gmail.com |
---|---|
State | New |
Headers | show |
Series | Clean up .new decode and scripts | expand |
> -----Original Message----- > From: Taylor Simpson <ltaylorsimpson@gmail.com> > Sent: Wednesday, March 6, 2024 9:23 PM > To: qemu-devel@nongnu.org > Cc: Brian Cain <bcain@quicinc.com>; Matheus Bernardino (QUIC) > <quic_mathbern@quicinc.com>; Sid Manning <sidneym@quicinc.com>; > Marco Liebel (QUIC) <quic_mliebel@quicinc.com>; > richard.henderson@linaro.org; philmd@linaro.org; ale@rev.ng; anjo@rev.ng; > ltaylorsimpson@gmail.com > Subject: [PATCH v2 5/9] Hexagon (tests/tcg/hexagon) Test HVX .new read > from high half of pair > > WARNING: This email originated from outside of Qualcomm. Please be wary > of any links or attachments, and do not enable macros. > > Make sure the decoding of HVX .new is correctly handling this case > > Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com> > --- Reviewed-by: Brian Cain <bcain@quicinc.com> > tests/tcg/hexagon/hvx_misc.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/tests/tcg/hexagon/hvx_misc.c b/tests/tcg/hexagon/hvx_misc.c > index b45170acd1..1fe14b5158 100644 > --- a/tests/tcg/hexagon/hvx_misc.c > +++ b/tests/tcg/hexagon/hvx_misc.c > @@ -1,5 +1,5 @@ > /* > - * Copyright(c) 2021-2023 Qualcomm Innovation Center, Inc. All Rights > Reserved. > + * Copyright(c) 2021-2024 Qualcomm Innovation Center, Inc. All Rights > Reserved. > * > * This program is free software; you can redistribute it and/or modify > * it under the terms of the GNU General Public License as published by > @@ -231,6 +231,7 @@ static void test_masked_store(bool invert) > static void test_new_value_store(void) > { > void *p0 = buffer0; > + void *p1 = buffer1; > void *pout = output; > > asm("{\n\t" > @@ -242,6 +243,19 @@ static void test_new_value_store(void) > expect[0] = buffer0[0]; > > check_output_w(__LINE__, 1); > + > + /* Test the .new read from the high half of a pair */ > + asm("v7 = vmem(%0 + #0)\n\t" > + "v12 = vmem(%1 + #0)\n\t" > + "{\n\t" > + " v5:4 = vcombine(v12, v7)\n\t" > + " vmem(%2 + #0) = v5.new\n\t" > + "}\n\t" > + : : "r"(p0), "r"(p1), "r"(pout) : "v4", "v5", "v7", "v12", "memory"); > + > + expect[0] = buffer1[0]; > + > + check_output_w(__LINE__, 1); > } > > static void test_max_temps() > -- > 2.34.1
diff --git a/tests/tcg/hexagon/hvx_misc.c b/tests/tcg/hexagon/hvx_misc.c index b45170acd1..1fe14b5158 100644 --- a/tests/tcg/hexagon/hvx_misc.c +++ b/tests/tcg/hexagon/hvx_misc.c @@ -1,5 +1,5 @@ /* - * Copyright(c) 2021-2023 Qualcomm Innovation Center, Inc. All Rights Reserved. + * Copyright(c) 2021-2024 Qualcomm Innovation Center, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -231,6 +231,7 @@ static void test_masked_store(bool invert) static void test_new_value_store(void) { void *p0 = buffer0; + void *p1 = buffer1; void *pout = output; asm("{\n\t" @@ -242,6 +243,19 @@ static void test_new_value_store(void) expect[0] = buffer0[0]; check_output_w(__LINE__, 1); + + /* Test the .new read from the high half of a pair */ + asm("v7 = vmem(%0 + #0)\n\t" + "v12 = vmem(%1 + #0)\n\t" + "{\n\t" + " v5:4 = vcombine(v12, v7)\n\t" + " vmem(%2 + #0) = v5.new\n\t" + "}\n\t" + : : "r"(p0), "r"(p1), "r"(pout) : "v4", "v5", "v7", "v12", "memory"); + + expect[0] = buffer1[0]; + + check_output_w(__LINE__, 1); } static void test_max_temps()
Make sure the decoding of HVX .new is correctly handling this case Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com> --- tests/tcg/hexagon/hvx_misc.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)