mirror of https://github.com/xemu-project/xemu.git
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 <quic_mliebel@quicinc.com> Reviewed-by: Brian Cain <bcain@quicinc.com> Reviewed-by: Taylor Simpson <tsimpson@quicinc.com> Tested-by: Taylor Simpson <tsimpson@quicinc.com> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com> Message-Id: <20230509184231.2467626-1-quic_mliebel@quicinc.com>
This commit is contained in:
parent
14edcf11e2
commit
9e6d4938d1
|
@ -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;
|
||||
|
@ -508,8 +465,6 @@ int main()
|
|||
test_vadduwsat();
|
||||
test_vsubuwsat_dv();
|
||||
|
||||
test_vshuff();
|
||||
|
||||
test_load_tmp_predicated();
|
||||
test_load_cur_predicated();
|
||||
|
||||
|
|
Loading…
Reference in New Issue