AVX fixes: add missing 8/16-bit gathers and scatters, set features string appropriately when AVX is enabled.

This commit is contained in:
Matt Pharr
2011-07-22 12:36:44 +01:00
parent 165f90357f
commit da0fd93315
2 changed files with 12 additions and 6 deletions

View File

@@ -949,10 +949,12 @@ Module::writeObjectFileOrAssembly(OutputType outputType, const char *outFileName
}
std::string featuresString;
llvm::TargetMachine *targetMachine = NULL;
#if defined LLVM_3_0svn || defined LLVM_3_0
llvm::TargetMachine *targetMachine =
target->createTargetMachine(triple.getTriple(), g->target.cpu,
featuresString);
if (g->target.isa == Target::AVX)
featuresString = "+avx";
targetMachine = target->createTargetMachine(triple.getTriple(), g->target.cpu,
featuresString);
#else
if (g->target.cpu.size()) {
llvm::SubtargetFeatures features;
@@ -960,8 +962,8 @@ Module::writeObjectFileOrAssembly(OutputType outputType, const char *outFileName
featuresString = features.getString();
}
llvm::TargetMachine *targetMachine =
target->createTargetMachine(triple.getTriple(), featuresString);
targetMachine = target->createTargetMachine(triple.getTriple(),
featuresString);
#endif
if (targetMachine == NULL) {
fprintf(stderr, "Unable to create target machine for target \"%s\"!",