Update IREE_DATA_ALIGNAS_PTR to be 512b aligned It's the minimum alignment on avx512. For 32-bit targets, this could add 56 bytes of padding in the bytecode, which we can try to reduce later. The extra padding can resolve the misalignment issue in 32-bit targets.
diff --git a/build_tools/embed_data/generate_embed_data_main.cc b/build_tools/embed_data/generate_embed_data_main.cc index 7d160ec..55a064e 100644 --- a/build_tools/embed_data/generate_embed_data_main.cc +++ b/build_tools/embed_data/generate_embed_data_main.cc
@@ -136,14 +136,14 @@ f << "#include <stdint.h>\n"; f << R"( #if !defined(IREE_DATA_ALIGNAS_PTR) +// Default set to 512b alignment. #if defined(_MSC_VER) -#define IREE_DATA_ALIGNAS_PTR __declspec(align(8)) +#define IREE_DATA_ALIGNAS_PTR __declspec(align(64)) #else -#include <stdalign.h> -#define IREE_DATA_ALIGNAS_PTR alignas(alignof(void*)) +#define IREE_DATA_ALIGNAS_PTR _Alignas(64) #endif // _MSC_VER #endif // !IREE_DATA_ALIGNAS_PTR - )"; +)"; GenerateTocStruct(f); for (size_t i = 0, e = input_files.size(); i < e; ++i) { f << "IREE_DATA_ALIGNAS_PTR static uint8_t const file_" << i << "[] = {\n";