Sigmoid evaluation stubs, micro-kernels, and operator

Only ARM64 architecture is supported

PiperOrigin-RevId: 280671182
diff --git a/BUILD.bazel b/BUILD.bazel
index cd2512d..e3545df 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -376,10 +376,13 @@
     "src/f32-hswish/neonfma.c",
     "src/f32-ppmm/4x8-neonfma.c",
     "src/f32-ppmm/8x8-neonfma.c",
+    "src/f32-sigmoid/neonfma-p5-x16.c",
     "src/f32-vmulcaddc/c4-neonfma-2x.c",
     "src/f32-vmulcaddc/c8-neonfma-2x.c",
     "src/math/exp-neonfma-lut64-p2.c",
     "src/math/exp-neonfma-p5.c",
+    "src/math/expminus-neonfma-p5.c",
+    "src/math/sigmoid-neonfma-p5.c",
 ]
 
 AARCH64_NEONFMA_UKERNELS = [
@@ -641,6 +644,7 @@
     "src/xnnpack/vscale.h",
     "src/xnnpack/vscaleexpminusmax.h",
     "src/xnnpack/vscaleextexp.h",
+    "src/xnnpack/vunop.h",
     "src/xnnpack/zip.h",
 ]
 
@@ -1272,6 +1276,15 @@
     deps = ACCURACY_EVAL_DEPS,
 )
 
+xnnpack_benchmark(
+    name = "f32_sigmoid_eval",
+    srcs = [
+        "eval/f32-sigmoid.cc",
+        "src/xnnpack/AlignedAllocator.h",
+    ] + ACCURACY_EVAL_HDRS,
+    deps = ACCURACY_EVAL_DEPS,
+)
+
 ######################### Unit tests for micro-kernels #########################
 
 xnnpack_unit_test(
@@ -1498,6 +1511,15 @@
 )
 
 xnnpack_unit_test(
+    name = "f32_sigmoid_test",
+    srcs = [
+        "test/f32-sigmoid.cc",
+        "test/vunop-microkernel-tester.h",
+    ] + MICROKERNEL_TEST_HDRS,
+    deps = MICROKERNEL_TEST_DEPS,
+)
+
+xnnpack_unit_test(
     name = "f32_spmm_test",
     srcs = [
         "test/f32-spmm.cc",