Add new compound modes using single reference

The hookup with the encoder-decoder pipeline will be in the following
CLs. This is under the experiment of compound-singleref, with ext-
inter enabled.

Change-Id: I6523a1a6525539eb7c6aa6c5e11724a694e8bf6c
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 8f7761e..86a068e 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -119,7 +119,11 @@
 static INLINE int is_inter_singleref_mode(PREDICTION_MODE mode) {
   return mode >= NEARESTMV && mode <= NEWMV;
 }
-
+#if CONFIG_COMPOUND_SINGLEREF
+static INLINE int is_inter_singleref_comp_mode(PREDICTION_MODE mode) {
+  return mode >= SR_NEAREST_NEARMV && mode <= SR_NEW_NEWMV;
+}
+#endif  // CONFIG_COMPOUND_SINGLEREF
 static INLINE int is_inter_compound_mode(PREDICTION_MODE mode) {
   return mode >= NEAREST_NEARESTMV && mode <= NEW_NEWMV;
 }
@@ -143,16 +147,23 @@
     MB_MODE_COUNT,  // NEARMV
     MB_MODE_COUNT,  // ZEROMV
     MB_MODE_COUNT,  // NEWMV
-    NEARESTMV,      // NEAREST_NEARESTMV
-    NEARESTMV,      // NEAREST_NEARMV
-    NEARMV,         // NEAR_NEARESTMV
-    NEARMV,         // NEAR_NEARMV
-    NEARESTMV,      // NEAREST_NEWMV
-    NEWMV,          // NEW_NEARESTMV
-    NEARMV,         // NEAR_NEWMV
-    NEWMV,          // NEW_NEARMV
-    ZEROMV,         // ZERO_ZEROMV
-    NEWMV,          // NEW_NEWMV
+#if CONFIG_COMPOUND_SINGLEREF
+    NEARESTMV,  // SR_NEAREST_NEARMV
+    NEARESTMV,  // SR_NEAREST_NEWMV
+    NEARMV,     // SR_NEAR_NEWMV
+    ZEROMV,     // SR_ZERO_NEWMV
+    NEWMV,      // SR_NEW_NEWMV
+#endif          // CONFIG_COMPOUND_SINGLEREF
+    NEARESTMV,  // NEAREST_NEARESTMV
+    NEARESTMV,  // NEAREST_NEARMV
+    NEARMV,     // NEAR_NEARESTMV
+    NEARMV,     // NEAR_NEARMV
+    NEARESTMV,  // NEAREST_NEWMV
+    NEWMV,      // NEW_NEARESTMV
+    NEARMV,     // NEAR_NEWMV
+    NEWMV,      // NEW_NEARMV
+    ZEROMV,     // ZERO_ZEROMV
+    NEWMV,      // NEW_NEWMV
   };
   assert(is_inter_compound_mode(mode));
   return lut[mode];
@@ -177,16 +188,23 @@
     MB_MODE_COUNT,  // NEARMV
     MB_MODE_COUNT,  // ZEROMV
     MB_MODE_COUNT,  // NEWMV
-    NEARESTMV,      // NEAREST_NEARESTMV
-    NEARMV,         // NEAREST_NEARMV
-    NEARESTMV,      // NEAR_NEARESTMV
-    NEARMV,         // NEAR_NEARMV
-    NEWMV,          // NEAREST_NEWMV
-    NEARESTMV,      // NEW_NEARESTMV
-    NEWMV,          // NEAR_NEWMV
-    NEARMV,         // NEW_NEARMV
-    ZEROMV,         // ZERO_ZEROMV
-    NEWMV,          // NEW_NEWMV
+#if CONFIG_COMPOUND_SINGLEREF
+    NEARMV,     // SR_NEAREST_NEARMV
+    NEWMV,      // SR_NEAREST_NEWMV
+    NEWMV,      // SR_NEAR_NEWMV
+    NEWMV,      // SR_ZERO_NEWMV
+    NEWMV,      // SR_NEW_NEWMV
+#endif          // CONFIG_COMPOUND_SINGLEREF
+    NEARESTMV,  // NEAREST_NEARESTMV
+    NEARMV,     // NEAREST_NEARMV
+    NEARESTMV,  // NEAR_NEARESTMV
+    NEARMV,     // NEAR_NEARMV
+    NEWMV,      // NEAREST_NEWMV
+    NEARESTMV,  // NEW_NEARESTMV
+    NEWMV,      // NEAR_NEWMV
+    NEARMV,     // NEW_NEARMV
+    ZEROMV,     // ZERO_ZEROMV
+    NEWMV,      // NEW_NEWMV
   };
   assert(is_inter_compound_mode(mode));
   return lut[mode];