diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp
index 557b78c..7d45688 100644
--- a/1.2/HalPolicy.cpp
+++ b/1.2/HalPolicy.cpp
@@ -86,7 +86,7 @@
         case V1_2::OperationType::MAXIMUM:
             return ConvertMaximum(operation, model, data);
         case V1_2::OperationType::MEAN:
-            return ConvertMean(operation, model, data);
+            return ConvertReduce(operation, model, data, ReduceOperation::Mean);
         case V1_2::OperationType::MINIMUM:
             return ConvertMinimum(operation, model, data);
         case V1_2::OperationType::MUL:
@@ -105,6 +105,12 @@
             return ConvertQuantize(operation, model, data);
         case V1_2::OperationType::QUANTIZED_16BIT_LSTM:
             return ConvertQuantized16BitLstm(operation, model, data);
+        case V1_2::OperationType::REDUCE_MAX:
+            return ConvertReduce(operation, model, data, ReduceOperation::Max);
+        case V1_2::OperationType::REDUCE_MIN:
+            return ConvertReduce(operation, model, data, ReduceOperation::Min);
+        case V1_2::OperationType::REDUCE_SUM:
+            return ConvertReduce(operation, model, data, ReduceOperation::Sum);
         case V1_2::OperationType::RELU:
             return ConvertReLu(operation, model, data);
         case V1_2::OperationType::RELU1:
@@ -306,10 +312,11 @@
     return ::ConvertMaximum<hal_1_2::HalPolicy>(operation, model, data);
 }
 
-bool HalPolicy::ConvertMean(const Operation& operation, const Model& model, ConversionData& data)
+bool HalPolicy::ConvertReduce(const Operation& operation, const Model& model, ConversionData& data,
+                              ReduceOperation reduceOperation)
 {
-    ALOGV("hal_1_2::HalPolicy::ConvertMean()");
-    return ::ConvertMean<hal_1_2::HalPolicy>(operation, model, data);
+    ALOGV("hal_1_2::HalPolicy::ConvertReduce()");
+    return ::ConvertReduce<hal_1_2::HalPolicy>(operation, model, data, reduceOperation);
 }
 
 bool HalPolicy::ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data)
