Reasoning to use sse4 bitcode file
This commit is contained in:
@@ -943,6 +943,15 @@ DefineStdlib(SymbolTable *symbolTable, llvm::LLVMContext *ctx, llvm::Module *mod
|
||||
switch (g->target->getVectorWidth()) {
|
||||
case 4:
|
||||
if (g->target->getDataTypeWidth() == 32) {
|
||||
// Note here that for avx1-i32x4 we are using bitcode file for
|
||||
// sse4-i32x4. This is intentional and good enough.
|
||||
// AVX target implies appropriate target-feature attrbute,
|
||||
// which forces LLVM to generate AVX code, even for SSE4
|
||||
// intrinsics. Except that the only "missing" feature in sse4
|
||||
// target is implemenation of __masked_[store|load]_[i32|i64]
|
||||
// using maskmov instruction. But it's not very popular
|
||||
// intrinsics, so we assume the implementation to be good
|
||||
// enough at the moment.
|
||||
if (runtime32) {
|
||||
EXPORT_MODULE(builtins_bitcode_sse4_32bit);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user