1313#![ feature( i128_type) ]
1414#![ feature( lang_items) ]
1515
16- #[ lang="i128_div" ]
17- fn i128_div ( _x : i128 , _y : i128 ) -> i128 { 3 }
18- #[ lang="u128_div" ]
19- fn u128_div ( _x : u128 , _y : u128 ) -> u128 { 4 }
20- #[ lang="i128_rem" ]
21- fn i128_rem ( _x : i128 , _y : i128 ) -> i128 { 5 }
22- #[ lang="u128_rem" ]
23- fn u128_rem ( _x : u128 , _y : u128 ) -> u128 { 6 }
24-
25- #[ lang="i128_addo" ]
26- fn i128_addo ( _x : i128 , _y : i128 ) -> ( i128 , bool ) { ( 0 , false ) }
27- #[ lang="u128_addo" ]
28- fn u128_addo ( _x : u128 , _y : u128 ) -> ( u128 , bool ) { ( 1 , false ) }
29- #[ lang="i128_subo" ]
30- fn i128_subo ( _x : i128 , _y : i128 ) -> ( i128 , bool ) { ( 2 , false ) }
31- #[ lang="u128_subo" ]
32- fn u128_subo ( _x : u128 , _y : u128 ) -> ( u128 , bool ) { ( 3 , false ) }
33- #[ lang="i128_mulo" ]
34- fn i128_mulo ( _x : i128 , _y : i128 ) -> ( i128 , bool ) { ( 4 , false ) }
35- #[ lang="u128_mulo" ]
36- fn u128_mulo ( _x : u128 , _y : u128 ) -> ( u128 , bool ) { ( 5 , false ) }
37- #[ lang="i128_shlo" ]
38- fn i128_shlo ( _x : i128 , _y : u128 ) -> ( i128 , bool ) { ( 6 , false ) }
39- #[ lang="u128_shlo" ]
40- fn u128_shlo ( _x : u128 , _y : u128 ) -> ( u128 , bool ) { ( 6 , false ) }
41- #[ lang="i128_shro" ]
42- fn i128_shro ( _x : i128 , _y : u128 ) -> ( i128 , bool ) { ( 7 , false ) }
43- #[ lang="u128_shro" ]
44- fn u128_shro ( _x : u128 , _y : u128 ) -> ( u128 , bool ) { ( 8 , false ) }
45-
4616fn test_signed ( mut x : i128 ) -> i128 {
4717 x += 1 ;
4818 x -= 2 ;
@@ -66,31 +36,31 @@ fn test_unsigned(mut x: u128) -> u128 {
6636}
6737
6838fn main ( ) {
69- test_signed ( -200 ) ;
70- test_unsigned ( 200 ) ;
39+ assert_eq ! ( test_signed( -222 ) , - 1 ) ;
40+ assert_eq ! ( test_unsigned( 200 ) , 2 ) ;
7141}
7242
7343// END RUST SOURCE
7444
7545// START rustc.test_signed.Lower128Bit.after.mir
76- // _2 = const i128_addo (_1, const 1i128) -> bb10;
46+ // _2 = const compiler_builtins::int::addsub::rust_i128_addo (_1, const 1i128) -> bb10;
7747// ...
7848// _1 = move (_2.0: i128);
79- // _3 = const i128_subo (_1, const 2i128) -> bb11;
49+ // _3 = const compiler_builtins::int::addsub::rust_i128_subo (_1, const 2i128) -> bb11;
8050// ...
8151// _1 = move (_3.0: i128);
82- // _4 = const i128_mulo (_1, const 3i128) -> bb12;
52+ // _4 = const compiler_builtins::int::mul::rust_i128_mulo (_1, const 3i128) -> bb12;
8353// ...
8454// _1 = move (_4.0: i128);
8555// ...
86- // _1 = const i128_div (_1, const 4i128) -> bb13;
56+ // _1 = const compiler_builtins::int::sdiv::rust_i128_div (_1, const 4i128) -> bb13;
8757// ...
88- // _1 = const i128_rem (_1, const 5i128) -> bb15;
58+ // _1 = const compiler_builtins::int::sdiv::rust_i128_rem (_1, const 5i128) -> bb15;
8959// ...
9060// _1 = move (_13.0: i128);
9161// ...
9262// _17 = const 7i32 as u128 (Misc);
93- // _14 = const i128_shro (_1, move _17) -> bb16;
63+ // _14 = const compiler_builtins::int::shift::rust_i128_shro (_1, move _17) -> bb16;
9464// ...
9565// _1 = move (_14.0: i128);
9666// ...
@@ -103,30 +73,30 @@ fn main() {
10373// assert(!move (_13.1: bool), "attempt to shift left with overflow") -> bb8;
10474// ...
10575// _16 = const 6i32 as u128 (Misc);
106- // _13 = const i128_shlo (_1, move _16) -> bb14;
76+ // _13 = const compiler_builtins::int::shift::rust_i128_shlo (_1, move _16) -> bb14;
10777// ...
10878// assert(!move (_14.1: bool), "attempt to shift right with overflow") -> bb9;
10979// END rustc.test_signed.Lower128Bit.after.mir
11080
11181// START rustc.test_unsigned.Lower128Bit.after.mir
112- // _2 = const u128_addo (_1, const 1u128) -> bb8;
82+ // _2 = const compiler_builtins::int::addsub::rust_u128_addo (_1, const 1u128) -> bb8;
11383// ...
11484// _1 = move (_2.0: u128);
115- // _3 = const u128_subo (_1, const 2u128) -> bb9;
85+ // _3 = const compiler_builtins::int::addsub::rust_u128_subo (_1, const 2u128) -> bb9;
11686// ...
11787// _1 = move (_3.0: u128);
118- // _4 = const u128_mulo (_1, const 3u128) -> bb10;
88+ // _4 = const compiler_builtins::int::mul::rust_u128_mulo (_1, const 3u128) -> bb10;
11989// ...
12090// _1 = move (_4.0: u128);
12191// ...
122- // _1 = const u128_div (_1, const 4u128) -> bb11;
92+ // _1 = const compiler_builtins::int::udiv::rust_u128_div (_1, const 4u128) -> bb11;
12393// ...
124- // _1 = const u128_rem (_1, const 5u128) -> bb13;
94+ // _1 = const compiler_builtins::int::udiv::rust_u128_rem (_1, const 5u128) -> bb13;
12595// ...
12696// _1 = move (_7.0: u128);
12797// ...
12898// _11 = const 7i32 as u128 (Misc);
129- // _8 = const u128_shro (_1, move _11) -> bb14;
99+ // _8 = const compiler_builtins::int::shift::rust_u128_shro (_1, move _11) -> bb14;
130100// ...
131101// _1 = move (_8.0: u128);
132102// ...
@@ -139,7 +109,7 @@ fn main() {
139109// assert(!move (_7.1: bool), "attempt to shift left with overflow") -> bb6;
140110// ...
141111// _10 = const 6i32 as u128 (Misc);
142- // _7 = const u128_shlo (_1, move _10) -> bb12;
112+ // _7 = const compiler_builtins::int::shift::rust_u128_shlo (_1, move _10) -> bb12;
143113// ...
144114// assert(!move (_8.1: bool), "attempt to shift right with overflow") -> bb7;
145115// END rustc.test_unsigned.Lower128Bit.after.mir
0 commit comments