]> granicus.if.org Git - clang/commitdiff
Initial vectorization support for svml calls (short vector math library).
authorMatt Masten <matt.masten@intel.com>
Fri, 29 Jul 2016 16:44:24 +0000 (16:44 +0000)
committerMatt Masten <matt.masten@intel.com>
Fri, 29 Jul 2016 16:44:24 +0000 (16:44 +0000)
Differential Revision: https://reviews.llvm.org/D19544

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@277167 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/CodeGenOptions.def
include/clang/Frontend/CodeGenOptions.h
lib/CodeGen/BackendUtil.cpp
lib/Frontend/CompilerInvocation.cpp

index bc2bde836dfd2ff2b0b351324e927276d8135303..5895bebc9c532664488cec0906079b94a712211e 100644 (file)
@@ -228,7 +228,7 @@ CODEGENOPT(EmitCodeView, 1, 0)
 ENUM_CODEGENOPT(Inlining, InliningMethod, 2, NoInlining)
 
 // Vector functions library to use.
-ENUM_CODEGENOPT(VecLib, VectorLibrary, 1, NoLibrary)
+ENUM_CODEGENOPT(VecLib, VectorLibrary, 2, NoLibrary)
 
 /// The default TLS model to use.
 ENUM_CODEGENOPT(DefaultTLSModel, TLSModel, 2, GeneralDynamicTLSModel)
index f2849376d15018cda03accbeab7f11cf829b5e55..0bdc1ef9bd109e0eaaca5f8b371a0a9c99eadc2a 100644 (file)
@@ -51,8 +51,9 @@ public:
   };
 
   enum VectorLibrary {
-    NoLibrary, // Don't use any vector library.
-    Accelerate // Use the Accelerate framework.
+    NoLibrary,  // Don't use any vector library.
+    Accelerate, // Use the Accelerate framework.
+    SVML        // Intel short vector math library.
   };
 
 
index e5d49303fbdf461476583aa445ed7e09ed329c8c..ca7aec0ba81a001b73be4bb87c80399e0cb77317 100644 (file)
@@ -263,6 +263,9 @@ static TargetLibraryInfoImpl *createTLII(llvm::Triple &TargetTriple,
   case CodeGenOptions::Accelerate:
     TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::Accelerate);
     break;
+  case CodeGenOptions::SVML:
+    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SVML);
+    break;
   default:
     break;
   }
index 386e5773f903a38871aa7173a7d0c7b50f9f05e0..54ec1a5a38bbb3868839a3b7d0cdc0bb522e273f 100644 (file)
@@ -459,6 +459,8 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
     StringRef Name = A->getValue();
     if (Name == "Accelerate")
       Opts.setVecLib(CodeGenOptions::Accelerate);
+    else if (Name == "SVML")
+      Opts.setVecLib(CodeGenOptions::SVML);
     else if (Name == "none")
       Opts.setVecLib(CodeGenOptions::NoLibrary);
     else