2 .custom instance void class [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::'.ctor'() = (
3 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
4 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
6 .assembly extern TestDriver {}
7 .assembly extern mscorlib {}
9 .class private sequential ansi sealed beforefieldinit FLSharedKeys
10 extends [mscorlib]System.ValueType
16 .class public auto ansi sealed beforefieldinit Tests {
18 .method static public int32 Main(string[] args) il managed {
22 call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
24 call int32 [TestDriver]TestDriver::RunTests(class [mscorlib]System.Type, string[])
28 .method hidebysig static int32 comp_ptr_i8(void* arg, int64 v) cil managed
38 .method hidebysig static int64 add_ptr_i4(void* arg) cil managed
48 .method hidebysig static int64 add_ptr_i8(void* arg, int64 v) cil managed
58 .method hidebysig static int64 and_ptr_i8(void* arg, int64 v) cil managed
68 .method hidebysig static int32 i8_ptr_arithm_x64() cil managed
73 ldc.i8 0x1111222233334444
74 call int64 class Tests::add_ptr_i4(void*)
75 ldc.i8 0x1111222233334446
80 ldc.i8 0x1111222233334444
82 call int64 class Tests::add_ptr_i8(void*,int64)
83 ldc.i8 0x1111222233334446
88 ldc.i8 0x1111222233334444
90 call int64 class Tests::add_ptr_i8(void*,int64)
91 ldc.i8 0x1111222233334446
96 ldc.i8 0x1111222233334444
97 ldc.i8 0x0000FFFF00000000
98 call int64 class Tests::and_ptr_i8(void*,int64)
99 ldc.i8 0x0000222200000000
104 ldc.i8 0x1111222233334444
106 call int64 class Tests::and_ptr_i8(void*,int64)
107 ldc.i8 0x1111222233330000
112 ldc.i8 0x1111222233334444
115 ldc.i8 0x1111222233330000
120 ldc.i8 0x1111222233334444
121 ldc.i8 0x1111222233334444
122 call int32 class Tests::comp_ptr_i8(void*,int64)
128 ldc.i8 0x1111222233334444
131 ldc.i8 0x1111222233335555
140 .method static public int32 test_0_i8_ptr_arithm() cil managed {
143 sizeof [mscorlib]System.IntPtr
146 call int32 class Tests::i8_ptr_arithm_x64()
154 // make sure the register allocator works when the return value of
155 // 'div' is discarded
156 .method static public int32 test_0_div_regalloc () il managed {
170 .method static public int32 test_1_ceq_to_i4 () il managed {
184 .method static public int32 test_3_shl_regvars () il managed {
231 .method static public int32 test_1_fceq_to_i4 () il managed {
251 // This should be manually checked. Basically under -O=linears,
252 // you should not see tons of register spilling.
254 .method static public int32 test_1_bytedreg_free () il managed {
290 // This should be manually checked. Basically under -O=linears,
291 // you should not see tons of register spilling.
293 .method static public int32 test_0_bytesreg1_free () il managed {
332 .method static public int32 test_1_shift_regvar () il managed {
353 // this only happens with the managed pointer, not an unmanaged one.
354 .method static public int32 test_0_foo () il managed {
371 .method static public int32 test_0_localloc () cil managed {
372 .locals init (native int, native int, native int, native int, int32)
397 // Check zero initialized
446 // Try allocations bigger than one page
472 .method private static void do_localloc () cil managed {
477 IL_0001: ldc.i4 131072
484 // Check that localloc cannot be inlined
485 .method static public int32 test_0_localloc_inline () cil managed {
495 START: call void class Tests::do_localloc()
508 .method static public int32 test_3_copy_used_bug () il managed {
534 // demonstrate that the copy_used_var is not a fix for the above bug
535 .method static public int32 test_3_copy_used_indir_bug () il managed {
562 .method static public void do_nothing (int32 a) il managed {
566 // demonstrate the block_split failure: needs -O=inline
567 // mini -O=inline --compile Tests:test_0_split_block_bug iltests.exe
568 .method static public int32 test_0_split_block_bug () il managed {
578 call void class Tests::do_nothing (int32)
586 .method public void inline_do_nothing () il managed {
589 .method static public int32 test_1_checkthis_inlining () il managed {
591 call instance void class Tests::inline_do_nothing ()
596 .class nested private auto ansi sealed beforefieldinit TailCallStruct
597 extends [mscorlib]System.ValueType {
598 .field public int32 a
599 .field public int32 b
602 .method static valuetype Tests/TailCallStruct tail1 (valuetype Tests/TailCallStruct arg) {
605 ldfld int32 Tests/TailCallStruct::a
608 stfld int32 Tests/TailCallStruct::a
611 ldfld int32 Tests/TailCallStruct::a
614 stfld int32 Tests/TailCallStruct::a
619 .method static valuetype Tests/TailCallStruct tail2 (valuetype Tests/TailCallStruct arg) {
622 call valuetype Tests/TailCallStruct Tests::tail1 (valuetype Tests/TailCallStruct)
626 .class nested private auto ansi sealed beforefieldinit TailCallStructBig
627 extends [mscorlib]System.ValueType {
628 .field public int32 a
629 .field public int32 b
630 .field public int32 c
631 .field public int32 d
632 .field public int32 e
635 .method static valuetype Tests/TailCallStructBig tail_vret_by_addr_inner (valuetype Tests/TailCallStructBig arg) {
638 ldfld int32 Tests/TailCallStructBig::a
641 stfld int32 Tests/TailCallStructBig::a
646 .method static valuetype Tests/TailCallStructBig tail_vret_by_addr (valuetype Tests/TailCallStructBig arg) {
649 call valuetype Tests/TailCallStructBig Tests::tail_vret_by_addr_inner (valuetype Tests/TailCallStructBig)
653 .method static public int32 test_3_tail_call_vret_by_addr () il managed {
656 valuetype Tests/TailCallStructBig arg2
661 stfld int32 Tests/TailCallStructBig::a
663 call valuetype Tests/TailCallStructBig Tests::tail_vret_by_addr (valuetype Tests/TailCallStructBig)
667 ldfld int32 Tests/TailCallStructBig::a
671 .method static public int32 test_9_tail_call_vret_by_val () il managed {
674 valuetype Tests/TailCallStruct arg
678 stfld int32 Tests/TailCallStruct::a
681 stfld int32 Tests/TailCallStruct::b
683 call valuetype Tests/TailCallStruct Tests::tail2 (valuetype Tests/TailCallStruct)
687 ldfld int32 Tests/TailCallStruct::a
689 ldfld int32 Tests/TailCallStruct::b
694 .method static public int32 tail3 (int32 i, int32 j) il managed {
701 .method static public int32 tail4 (int32 i, int32 j) il managed {
706 // Test arg0 allocated to a register
716 // Test switched up argument variables as the actual arguments
720 call int32 Tests::tail3 (int32, int32)
724 .method static public int32 test_24_tail_calls2 () il managed {
725 // Some platforms might not be able to AOT tail calls
726 .custom instance void class [TestDriver]CategoryAttribute::'.ctor'(string) = (01 00 08 21 46 55 4C 4C 41 4F 54 00 00 ) // ...!FULLAOT..
740 call int32 Tests::tail4 (int32, int32)
744 .method public static int32 test_5_jmp () cil managed {
745 // Some platforms might not be able to AOT tail calls
746 .custom instance void class [TestDriver]CategoryAttribute::'.ctor'(string) = (01 00 08 21 46 55 4C 4C 41 4F 54 00 00 ) // ...!FULLAOT..
750 call int32 Tests::jmp2 (int32, int32)
754 .method public static int32 jmp2 (int32, int32) cil managed {
763 jmp int32 Tests::jmp3 (int32, int32)
768 .method public static int32 jmp3 (int32 i, int32 j) cil managed {
775 .method static public int32 test_11_switch_with_nonempty_stack () il managed {
790 .method public static int32 test_5_endfinally_with_nonempty_stack () il managed {
804 .method public static int32 test_5_endfinally_llvm_linking () il managed {
825 .method public static int32 test_0_conv_ovf_i8_neg () il managed {
840 .method public static int32 test_1234_conv_u4 () cil managed {
849 .method public static int32 test_0_conv_ovf_i_un () cil managed {
868 sizeof [mscorlib]System.IntPtr
875 } catch [mscorlib]System.OverflowException {
887 .method public static int32 test_0_conv_ovf_u_un () cil managed {
902 .method public static int32 test_0_conv_ovf_i () cil managed {
917 .method public static int32 test_0_conv_ovf_u () cil managed {
932 .method public static int32 test_1234_conv_ovf_i8_un () cil managed {
941 .method public static int32 test_0_lconv_ovf_i () cil managed {
957 .method public static int32 test_0_lconv_ovf_u () cil managed {
973 .method public static int32 test_0_lconv_ovf_i_un () cil managed {
989 .method public static int32 test_0_lconv_ovf_u_un () cil managed {
1005 .method public static int32 test_0_lconv_to_ovf_i8 () cil managed {
1021 .method public static int32 test_0_lconv_to_ovf_u8_un () cil managed {
1037 .method public static int32 test_2_lconv_to_ovf_i4_un () cil managed {
1039 .locals init (int32 res)
1056 } catch [mscorlib]System.OverflowException {
1064 ldc.i8 0xffffffff80000000
1070 } catch [mscorlib]System.OverflowException {
1080 .method public static int32 test_1_lconv_to_ovf_i_un () cil managed {
1082 .locals init (int32 res)
1094 .method public static int32 test_32_lconv_to_u8 () cil managed
1105 .method public static int32 test_32_lconv_to_i8 () cil managed
1116 .method public static int32 test_15_lconv_to_u () cil managed
1124 .method public static int32 test_1234_fconv_u () cil managed {
1133 .method public static int32 test_0_get_type_from_handle_on_bblock_boundary () cil managed
1140 ldtoken [mscorlib]System.String
1143 ldtoken [mscorlib]System.Object
1145 call class [mscorlib]'System.Type' class [mscorlib]'System.Type'::'GetTypeFromHandle'(valuetype [mscorlib]'System.RuntimeTypeHandle')
1146 callvirt instance string class [mscorlib]System.Type::get_FullName ()
1147 ldstr "System.String"
1148 callvirt instance bool class [mscorlib]System.Object::Equals(object)
1154 .method public static int32 test_0_bug59580 ()
1156 ldc.r4 float32(0x7FC00000)
1157 ldc.r4 float32(0x7FC00000)
1168 .method public static int32 test_1_bug60056 () {
1169 .locals init (int32 m5)
1187 .method public static int32 test_1_conv_u8_cfold () {
1191 ldc.i8 0x00000000ffffffff
1197 .method public static int32 test_1_array_type_mismatch_ldelema () {
1198 .locals init (int32 r)
1214 } catch [mscorlib]System.ArrayTypeMismatchException {
1225 .method public static int32 test_1_conv_ovf_i8_with_i4 () {
1234 .method public static int32 test_0_initlocals_float_ptr () {
1238 float32& pinned V_1,
1241 newarr [mscorlib]System.Single
1249 ldelema [mscorlib]System.Single
1259 .method public static int32 test_7_conv_ovf_u8_un () {
1261 .locals init (unsigned int64)
1271 .method public static int32 test_7_conv_ovf_u4_un () {
1273 .locals init (unsigned int32)
1283 .method public static int32 test_1_bug_74591 () {
1285 .locals init (int32)
1298 .class nested public auto ansi Integer
1299 extends [mscorlib]System.Object {
1301 .field public bool n
1303 .method public hidebysig specialname rtspecialname
1304 instance default void .ctor (unsigned int64 i, bool n) cil managed
1308 call instance void class [mscorlib]System.Object::.ctor()
1311 stfld bool Tests/Integer::n
1316 .method public static int32 test_1_bug_74726 () {
1325 newobj instance void class Tests/Integer::.ctor(unsigned int64, bool)
1326 ldfld bool Tests/Integer::n
1332 .class nested private auto ansi sealed xxx
1333 extends [mscorlib]System.ValueType
1335 .field public object a
1337 .method public hidebysig specialname rtspecialname
1338 instance default void .ctor () cil managed
1343 } // end of class xxx
1345 .method public static int32 test_0_newobj_vtype () {
1348 valuetype Tests/xxx V_0
1351 newobj instance void valuetype Tests/xxx::.ctor ()
1354 ldfld object Tests/xxx::a
1363 .method public static int32 test_0_newobj_vtype_primitive () {
1370 newobj instance void native int::'.ctor'(int32)
1382 .method public static int32 test_1_filters () {
1383 .custom instance void [TestDriver]CategoryAttribute::.ctor(string) = ( 01 00 08 21 42 49 54 43 4F 44 45 00 00 ) // ...!BITCODE..
1391 ldstr "OnErrorSub test Exception"
1392 newobj instance void class [mscorlib]System.Exception::.ctor(string)
1402 // Should not be called
1424 .class nested private auto ansi sealed beforefieldinit TheStruct
1425 extends [mscorlib]System.ValueType {
1426 .field public int32 a
1427 .field public int32 b
1430 .method public static int32 test_5_cpobj () {
1433 valuetype Tests/TheStruct v_0,
1434 valuetype Tests/TheStruct v_1
1439 stfld int32 Tests/TheStruct::a
1443 stfld int32 Tests/TheStruct::b
1447 cpobj Tests/TheStruct
1450 ldfld int32 Tests/TheStruct::a
1452 ldfld int32 Tests/TheStruct::b
1458 .method public static int32 test_5_ldobj_stloc_optimization () {
1461 valuetype Tests/TheStruct v_0,
1462 valuetype Tests/TheStruct v_1
1467 stfld int32 Tests/TheStruct::a
1471 stfld int32 Tests/TheStruct::b
1474 ldobj valuetype Tests/TheStruct
1478 ldfld int32 Tests/TheStruct::a
1480 ldfld int32 Tests/TheStruct::b
1486 .method public static int32 test_1_cpobj_reference () {
1493 newobj instance void object::.ctor()
1506 .method public static int32 test_1_initobj_reference () {
1512 newobj instance void object::.ctor()
1524 .method public static int32 test_1_ldobj_reference () {
1530 newobj instance void object::.ctor()
1540 .method public static int32 test_5_vtype_on_bb_boundary () {
1543 valuetype Tests/TheStruct v_0,
1544 valuetype Tests/TheStruct v_1
1549 stfld int32 Tests/TheStruct::a
1553 stfld int32 Tests/TheStruct::b
1560 ldfld int32 Tests/TheStruct::a
1562 ldfld int32 Tests/TheStruct::b
1567 .method public static int32 test_5_different_in_stacks () cil managed {
1591 .method public static int32 test_3_larray_get_set () {
1596 newobj instance void int32[0...]::.ctor(int32)
1601 call instance void int32[0...]::Set(int32, int32)
1605 call instance void int32[0...]::Set(int32, int32)
1609 call instance int32 int32[0...]::Get(int32)
1612 call instance int32 int32[0...]::Get(int32)
1617 .method public static int32 test_0_pop_side_effects () {
1626 catch [mscorlib]System.ArithmeticException {
1638 .method public static void regalloc_regress_78314_helper (object o) cil managed
1643 .method public static int32 test_1_regalloc_regress_78314 () cil managed
1645 // Code size 68 (0x44)
1647 .locals init (int32 V_0, bool V_1)
1650 IL_0002: br.s IL_003b
1653 IL_001e: ldc.i4.s 10
1656 IL_0022: ldc.i4.s 10
1660 IL_0028: box [mscorlib]System.Boolean
1661 IL_0032: call void Tests::regalloc_regress_78314_helper(object)
1668 IL_003f: blt.s IL_0004
1677 .method public static void try_block_end_remove_if_useless () cil managed {
1695 .try T_START to T1_END finally handler F1_START to F1_END
1698 .method public static int32 test_0_try_block_end_remove_if_useless () cil managed {
1699 call void class Tests::try_block_end_remove_if_useless ()
1704 .method private static int32 test_0_regress_78629_switch_next_ins_target () cil managed
1714 // This belongs to basic-float.cs, but its hard to tell mcs/csc to
1715 // generate the non .un version of the opcodes
1716 .method private static hidebysig
1717 default int32 test_4_float_branch_nan () cil managed
1719 // Method begins at RVA 0x27a4
1720 // Code size 74 (0x4a)
1726 IL_0000: ldc.r8 (00 00 00 00 00 00 f8 ff)
1734 IL_0018: bge.s IL_001a
1746 IL_0022: ble.s IL_002e
1757 IL_0036: blt.s IL_0038
1768 IL_0040: bgt.s IL_0042
1779 } // end of method Tests::test_5_float_branch_nan
1781 .method private static hidebysig
1782 default void regress_80622_inner (object x) cil managed
1784 .locals init (unsigned int8 i)
1785 // Method begins at RVA 0x2050
1786 // Code size 14 (0xe)
1789 IL_1001: unbox unsigned int8
1790 IL_1006: ldobj unsigned int8
1791 IL_000b: conv.ovf.i4.un
1797 .method private static hidebysig
1798 default int32 test_0_regress_80622 () cil managed
1802 IL_0005: box unsigned int8
1803 IL_000a: call void class Tests::regress_80622_inner (object)
1808 .method private static default int32 test_0_regresss_80190 () cil managed
1811 .locals init (int32 V_0,
1815 IL_0002: ldloca.s V_0
1826 .class interface nested public auto ansi abstract IFaceWithStaticMethod
1828 .method public static specialname
1829 default void foo () cil managed noinlining
1836 .class nested public auto ansi AClass extends [mscorlib]System.Object implements Tests/IFaceWithStaticMethod
1838 .method public hidebysig specialname rtspecialname
1839 instance default void .ctor () cil managed
1847 // Test that static methods in interfaces are ignored during vtable construction
1848 .method private static default int32 test_0_ifaces_with_static_methods () cil managed
1852 newobj instance void class Tests/AClass::.ctor()
1858 .method private static hidebysig default int32 Foo<T> (!!T n) cil managed {
1869 .method static public int32 test_0_nullable_box_brtrue () cil managed {
1871 .locals init (valuetype [mscorlib]System.Nullable`1<int32> V_0)
1874 call int32 class Tests::Foo<valuetype [mscorlib]System.Nullable`1<int32>> (!!0)
1879 .method static public int32 test_0_ldelema_type_check () cil managed {
1881 .locals init (object[] V_0,
1893 } catch [mscorlib]System.ArrayTypeMismatchException {
1907 } catch [mscorlib]System.ArrayTypeMismatchException {
1919 readonly. ldelema object
1921 } catch [mscorlib]System.ArrayTypeMismatchException {
1945 .method static public int32 test_0_array_address_type_check () cil managed {
1947 .locals init (object[] V_0,
1952 newobj instance void object[,]::.ctor(int32, int32)
1959 call instance object& object[,]::Address(int32, int32)
1961 } catch [mscorlib]System.ArrayTypeMismatchException {
1968 newobj instance void string[,]::.ctor(int32, int32)
1975 call instance object& object[,]::Address(int32, int32)
1977 } catch [mscorlib]System.ArrayTypeMismatchException {
1984 newobj instance void string[,]::.ctor(int32, int32)
1991 readonly. call instance object& object[,]::Address(int32, int32)
1993 } catch [mscorlib]System.ArrayTypeMismatchException {
2013 .field public static unsigned int64 'ull'
2015 .field public static int32 'shift2'
2017 .method public static int32 test_0_long_shift_regalloc () cil managed
2019 .locals init (unsigned int32 'cilsimp.28', unsigned int64 'cilsimp.27', int32 'cilsimp.26')
2023 ldc.i8 81985529234382576
2024 stsfld unsigned int64 Tests::ull
2026 stsfld int32 Tests::shift2
2028 ldsfld unsigned int64 Tests::ull
2030 ldsfld int32 Tests::shift2
2041 ldc.i8 1311768467750121216
2049 // Test calling ldfld directly on a vtype instead of a vtype address
2050 .method public static int32 test_5_call_ldfld_vtype () cil managed
2054 valuetype Tests/TailCallStruct arg
2058 stfld int32 Tests/TailCallStruct::a
2061 stfld int32 Tests/TailCallStruct::b
2063 call valuetype Tests/TailCallStruct Tests::tail2 (valuetype Tests/TailCallStruct)
2064 ldfld int32 Tests/TailCallStruct::a
2068 .method public static int32 throw_ret () cil managed
2071 newobj instance void class [mscorlib]System.OverflowException::.ctor(string)
2077 .method public static int32 throw2_ret () cil managed
2084 call int32 Tests::throw_ret ()
2088 // Test inlining a method which contains just a throw
2089 .method public static int32 test_0_inline_throw () cil managed
2097 call int32 Tests::throw2_ret ()
2100 } catch [mscorlib]System.OverflowException {
2113 .method public static int32 test_0_stelem_any_null_opt () cil managed
2121 newarr [mscorlib]System.Object
2132 stelem.any [mscorlib]System.Object
2147 .method public static hidebysig
2148 default int32 manyargs_callee (int32 a, int32 b, int32 c, int32 d, int32 e, int32 f, int32 g, int32 h, int32 i, int32 j, int32 k, int32 l, int32 m, int32 n, int32 o, int32 p) cil managed
2150 // Method begins at RVA 0x20f4
2151 // Code size 44 (0x2c)
2185 } // end of method main::callee
2188 .method public static hidebysig
2189 default int32 manyargs_tail_caller (int32 a, int32 b, int32 c, int32 d, int32 e, int32 f, int32 g, int32 h, int32 i, int32 j, int32 k, int32 l, int32 m, int32 n, int32 o, int32 p) cil managed
2191 // Method begins at RVA 0x2124
2192 // Code size 34 (0x22)
2217 IL_001c: call int32 class Tests::manyargs_callee(int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32)
2219 } // end of method main::caller
2222 .method public static hidebysig
2223 default int32 test_139_many_args_tail_call () cil managed
2225 // Some platforms might not be able to AOT tail calls
2226 .custom instance void class [TestDriver]CategoryAttribute::'.ctor'(string) = (01 00 08 21 46 55 4C 4C 41 4F 54 00 00 ) // ...!FULLAOT..
2228 // Method begins at RVA 0x2154
2229 // Code size 43 (0x2b)
2239 IL_0008: ldc.i4.s 0x09
2240 IL_000a: ldc.i4.s 0x0a
2241 IL_000c: ldc.i4.s 0x0b
2242 IL_000e: ldc.i4.s 0x0c
2243 IL_0010: ldc.i4.s 0x0d
2244 IL_0012: ldc.i4.s 0x0e
2245 IL_0014: ldc.i4.s 0x0f
2246 IL_0016: ldc.i4.s 0x10
2247 IL_0018: call int32 class Tests::manyargs_tail_caller(int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32)
2249 } // end of method main::Main
2251 .class nested private auto ansi beforefieldinit R1
2252 extends [mscorlib]System.MarshalByRefObject
2254 .field public int32 test_field
2256 .method public hidebysig specialname rtspecialname
2257 instance default void '.ctor' () cil managed
2263 .method public static hidebysig
2264 default int32 return_0 () cil managed
2270 .method public static hidebysig
2271 default int32 test_1_volatile_marshalbyref_bug_432673 () cil managed
2277 newobj instance void class Tests/R1::.ctor ()
2282 stfld int32 Tests/R1::test_field
2283 call int32 class Tests::return_0 ()
2289 .method public static default int32 return_2 () cil managed
2299 .method public static hidebysig
2300 default int32 test_1_cmov_opt_regress_463357 () cil managed
2302 call int32 class Tests::return_2 ()
2315 .method public static hidebysig default int32 cmov_opt_regress_474718_inner (int32 A_1) cil managed
2318 .locals init (int32 V_0, bool V_1, bool V_2)
2327 IL_001f: brfalse IL_0036
2344 .method public static default int32 test_0_cmov_opt_regress_474718 () cil managed
2348 call int32 Tests::cmov_opt_regress_474718_inner (int32)
2352 .method public static default int32 test_5_createarr_newobj () cil managed
2357 newobj void char[]::.ctor(int32)
2362 .method public static default int32 test_0_initblk_3_regress_481458 () cil managed
2365 .locals init (native int)
2371 // Set the first value to 3
2378 // Zero out the first 3 values
2384 // Load the first value
2393 /* Disabled until they can be fixed to run on amd64
2394 .method public static float32 GetFloat32() cil managed noinlining
2397 ldc.r8 0.19975845134874831
2401 .method public static default int32 test_0_implicit_float_to_double_conversion () cil managed
2405 call float32 Tests::GetFloat32()
2406 ldc.r8 0.19975845134874831
2417 .method public static default int32 test_0_long_to_r8_un_overflow () cil managed
2420 ldc.i8 0x00FFFFFFFFFFFFFF
2423 ldc.i8 0x100000000000000
2429 ldc.i8 0x00FFFFFFFFFFFFFF
2433 ldc.i8 0x100000000000000
2443 .field public static int32 shift1
2445 .method public static int32 regress_497271_helper (int32 i) cil managed
2451 .method public static int32 test_0_regalloc_regress_497271 () cil managed
2453 .locals init (int32 var)
2456 stsfld int32 Tests::shift1
2457 ldsfld int32 Tests::shift1
2472 call int32 Tests::regress_497271_helper (int32)
2476 call int32 Tests::regress_497271_helper (int32)
2480 .field private static int32 Value
2482 .method public static hidebysig specialname
2483 default int32 regress_513931_inner () cil managed
2485 // Method begins at RVA 0x225c
2486 // Code size 52 (0x34)
2494 stsfld int32 Tests::Value
2497 IL_0001: ldsfld int32 Tests::Value
2506 IL_0010: brtrue.s IL_0027
2510 IL_0014: ldc.i4.s 0x7b
2516 IL_001d: brtrue.s IL_0023
2520 IL_0021: br.s IL_0032
2524 IL_0025: br.s IL_0032
2527 IL_002c: newobj instance void class [mscorlib]System.Exception::'.ctor'()
2533 .method public static hidebysig specialname
2534 default int32 test_0_regress_513931 () cil managed
2536 call int32 Tests::regress_513931_inner ()
2542 .method public static default int32 test_0_newarr_i8 () cil managed
2546 newarr [mscorlib]System.Boolean
2552 .method public static specialname
2553 default int32 return_1_noinline () cil managed noinlining
2561 // Only happens with -O=-deadce,cmov
2562 .method public static default int32 test_0_cmov_unused_582322 () cil managed
2568 call int32 Tests::return_1_noinline ()
2578 .method public static hidebysig
2579 default int32 test_0_regress_586664 () cil managed
2581 // Method begins at RVA 0x20f4
2582 // Code size 76 (0x4c)
2590 IL_001b: call float64 class [mscorlib]System.Math::Pow(float64, float64)
2594 IL_0023: newarr [mscorlib]System.Double
2609 IL_0036: ldc.r8 -0.5
2610 IL_003f: bne.un IL_004a
2619 .method public static int32 test_2_leave_multiple_blocks_from_end ()
2621 .locals init (int32 V_0)
2649 .method public static int32 test_3_leave_multiple_blocks_from_hole ()
2651 .locals init (int32 V_0)
2688 .class nested private auto ansi sealed beforefieldinit Pair`2<TKey,TValue>
2689 extends [mscorlib]System.ValueType
2691 .field public !0 key
2692 .field public !1 'value'
2695 .method private static hidebysig
2696 default bool ContentEquals<TKey,TValue> (valuetype Tests/Pair`2<!!TKey, !!TValue> v) cil managed
2701 constrained. valuetype Tests/Pair`2<!!0,!!1>
2702 IL_0007: callvirt instance bool class [mscorlib]System.Object::Equals(object)
2706 .method public static hidebysig default int32 test_0_constrained_gshared_595863 () cil managed
2709 valuetype Tests/Pair`2<string, string> V_0,
2710 valuetype Tests/Pair`2<string, string> V_1)
2712 IL_0002: initobj valuetype Tests/Pair`2<string,string>
2717 IL_0011: stfld !0 valuetype Tests/Pair`2<string,string>::key
2720 IL_001d: stfld !1 valuetype Tests/Pair`2<string,string>::'value'
2724 IL_0025: call bool class Tests::ContentEquals<string, string> (valuetype Tests/Pair`2<!!0,!!1>)
2733 .method public static default int32 test_0_wrap_non_exception_throws () cil managed
2736 newobj instance void class [mscorlib]System.Object::'.ctor'()
2739 } catch class [mscorlib]System.Runtime.CompilerServices.RuntimeWrappedException {
2747 .method public static default int32 test_0_typespec_modopt () cil managed {
2748 ldtoken class Tests modopt (Tests)
2754 .method public hidebysig static int32 SizeOfT<T>() cil managed
2762 .method public static default int32 test_1_sizeof_gshared () cil managed {
2763 call int32 Tests::SizeOfT<int8>()
2769 .method public static default int32 test_1_sizeof_ref () cil managed {
2770 call int32 Tests::SizeOfT<object>()
2771 sizeof [mscorlib]System.IntPtr
2776 .field static public int32 volatile_int
2778 .method public static default int32 test_5_volatile_load_store () cil managed {
2779 ldsflda int32 class Tests::volatile_int
2783 ldsflda int32 class Tests::volatile_int
2789 .method public static
2790 default int32 regress_693905_inner (int32 x, int32 acc) cil managed
2792 // Method begins at RVA 0x2050
2793 // Code size 17 (0x11)
2796 IL_0001: brtrue.s IL_0005
2808 IL_000f: br.s IL_0000
2810 } // end of method Test::f
2812 .method public static
2813 default int32 test_10_regress_693905 () cil managed
2817 call int32 class Tests::regress_693905_inner(int32, int32)
2821 .method public static
2822 default int32 test_0_llvm_regress_171 () cil managed
2828 call int32 Tests::return_1_noinline ()
2833 call int32 Tests::return_1_noinline ()
2841 .field public static int32 static_a
2843 .method public static
2844 default int32 test_4_ldfld_stfld_static () cil managed
2848 stfld int32 Tests::static_a
2850 ldfld int32 Tests::static_a
2852 ldflda int32 Tests::static_a
2858 .method public static default int32 no_initlocals_inner () cil managed
2864 valuetype Tests/TailCallStruct V_3)
2869 .method public static default int32 test_0_no_initlocals () cil managed
2871 call int32 Tests::no_initlocals_inner()
2877 .method public hidebysig static int32 test_5_r4_fadd_mixed() cil managed
2879 // Code size 17 (0x11)
2881 .locals init (float32 V_0,
2894 .method public hidebysig static int32 test_0_fcmp_eq_r4_mixed() cil managed
2896 // Code size 32 (0x20)
2898 .locals init (float32 V_0,
2906 IL_0013: bne.un IL_001e
2913 } // end of method Tests::test_0_fcmp_eq_r4_mixed
2915 .method public hidebysig static int32 test_0_fceq_r4_mixed() cil managed
2917 // Code size 31 (0x1f)
2919 .locals init (float32 V_0,
2931 IL_0012: brfalse IL_001d
2938 } // end of method Tests::test_0_fceq_r4
2940 .method public static int32 test_0_switch_loop () cil managed
2943 .locals init (valuetype Tests/TailCallStruct V_0, int32 V_1)
2956 .method public static int32 test_2_fault () cil managed
2959 .locals init (int32 V_0)
2966 IL_0002: newobj instance void [mscorlib]System.Exception::.ctor()
2978 IL_000f: leave.s IL_0018
2981 catch [mscorlib]System.Object
2988 IL_0016: leave.s IL_0018
2995 .method public static int32 test_0_fault_no_exception () cil managed
2998 .locals init (int32 V_0)
3015 IL_000f: leave.s IL_0018
3018 catch [mscorlib]System.Object
3025 IL_0016: leave.s IL_0018
3032 .field private static int32 byte_val
3033 .field private static int32 short_val
3035 .method static int32 widen_arguments (unsigned int8 a, int8 b, int16 c, unsigned int16 d) cil managed noinlining
3038 ldsfld int32 Tests::byte_val
3047 ldsfld int32 Tests::byte_val
3057 ldsfld int32 Tests::short_val
3060 ldc.i4 -32768 //-0x8000
3067 ldsfld int32 Tests::short_val
3070 ldc.i4 32768 //0x8000
3081 .method public static int32 test_0_implicit_widen_of_argument_stores () cil managed
3085 This test verifies that storing an I4 value from the evail stack into a local variable triggers proper widening.
3086 The values are picked so storing them have different values depending on the sign'ness of the local variable.
3089 stsfld int32 Tests::byte_val
3091 stsfld int32 Tests::short_val
3097 call int32 Tests::widen_arguments (unsigned int8 a, int8 b, int16 c, unsigned int16 d)
3101 .method public static int32 test_0_implicit_widen_of_local_stores () cil managed
3111 This test verifies that storing an I4 value from the evail stack into a local variable triggers proper widening.
3112 The values are picked so storing them have different values depending on the sign'ness of the local variable.
3115 stsfld int32 Tests::byte_val
3117 stsfld int32 Tests::short_val
3119 ldsfld int32 Tests::byte_val
3128 ldsfld int32 Tests::byte_val
3137 ldsfld int32 Tests::short_val
3140 ldc.i4 -32768 //-0x8000
3146 ldsfld int32 Tests::short_val
3149 ldc.i4 32768 //0x8000
3159 .method public static bool llvm_regress_59436 () {
3160 // Code size 41 (0x29)
3162 .locals init (float64 V_0,
3164 valuetype [mscorlib]System.Decimal V_2)
3170 IL_0015: newobj instance void [mscorlib]System.Decimal::.ctor(float64)
3171 IL_001a: ldloca.s V_2
3173 IL_001d: call instance void [mscorlib]System.Decimal::.ctor(float64)
3175 IL_0023: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal,
3176 valuetype [mscorlib]System.Decimal)
3180 .method private hidebysig static void fail_inline() cil managed
3182 // Code size 9 (0x9)
3184 IL_0000: ldc.i4.s 16
3193 .method private hidebysig static int32
3194 always_inline(int32 op) cil managed aggressiveinlining
3196 // Code size 24 (0x18)
3199 IL_0001: brfalse.s IL_0009
3203 IL_0005: beq.s IL_000b
3205 IL_0007: br.s IL_000d
3213 IL_000d: call void Tests::fail_inline()
3214 IL_0012: newobj instance void [mscorlib]System.Exception::.ctor()
3218 .method public hidebysig static int32 test_3_regress_59608() cil managed
3222 IL_0001: call int32 Tests::always_inline(int32)
3226 .method public hidebysig static int32 test_104_conv_u_and_string() cil managed
3231 call int32 [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::get_OffsetToStringData()
3237 .field public static class FLSharedKeys* keys
3239 .method public hidebysig static int32 test_0_regress_60634 () cil managed
3242 ldsflda class FLSharedKeys* Tests::keys
3243 initobj class FLSharedKeys*
3248 .method public hidebysig static int32 test_0_github_issue_6721 () cil managed
3256 ldc.i8 0xffffffff00000001
3265 .method public hidebysig static int32 test_3_github_issue_15794 () cil managed
3274 .method public hidebysig static int32 test_1_box_r8_r4_autoconv () cil managed
3288 .method public hidebysig static int32 test_1_dont_verify_ptr_byrefs () cil managed
3290 .locals init (int32 v_0, int32 *& v_1, int32 *v_2)
3296 //v_1 = &v_0 < bad store of `int32&` to ìnt32*&` but must work
3311 .method private hidebysig static valuetype [mscorlib]System.Nullable`1<int32> ret_some_vt(int32 val) cil managed
3315 newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::.ctor(!0)
3323 newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::.ctor(!0)
3331 newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::.ctor(!0)
3339 // https://github.com/mono/mono/issues/17924
3340 .method static public int32 test_0_vt_sp_tracking () cil managed
3343 .locals init (valuetype [mscorlib]System.Nullable`1<int32> V_0)
3346 call valuetype [mscorlib]System.Nullable`1<int32> Tests::ret_some_vt(int32)
3349 call instance !0 valuetype [mscorlib]System.Nullable`1<int32>::get_Value()
3361 .method public hidebysig static int32 test_10_rconv_to_u8_ovf_un() cil managed
3363 // Code size 20 (0x14)
3365 .locals init (uint64 V_0,
3369 IL_0001: ldc.i4.s 10
3378 IL_000b: conv.ovf.u8.un
3381 IL_000e: conv.ovf.i4.un
3383 IL_0010: br.s IL_0012
3387 } // end of method Tests::test_10_rconv_to_u8_ovf_un
3389 .field private static int64 TestLong
3391 /* Disabled until its fixed on i386
3392 .method public static int32 test_1_stsfld_conv () cil managed
3395 stsfld int64 Tests::TestLong
3396 ldsfld int64 Tests::TestLong