[interpreter] Move TestVwsubuwx to inline asm

Test: m inline_asm_riscv64.native_bridge, program_runner
inline_asm_riscv64

Change-Id: I801d36eb05a8b4760e6300ffe3bb0418775656d1
diff --git a/interpreter/riscv64/interpreter_test.cc b/interpreter/riscv64/interpreter_test.cc
index 902c836..2e1ea00 100644
--- a/interpreter/riscv64/interpreter_test.cc
+++ b/interpreter/riscv64/interpreter_test.cc
@@ -8704,35 +8704,6 @@
                                 kVectorCalculationsSource);
 }
 
-TEST_F(Riscv64InterpreterTest, TestVwsubuwx) {
-  TestWideningVectorInstruction(0xd900e457,  //  vwsubu.wx v8,v16,ra,v0.t
-                                {{0x8056, 0x8258, 0x845a, 0x865c, 0x885e, 0x8a60, 0x8c62, 0x8e64},
-                                 {0x9066, 0x9268, 0x946a, 0x966c, 0x986e, 0x9a70, 0x9c72, 0x9e74},
-                                 {0xa076, 0xa278, 0xa47a, 0xa67c, 0xa87e, 0xaa80, 0xac82, 0xae84},
-                                 {0xb086, 0xb288, 0xb48a, 0xb68c, 0xb88e, 0xba90, 0xbc92, 0xbe94},
-                                 {0xc096, 0xc298, 0xc49a, 0xc69c, 0xc89e, 0xcaa0, 0xcca2, 0xcea4},
-                                 {0xd0a6, 0xd2a8, 0xd4aa, 0xd6ac, 0xd8ae, 0xdab0, 0xdcb2, 0xdeb4},
-                                 {0xe0b6, 0xe2b8, 0xe4ba, 0xe6bc, 0xe8be, 0xeac0, 0xecc2, 0xeec4},
-                                 {0xf0c6, 0xf2c8, 0xf4ca, 0xf6cc, 0xf8ce, 0xfad0, 0xfcd2, 0xfed4}},
-                                {{0x8301'd656, 0x8705'da5a, 0x8b09'de5e, 0x8f0d'e262},
-                                 {0x9311'e666, 0x9715'ea6a, 0x9b19'ee6e, 0x9f1d'f272},
-                                 {0xa321'f676, 0xa725'fa7a, 0xab29'fe7e, 0xaf2e'0282},
-                                 {0xb332'0686, 0xb736'0a8a, 0xbb3a'0e8e, 0xbf3e'1292},
-                                 {0xc342'1696, 0xc746'1a9a, 0xcb4a'1e9e, 0xcf4e'22a2},
-                                 {0xd352'26a6, 0xd756'2aaa, 0xdb5a'2eae, 0xdf5e'32b2},
-                                 {0xe362'36b6, 0xe766'3aba, 0xeb6a'3ebe, 0xef6e'42c2},
-                                 {0xf372'46c6, 0xf776'4aca, 0xfb7a'4ece, 0xff7e'52d2}},
-                                {{0x8706'8503'd857'd656, 0x8f0e'8d0b'e05f'de5e},
-                                 {0x9716'9513'e867'e666, 0x9f1e'9d1b'f06f'ee6e},
-                                 {0xa726'a523'f877'f676, 0xaf2e'ad2c'007f'fe7e},
-                                 {0xb736'b534'0888'0686, 0xbf3e'bd3c'1090'0e8e},
-                                 {0xc746'c544'1898'1696, 0xcf4e'cd4c'20a0'1e9e},
-                                 {0xd756'd554'28a8'26a6, 0xdf5e'dd5c'30b0'2eae},
-                                 {0xe766'e564'38b8'36b6, 0xef6e'ed6c'40c0'3ebe},
-                                 {0xf776'f574'48c8'46c6, 0xff7e'fd7c'50d0'4ece}},
-                                kVectorCalculationsSource);
-}
-
 TEST_F(Riscv64InterpreterTest, TestVwsubwv) {
   TestWideningVectorInstruction(0xdd0c2457,  // vwsub.wv v8, v16, v24, v0.t
                                 {{0x8100, 0x8370, 0x8500, 0x8770, 0x88ff, 0x8b70, 0x8d00, 0x8f70},
diff --git a/tests/inline_asm_tests/main_riscv64.cc b/tests/inline_asm_tests/main_riscv64.cc
index dfd638a..0659085 100644
--- a/tests/inline_asm_tests/main_riscv64.cc
+++ b/tests/inline_asm_tests/main_riscv64.cc
@@ -9776,3 +9776,43 @@
                                  {0xf776'f574'0cfe'0eff, 0xff7e'fd7c'0cfe'0f00}},
                                 kVectorCalculationsSource);
 }
