13
13
#![ feature( i128_type) ]
14
14
#![ feature( lang_items) ]
15
15
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
-
46
16
fn test_signed ( mut x : i128 ) -> i128 {
47
17
x += 1 ;
48
18
x -= 2 ;
@@ -66,31 +36,31 @@ fn test_unsigned(mut x: u128) -> u128 {
66
36
}
67
37
68
38
fn main ( ) {
69
- test_signed ( -200 ) ;
70
- test_unsigned ( 200 ) ;
39
+ assert_eq ! ( test_signed( -222 ) , - 1 ) ;
40
+ assert_eq ! ( test_unsigned( 200 ) , 2 ) ;
71
41
}
72
42
73
43
// END RUST SOURCE
74
44
75
45
// 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;
77
47
// ...
78
48
// _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;
80
50
// ...
81
51
// _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;
83
53
// ...
84
54
// _1 = move (_4.0: i128);
85
55
// ...
86
- // _1 = const i128_div (_1, const 4i128) -> bb13;
56
+ // _1 = const compiler_builtins::int::sdiv::rust_i128_div (_1, const 4i128) -> bb13;
87
57
// ...
88
- // _1 = const i128_rem (_1, const 5i128) -> bb15;
58
+ // _1 = const compiler_builtins::int::sdiv::rust_i128_rem (_1, const 5i128) -> bb15;
89
59
// ...
90
60
// _1 = move (_13.0: i128);
91
61
// ...
92
62
// _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;
94
64
// ...
95
65
// _1 = move (_14.0: i128);
96
66
// ...
@@ -103,30 +73,30 @@ fn main() {
103
73
// assert(!move (_13.1: bool), "attempt to shift left with overflow") -> bb8;
104
74
// ...
105
75
// _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;
107
77
// ...
108
78
// assert(!move (_14.1: bool), "attempt to shift right with overflow") -> bb9;
109
79
// END rustc.test_signed.Lower128Bit.after.mir
110
80
111
81
// 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;
113
83
// ...
114
84
// _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;
116
86
// ...
117
87
// _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;
119
89
// ...
120
90
// _1 = move (_4.0: u128);
121
91
// ...
122
- // _1 = const u128_div (_1, const 4u128) -> bb11;
92
+ // _1 = const compiler_builtins::int::udiv::rust_u128_div (_1, const 4u128) -> bb11;
123
93
// ...
124
- // _1 = const u128_rem (_1, const 5u128) -> bb13;
94
+ // _1 = const compiler_builtins::int::udiv::rust_u128_rem (_1, const 5u128) -> bb13;
125
95
// ...
126
96
// _1 = move (_7.0: u128);
127
97
// ...
128
98
// _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;
130
100
// ...
131
101
// _1 = move (_8.0: u128);
132
102
// ...
@@ -139,7 +109,7 @@ fn main() {
139
109
// assert(!move (_7.1: bool), "attempt to shift left with overflow") -> bb6;
140
110
// ...
141
111
// _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;
143
113
// ...
144
114
// assert(!move (_8.1: bool), "attempt to shift right with overflow") -> bb7;
145
115
// END rustc.test_unsigned.Lower128Bit.after.mir
0 commit comments