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 {
141 .custom instance void [TestDriver]CategoryAttribute::.ctor(string) = ( 01 00 0C 21 49 4E 54 45 52 50 52 45 54 45 52 00 00) // ...!INTERPRETER.
144 sizeof [mscorlib]System.IntPtr
147 call int32 class Tests::i8_ptr_arithm_x64()
155 // make sure the register allocator works when the return value of
156 // 'div' is discarded
157 .method static public int32 test_0_div_regalloc () il managed {
171 .method static public int32 test_1_ceq_to_i4 () il managed {
185 .method static public int32 test_3_shl_regvars () il managed {
232 .method static public int32 test_1_fceq_to_i4 () il managed {
252 // This should be manually checked. Basically under -O=linears,
253 // you should not see tons of register spilling.
255 .method static public int32 test_1_bytedreg_free () il managed {
291 // This should be manually checked. Basically under -O=linears,
292 // you should not see tons of register spilling.
294 .method static public int32 test_0_bytesreg1_free () il managed {
333 .method static public int32 test_1_shift_regvar () il managed {
354 // this only happens with the managed pointer, not an unmanaged one.
355 .method static public int32 test_0_foo () il managed {
372 .method static public int32 test_0_localloc () cil managed {
373 .locals init (native int, native int, native int, native int, int32)
398 // Check zero initialized
447 // Try allocations bigger than one page
473 .method private static void do_localloc () cil managed {
478 IL_0001: ldc.i4 131072
485 // Check that localloc cannot be inlined
486 .method static public int32 test_0_localloc_inline () cil managed {
496 START: call void class Tests::do_localloc()
509 .method static public int32 test_3_copy_used_bug () il managed {
535 // demonstrate that the copy_used_var is not a fix for the above bug
536 .method static public int32 test_3_copy_used_indir_bug () il managed {
563 .method static public void do_nothing (int32 a) il managed {
567 // demonstrate the block_split failure: needs -O=inline
568 // mini -O=inline --compile Tests:test_0_split_block_bug iltests.exe
569 .method static public int32 test_0_split_block_bug () il managed {
579 call void class Tests::do_nothing (int32)
587 .method public void inline_do_nothing () il managed {
590 .method static public int32 test_1_checkthis_inlining () il managed {
592 call instance void class Tests::inline_do_nothing ()
597 .class nested private auto ansi sealed beforefieldinit TailCallStruct
598 extends [mscorlib]System.ValueType {
599 .field public int32 a
600 .field public int32 b
603 .method static valuetype Tests/TailCallStruct tail1 (valuetype Tests/TailCallStruct arg) {
606 ldfld int32 Tests/TailCallStruct::a
609 stfld int32 Tests/TailCallStruct::a
612 ldfld int32 Tests/TailCallStruct::a
615 stfld int32 Tests/TailCallStruct::a
620 .method static valuetype Tests/TailCallStruct tail2 (valuetype Tests/TailCallStruct arg) {
623 call valuetype Tests/TailCallStruct Tests::tail1 (valuetype Tests/TailCallStruct)
627 .class nested private auto ansi sealed beforefieldinit TailCallStructBig
628 extends [mscorlib]System.ValueType {
629 .field public int32 a
630 .field public int32 b
631 .field public int32 c
632 .field public int32 d
633 .field public int32 e
636 .method static valuetype Tests/TailCallStructBig tail_vret_by_addr_inner (valuetype Tests/TailCallStructBig arg) {
639 ldfld int32 Tests/TailCallStructBig::a
642 stfld int32 Tests/TailCallStructBig::a
647 .method static valuetype Tests/TailCallStructBig tail_vret_by_addr (valuetype Tests/TailCallStructBig arg) {
650 call valuetype Tests/TailCallStructBig Tests::tail_vret_by_addr_inner (valuetype Tests/TailCallStructBig)
654 .method static public int32 test_3_tail_call_vret_by_addr () il managed {
657 valuetype Tests/TailCallStructBig arg2
662 stfld int32 Tests/TailCallStructBig::a
664 call valuetype Tests/TailCallStructBig Tests::tail_vret_by_addr (valuetype Tests/TailCallStructBig)
668 ldfld int32 Tests/TailCallStructBig::a
672 .method static public int32 test_9_tail_call_vret_by_val () il managed {
675 valuetype Tests/TailCallStruct arg
679 stfld int32 Tests/TailCallStruct::a
682 stfld int32 Tests/TailCallStruct::b
684 call valuetype Tests/TailCallStruct Tests::tail2 (valuetype Tests/TailCallStruct)
688 ldfld int32 Tests/TailCallStruct::a
690 ldfld int32 Tests/TailCallStruct::b
695 .method static public int32 tail3 (int32 i, int32 j) il managed {
702 .method static public int32 tail4 (int32 i, int32 j) il managed {
707 // Test arg0 allocated to a register
717 // Test switched up argument variables as the actual arguments
721 call int32 Tests::tail3 (int32, int32)
725 .method static public int32 test_24_tail_calls2 () il managed {
726 // Some platforms might not be able to AOT tail calls
727 .custom instance void class [TestDriver]CategoryAttribute::'.ctor'(string) = (01 00 08 21 46 55 4C 4C 41 4F 54 00 00 ) // ...!FULLAOT..
741 call int32 Tests::tail4 (int32, int32)
745 .method public static int32 test_5_jmp () cil managed {
746 // Some platforms might not be able to AOT tail calls
747 .custom instance void class [TestDriver]CategoryAttribute::'.ctor'(string) = (01 00 08 21 46 55 4C 4C 41 4F 54 00 00 ) // ...!FULLAOT..
751 call int32 Tests::jmp2 (int32, int32)
755 .method public static int32 jmp2 (int32, int32) cil managed {
764 jmp int32 Tests::jmp3 (int32, int32)
769 .method public static int32 jmp3 (int32 i, int32 j) cil managed {
776 .method static public int32 test_11_switch_with_nonempty_stack () il managed {
791 .method public static int32 test_5_endfinally_with_nonempty_stack () il managed {
805 .method public static int32 test_5_endfinally_llvm_linking () il managed {
826 .method public static int32 test_0_conv_ovf_i8_neg () il managed {
841 .method public static int32 test_1234_conv_u4 () cil managed {
850 .method public static int32 test_0_conv_ovf_i_un () cil managed {
869 sizeof [mscorlib]System.IntPtr
876 } catch [mscorlib]System.OverflowException {
888 .method public static int32 test_0_conv_ovf_u_un () cil managed {
903 .method public static int32 test_0_conv_ovf_i () cil managed {
918 .method public static int32 test_0_conv_ovf_u () cil managed {
933 .method public static int32 test_1234_conv_ovf_i8_un () cil managed {
942 .method public static int32 test_0_lconv_ovf_i () cil managed {
958 .method public static int32 test_0_lconv_ovf_u () cil managed {
974 .method public static int32 test_0_lconv_ovf_i_un () cil managed {
990 .method public static int32 test_0_lconv_ovf_u_un () cil managed {
1006 .method public static int32 test_0_lconv_to_ovf_i8 () cil managed {
1022 .method public static int32 test_0_lconv_to_ovf_u8_un () cil managed {
1038 .method public static int32 test_2_lconv_to_ovf_i4_un () cil managed {
1040 .locals init (int32 res)
1057 } catch [mscorlib]System.OverflowException {
1065 ldc.i8 0xffffffff80000000
1071 } catch [mscorlib]System.OverflowException {
1081 .method public static int32 test_1_lconv_to_ovf_i_un () cil managed {
1083 .locals init (int32 res)
1095 .method public static int32 test_32_lconv_to_u8 () cil managed
1106 .method public static int32 test_32_lconv_to_i8 () cil managed
1117 .method public static int32 test_15_lconv_to_u () cil managed
1125 .method public static int32 test_1234_fconv_u () cil managed {
1134 .method public static int32 test_0_get_type_from_handle_on_bblock_boundary () cil managed
1141 ldtoken [mscorlib]System.String
1144 ldtoken [mscorlib]System.Object
1146 call class [mscorlib]'System.Type' class [mscorlib]'System.Type'::'GetTypeFromHandle'(valuetype [mscorlib]'System.RuntimeTypeHandle')
1147 callvirt instance string class [mscorlib]System.Type::get_FullName ()
1148 ldstr "System.String"
1149 callvirt instance bool class [mscorlib]System.Object::Equals(object)
1155 .method public static int32 test_0_bug59580 ()
1157 ldc.r4 float32(0x7FC00000)
1158 ldc.r4 float32(0x7FC00000)
1169 .method public static int32 test_1_bug60056 () {
1170 .locals init (int32 m5)
1188 .method public static int32 test_1_conv_u8_cfold () {
1192 ldc.i8 0x00000000ffffffff
1198 .method public static int32 test_1_array_type_mismatch_ldelema () {
1199 .locals init (int32 r)
1215 } catch [mscorlib]System.ArrayTypeMismatchException {
1226 .method public static int32 test_1_conv_ovf_i8_with_i4 () {
1235 .method public static int32 test_0_initlocals_float_ptr () {
1239 float32& pinned V_1,
1242 newarr [mscorlib]System.Single
1250 ldelema [mscorlib]System.Single
1260 .method public static int32 test_7_conv_ovf_u8_un () {
1262 .locals init (unsigned int64)
1272 .method public static int32 test_7_conv_ovf_u4_un () {
1274 .locals init (unsigned int32)
1284 .method public static int32 test_1_bug_74591 () {
1286 .locals init (int32)
1299 .class nested public auto ansi Integer
1300 extends [mscorlib]System.Object {
1302 .field public bool n
1304 .method public hidebysig specialname rtspecialname
1305 instance default void .ctor (unsigned int64 i, bool n) cil managed
1309 call instance void class [mscorlib]System.Object::.ctor()
1312 stfld bool Tests/Integer::n
1317 .method public static int32 test_1_bug_74726 () {
1326 newobj instance void class Tests/Integer::.ctor(unsigned int64, bool)
1327 ldfld bool Tests/Integer::n
1333 .class nested private auto ansi sealed xxx
1334 extends [mscorlib]System.ValueType
1336 .field public object a
1338 .method public hidebysig specialname rtspecialname
1339 instance default void .ctor () cil managed
1344 } // end of class xxx
1346 .method public static int32 test_0_newobj_vtype () {
1349 valuetype Tests/xxx V_0
1352 newobj instance void valuetype Tests/xxx::.ctor ()
1355 ldfld object Tests/xxx::a
1364 .method public static int32 test_0_newobj_vtype_primitive () {
1371 newobj instance void native int::'.ctor'(int32)
1383 .method public static int32 test_1_filters () {
1384 .custom instance void [TestDriver]CategoryAttribute::.ctor(string) = ( 01 00 08 21 42 49 54 43 4F 44 45 00 00 ) // ...!BITCODE..
1392 ldstr "OnErrorSub test Exception"
1393 newobj instance void class [mscorlib]System.Exception::.ctor(string)
1403 // Should not be called
1425 .class nested private auto ansi sealed beforefieldinit TheStruct
1426 extends [mscorlib]System.ValueType {
1427 .field public int32 a
1428 .field public int32 b
1431 .method public static int32 test_5_cpobj () {
1434 valuetype Tests/TheStruct v_0,
1435 valuetype Tests/TheStruct v_1
1440 stfld int32 Tests/TheStruct::a
1444 stfld int32 Tests/TheStruct::b
1448 cpobj Tests/TheStruct
1451 ldfld int32 Tests/TheStruct::a
1453 ldfld int32 Tests/TheStruct::b
1459 .method public static int32 test_5_ldobj_stloc_optimization () {
1462 valuetype Tests/TheStruct v_0,
1463 valuetype Tests/TheStruct v_1
1468 stfld int32 Tests/TheStruct::a
1472 stfld int32 Tests/TheStruct::b
1475 ldobj valuetype Tests/TheStruct
1479 ldfld int32 Tests/TheStruct::a
1481 ldfld int32 Tests/TheStruct::b
1487 .method public static int32 test_1_cpobj_reference () {
1494 newobj instance void object::.ctor()
1507 .method public static int32 test_1_initobj_reference () {
1513 newobj instance void object::.ctor()
1525 .method public static int32 test_1_ldobj_reference () {
1531 newobj instance void object::.ctor()
1541 .method public static int32 test_5_vtype_on_bb_boundary () {
1544 valuetype Tests/TheStruct v_0,
1545 valuetype Tests/TheStruct v_1
1550 stfld int32 Tests/TheStruct::a
1554 stfld int32 Tests/TheStruct::b
1561 ldfld int32 Tests/TheStruct::a
1563 ldfld int32 Tests/TheStruct::b
1568 .method public static int32 test_5_different_in_stacks () cil managed {
1592 .method public static int32 test_3_larray_get_set () {
1597 newobj instance void int32[0...]::.ctor(int32)
1602 call instance void int32[0...]::Set(int32, int32)
1606 call instance void int32[0...]::Set(int32, int32)
1610 call instance int32 int32[0...]::Get(int32)
1613 call instance int32 int32[0...]::Get(int32)
1618 .method public static int32 test_0_pop_side_effects () {
1627 catch [mscorlib]System.ArithmeticException {
1639 .method public static void regalloc_regress_78314_helper (object o) cil managed
1644 .method public static int32 test_1_regalloc_regress_78314 () cil managed
1646 // Code size 68 (0x44)
1648 .locals init (int32 V_0, bool V_1)
1651 IL_0002: br.s IL_003b
1654 IL_001e: ldc.i4.s 10
1657 IL_0022: ldc.i4.s 10
1661 IL_0028: box [mscorlib]System.Boolean
1662 IL_0032: call void Tests::regalloc_regress_78314_helper(object)
1669 IL_003f: blt.s IL_0004
1678 .method public static void try_block_end_remove_if_useless () cil managed {
1696 .try T_START to T1_END finally handler F1_START to F1_END
1699 .method public static int32 test_0_try_block_end_remove_if_useless () cil managed {
1700 call void class Tests::try_block_end_remove_if_useless ()
1705 .method private static int32 test_0_regress_78629_switch_next_ins_target () cil managed
1715 // This belongs to basic-float.cs, but its hard to tell mcs/csc to
1716 // generate the non .un version of the opcodes
1717 .method private static hidebysig
1718 default int32 test_4_float_branch_nan () cil managed
1720 // Method begins at RVA 0x27a4
1721 // Code size 74 (0x4a)
1727 IL_0000: ldc.r8 (00 00 00 00 00 00 f8 ff)
1735 IL_0018: bge.s IL_001a
1747 IL_0022: ble.s IL_002e
1758 IL_0036: blt.s IL_0038
1769 IL_0040: bgt.s IL_0042
1780 } // end of method Tests::test_5_float_branch_nan
1782 .method private static hidebysig
1783 default void regress_80622_inner (object x) cil managed
1785 .locals init (unsigned int8 i)
1786 // Method begins at RVA 0x2050
1787 // Code size 14 (0xe)
1790 IL_1001: unbox unsigned int8
1791 IL_1006: ldobj unsigned int8
1792 IL_000b: conv.ovf.i4.un
1798 .method private static hidebysig
1799 default int32 test_0_regress_80622 () cil managed
1803 IL_0005: box unsigned int8
1804 IL_000a: call void class Tests::regress_80622_inner (object)
1809 .method private static default int32 test_0_regresss_80190 () cil managed
1812 .locals init (int32 V_0,
1816 IL_0002: ldloca.s V_0
1827 .class interface nested public auto ansi abstract IFaceWithStaticMethod
1829 .method public static specialname
1830 default void foo () cil managed noinlining
1837 .class nested public auto ansi AClass extends [mscorlib]System.Object implements Tests/IFaceWithStaticMethod
1839 .method public hidebysig specialname rtspecialname
1840 instance default void .ctor () cil managed
1848 // Test that static methods in interfaces are ignored during vtable construction
1849 .method private static default int32 test_0_ifaces_with_static_methods () cil managed
1853 newobj instance void class Tests/AClass::.ctor()
1859 .method private static hidebysig default int32 Foo<T> (!!T n) cil managed {
1870 .method static public int32 test_0_nullable_box_brtrue () cil managed {
1872 .locals init (valuetype [mscorlib]System.Nullable`1<int32> V_0)
1875 call int32 class Tests::Foo<valuetype [mscorlib]System.Nullable`1<int32>> (!!0)
1880 .method static public int32 test_0_ldelema_type_check () cil managed {
1882 .locals init (object[] V_0,
1894 } catch [mscorlib]System.ArrayTypeMismatchException {
1908 } catch [mscorlib]System.ArrayTypeMismatchException {
1920 readonly. ldelema object
1922 } catch [mscorlib]System.ArrayTypeMismatchException {
1946 .method static public int32 test_0_array_address_type_check () cil managed {
1948 .locals init (object[] V_0,
1953 newobj instance void object[,]::.ctor(int32, int32)
1960 call instance object& object[,]::Address(int32, int32)
1962 } catch [mscorlib]System.ArrayTypeMismatchException {
1969 newobj instance void string[,]::.ctor(int32, int32)
1976 call instance object& object[,]::Address(int32, int32)
1978 } catch [mscorlib]System.ArrayTypeMismatchException {
1985 newobj instance void string[,]::.ctor(int32, int32)
1992 readonly. call instance object& object[,]::Address(int32, int32)
1994 } catch [mscorlib]System.ArrayTypeMismatchException {
2014 .field public static unsigned int64 'ull'
2016 .field public static int32 'shift2'
2018 .method public static int32 test_0_long_shift_regalloc () cil managed
2020 .locals init (unsigned int32 'cilsimp.28', unsigned int64 'cilsimp.27', int32 'cilsimp.26')
2024 ldc.i8 81985529234382576
2025 stsfld unsigned int64 Tests::ull
2027 stsfld int32 Tests::shift2
2029 ldsfld unsigned int64 Tests::ull
2031 ldsfld int32 Tests::shift2
2042 ldc.i8 1311768467750121216
2050 // Test calling ldfld directly on a vtype instead of a vtype address
2051 .method public static int32 test_5_call_ldfld_vtype () cil managed
2055 valuetype Tests/TailCallStruct arg
2059 stfld int32 Tests/TailCallStruct::a
2062 stfld int32 Tests/TailCallStruct::b
2064 call valuetype Tests/TailCallStruct Tests::tail2 (valuetype Tests/TailCallStruct)
2065 ldfld int32 Tests/TailCallStruct::a
2069 .method public static int32 throw_ret () cil managed
2072 newobj instance void class [mscorlib]System.OverflowException::.ctor(string)
2078 .method public static int32 throw2_ret () cil managed
2085 call int32 Tests::throw_ret ()
2089 // Test inlining a method which contains just a throw
2090 .method public static int32 test_0_inline_throw () cil managed
2098 call int32 Tests::throw2_ret ()
2101 } catch [mscorlib]System.OverflowException {
2114 .method public static int32 test_0_stelem_any_null_opt () cil managed
2122 newarr [mscorlib]System.Object
2133 stelem.any [mscorlib]System.Object
2148 .method public static hidebysig
2149 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
2151 // Method begins at RVA 0x20f4
2152 // Code size 44 (0x2c)
2186 } // end of method main::callee
2189 .method public static hidebysig
2190 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
2192 // Method begins at RVA 0x2124
2193 // Code size 34 (0x22)
2218 IL_001c: call int32 class Tests::manyargs_callee(int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32, int32)
2220 } // end of method main::caller
2223 .method public static hidebysig
2224 default int32 test_139_many_args_tail_call () cil managed
2226 // Some platforms might not be able to AOT tail calls
2227 .custom instance void class [TestDriver]CategoryAttribute::'.ctor'(string) = (01 00 08 21 46 55 4C 4C 41 4F 54 00 00 ) // ...!FULLAOT..
2229 // Method begins at RVA 0x2154
2230 // Code size 43 (0x2b)
2240 IL_0008: ldc.i4.s 0x09
2241 IL_000a: ldc.i4.s 0x0a
2242 IL_000c: ldc.i4.s 0x0b
2243 IL_000e: ldc.i4.s 0x0c
2244 IL_0010: ldc.i4.s 0x0d
2245 IL_0012: ldc.i4.s 0x0e
2246 IL_0014: ldc.i4.s 0x0f
2247 IL_0016: ldc.i4.s 0x10
2248 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)
2250 } // end of method main::Main
2252 .class nested private auto ansi beforefieldinit R1
2253 extends [mscorlib]System.MarshalByRefObject
2255 .field public int32 test_field
2257 .method public hidebysig specialname rtspecialname
2258 instance default void '.ctor' () cil managed
2264 .method public static hidebysig
2265 default int32 return_0 () cil managed
2271 .method public static hidebysig
2272 default int32 test_1_volatile_marshalbyref_bug_432673 () cil managed
2278 newobj instance void class Tests/R1::.ctor ()
2283 stfld int32 Tests/R1::test_field
2284 call int32 class Tests::return_0 ()
2290 .method public static default int32 return_2 () cil managed
2300 .method public static hidebysig
2301 default int32 test_1_cmov_opt_regress_463357 () cil managed
2303 call int32 class Tests::return_2 ()
2316 .method public static hidebysig default int32 cmov_opt_regress_474718_inner (int32 A_1) cil managed
2319 .locals init (int32 V_0, bool V_1, bool V_2)
2328 IL_001f: brfalse IL_0036
2345 .method public static default int32 test_0_cmov_opt_regress_474718 () cil managed
2349 call int32 Tests::cmov_opt_regress_474718_inner (int32)
2353 .method public static default int32 test_5_createarr_newobj () cil managed
2358 newobj void char[]::.ctor(int32)
2363 .method public static default int32 test_0_initblk_3_regress_481458 () cil managed
2366 .locals init (native int)
2372 // Set the first value to 3
2379 // Zero out the first 3 values
2385 // Load the first value
2394 /* Disabled until they can be fixed to run on amd64
2395 .method public static float32 GetFloat32() cil managed noinlining
2398 ldc.r8 0.19975845134874831
2402 .method public static default int32 test_0_implicit_float_to_double_conversion () cil managed
2406 call float32 Tests::GetFloat32()
2407 ldc.r8 0.19975845134874831
2418 .method public static default int32 test_0_long_to_r8_un_overflow () cil managed
2421 ldc.i8 0x00FFFFFFFFFFFFFF
2424 ldc.i8 0x100000000000000
2430 ldc.i8 0x00FFFFFFFFFFFFFF
2434 ldc.i8 0x100000000000000
2444 .field public static int32 shift1
2446 .method public static int32 regress_497271_helper (int32 i) cil managed
2452 .method public static int32 test_0_regalloc_regress_497271 () cil managed
2454 .locals init (int32 var)
2457 stsfld int32 Tests::shift1
2458 ldsfld int32 Tests::shift1
2473 call int32 Tests::regress_497271_helper (int32)
2477 call int32 Tests::regress_497271_helper (int32)
2481 .field private static int32 Value
2483 .method public static hidebysig specialname
2484 default int32 regress_513931_inner () cil managed
2486 // Method begins at RVA 0x225c
2487 // Code size 52 (0x34)
2495 stsfld int32 Tests::Value
2498 IL_0001: ldsfld int32 Tests::Value
2507 IL_0010: brtrue.s IL_0027
2511 IL_0014: ldc.i4.s 0x7b
2517 IL_001d: brtrue.s IL_0023
2521 IL_0021: br.s IL_0032
2525 IL_0025: br.s IL_0032
2528 IL_002c: newobj instance void class [mscorlib]System.Exception::'.ctor'()
2534 .method public static hidebysig specialname
2535 default int32 test_0_regress_513931 () cil managed
2537 call int32 Tests::regress_513931_inner ()
2543 .method public static default int32 test_0_newarr_i8 () cil managed
2547 newarr [mscorlib]System.Boolean
2553 .method public static specialname
2554 default int32 return_1_noinline () cil managed noinlining
2562 // Only happens with -O=-deadce,cmov
2563 .method public static default int32 test_0_cmov_unused_582322 () cil managed
2569 call int32 Tests::return_1_noinline ()
2579 .method public static hidebysig
2580 default int32 test_0_regress_586664 () cil managed
2582 // Method begins at RVA 0x20f4
2583 // Code size 76 (0x4c)
2591 IL_001b: call float64 class [mscorlib]System.Math::Pow(float64, float64)
2595 IL_0023: newarr [mscorlib]System.Double
2610 IL_0036: ldc.r8 -0.5
2611 IL_003f: bne.un IL_004a
2620 .method public static int32 test_2_leave_multiple_blocks_from_end ()
2622 .locals init (int32 V_0)
2650 .method public static int32 test_3_leave_multiple_blocks_from_hole ()
2652 .locals init (int32 V_0)
2689 .class nested private auto ansi sealed beforefieldinit Pair`2<TKey,TValue>
2690 extends [mscorlib]System.ValueType
2692 .field public !0 key
2693 .field public !1 'value'
2696 .method private static hidebysig
2697 default bool ContentEquals<TKey,TValue> (valuetype Tests/Pair`2<!!TKey, !!TValue> v) cil managed
2702 constrained. valuetype Tests/Pair`2<!!0,!!1>
2703 IL_0007: callvirt instance bool class [mscorlib]System.Object::Equals(object)
2707 .method public static hidebysig default int32 test_0_constrained_gshared_595863 () cil managed
2710 valuetype Tests/Pair`2<string, string> V_0,
2711 valuetype Tests/Pair`2<string, string> V_1)
2713 IL_0002: initobj valuetype Tests/Pair`2<string,string>
2718 IL_0011: stfld !0 valuetype Tests/Pair`2<string,string>::key
2721 IL_001d: stfld !1 valuetype Tests/Pair`2<string,string>::'value'
2725 IL_0025: call bool class Tests::ContentEquals<string, string> (valuetype Tests/Pair`2<!!0,!!1>)
2734 .method public static default int32 test_0_wrap_non_exception_throws () cil managed
2737 newobj instance void class [mscorlib]System.Object::'.ctor'()
2740 } catch class [mscorlib]System.Runtime.CompilerServices.RuntimeWrappedException {
2748 .method public static default int32 test_0_typespec_modopt () cil managed {
2749 ldtoken class Tests modopt (Tests)
2755 .method public hidebysig static int32 SizeOfT<T>() cil managed
2763 .method public static default int32 test_1_sizeof_gshared () cil managed {
2764 call int32 Tests::SizeOfT<int8>()
2770 .method public static default int32 test_1_sizeof_ref () cil managed {
2771 call int32 Tests::SizeOfT<object>()
2772 sizeof [mscorlib]System.IntPtr
2777 .field static public int32 volatile_int
2779 .method public static default int32 test_5_volatile_load_store () cil managed {
2780 ldsflda int32 class Tests::volatile_int
2784 ldsflda int32 class Tests::volatile_int
2790 .method public static
2791 default int32 regress_693905_inner (int32 x, int32 acc) cil managed
2793 // Method begins at RVA 0x2050
2794 // Code size 17 (0x11)
2797 IL_0001: brtrue.s IL_0005
2809 IL_000f: br.s IL_0000
2811 } // end of method Test::f
2813 .method public static
2814 default int32 test_10_regress_693905 () cil managed
2818 call int32 class Tests::regress_693905_inner(int32, int32)
2822 .method public static
2823 default int32 test_0_llvm_regress_171 () cil managed
2829 call int32 Tests::return_1_noinline ()
2834 call int32 Tests::return_1_noinline ()
2842 .field public static int32 static_a
2844 .method public static
2845 default int32 test_4_ldfld_stfld_static () cil managed
2849 stfld int32 Tests::static_a
2851 ldfld int32 Tests::static_a
2853 ldflda int32 Tests::static_a
2859 .method public static default int32 no_initlocals_inner () cil managed
2865 valuetype Tests/TailCallStruct V_3)
2870 .method public static default int32 test_0_no_initlocals () cil managed
2872 call int32 Tests::no_initlocals_inner()
2878 .method public hidebysig static int32 test_5_r4_fadd_mixed() cil managed
2880 // Code size 17 (0x11)
2882 .locals init (float32 V_0,
2895 .method public hidebysig static int32 test_0_fcmp_eq_r4_mixed() cil managed
2897 // Code size 32 (0x20)
2899 .locals init (float32 V_0,
2907 IL_0013: bne.un IL_001e
2914 } // end of method Tests::test_0_fcmp_eq_r4_mixed
2916 .method public hidebysig static int32 test_0_fceq_r4_mixed() cil managed
2918 // Code size 31 (0x1f)
2920 .locals init (float32 V_0,
2932 IL_0012: brfalse IL_001d
2939 } // end of method Tests::test_0_fceq_r4
2941 .method public static int32 test_0_switch_loop () cil managed
2944 .locals init (valuetype Tests/TailCallStruct V_0, int32 V_1)
2957 .method public static int32 test_2_fault () cil managed
2960 .locals init (int32 V_0)
2967 IL_0002: newobj instance void [mscorlib]System.Exception::.ctor()
2979 IL_000f: leave.s IL_0018
2982 catch [mscorlib]System.Object
2989 IL_0016: leave.s IL_0018
2996 .method public static int32 test_0_fault_no_exception () cil managed
2999 .locals init (int32 V_0)
3016 IL_000f: leave.s IL_0018
3019 catch [mscorlib]System.Object
3026 IL_0016: leave.s IL_0018
3033 .field private static int32 byte_val
3034 .field private static int32 short_val
3036 .method static int32 widen_arguments (unsigned int8 a, int8 b, int16 c, unsigned int16 d) cil managed noinlining
3039 ldsfld int32 Tests::byte_val
3048 ldsfld int32 Tests::byte_val
3058 ldsfld int32 Tests::short_val
3061 ldc.i4 -32768 //-0x8000
3068 ldsfld int32 Tests::short_val
3071 ldc.i4 32768 //0x8000
3082 .method public static int32 test_0_implicit_widen_of_argument_stores () cil managed
3086 This test verifies that storing an I4 value from the evail stack into a local variable triggers proper widening.
3087 The values are picked so storing them have different values depending on the sign'ness of the local variable.
3090 stsfld int32 Tests::byte_val
3092 stsfld int32 Tests::short_val
3098 call int32 Tests::widen_arguments (unsigned int8 a, int8 b, int16 c, unsigned int16 d)
3102 .method public static int32 test_0_implicit_widen_of_local_stores () cil managed
3112 This test verifies that storing an I4 value from the evail stack into a local variable triggers proper widening.
3113 The values are picked so storing them have different values depending on the sign'ness of the local variable.
3116 stsfld int32 Tests::byte_val
3118 stsfld int32 Tests::short_val
3120 ldsfld int32 Tests::byte_val
3129 ldsfld int32 Tests::byte_val
3138 ldsfld int32 Tests::short_val
3141 ldc.i4 -32768 //-0x8000
3147 ldsfld int32 Tests::short_val
3150 ldc.i4 32768 //0x8000
3160 .method public static bool llvm_regress_59436 () {
3161 // Code size 41 (0x29)
3163 .locals init (float64 V_0,
3165 valuetype [mscorlib]System.Decimal V_2)
3171 IL_0015: newobj instance void [mscorlib]System.Decimal::.ctor(float64)
3172 IL_001a: ldloca.s V_2
3174 IL_001d: call instance void [mscorlib]System.Decimal::.ctor(float64)
3176 IL_0023: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal,
3177 valuetype [mscorlib]System.Decimal)
3181 .method private hidebysig static void fail_inline() cil managed
3183 // Code size 9 (0x9)
3185 IL_0000: ldc.i4.s 16
3194 .method private hidebysig static int32
3195 always_inline(int32 op) cil managed aggressiveinlining
3197 // Code size 24 (0x18)
3200 IL_0001: brfalse.s IL_0009
3204 IL_0005: beq.s IL_000b
3206 IL_0007: br.s IL_000d
3214 IL_000d: call void Tests::fail_inline()
3215 IL_0012: newobj instance void [mscorlib]System.Exception::.ctor()
3219 .method public hidebysig static int32 test_3_regress_59608() cil managed
3223 IL_0001: call int32 Tests::always_inline(int32)
3227 .method public hidebysig static int32 test_104_conv_u_and_string() cil managed
3232 call int32 [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::get_OffsetToStringData()
3238 .field public static class FLSharedKeys* keys
3240 .method public hidebysig static int32 test_0_regress_60634 () cil managed
3243 ldsflda class FLSharedKeys* Tests::keys
3244 initobj class FLSharedKeys*
3249 .method public hidebysig static int32 test_0_github_issue_6721 () cil managed
3257 ldc.i8 0xffffffff00000001
3266 .method public hidebysig static int32 test_3_github_issue_15794 () cil managed
3275 .method public hidebysig static int32 test_1_box_r8_r4_autoconv () cil managed
3289 .method public hidebysig static int32 test_1_dont_verify_ptr_byrefs () cil managed
3291 .locals init (int32 v_0, int32 *& v_1, int32 *v_2)
3297 //v_1 = &v_0 < bad store of `int32&` to ìnt32*&` but must work
3312 .method private hidebysig static valuetype [mscorlib]System.Nullable`1<int32> ret_some_vt(int32 val) cil managed
3316 newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::.ctor(!0)
3324 newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::.ctor(!0)
3332 newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::.ctor(!0)
3340 // https://github.com/mono/mono/issues/17924
3341 .method static public int32 test_0_vt_sp_tracking () cil managed
3344 .locals init (valuetype [mscorlib]System.Nullable`1<int32> V_0)
3347 call valuetype [mscorlib]System.Nullable`1<int32> Tests::ret_some_vt(int32)
3350 call instance !0 valuetype [mscorlib]System.Nullable`1<int32>::get_Value()
3362 .class nested private auto ansi beforefieldinit R1_class
3364 .field public int32 test_field
3366 .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed
3372 .method public hidebysig static int32 test_3_ldstloc_opt () cil managed
3375 class Tests/R1_class v_0,
3377 class Tests/R1_class v_2
3380 /* allocate first object */
3381 newobj instance void class Tests/R1_class::.ctor ()
3387 /* dead code for interp opt barrier */
3393 /* load first object on the stack */
3400 /* allocate second object */
3401 newobj instance void class Tests/R1_class::.ctor ()
3402 /* overwrite first object at loc0 with second object */
3405 /* should store '3' into first object.
3406 * in the buggy case it stores '3' into the second object because it delays the load from loc.0 */
3407 stfld int32 Tests/R1_class::test_field
3409 /* load first object on the stack */
3411 /* should read '3' */
3412 ldfld int32 Tests/R1_class::test_field
3416 .method public hidebysig static void ldstarg_opt_helper (Tests/R1_class a) cil managed
3420 /* allocate second object */
3421 newobj instance void class Tests/R1_class::.ctor ()
3424 /* stores '1' in the field */
3425 stfld int32 Tests/R1_class::test_field
3426 /* overwrite first argument */
3430 /* stores '3' in the field */
3431 stfld int32 Tests/R1_class::test_field /* might get fused with ldarg.0 at start of method */
3435 .method public hidebysig static int32 test_3_ldstarg_opt () cil managed
3437 /* allocate first object */
3438 newobj instance void class Tests/R1_class::.ctor ()
3441 /* stores '0x1337' in the field */
3442 stfld int32 Tests/R1_class::test_field
3445 /* passing first object */
3446 call void class Tests::ldstarg_opt_helper (Tests/R1_class)
3447 /* should read '3' from first object */
3448 ldfld int32 Tests/R1_class::test_field
3453 .method public hidebysig static int32 test_10_rconv_to_u8_ovf_un() cil managed
3455 // Code size 20 (0x14)
3457 .locals init (uint64 V_0,
3461 IL_0001: ldc.i4.s 10
3470 IL_000b: conv.ovf.u8.un
3473 IL_000e: conv.ovf.i4.un
3475 IL_0010: br.s IL_0012
3479 } // end of method Tests::test_10_rconv_to_u8_ovf_un
3481 .field private static int64 TestLong
3483 /* Disabled until its fixed on i386
3484 .method public static int32 test_1_stsfld_conv () cil managed
3487 stsfld int64 Tests::TestLong
3488 ldsfld int64 Tests::TestLong
3495 .method public hidebysig static string cmov_try_block_helper (string s) cil managed noinlining
3497 // Code size 43 (0x2b)
3499 .locals init (bool V_0, string V_1)
3502 IL_0002: callvirt instance int32 [mscorlib]System.String::get_Length()
3507 IL_000c: brfalse.s IL_0016
3509 IL_000e: ldstr "Empty"
3511 IL_0014: br.s IL_0029
3519 IL_001a: leave.s IL_0029
3521 catch [mscorlib]System.Exception
3526 IL_001f: leave.s IL_0021
3528 IL_0021: ldstr "Should not happen"
3530 IL_0027: br.s IL_0029
3536 .method public hidebysig static int32 test_1_cmov_try_block() cil managed
3538 // Code size 37 (0x25)
3540 .locals init (string V_0, bool V_1, int32 V_2)
3542 IL_0001: ldstr "abc"
3543 IL_0006: call string Tests::cmov_try_block_helper(string)
3544 IL_000d: ldstr "abc"
3545 IL_0012: call bool [mscorlib]System.String::op_Equality(string,string)
3546 IL_0019: brfalse.s IL_001f
3550 IL_001d: br.s IL_0023
3554 IL_0021: br.s IL_0023
3560 .method private hidebysig static int32 validate_alloc_array_length_lbound(class [mscorlib]System.Array test_array) cil managed
3562 // Code size 88 (0x58)
3564 .locals init ([0] bool V_0, [1] int32 V_1, [2] bool V_2, [3] bool V_3, [4] bool V_4)
3567 IL_0002: callvirt instance int32 [mscorlib]System.Array::get_Length()
3574 IL_000f: brfalse.s IL_0015
3577 IL_0013: br.s IL_0056
3579 IL_0016: callvirt instance int32 [mscorlib]System.Array::get_Rank()
3586 IL_0023: brfalse.s IL_0029
3589 IL_0027: br.s IL_0056
3592 IL_002b: callvirt instance int32 [mscorlib]System.Array::GetLowerBound(int32)
3593 IL_0030: ldc.i4 0x2710
3597 IL_0035: brfalse.s IL_003b
3600 IL_0039: br.s IL_0056
3603 IL_003d: callvirt instance int32 [mscorlib]System.Array::GetUpperBound(int32)
3604 IL_0042: ldc.i4 0x2715
3608 IL_0048: stloc.s V_4
3609 IL_004a: ldloc.s V_4
3610 IL_004c: brfalse.s IL_0052
3613 IL_0050: br.s IL_0056
3616 IL_0054: br.s IL_0056
3621 .method public hidebysig static int32 test_0_alloc_array_int16_length_lbound() cil managed
3624 .locals init ([0] int16[] test_array, [1] int32 V_1)
3627 newobj instance void int16[10000...10005]::.ctor(int32, int32)
3628 call int32 class Tests::validate_alloc_array_length_lbound(class [mscorlib]System.Array)
3632 .method public hidebysig static int32 test_0_alloc_array_int32_length_lbound() cil managed
3635 .locals init ([0] int32[] test_array, [1] int32 V_1)
3638 newobj instance void int32[10000...10005]::.ctor(int32, int32)
3639 call int32 class Tests::validate_alloc_array_length_lbound(class [mscorlib]System.Array)
3643 .method public hidebysig static int32 test_0_alloc_array_int64_length_lbound() cil managed
3646 .locals init ([0] int64[] test_array, [1] int32 V_1)
3649 newobj instance void int64[10000...10005]::.ctor(int32, int32)
3650 call int32 class Tests::validate_alloc_array_length_lbound(class [mscorlib]System.Array)
3654 .method public hidebysig static int32 test_0_alloc_array_float32_length_lbound() cil managed
3657 .locals init ([0] float32[] test_array, [1] int32 V_1)
3660 newobj instance void float32[10000...10005]::.ctor(int32, int32)
3661 call int32 class Tests::validate_alloc_array_length_lbound(class [mscorlib]System.Array)
3665 .method public hidebysig static int32 test_0_alloc_array_float64_length_lbound() cil managed
3668 .locals init ([0] float64[] test_array, [1] int32 V_1)
3671 newobj instance void float64[10000...10005]::.ctor(int32, int32)
3672 call int32 class Tests::validate_alloc_array_length_lbound(class [mscorlib]System.Array)
3676 .method private hidebysig static int32 test_0_two_dimensional_array_bounds() cil managed
3679 .locals init (int32[,] arr)
3684 newobj instance void int32[,]::.ctor(int32, int32, int32, int32)
3690 callvirt instance int32 [mscorlib]System.Array::GetLowerBound(int32)
3698 callvirt instance int32 [mscorlib]System.Array::GetUpperBound(int32)
3706 callvirt instance int32 [mscorlib]System.Array::GetLowerBound(int32)
3714 callvirt instance int32 [mscorlib]System.Array::GetUpperBound(int32)
3724 call instance void int32[,]::Set(int32, int32, int32)
3728 call instance int32 int32[,]::Get(int32, int32)
3738 call instance void int32[,]::Set(int32, int32, int32)
3742 call instance int32 int32[,]::Get(int32, int32)
3752 .method private hidebysig static int32 test_0_five_dimensional_array() cil managed
3755 .locals init (int32[,,,,] arr)
3766 newobj instance void int32[,,,,]::.ctor(
3767 int32, int32, int32, int32, int32, int32,
3768 int32, int32, int32, int32)
3774 callvirt instance int32 [mscorlib]System.Array::GetLowerBound(int32)
3782 callvirt instance int32 [mscorlib]System.Array::GetUpperBound(int32)
3790 callvirt instance int32 [mscorlib]System.Array::GetLowerBound(int32)
3798 callvirt instance int32 [mscorlib]System.Array::GetUpperBound(int32)
3811 call instance void int32[,,,,]::Set(int32, int32, int32, int32, int32, int32)
3818 call instance int32 int32[,,,,]::Get(int32, int32, int32, int32, int32)
3831 call instance void int32[,,,,]::Set(int32, int32, int32, int32, int32, int32)
3838 call instance int32 int32[,,,,]::Get(int32, int32, int32, int32, int32)
3848 .method public hidebysig static !!T createinstance_intrins_primitive<.ctor T>() cil managed noinlining
3851 call !!0 [mscorlib]System.Activator::CreateInstance<!!0>()
3855 .method public static int32 test_0_createinstance_intrins_primitive () cil managed
3858 call !!0 Tests::createinstance_intrins_primitive<bool>()
3864 call !!0 Tests::createinstance_intrins_primitive<int64>()