[VectorUtils] Use namespace for InterleaveGroup template specialization.
llvm-svn: 346759
diff --git a/llvm/lib/Analysis/VectorUtils.cpp b/llvm/lib/Analysis/VectorUtils.cpp
index 9c3bf7d..9ebb016 100644
--- a/llvm/lib/Analysis/VectorUtils.cpp
+++ b/llvm/lib/Analysis/VectorUtils.cpp
@@ -966,6 +966,12 @@
RequiresScalarEpilogue = false;
}
+template <typename InstT>
+void InterleaveGroup<InstT>::addMetadata(InstT *NewInst) const {
+ llvm_unreachable("addMetadata can only be used for Instruction");
+}
+
+namespace llvm {
template <>
void InterleaveGroup<Instruction>::addMetadata(Instruction *NewInst) const {
SmallVector<Value *, 4> VL;
@@ -973,8 +979,4 @@
[](std::pair<int, Instruction *> p) { return p.second; });
propagateMetadata(NewInst, VL);
}
-
-template <typename InstT>
-void InterleaveGroup<InstT>::addMetadata(InstT *NewInst) const {
- llvm_unreachable("addMetadata can only be used for Instruction");
}