Micro-optimizations.
* List/Tuple checkexact is faster for the common case.
* Testing for Py_True and Py_False can be inlined for faster looping.
diff --git a/Python/ceval.c b/Python/ceval.c
index 9a5d039..5286d25 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1655,7 +1655,7 @@
 
 		case UNPACK_SEQUENCE:
 			v = POP();
-			if (PyTuple_Check(v)) {
+			if (PyTuple_CheckExact(v)) {
 				if (PyTuple_Size(v) != oparg) {
 					PyErr_SetString(PyExc_ValueError,
 						 "unpack tuple of wrong size");
@@ -1669,7 +1669,7 @@
 					}
 				}
 			}
-			else if (PyList_Check(v)) {
+			else if (PyList_CheckExact(v)) {
 				if (PyList_Size(v) != oparg) {
 					PyErr_SetString(PyExc_ValueError,
 						  "unpack list of wrong size");
@@ -1975,7 +1975,14 @@
 			continue;
 
 		case JUMP_IF_FALSE:
-			err = PyObject_IsTrue(TOP());
+			w = TOP();
+			if (w == Py_True)
+				continue;
+			if (w == Py_False) {
+				JUMPBY(oparg);
+				continue;
+			}
+			err = PyObject_IsTrue(w);
 			if (err > 0)
 				err = 0;
 			else if (err == 0)
@@ -1985,7 +1992,14 @@
 			continue;
 
 		case JUMP_IF_TRUE:
-			err = PyObject_IsTrue(TOP());
+			w = TOP();
+			if (w == Py_False)
+				continue;
+			if (w == Py_True) {
+				JUMPBY(oparg);
+				continue;
+			}
+			err = PyObject_IsTrue(w);
 			if (err > 0) {
 				err = 0;
 				JUMPBY(oparg);