diff --git a/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp b/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp --- a/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp +++ b/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp @@ -77,11 +77,14 @@ if (CI.isNoBuiltin() || !CI.getCalledFunction()) return; - const std::string ScalarName = std::string(CI.getCalledFunction()->getName()); + auto NameRef = CI.getCalledFunction()->getName(); + // Nothing to be done if the TLI thinks the function is not // vectorizable. - if (!TLI.isFunctionVectorizable(ScalarName)) + if (!TLI.isFunctionVectorizable(NameRef)) return; + + const std::string ScalarName = std::string(NameRef); SmallVector Mappings; VFABI::getVectorVariantNames(CI, Mappings); Module *M = CI.getModule();