Implement st1 for aarch64 assembler

PiperOrigin-RevId: 423407151
diff --git a/test/aarch64-assembler.cc b/test/aarch64-assembler.cc
index 29812b2..ee8e223 100644
--- a/test/aarch64-assembler.cc
+++ b/test/aarch64-assembler.cc
@@ -112,6 +112,20 @@
   CHECK_ENCODING(0x4F00E405, a.movi(v5.v16b(), 0));
   EXPECT_ERROR(Error::kUnimplemented, a.movi(v5.v16b(), 0xFF));
 
+  CHECK_ENCODING(0x4C82746F, a.st1({v15.v8h()}, mem[x3], x2));
+
+  CHECK_ENCODING(0x4C95AA8F, a.st1({v15.v4s(), v16.v4s()}, mem[x20], x21));
+  EXPECT_ERROR(Error::kInvalidOperand, a.st1({v15.v4s(), v17.v4s()}, mem[x20], x21));
+  EXPECT_ERROR(Error::kInvalidOperand, a.st1({v15.v4s(), v16.v8h()}, mem[x20], x21));
+
+  CHECK_ENCODING(0x4C8E60D0, a.st1({v16.v16b(), v17.v16b(), v18.v16b() }, mem[x6], x14));
+  EXPECT_ERROR(Error::kInvalidOperand, a.st1({v15.v16b(), v17.v16b(), v18.v16b()}, mem[x6], x14));
+  EXPECT_ERROR(Error::kInvalidOperand, a.st1({v16.v16b(), v17.v16b(), v18.v4s()}, mem[x6], x14));
+
+  CHECK_ENCODING(0x4C812FB4, a.st1({v20.v2d(), v21.v2d(), v22.v2d(), v23.v2d()}, mem[x29], x1));
+  EXPECT_ERROR(Error::kInvalidOperand, a.st1({v20.v2d(), v21.v2d(), v22.v2d(), v23.v2s()}, mem[x29], x1));
+  EXPECT_ERROR(Error::kInvalidOperand, a.st1({v20.v2d(), v21.v2d(), v22.v2d(), v27.v2d()}, mem[x29], x1));
+
   ASSERT_EQ(xnn_status_success, xnn_release_code_memory(&b));
 }