Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / mkl-dnn / src / cpu / ref_concat.hpp
index 923bb61..5d346df 100644 (file)
@@ -77,7 +77,7 @@ struct ref_concat_t: public cpu_primitive_t {
             }
             return ret;
         }
-        virtual pd_t *clone() const override { return nullptr; }
+        virtual pd_t *clone() const override { return  new pd_t(*this); }
         virtual const char *name() const override { return "ref:any"; }
 
         virtual status_t init() override {
@@ -99,15 +99,15 @@ struct ref_concat_t: public cpu_primitive_t {
                     }
                 }
             }
-            return success;
+            return (size_t)n_ == reorder_pds_.size() ? success : unimplemented;
         }
 
         nstl::vector<const reorder_pd_t *> reorder_pds_;
     };
 
-    ref_concat_t(const pd_t *conf, const input_vector &inputs,
+    ref_concat_t(const pd_t *apd, const input_vector &inputs,
             const output_vector &outputs, nstl::vector<primitive_t *> reorders)
-        : cpu_primitive_t(&conf_, inputs, outputs), conf_(*conf),
+        : cpu_primitive_t(apd, inputs, outputs),
         reorders_(reorders) {}
 
     ~ref_concat_t() {
@@ -116,7 +116,7 @@ struct ref_concat_t: public cpu_primitive_t {
             delete reorders_[i];
     }
 
-    virtual void execute(event_t *e) {
+    virtual void execute(event_t *e) const {
         for (size_t i = 0; i < reorders_.size(); ++i) {
             event_t ei;
             reorders_[i]->execute(&ei);
@@ -125,7 +125,7 @@ struct ref_concat_t: public cpu_primitive_t {
     }
 
 private:
-    pd_t conf_;
+    const pd_t *pd() const { return (const pd_t *)primitive_t::pd(); }
     nstl::vector<primitive_t *> reorders_;
 };