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