diff --git a/1.3/HalPolicy.cpp b/1.3/HalPolicy.cpp
index 707ef72..1c4a1e3 100644
--- a/1.3/HalPolicy.cpp
+++ b/1.3/HalPolicy.cpp
@@ -51,6 +51,8 @@
             return ConvertComparison(operation, model, data, ComparisonOperation::Equal);
         case V1_3::OperationType::EXPAND_DIMS:
             return ConvertExpandDims(operation, model, data);
+        case V1_3::OperationType::FILL:
+            return ConvertFill(operation, model, data);
         case V1_3::OperationType::FLOOR:
             return ConvertFloor(operation, model, data);
         case V1_3::OperationType::FULLY_CONNECTED:
@@ -243,6 +245,12 @@
     return ::ConvertExpandDims<hal_1_3::HalPolicy>(operation, model, data);
 }
 
+bool HalPolicy::ConvertFill(const Operation& operation, const Model& model, ConversionData& data)
+{
+    ALOGV("hal_1_3::HalPolicy::ConvertFill()");
+    return ::ConvertFill<hal_1_3::HalPolicy>(operation, model, data);
+}
+
 bool HalPolicy::ConvertFloor(const Operation& operation, const Model& model, ConversionData& data)
 {
     ALOGV("hal_1_3::HalPolicy::ConvertFloor()");
diff --git a/1.3/HalPolicy.hpp b/1.3/HalPolicy.hpp
index 024d3ff..6df2ce2 100644
--- a/1.3/HalPolicy.hpp
+++ b/1.3/HalPolicy.hpp
@@ -73,6 +73,8 @@
 
     static bool ConvertExpandDims(const Operation& operation, const Model& model, ConversionData& data);
 
+    static bool ConvertFill(const Operation& operation, const Model& model, ConversionData& data);
+
     static bool ConvertFloor(const Operation& operation, const Model& model, ConversionData& data);
 
     static bool ConvertFullyConnected(const Operation& operation, const Model& model, ConversionData& data);
