Update branch_mul example
Check in the dispatch object file instead of render from the mlir
-- no dependency to `iree-compile`
The runtime library is relatively stable at this point (no API change in
> 16 months), so it should be okay to keep a copy of the generated
object file like this.
Bug: 294402411
Change-Id: I8f384c1789a5355ba3d24cead6c9c15638b555f1
diff --git a/samples/branch_mul/CMakeLists.txt b/samples/branch_mul/CMakeLists.txt
index 5f7b9f8..e45a432 100644
--- a/samples/branch_mul/CMakeLists.txt
+++ b/samples/branch_mul/CMakeLists.txt
@@ -1,25 +1,20 @@
-sparrow_static_module(
- NAME
- branch_mul
- SRC
- "branch_mul.mlir"
- FLAGS
- "-iree-input-type=tosa"
- # NB: iree seems to step on the input tensors
- # without this.
- "-iree-flow-trace-dispatch-tensors"
- EMITC
- RVV_OFF
+add_library(samples_branch_mul_branch_mul_lib
+ STATIC
+ branch_mul_c.o
)
+set_target_properties(
+ samples_branch_mul_branch_mul_lib
+ PROPERTIES
+ LINKER_LANGUAGE C)
+
sparrow_test(
NAME
branch_mul_emitc_static
SRCS
"branch_mul.c"
DEPS
- ::branch_mul_emitc
- ::branch_mul_lib
+ samples_branch_mul_branch_mul_lib
iree::base
iree::vm::bytecode::module
iree::hal::local::executable_environment
diff --git a/samples/branch_mul/branch_mul.c b/samples/branch_mul/branch_mul.c
index 910d655..d25e364 100644
--- a/samples/branch_mul/branch_mul.c
+++ b/samples/branch_mul/branch_mul.c
@@ -17,7 +17,6 @@
#include "samples/branch_mul/branch_mul_arg1.h"
#include "samples/branch_mul/branch_mul_arg2.h"
#include "samples/branch_mul/branch_mul_c.h"
-#include "samples/branch_mul/branch_mul_emitc.h"
#include "samples/branch_mul/branch_mul_expected.h"
static int8_t ret0[3][2][256] = { 0 };
diff --git a/samples/branch_mul/branch_mul.run b/samples/branch_mul/branch_mul.run
index 198809c..5f8c701 100644
--- a/samples/branch_mul/branch_mul.run
+++ b/samples/branch_mul/branch_mul.run
@@ -1,3 +1 @@
-// TODO(b/294402411): Fix the test
-// XFAIL: *
// RUN: ${TEST_RUNNER_CMD} %S/branch_mul_emitc_static
diff --git a/samples/branch_mul/branch_mul_arg0.h b/samples/branch_mul/branch_mul_arg0.h
index 59aeca6..6e9bdeb 100644
--- a/samples/branch_mul/branch_mul_arg0.h
+++ b/samples/branch_mul/branch_mul_arg0.h
@@ -1,5 +1,21 @@
-#ifndef DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG0_H_
-#define DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG0_H_
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG0_H_
+#define SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG0_H_
int32_t arg0[3][2][256] = {
{{49163, 39296, 47490, 46186, 48142, 35193, 34298, 38115, 40865, 31744,
@@ -159,4 +175,4 @@
53209, 42418, 29080, 30075, 32590, 37886, 45749, 35820, 33766, 41844,
47480, 22113, 40931, 31528, 28850, 52826}}};
-#endif // DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG0_H_
+#endif // SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG0_H_
diff --git a/samples/branch_mul/branch_mul_arg1.h b/samples/branch_mul/branch_mul_arg1.h
index 05ec099..8a45d8a 100644
--- a/samples/branch_mul/branch_mul_arg1.h
+++ b/samples/branch_mul/branch_mul_arg1.h
@@ -1,5 +1,21 @@
-#ifndef DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG1_H_
-#define DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG1_H_
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG1_H_
+#define SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG1_H_
int32_t arg1[256] = {
-386, -307, -400, -368, -387, -361, -274, -309, -467, -312, -318, -301,
@@ -25,4 +41,4 @@
-416, -359, -288, -250, -273, -323, -384, -284, -372, -359, -384, -206,
-385, -284, -247, -503};
-#endif // DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG1_H_
+#endif // SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG1_H_
diff --git a/samples/branch_mul/branch_mul_arg2.h b/samples/branch_mul/branch_mul_arg2.h
index 19e34e8..795cd73 100644
--- a/samples/branch_mul/branch_mul_arg2.h
+++ b/samples/branch_mul/branch_mul_arg2.h
@@ -1,5 +1,21 @@
-#ifndef DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG2_H_
-#define DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG2_H_
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG2_H_
+#define SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG2_H_
int32_t arg2[3][2][256] = {
{{-1147, -1152, -1059, -1130, -1113, -887, -1130, -1109, -736, -910,
@@ -160,4 +176,4 @@
-1108, -1037, -935, -1009, -1066, -917}},
};
-#endif // DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_ARG2_H_
+#endif // SAMPLES_BRANCH_MUL_BRANCH_MUL_ARG2_H_
diff --git a/samples/branch_mul/branch_mul_c.h b/samples/branch_mul/branch_mul_c.h
new file mode 100644
index 0000000..0018fb9
--- /dev/null
+++ b/samples/branch_mul/branch_mul_c.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// === [llvm_module_linked_llvm_cpu] static library ===
+//
+// To use:
+// - Include this header and generated object into your program
+// - At runtime: retrieve library name from host binary
+// - Query library from llvm_module_linked_llvm_cpu_library_query()<<
+// - Feed library into static_library_loader
+//
+// === Automatically generated file. DO NOT EDIT! ===
+
+#ifndef SAMPLES_BRANCH_MUL_BRANCH_MUL_C_H_
+#define SAMPLES_BRANCH_MUL_BRANCH_MUL_C_H_
+
+#include "iree/hal/local/executable_library.h"
+
+#if __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+const iree_hal_executable_library_header_t**
+llvm_module_linked_llvm_cpu_library_query(
+ iree_hal_executable_library_version_t max_version,
+ const iree_hal_executable_environment_v0_t* environment);
+
+#if __cplusplus
+}
+#endif // __cplusplus
+
+#endif // SAMPLES_BRANCH_MUL_BRANCH_MUL_C_H_
diff --git a/samples/branch_mul/branch_mul_c.o b/samples/branch_mul/branch_mul_c.o
new file mode 100644
index 0000000..595940f
--- /dev/null
+++ b/samples/branch_mul/branch_mul_c.o
Binary files differ
diff --git a/samples/branch_mul/branch_mul_expected.h b/samples/branch_mul/branch_mul_expected.h
index c75b61a..4ef0a17 100644
--- a/samples/branch_mul/branch_mul_expected.h
+++ b/samples/branch_mul/branch_mul_expected.h
@@ -1,5 +1,21 @@
-#ifndef DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_EXPECTED_H_
-#define DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_EXPECTED_H_
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SAMPLES_BRANCH_MUL_BRANCH_MUL_EXPECTED_H_
+#define SAMPLES_BRANCH_MUL_BRANCH_MUL_EXPECTED_H_
const int8_t expected[3][2][256] = {
{{0x38, 0x38, 0x37, 0x37, 0x38, 0x32, 0x38, 0x39, 0x26, 0x3c, 0x38, 0x37,
@@ -135,4 +151,4 @@
0x38, 0x38, 0x41, 0x39, 0x39, 0x38, 0x36, 0x38, 0x23, 0x39, 0x38, 0x38,
0x36, 0x3a, 0x3a, 0x29}}};
-#endif // DAREDEVIL_BRANCH_MUL_DAREDEVIL_BRANCH_MUL_EXPECTED_H_
+#endif // SAMPLES_BRANCH_MUL_BRANCH_MUL_EXPECTED_H_