diff --git a/module.cpp b/module.cpp index d395a9e5..97f6b003 100644 --- a/module.cpp +++ b/module.cpp @@ -240,6 +240,13 @@ Module::Module(const char *fn) { module = new llvm::Module(filename ? filename : "", *g->ctx); module->setTargetTriple(g->target.GetTripleString()); + if (g->target.isa == Target::GENERIC) { + // <16 x i1> vectors only need 16 bit / 2 byte alignment + std::string datalayout = module->getDataLayout(); + datalayout += "v16:16:16"; + module->setDataLayout(datalayout); + } + if (g->generateDebuggingSymbols) { diBuilder = new llvm::DIBuilder(*module);