--- /dev/null
+# Tests for efficient reduction
+
+reduce {
+ 0xc000 0x16cb3 0xacb3;
+ 0x8000 0x345545 0x5545;
+
+ 0xfffef 0x100000 0x11;
+
+ 0x1ffffffe 0x26fc6567 0x6fc6569;
+ 0x3ffffffe 0x45445dc0 0x5445dc2;
+ 0x7ffffffe 0xd4827a70 0x54827a72;
+
+ 0x72e2c37447f8bca34c4a39b130ea8e5c9a7d8b54564aa88ea773
+ 0x367aa8f5ba9ac4e8e2ea198b8af2c3b3081deab392ffc05715783b245a62a6fa
+ 0x08e8c03ebf398c63d71d8fd7ca4ece12367a8dde180ca650afb6;
+
+ 0xfffffffdffffffffffffffffffffffff
+ 0x7fb838a8a0a95046b9d9d9fb4440f7bbc1a7bd3b
+ 0xa019c198b9d9d9fb4440f7bc415ff5e4;
+}
+
+modexp {
+ 0xfffffffdffffffffffffffffffffffff 0xfffffffdfffffffffffffffffffffffe 0 1;
+ 0xfffffffdffffffffffffffffffffffff 2
+ 0xfffffffdfffffffffffffffffffffffe 1;
+ 0xfffffffdffffffffffffffffffffffff 2
+ 0xfffffffdfffffffffffffffffffffffd
+ 0x7fffffff000000000000000000000000;
+ 8939489893434234331 1804289383
+ -8939035539979879765 6139425926295484741;
+}