Add reverse iterators to SkSpan

Change-Id: Ie4002a97fca860f0096ad9114f707ba8476aabb4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/267936
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
diff --git a/src/core/SkSpan.h b/src/core/SkSpan.h
index fa2dd99..3baaab5 100644
--- a/src/core/SkSpan.h
+++ b/src/core/SkSpan.h
@@ -31,6 +31,10 @@
     constexpr T* end() const { return fPtr + fSize; }
     constexpr const T* cbegin() const { return fPtr; }
     constexpr const T* cend() const { return fPtr + fSize; }
+    constexpr auto rbegin() const { return std::make_reverse_iterator(this->end()); }
+    constexpr auto rend() const { return std::make_reverse_iterator(this->begin()); }
+    constexpr auto crbegin() const { return std::make_reverse_iterator(this->cend()); }
+    constexpr auto crend() const { return std::make_reverse_iterator(this->cbegin()); }
     constexpr T* data() const { return fPtr; }
     constexpr size_t size() const { return fSize; }
     constexpr bool empty() const { return fSize == 0; }