diff options
author | mmc28a <78873583+mmc28a@users.noreply.github.com> | 2022-11-11 17:27:55 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-11 17:27:55 +0000 |
commit | f03979c481a165ca8e0d93a935e30bd73f461d9f (patch) | |
tree | c57d38405582e512d1d299d65d9712790b994b2c | |
parent | c40e2ab0d31b2460537ec10794cb34343da68606 (diff) | |
download | vixl-f03979c481a165ca8e0d93a935e30bd73f461d9f.tar.gz |
Add regression test for movprfx/ext and fix splice (#56)
Test the change in c40e2ab0d31b2460537ec10794cb34343da68606 and fix constructive
splice similarly.
-rw-r--r-- | src/aarch64/instructions-aarch64.cc | 1 | ||||
-rw-r--r-- | test/aarch64/test-api-movprfx-aarch64.cc | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/aarch64/instructions-aarch64.cc b/src/aarch64/instructions-aarch64.cc index 52801b6b..a2d05472 100644 --- a/src/aarch64/instructions-aarch64.cc +++ b/src/aarch64/instructions-aarch64.cc @@ -211,7 +211,6 @@ bool Instruction::CanTakeSVEMovprfx(uint32_t form_hash, case "insr_z_v"_h: case "smaxp_z_p_zz"_h: case "sminp_z_p_zz"_h: - case "splice_z_p_zz_con"_h: case "splice_z_p_zz_des"_h: case "sqcadd_z_zz"_h: case "sqdecd_z_zs"_h: diff --git a/test/aarch64/test-api-movprfx-aarch64.cc b/test/aarch64/test-api-movprfx-aarch64.cc index 535ae0bf..d3339899 100644 --- a/test/aarch64/test-api-movprfx-aarch64.cc +++ b/test/aarch64/test-api-movprfx-aarch64.cc @@ -1424,6 +1424,9 @@ TEST(movprfx_positive) { __ movprfx(z15, z18); __ eor(z15.VnH(), z15.VnH(), 4); + __ movprfx(z17, z30); + __ ext(z17.VnB(), z17.VnB(), z18.VnB(), 2); + __ movprfx(z19, z28); __ incd(z19.VnD(), SVE_MUL3); @@ -2409,7 +2412,7 @@ TEST(movprfx_negative_instructions_sve2) { { // We have to use the Assembler directly to generate movprfx, so we need // to manually reserve space for the code we're about to emit. - static const size_t kPairCount = 133; + static const size_t kPairCount = 134; CodeBufferCheckScope guard(&assm, kPairCount * 2 * kInstructionSize); __ movprfx(z29, z30); @@ -2580,6 +2583,9 @@ TEST(movprfx_negative_instructions_sve2) { __ movprfx(z31, z0); __ smullt(z31.VnD(), z26.VnS(), z5.VnS(), 0); + __ movprfx(z4, z5); + __ splice_con(z4.VnB(), p7.Merging(), z0.VnB(), z1.VnB()); + __ movprfx(z18, z19); __ sqdmulh(z18.VnB(), z25.VnB(), z1.VnB()); |