Enable bool input for CAST (#2401)

BUG=none
diff --git a/tensorflow/lite/micro/kernels/cast.cc b/tensorflow/lite/micro/kernels/cast.cc
index 032817a..0b450d6 100644
--- a/tensorflow/lite/micro/kernels/cast.cc
+++ b/tensorflow/lite/micro/kernels/cast.cc
@@ -101,6 +101,9 @@
     case kTfLiteFloat32:
       return copyToTensor(context, tflite::micro::GetTensorData<float>(input),
                           output, num_elements);
+    case kTfLiteBool:
+      return copyToTensor(context, tflite::micro::GetTensorData<bool>(input),
+                          output, num_elements);
     default:
       // Unsupported type.
       MicroPrintf("Input type %s (%d) not supported.",
diff --git a/tensorflow/lite/micro/kernels/cast_test.cc b/tensorflow/lite/micro/kernels/cast_test.cc
index fc09806..8625572 100644
--- a/tensorflow/lite/micro/kernels/cast_test.cc
+++ b/tensorflow/lite/micro/kernels/cast_test.cc
@@ -129,4 +129,12 @@
   tflite::testing::TestCast(input_dims, input_values, golden, output_data);
 }
 
+TF_LITE_MICRO_TEST(CastBoolToFloat) {
+  float output_data[6];
+  int input_dims[] = {2, 2, 3};
+  const bool input_values[] = {true, true, false, true, false, true};
+  const float golden[] = {1.f, 1.0f, 0.f, 1.0f, 0.0f, 1.0f};
+  tflite::testing::TestCast(input_dims, input_values, golden, output_data);
+}
+
 TF_LITE_MICRO_TESTS_END