Rename gather/scatter_base_offsets functions to *factored_based_offsets*.
No functional change; just preparation for having a path that doesn't factor the offsets into constant and varying parts, which will be better for AVX2 and KNC.
This commit is contained in:
322
opt.cpp
322
opt.cpp
@@ -1689,57 +1689,57 @@ lGSToGSBaseOffsets(llvm::CallInst *callInst) {
|
||||
};
|
||||
|
||||
GSInfo gsFuncs[] = {
|
||||
GSInfo("__pseudo_gather32_i8", "__pseudo_gather_base_offsets32_i8",
|
||||
"__pseudo_gather_base_offsets32_i8", true),
|
||||
GSInfo("__pseudo_gather32_i16", "__pseudo_gather_base_offsets32_i16",
|
||||
"__pseudo_gather_base_offsets32_i16", true),
|
||||
GSInfo("__pseudo_gather32_i32", "__pseudo_gather_base_offsets32_i32",
|
||||
"__pseudo_gather_base_offsets32_i32", true),
|
||||
GSInfo("__pseudo_gather32_float", "__pseudo_gather_base_offsets32_float",
|
||||
"__pseudo_gather_base_offsets32_float", true),
|
||||
GSInfo("__pseudo_gather32_i64", "__pseudo_gather_base_offsets32_i64",
|
||||
"__pseudo_gather_base_offsets32_i64", true),
|
||||
GSInfo("__pseudo_gather32_double", "__pseudo_gather_base_offsets32_double",
|
||||
"__pseudo_gather_base_offsets32_double", true),
|
||||
GSInfo("__pseudo_gather32_i8", "__pseudo_gather_factored_base_offsets32_i8",
|
||||
"__pseudo_gather_factored_base_offsets32_i8", true),
|
||||
GSInfo("__pseudo_gather32_i16", "__pseudo_gather_factored_base_offsets32_i16",
|
||||
"__pseudo_gather_factored_base_offsets32_i16", true),
|
||||
GSInfo("__pseudo_gather32_i32", "__pseudo_gather_factored_base_offsets32_i32",
|
||||
"__pseudo_gather_factored_base_offsets32_i32", true),
|
||||
GSInfo("__pseudo_gather32_float", "__pseudo_gather_factored_base_offsets32_float",
|
||||
"__pseudo_gather_factored_base_offsets32_float", true),
|
||||
GSInfo("__pseudo_gather32_i64", "__pseudo_gather_factored_base_offsets32_i64",
|
||||
"__pseudo_gather_factored_base_offsets32_i64", true),
|
||||
GSInfo("__pseudo_gather32_double", "__pseudo_gather_factored_base_offsets32_double",
|
||||
"__pseudo_gather_factored_base_offsets32_double", true),
|
||||
|
||||
GSInfo("__pseudo_scatter32_i8", "__pseudo_scatter_base_offsets32_i8",
|
||||
"__pseudo_scatter_base_offsets32_i8", false),
|
||||
GSInfo("__pseudo_scatter32_i16", "__pseudo_scatter_base_offsets32_i16",
|
||||
"__pseudo_scatter_base_offsets32_i16", false),
|
||||
GSInfo("__pseudo_scatter32_i32", "__pseudo_scatter_base_offsets32_i32",
|
||||
"__pseudo_scatter_base_offsets32_i32", false),
|
||||
GSInfo("__pseudo_scatter32_float", "__pseudo_scatter_base_offsets32_float",
|
||||
"__pseudo_scatter_base_offsets32_float", false),
|
||||
GSInfo("__pseudo_scatter32_i64", "__pseudo_scatter_base_offsets32_i64",
|
||||
"__pseudo_scatter_base_offsets32_i64", false),
|
||||
GSInfo("__pseudo_scatter32_double", "__pseudo_scatter_base_offsets32_double",
|
||||
"__pseudo_scatter_base_offsets32_double", false),
|
||||
GSInfo("__pseudo_scatter32_i8", "__pseudo_scatter_factored_base_offsets32_i8",
|
||||
"__pseudo_scatter_factored_base_offsets32_i8", false),
|
||||
GSInfo("__pseudo_scatter32_i16", "__pseudo_scatter_factored_base_offsets32_i16",
|
||||
"__pseudo_scatter_factored_base_offsets32_i16", false),
|
||||
GSInfo("__pseudo_scatter32_i32", "__pseudo_scatter_factored_base_offsets32_i32",
|
||||
"__pseudo_scatter_factored_base_offsets32_i32", false),
|
||||
GSInfo("__pseudo_scatter32_float", "__pseudo_scatter_factored_base_offsets32_float",
|
||||
"__pseudo_scatter_factored_base_offsets32_float", false),
|
||||
GSInfo("__pseudo_scatter32_i64", "__pseudo_scatter_factored_base_offsets32_i64",
|
||||
"__pseudo_scatter_factored_base_offsets32_i64", false),
|
||||
GSInfo("__pseudo_scatter32_double", "__pseudo_scatter_factored_base_offsets32_double",
|
||||
"__pseudo_scatter_factored_base_offsets32_double", false),
|
||||
|
||||
GSInfo("__pseudo_gather64_i8", "__pseudo_gather_base_offsets64_i8",
|
||||
"__pseudo_gather_base_offsets32_i8", true),
|
||||
GSInfo("__pseudo_gather64_i16", "__pseudo_gather_base_offsets64_i16",
|
||||
"__pseudo_gather_base_offsets32_i16", true),
|
||||
GSInfo("__pseudo_gather64_i32", "__pseudo_gather_base_offsets64_i32",
|
||||
"__pseudo_gather_base_offsets32_i32", true),
|
||||
GSInfo("__pseudo_gather64_float", "__pseudo_gather_base_offsets64_float",
|
||||
"__pseudo_gather_base_offsets32_float", true),
|
||||
GSInfo("__pseudo_gather64_i64", "__pseudo_gather_base_offsets64_i64",
|
||||
"__pseudo_gather_base_offsets32_i64", true),
|
||||
GSInfo("__pseudo_gather64_double", "__pseudo_gather_base_offsets64_double",
|
||||
"__pseudo_gather_base_offsets32_double", true),
|
||||
GSInfo("__pseudo_gather64_i8", "__pseudo_gather_factored_base_offsets64_i8",
|
||||
"__pseudo_gather_factored_base_offsets32_i8", true),
|
||||
GSInfo("__pseudo_gather64_i16", "__pseudo_gather_factored_base_offsets64_i16",
|
||||
"__pseudo_gather_factored_base_offsets32_i16", true),
|
||||
GSInfo("__pseudo_gather64_i32", "__pseudo_gather_factored_base_offsets64_i32",
|
||||
"__pseudo_gather_factored_base_offsets32_i32", true),
|
||||
GSInfo("__pseudo_gather64_float", "__pseudo_gather_factored_base_offsets64_float",
|
||||
"__pseudo_gather_factored_base_offsets32_float", true),
|
||||
GSInfo("__pseudo_gather64_i64", "__pseudo_gather_factored_base_offsets64_i64",
|
||||
"__pseudo_gather_factored_base_offsets32_i64", true),
|
||||
GSInfo("__pseudo_gather64_double", "__pseudo_gather_factored_base_offsets64_double",
|
||||
"__pseudo_gather_factored_base_offsets32_double", true),
|
||||
|
||||
GSInfo("__pseudo_scatter64_i8", "__pseudo_scatter_base_offsets64_i8",
|
||||
"__pseudo_scatter_base_offsets32_i8", false),
|
||||
GSInfo("__pseudo_scatter64_i16", "__pseudo_scatter_base_offsets64_i16",
|
||||
"__pseudo_scatter_base_offsets32_i16", false),
|
||||
GSInfo("__pseudo_scatter64_i32", "__pseudo_scatter_base_offsets64_i32",
|
||||
"__pseudo_scatter_base_offsets32_i32", false),
|
||||
GSInfo("__pseudo_scatter64_float", "__pseudo_scatter_base_offsets64_float",
|
||||
"__pseudo_scatter_base_offsets32_float", false),
|
||||
GSInfo("__pseudo_scatter64_i64", "__pseudo_scatter_base_offsets64_i64",
|
||||
"__pseudo_scatter_base_offsets32_i64", false),
|
||||
GSInfo("__pseudo_scatter64_double", "__pseudo_scatter_base_offsets64_double",
|
||||
"__pseudo_scatter_base_offsets32_double", false),
|
||||
GSInfo("__pseudo_scatter64_i8", "__pseudo_scatter_factored_base_offsets64_i8",
|
||||
"__pseudo_scatter_factored_base_offsets32_i8", false),
|
||||
GSInfo("__pseudo_scatter64_i16", "__pseudo_scatter_factored_base_offsets64_i16",
|
||||
"__pseudo_scatter_factored_base_offsets32_i16", false),
|
||||
GSInfo("__pseudo_scatter64_i32", "__pseudo_scatter_factored_base_offsets64_i32",
|
||||
"__pseudo_scatter_factored_base_offsets32_i32", false),
|
||||
GSInfo("__pseudo_scatter64_float", "__pseudo_scatter_factored_base_offsets64_float",
|
||||
"__pseudo_scatter_factored_base_offsets32_float", false),
|
||||
GSInfo("__pseudo_scatter64_i64", "__pseudo_scatter_factored_base_offsets64_i64",
|
||||
"__pseudo_scatter_factored_base_offsets32_i64", false),
|
||||
GSInfo("__pseudo_scatter64_double", "__pseudo_scatter_factored_base_offsets64_double",
|
||||
"__pseudo_scatter_factored_base_offsets32_double", false),
|
||||
};
|
||||
|
||||
int numGSFuncs = sizeof(gsFuncs) / sizeof(gsFuncs[0]);
|
||||
@@ -1858,57 +1858,57 @@ lGSBaseOffsetsGetMoreConst(llvm::CallInst *callInst) {
|
||||
};
|
||||
|
||||
GSBOInfo gsFuncs[] = {
|
||||
GSBOInfo("__pseudo_gather_base_offsets32_i8",
|
||||
"__pseudo_gather_base_offsets32_i8", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets32_i16",
|
||||
"__pseudo_gather_base_offsets32_i16", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets32_i32",
|
||||
"__pseudo_gather_base_offsets32_i32", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets32_float",
|
||||
"__pseudo_gather_base_offsets32_float", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets32_i64",
|
||||
"__pseudo_gather_base_offsets32_i64", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets32_double",
|
||||
"__pseudo_gather_base_offsets32_double", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets32_i8",
|
||||
"__pseudo_gather_factored_base_offsets32_i8", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets32_i16",
|
||||
"__pseudo_gather_factored_base_offsets32_i16", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets32_i32",
|
||||
"__pseudo_gather_factored_base_offsets32_i32", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets32_float",
|
||||
"__pseudo_gather_factored_base_offsets32_float", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets32_i64",
|
||||
"__pseudo_gather_factored_base_offsets32_i64", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets32_double",
|
||||
"__pseudo_gather_factored_base_offsets32_double", true),
|
||||
|
||||
GSBOInfo( "__pseudo_scatter_base_offsets32_i8",
|
||||
"__pseudo_scatter_base_offsets32_i8", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets32_i16",
|
||||
"__pseudo_scatter_base_offsets32_i16", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets32_i32",
|
||||
"__pseudo_scatter_base_offsets32_i32", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets32_float",
|
||||
"__pseudo_scatter_base_offsets32_float", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets32_i64",
|
||||
"__pseudo_scatter_base_offsets32_i64", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets32_double",
|
||||
"__pseudo_scatter_base_offsets32_double", false),
|
||||
GSBOInfo( "__pseudo_scatter_factored_base_offsets32_i8",
|
||||
"__pseudo_scatter_factored_base_offsets32_i8", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets32_i16",
|
||||
"__pseudo_scatter_factored_base_offsets32_i16", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets32_i32",
|
||||
"__pseudo_scatter_factored_base_offsets32_i32", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets32_float",
|
||||
"__pseudo_scatter_factored_base_offsets32_float", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets32_i64",
|
||||
"__pseudo_scatter_factored_base_offsets32_i64", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets32_double",
|
||||
"__pseudo_scatter_factored_base_offsets32_double", false),
|
||||
|
||||
GSBOInfo( "__pseudo_gather_base_offsets64_i8",
|
||||
"__pseudo_gather_base_offsets32_i8", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets64_i16",
|
||||
"__pseudo_gather_base_offsets32_i16", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets64_i32",
|
||||
"__pseudo_gather_base_offsets32_i32", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets64_float",
|
||||
"__pseudo_gather_base_offsets32_float", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets64_i64",
|
||||
"__pseudo_gather_base_offsets32_i64", true),
|
||||
GSBOInfo("__pseudo_gather_base_offsets64_double",
|
||||
"__pseudo_gather_base_offsets32_double", true),
|
||||
GSBOInfo( "__pseudo_gather_factored_base_offsets64_i8",
|
||||
"__pseudo_gather_factored_base_offsets32_i8", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets64_i16",
|
||||
"__pseudo_gather_factored_base_offsets32_i16", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets64_i32",
|
||||
"__pseudo_gather_factored_base_offsets32_i32", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets64_float",
|
||||
"__pseudo_gather_factored_base_offsets32_float", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets64_i64",
|
||||
"__pseudo_gather_factored_base_offsets32_i64", true),
|
||||
GSBOInfo("__pseudo_gather_factored_base_offsets64_double",
|
||||
"__pseudo_gather_factored_base_offsets32_double", true),
|
||||
|
||||
GSBOInfo( "__pseudo_scatter_base_offsets64_i8",
|
||||
"__pseudo_scatter_base_offsets32_i8", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets64_i16",
|
||||
"__pseudo_scatter_base_offsets32_i16", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets64_i32",
|
||||
"__pseudo_scatter_base_offsets32_i32", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets64_float",
|
||||
"__pseudo_scatter_base_offsets32_float", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets64_i64",
|
||||
"__pseudo_scatter_base_offsets32_i64", false),
|
||||
GSBOInfo("__pseudo_scatter_base_offsets64_double",
|
||||
"__pseudo_scatter_base_offsets32_double", false),
|
||||
GSBOInfo( "__pseudo_scatter_factored_base_offsets64_i8",
|
||||
"__pseudo_scatter_factored_base_offsets32_i8", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets64_i16",
|
||||
"__pseudo_scatter_factored_base_offsets32_i16", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets64_i32",
|
||||
"__pseudo_scatter_factored_base_offsets32_i32", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets64_float",
|
||||
"__pseudo_scatter_factored_base_offsets32_float", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets64_i64",
|
||||
"__pseudo_scatter_factored_base_offsets32_i64", false),
|
||||
GSBOInfo("__pseudo_scatter_factored_base_offsets64_double",
|
||||
"__pseudo_scatter_factored_base_offsets32_double", false),
|
||||
};
|
||||
|
||||
int numGSFuncs = sizeof(gsFuncs) / sizeof(gsFuncs[0]);
|
||||
@@ -2025,29 +2025,29 @@ lGSToLoadStore(llvm::CallInst *callInst) {
|
||||
};
|
||||
|
||||
GatherImpInfo gInfo[] = {
|
||||
GatherImpInfo("__pseudo_gather_base_offsets32_i8", "__masked_load_i8",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets32_i8", "__masked_load_i8",
|
||||
LLVMTypes::Int8Type, 1),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets32_i16", "__masked_load_i16",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets32_i16", "__masked_load_i16",
|
||||
LLVMTypes::Int16Type, 2),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets32_i32", "__masked_load_i32",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets32_i32", "__masked_load_i32",
|
||||
LLVMTypes::Int32Type, 4),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets32_float", "__masked_load_float",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets32_float", "__masked_load_float",
|
||||
LLVMTypes::FloatType, 4),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets32_i64", "__masked_load_i64",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets32_i64", "__masked_load_i64",
|
||||
LLVMTypes::Int64Type, 8),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets32_double", "__masked_load_double",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets32_double", "__masked_load_double",
|
||||
LLVMTypes::DoubleType, 8),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets64_i8", "__masked_load_i8",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets64_i8", "__masked_load_i8",
|
||||
LLVMTypes::Int8Type, 1),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets64_i16", "__masked_load_i16",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets64_i16", "__masked_load_i16",
|
||||
LLVMTypes::Int16Type, 2),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets64_i32", "__masked_load_i32",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets64_i32", "__masked_load_i32",
|
||||
LLVMTypes::Int32Type, 4),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets64_float", "__masked_load_float",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets64_float", "__masked_load_float",
|
||||
LLVMTypes::FloatType, 4),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets64_i64", "__masked_load_i64",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets64_i64", "__masked_load_i64",
|
||||
LLVMTypes::Int64Type, 8),
|
||||
GatherImpInfo("__pseudo_gather_base_offsets64_double", "__masked_load_double",
|
||||
GatherImpInfo("__pseudo_gather_factored_base_offsets64_double", "__masked_load_double",
|
||||
LLVMTypes::DoubleType, 8)
|
||||
};
|
||||
|
||||
@@ -2067,29 +2067,29 @@ lGSToLoadStore(llvm::CallInst *callInst) {
|
||||
};
|
||||
|
||||
ScatterImpInfo sInfo[] = {
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets32_i8", "__pseudo_masked_store_i8",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets32_i8", "__pseudo_masked_store_i8",
|
||||
LLVMTypes::Int8VectorPointerType, 1),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets32_i16", "__pseudo_masked_store_i16",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets32_i16", "__pseudo_masked_store_i16",
|
||||
LLVMTypes::Int16VectorPointerType, 2),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets32_i32", "__pseudo_masked_store_i32",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets32_i32", "__pseudo_masked_store_i32",
|
||||
LLVMTypes::Int32VectorPointerType, 4),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets32_float", "__pseudo_masked_store_float",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets32_float", "__pseudo_masked_store_float",
|
||||
LLVMTypes::FloatVectorPointerType, 4),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets32_i64", "__pseudo_masked_store_i64",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets32_i64", "__pseudo_masked_store_i64",
|
||||
LLVMTypes::Int64VectorPointerType, 8),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets32_double", "__pseudo_masked_store_double",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets32_double", "__pseudo_masked_store_double",
|
||||
LLVMTypes::DoubleVectorPointerType, 8),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets64_i8", "__pseudo_masked_store_i8",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets64_i8", "__pseudo_masked_store_i8",
|
||||
LLVMTypes::Int8VectorPointerType, 1),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets64_i16", "__pseudo_masked_store_i16",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets64_i16", "__pseudo_masked_store_i16",
|
||||
LLVMTypes::Int16VectorPointerType, 2),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets64_i32", "__pseudo_masked_store_i32",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets64_i32", "__pseudo_masked_store_i32",
|
||||
LLVMTypes::Int32VectorPointerType, 4),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets64_float", "__pseudo_masked_store_float",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets64_float", "__pseudo_masked_store_float",
|
||||
LLVMTypes::FloatVectorPointerType, 4),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets64_i64", "__pseudo_masked_store_i64",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets64_i64", "__pseudo_masked_store_i64",
|
||||
LLVMTypes::Int64VectorPointerType, 8),
|
||||
ScatterImpInfo("__pseudo_scatter_base_offsets64_double", "__pseudo_masked_store_double",
|
||||
ScatterImpInfo("__pseudo_scatter_factored_base_offsets64_double", "__pseudo_masked_store_double",
|
||||
LLVMTypes::DoubleVectorPointerType, 8)
|
||||
};
|
||||
|
||||
@@ -3354,10 +3354,10 @@ GatherCoalescePass::runOnBasicBlock(llvm::BasicBlock &bb) {
|
||||
DEBUG_START_PASS("GatherCoalescePass");
|
||||
|
||||
llvm::Function *gatherFuncs[] = {
|
||||
m->module->getFunction("__pseudo_gather_base_offsets32_i32"),
|
||||
m->module->getFunction("__pseudo_gather_base_offsets32_float"),
|
||||
m->module->getFunction("__pseudo_gather_base_offsets64_i32"),
|
||||
m->module->getFunction("__pseudo_gather_base_offsets64_float"),
|
||||
m->module->getFunction("__pseudo_gather_factored_base_offsets32_i32"),
|
||||
m->module->getFunction("__pseudo_gather_factored_base_offsets32_float"),
|
||||
m->module->getFunction("__pseudo_gather_factored_base_offsets64_i32"),
|
||||
m->module->getFunction("__pseudo_gather_factored_base_offsets64_float"),
|
||||
};
|
||||
int nGatherFuncs = sizeof(gatherFuncs) / sizeof(gatherFuncs[0]);
|
||||
|
||||
@@ -3367,7 +3367,7 @@ GatherCoalescePass::runOnBasicBlock(llvm::BasicBlock &bb) {
|
||||
for (llvm::BasicBlock::iterator iter = bb.begin(), e = bb.end(); iter != e;
|
||||
++iter) {
|
||||
// Iterate over all of the instructions and look for calls to
|
||||
// __pseudo_gather_base_offsets{32,64}_{i32,float} calls.
|
||||
// __pseudo_gather_factored_base_offsets{32,64}_{i32,float} calls.
|
||||
llvm::CallInst *callInst = llvm::dyn_cast<llvm::CallInst>(&*iter);
|
||||
if (callInst == NULL)
|
||||
continue;
|
||||
@@ -3639,19 +3639,19 @@ lReplacePseudoGS(llvm::CallInst *callInst) {
|
||||
};
|
||||
|
||||
LowerGSInfo lgsInfo[] = {
|
||||
LowerGSInfo("__pseudo_gather_base_offsets32_i8", "__gather_base_offsets32_i8", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets32_i16", "__gather_base_offsets32_i16", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets32_i32", "__gather_base_offsets32_i32", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets32_float", "__gather_base_offsets32_float", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets32_i64", "__gather_base_offsets32_i64", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets32_double", "__gather_base_offsets32_double", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets32_i8", "__gather_factored_base_offsets32_i8", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets32_i16", "__gather_factored_base_offsets32_i16", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets32_i32", "__gather_factored_base_offsets32_i32", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets32_float", "__gather_factored_base_offsets32_float", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets32_i64", "__gather_factored_base_offsets32_i64", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets32_double", "__gather_factored_base_offsets32_double", true),
|
||||
|
||||
LowerGSInfo("__pseudo_gather_base_offsets64_i8", "__gather_base_offsets64_i8", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets64_i16", "__gather_base_offsets64_i16", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets64_i32", "__gather_base_offsets64_i32", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets64_float", "__gather_base_offsets64_float", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets64_i64", "__gather_base_offsets64_i64", true),
|
||||
LowerGSInfo("__pseudo_gather_base_offsets64_double", "__gather_base_offsets64_double", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets64_i8", "__gather_factored_base_offsets64_i8", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets64_i16", "__gather_factored_base_offsets64_i16", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets64_i32", "__gather_factored_base_offsets64_i32", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets64_float", "__gather_factored_base_offsets64_float", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets64_i64", "__gather_factored_base_offsets64_i64", true),
|
||||
LowerGSInfo("__pseudo_gather_factored_base_offsets64_double", "__gather_factored_base_offsets64_double", true),
|
||||
|
||||
LowerGSInfo("__pseudo_gather32_i8", "__gather32_i8", true),
|
||||
LowerGSInfo("__pseudo_gather32_i16", "__gather32_i16", true),
|
||||
@@ -3667,19 +3667,19 @@ lReplacePseudoGS(llvm::CallInst *callInst) {
|
||||
LowerGSInfo("__pseudo_gather64_i64", "__gather64_i64", true),
|
||||
LowerGSInfo("__pseudo_gather64_double", "__gather64_double", true),
|
||||
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets32_i8", "__scatter_base_offsets32_i8", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets32_i16", "__scatter_base_offsets32_i16", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets32_i32", "__scatter_base_offsets32_i32", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets32_float", "__scatter_base_offsets32_float", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets32_i64", "__scatter_base_offsets32_i64", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets32_double", "__scatter_base_offsets32_double", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets32_i8", "__scatter_factored_base_offsets32_i8", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets32_i16", "__scatter_factored_base_offsets32_i16", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets32_i32", "__scatter_factored_base_offsets32_i32", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets32_float", "__scatter_factored_base_offsets32_float", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets32_i64", "__scatter_factored_base_offsets32_i64", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets32_double", "__scatter_factored_base_offsets32_double", false),
|
||||
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets64_i8", "__scatter_base_offsets64_i8", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets64_i16", "__scatter_base_offsets64_i16", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets64_i32", "__scatter_base_offsets64_i32", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets64_float", "__scatter_base_offsets64_float", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets64_i64", "__scatter_base_offsets64_i64", false),
|
||||
LowerGSInfo("__pseudo_scatter_base_offsets64_double", "__scatter_base_offsets64_double", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets64_i8", "__scatter_factored_base_offsets64_i8", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets64_i16", "__scatter_factored_base_offsets64_i16", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets64_i32", "__scatter_factored_base_offsets64_i32", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets64_float", "__scatter_factored_base_offsets64_float", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets64_i64", "__scatter_factored_base_offsets64_i64", false),
|
||||
LowerGSInfo("__pseudo_scatter_factored_base_offsets64_double", "__scatter_factored_base_offsets64_double", false),
|
||||
|
||||
LowerGSInfo("__pseudo_scatter32_i8", "__scatter32_i8", false),
|
||||
LowerGSInfo("__pseudo_scatter32_i16", "__scatter32_i16", false),
|
||||
@@ -3899,12 +3899,12 @@ bool
|
||||
MakeInternalFuncsStaticPass::runOnModule(llvm::Module &module) {
|
||||
const char *names[] = {
|
||||
"__fast_masked_vload",
|
||||
"__gather_base_offsets32_i8", "__gather_base_offsets32_i16",
|
||||
"__gather_base_offsets32_i32", "__gather_base_offsets32_i64",
|
||||
"__gather_base_offsets32_float", "__gather_base_offsets32_double",
|
||||
"__gather_base_offsets64_i8", "__gather_base_offsets64_i16",
|
||||
"__gather_base_offsets64_i32", "__gather_base_offsets64_i64",
|
||||
"__gather_base_offsets64_float", "__gather_base_offsets64_double",
|
||||
"__gather_factored_base_offsets32_i8", "__gather_factored_base_offsets32_i16",
|
||||
"__gather_factored_base_offsets32_i32", "__gather_factored_base_offsets32_i64",
|
||||
"__gather_factored_base_offsets32_float", "__gather_factored_base_offsets32_double",
|
||||
"__gather_factored_base_offsets64_i8", "__gather_factored_base_offsets64_i16",
|
||||
"__gather_factored_base_offsets64_i32", "__gather_factored_base_offsets64_i64",
|
||||
"__gather_factored_base_offsets64_float", "__gather_factored_base_offsets64_double",
|
||||
"__gather32_i8", "__gather32_i16",
|
||||
"__gather32_i32", "__gather32_i64",
|
||||
"__gather32_float", "__gather32_double",
|
||||
@@ -3926,12 +3926,12 @@ MakeInternalFuncsStaticPass::runOnModule(llvm::Module &module) {
|
||||
"__masked_store_blend_i8", "__masked_store_blend_i16",
|
||||
"__masked_store_blend_i32", "__masked_store_blend_i64",
|
||||
"__masked_store_blend_float", "__masked_store_blend_double",
|
||||
"__scatter_base_offsets32_i8", "__scatter_base_offsets32_i16",
|
||||
"__scatter_base_offsets32_i32", "__scatter_base_offsets32_i64",
|
||||
"__scatter_base_offsets32_float", "__scatter_base_offsets32_double",
|
||||
"__scatter_base_offsets64_i8", "__scatter_base_offsets64_i16",
|
||||
"__scatter_base_offsets64_i32", "__scatter_base_offsets64_i64",
|
||||
"__scatter_base_offsets64_float", "__scatter_base_offsets64_double",
|
||||
"__scatter_factored_base_offsets32_i8", "__scatter_factored_base_offsets32_i16",
|
||||
"__scatter_factored_base_offsets32_i32", "__scatter_factored_base_offsets32_i64",
|
||||
"__scatter_factored_base_offsets32_float", "__scatter_factored_base_offsets32_double",
|
||||
"__scatter_factored_base_offsets64_i8", "__scatter_factored_base_offsets64_i16",
|
||||
"__scatter_factored_base_offsets64_i32", "__scatter_factored_base_offsets64_i64",
|
||||
"__scatter_factored_base_offsets64_float", "__scatter_factored_base_offsets64_double",
|
||||
"__scatter_elt32_i8", "__scatter_elt32_i16",
|
||||
"__scatter_elt32_i32", "__scatter_elt32_i64",
|
||||
"__scatter_elt32_float", "__scatter_elt32_double",
|
||||
|
||||
Reference in New Issue
Block a user