+
+[[gnu::naked]] void ExecVwsubuwx() {
+  asm("vwsubu.wx v8, v16, t0\n\t"
+      "ret\n\t");
+}
+
+[[gnu::naked]] void ExecMaskedVwsubuwx() {
+  asm("vwsubu.wx v8, v16, t0, v0.t\n\t"
+      "ret\n\t");
+}
+
+TEST(InlineAsmTestRiscv64, TestVwsubuwx) {
+  TestWideningVectorInstruction(ExecVwsubuwx,
+                                ExecMaskedVwsubuwx,
+                                {{0x8056, 0x8258, 0x845a, 0x865c, 0x885e, 0x8a60, 0x8c62, 0x8e64},
+                                 {0x9066, 0x9268, 0x946a, 0x966c, 0x986e, 0x9a70, 0x9c72, 0x9e74},
+                                 {0xa076, 0xa278, 0xa47a, 0xa67c, 0xa87e, 0xaa80, 0xac82, 0xae84},
+                                 {0xb086, 0xb288, 0xb48a, 0xb68c, 0xb88e, 0xba90, 0xbc92, 0xbe94},
+                                 {0xc096, 0xc298, 0xc49a, 0xc69c, 0xc89e, 0xcaa0, 0xcca2, 0xcea4},
+                                 {0xd0a6, 0xd2a8, 0xd4aa, 0xd6ac, 0xd8ae, 0xdab0, 0xdcb2, 0xdeb4},
+                                 {0xe0b6, 0xe2b8, 0xe4ba, 0xe6bc, 0xe8be, 0xeac0, 0xecc2, 0xeec4},
+                                 {0xf0c6, 0xf2c8, 0xf4ca, 0xf6cc, 0xf8ce, 0xfad0, 0xfcd2, 0xfed4}},
+                                {{0x8301'd656, 0x8705'da5a, 0x8b09'de5e, 0x8f0d'e262},
+                                 {0x9311'e666, 0x9715'ea6a, 0x9b19'ee6e, 0x9f1d'f272},
+                                 {0xa321'f676, 0xa725'fa7a, 0xab29'fe7e, 0xaf2e'0282},
+                                 {0xb332'0686, 0xb736'0a8a, 0xbb3a'0e8e, 0xbf3e'1292},
+                                 {0xc342'1696, 0xc746'1a9a, 0xcb4a'1e9e, 0xcf4e'22a2},
+                                 {0xd352'26a6, 0xd756'2aaa, 0xdb5a'2eae, 0xdf5e'32b2},
+                                 {0xe362'36b6, 0xe766'3aba, 0xeb6a'3ebe, 0xef6e'42c2},
+                                 {0xf372'46c6, 0xf776'4aca, 0xfb7a'4ece, 0xff7e'52d2}},
+                                {{0x8706'8503'd857'd656, 0x8f0e'8d0b'e05f'de5e},
+                                 {0x9716'9513'e867'e666, 0x9f1e'9d1b'f06f'ee6e},
+                                 {0xa726'a523'f877'f676, 0xaf2e'ad2c'007f'fe7e},
+                                 {0xb736'b534'0888'0686, 0xbf3e'bd3c'1090'0e8e},
+                                 {0xc746'c544'1898'1696, 0xcf4e'cd4c'20a0'1e9e},
+                                 {0xd756'd554'28a8'26a6, 0xdf5e'dd5c'30b0'2eae},
+                                 {0xe766'e564'38b8'36b6, 0xef6e'ed6c'40c0'3ebe},
+                                 {0xf776'f574'48c8'46c6, 0xff7e'fd7c'50d0'4ece}},
+                                kVectorCalculationsSource);
+}