Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / mini / basic-long.cs
index 45c67fe2c3a49188bf9b38ccfa2b12d9f8f65d86..82eb5befe7dd3b2b3a6b1153bf7cc70d65beee1f 100644 (file)
@@ -23,11 +23,18 @@ using System.Reflection;
  * the IL code looks.
  */
 
-class Tests {
-
+#if __MOBILE__
+class LongTests
+#else
+class Tests
+#endif
+{
+
+#if !__MOBILE__
        public static int Main (string[] args) {
                return TestDriver.RunTests (typeof (Tests), args);
        }
+#endif
 
        public static int test_10_simple_cast () {
                long a = 10;
@@ -1196,5 +1203,65 @@ class Tests {
                ulong c = ((ulong) (-(-a))) >> 32;
                return c == 1 ? 0 : 1;
        }
+
+       public static int test_6_lrem_un () {
+               ulong r2 = 4294967296;
+               uint d = 10;
+               ulong res = r2 % d;
+
+               return (int)res;
+       }
+
+       public static int test_0_lrem_imm_1 () {
+               long b = 12L;
+               return (int)(b % 1L);
+       }
+
+       public static int test_0_lrem_imm_1_neg () {
+               long b = -2L;
+               return (int)(b % 1L);
+       }
+
+       public static int test_0_lrem_imm_2 ()
+       {
+               long x = 245345634L;
+               return (int)(x % 2L);
+       }
+
+       public static int test_1_lrem_imm_2 ()
+       {
+               long x = 24534553245L;
+               return (int)(x % 2L);
+       }
+
+       public static int test_1_lrem_imm_2_neg ()
+       {
+               long x = -24534553245L;
+               return -(int)(x % 2L);
+       }
+
+       public static int test_13_lrem_imm_32 ()
+       {
+               long x = 17389L;
+               return (int)(x % 32L);
+       }
+
+       public static int test_27_lrem_imm_32_neg ()
+       {
+               long x = -2435323L;
+               return -(int)(x % 32L);
+       }
+
+       public static int test_5_lrem_imm_large ()
+       {
+               long x = 0x1000000005L;
+               return (int)(x % 0x40000000L);
+       }
+
+       public static int test_5_lrem_imm_too_large ()
+       {
+               long x = 0x1000000005L;
+               return (int)(x % 0x80000000L);
+       }
 }