Skip to content

Commit 88aec91

Browse files
committed
Add i128 tests for intrinsics
1 parent 24fb4b7 commit 88aec91

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/test/run-pass/intrinsics-integer.rs

+26-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(intrinsics)]
11+
#![feature(intrinsics, i128_type)]
1212

1313
mod rusti {
1414
extern "rust-intrinsic" {
@@ -30,106 +30,127 @@ pub fn main() {
3030
assert_eq!(ctpop(0u16), 0); assert_eq!(ctpop(0i16), 0);
3131
assert_eq!(ctpop(0u32), 0); assert_eq!(ctpop(0i32), 0);
3232
assert_eq!(ctpop(0u64), 0); assert_eq!(ctpop(0i64), 0);
33+
assert_eq!(ctpop(0u128), 0); assert_eq!(ctpop(0i128), 0);
3334

3435
assert_eq!(ctpop(1u8), 1); assert_eq!(ctpop(1i8), 1);
3536
assert_eq!(ctpop(1u16), 1); assert_eq!(ctpop(1i16), 1);
3637
assert_eq!(ctpop(1u32), 1); assert_eq!(ctpop(1i32), 1);
3738
assert_eq!(ctpop(1u64), 1); assert_eq!(ctpop(1i64), 1);
39+
assert_eq!(ctpop(1u128), 1); assert_eq!(ctpop(1i128), 1);
3840

3941
assert_eq!(ctpop(10u8), 2); assert_eq!(ctpop(10i8), 2);
4042
assert_eq!(ctpop(10u16), 2); assert_eq!(ctpop(10i16), 2);
4143
assert_eq!(ctpop(10u32), 2); assert_eq!(ctpop(10i32), 2);
4244
assert_eq!(ctpop(10u64), 2); assert_eq!(ctpop(10i64), 2);
45+
assert_eq!(ctpop(10u128), 2); assert_eq!(ctpop(10i128), 2);
4346

4447
assert_eq!(ctpop(100u8), 3); assert_eq!(ctpop(100i8), 3);
4548
assert_eq!(ctpop(100u16), 3); assert_eq!(ctpop(100i16), 3);
4649
assert_eq!(ctpop(100u32), 3); assert_eq!(ctpop(100i32), 3);
4750
assert_eq!(ctpop(100u64), 3); assert_eq!(ctpop(100i64), 3);
51+
assert_eq!(ctpop(100u128), 3); assert_eq!(ctpop(100i128), 3);
4852

4953
assert_eq!(ctpop(-1i8 as u8), 8); assert_eq!(ctpop(-1i8), 8);
5054
assert_eq!(ctpop(-1i16 as u16), 16); assert_eq!(ctpop(-1i16), 16);
5155
assert_eq!(ctpop(-1i32 as u32), 32); assert_eq!(ctpop(-1i32), 32);
5256
assert_eq!(ctpop(-1i64 as u64), 64); assert_eq!(ctpop(-1i64), 64);
57+
assert_eq!(ctpop(-1i128 as u128), 128); assert_eq!(ctpop(-1i128), 128);
5358

5459
assert_eq!(ctlz(0u8), 8); assert_eq!(ctlz(0i8), 8);
5560
assert_eq!(ctlz(0u16), 16); assert_eq!(ctlz(0i16), 16);
5661
assert_eq!(ctlz(0u32), 32); assert_eq!(ctlz(0i32), 32);
5762
assert_eq!(ctlz(0u64), 64); assert_eq!(ctlz(0i64), 64);
63+
assert_eq!(ctlz(0u128), 128); assert_eq!(ctlz(0i128), 128);
5864

5965
assert_eq!(ctlz(1u8), 7); assert_eq!(ctlz(1i8), 7);
6066
assert_eq!(ctlz(1u16), 15); assert_eq!(ctlz(1i16), 15);
6167
assert_eq!(ctlz(1u32), 31); assert_eq!(ctlz(1i32), 31);
6268
assert_eq!(ctlz(1u64), 63); assert_eq!(ctlz(1i64), 63);
69+
assert_eq!(ctlz(1u128), 127); assert_eq!(ctlz(1i128), 127);
6370

6471
assert_eq!(ctlz(10u8), 4); assert_eq!(ctlz(10i8), 4);
6572
assert_eq!(ctlz(10u16), 12); assert_eq!(ctlz(10i16), 12);
6673
assert_eq!(ctlz(10u32), 28); assert_eq!(ctlz(10i32), 28);
6774
assert_eq!(ctlz(10u64), 60); assert_eq!(ctlz(10i64), 60);
75+
assert_eq!(ctlz(10u128), 124); assert_eq!(ctlz(10i128), 124);
6876

6977
assert_eq!(ctlz(100u8), 1); assert_eq!(ctlz(100i8), 1);
7078
assert_eq!(ctlz(100u16), 9); assert_eq!(ctlz(100i16), 9);
7179
assert_eq!(ctlz(100u32), 25); assert_eq!(ctlz(100i32), 25);
7280
assert_eq!(ctlz(100u64), 57); assert_eq!(ctlz(100i64), 57);
81+
assert_eq!(ctlz(100u128), 121); assert_eq!(ctlz(100i128), 121);
7382

7483
assert_eq!(ctlz_nonzero(1u8), 7); assert_eq!(ctlz_nonzero(1i8), 7);
7584
assert_eq!(ctlz_nonzero(1u16), 15); assert_eq!(ctlz_nonzero(1i16), 15);
7685
assert_eq!(ctlz_nonzero(1u32), 31); assert_eq!(ctlz_nonzero(1i32), 31);
7786
assert_eq!(ctlz_nonzero(1u64), 63); assert_eq!(ctlz_nonzero(1i64), 63);
87+
assert_eq!(ctlz_nonzero(1u128), 127); assert_eq!(ctlz_nonzero(1i128), 127);
7888

7989
assert_eq!(ctlz_nonzero(10u8), 4); assert_eq!(ctlz_nonzero(10i8), 4);
8090
assert_eq!(ctlz_nonzero(10u16), 12); assert_eq!(ctlz_nonzero(10i16), 12);
8191
assert_eq!(ctlz_nonzero(10u32), 28); assert_eq!(ctlz_nonzero(10i32), 28);
8292
assert_eq!(ctlz_nonzero(10u64), 60); assert_eq!(ctlz_nonzero(10i64), 60);
93+
assert_eq!(ctlz_nonzero(10u128), 124); assert_eq!(ctlz_nonzero(10i128), 124);
8394

8495
assert_eq!(ctlz_nonzero(100u8), 1); assert_eq!(ctlz_nonzero(100i8), 1);
8596
assert_eq!(ctlz_nonzero(100u16), 9); assert_eq!(ctlz_nonzero(100i16), 9);
8697
assert_eq!(ctlz_nonzero(100u32), 25); assert_eq!(ctlz_nonzero(100i32), 25);
8798
assert_eq!(ctlz_nonzero(100u64), 57); assert_eq!(ctlz_nonzero(100i64), 57);
99+
assert_eq!(ctlz_nonzero(100u128), 121); assert_eq!(ctlz_nonzero(100i128), 121);
88100

89101
assert_eq!(cttz(-1i8 as u8), 0); assert_eq!(cttz(-1i8), 0);
90102
assert_eq!(cttz(-1i16 as u16), 0); assert_eq!(cttz(-1i16), 0);
91103
assert_eq!(cttz(-1i32 as u32), 0); assert_eq!(cttz(-1i32), 0);
92104
assert_eq!(cttz(-1i64 as u64), 0); assert_eq!(cttz(-1i64), 0);
105+
assert_eq!(cttz(-1i128 as u128), 0); assert_eq!(cttz(-1i128), 0);
93106

94107
assert_eq!(cttz(0u8), 8); assert_eq!(cttz(0i8), 8);
95108
assert_eq!(cttz(0u16), 16); assert_eq!(cttz(0i16), 16);
96109
assert_eq!(cttz(0u32), 32); assert_eq!(cttz(0i32), 32);
97110
assert_eq!(cttz(0u64), 64); assert_eq!(cttz(0i64), 64);
111+
assert_eq!(cttz(0u128), 128); assert_eq!(cttz(0i128), 128);
98112

99113
assert_eq!(cttz(1u8), 0); assert_eq!(cttz(1i8), 0);
100114
assert_eq!(cttz(1u16), 0); assert_eq!(cttz(1i16), 0);
101115
assert_eq!(cttz(1u32), 0); assert_eq!(cttz(1i32), 0);
102116
assert_eq!(cttz(1u64), 0); assert_eq!(cttz(1i64), 0);
117+
assert_eq!(cttz(1u128), 0); assert_eq!(cttz(1i128), 0);
103118

104119
assert_eq!(cttz(10u8), 1); assert_eq!(cttz(10i8), 1);
105120
assert_eq!(cttz(10u16), 1); assert_eq!(cttz(10i16), 1);
106121
assert_eq!(cttz(10u32), 1); assert_eq!(cttz(10i32), 1);
107122
assert_eq!(cttz(10u64), 1); assert_eq!(cttz(10i64), 1);
123+
assert_eq!(cttz(10u128), 1); assert_eq!(cttz(10i128), 1);
108124

109125
assert_eq!(cttz(100u8), 2); assert_eq!(cttz(100i8), 2);
110126
assert_eq!(cttz(100u16), 2); assert_eq!(cttz(100i16), 2);
111127
assert_eq!(cttz(100u32), 2); assert_eq!(cttz(100i32), 2);
112128
assert_eq!(cttz(100u64), 2); assert_eq!(cttz(100i64), 2);
129+
assert_eq!(cttz(100u128), 2); assert_eq!(cttz(100i128), 2);
113130

114131
assert_eq!(cttz_nonzero(-1i8 as u8), 0); assert_eq!(cttz_nonzero(-1i8), 0);
115132
assert_eq!(cttz_nonzero(-1i16 as u16), 0); assert_eq!(cttz_nonzero(-1i16), 0);
116133
assert_eq!(cttz_nonzero(-1i32 as u32), 0); assert_eq!(cttz_nonzero(-1i32), 0);
117134
assert_eq!(cttz_nonzero(-1i64 as u64), 0); assert_eq!(cttz_nonzero(-1i64), 0);
135+
assert_eq!(cttz_nonzero(-1i128 as u128), 0); assert_eq!(cttz_nonzero(-1i128), 0);
118136

119137
assert_eq!(cttz_nonzero(1u8), 0); assert_eq!(cttz_nonzero(1i8), 0);
120138
assert_eq!(cttz_nonzero(1u16), 0); assert_eq!(cttz_nonzero(1i16), 0);
121139
assert_eq!(cttz_nonzero(1u32), 0); assert_eq!(cttz_nonzero(1i32), 0);
122140
assert_eq!(cttz_nonzero(1u64), 0); assert_eq!(cttz_nonzero(1i64), 0);
141+
assert_eq!(cttz_nonzero(1u128), 0); assert_eq!(cttz_nonzero(1i128), 0);
123142

124143
assert_eq!(cttz_nonzero(10u8), 1); assert_eq!(cttz_nonzero(10i8), 1);
125144
assert_eq!(cttz_nonzero(10u16), 1); assert_eq!(cttz_nonzero(10i16), 1);
126145
assert_eq!(cttz_nonzero(10u32), 1); assert_eq!(cttz_nonzero(10i32), 1);
127146
assert_eq!(cttz_nonzero(10u64), 1); assert_eq!(cttz_nonzero(10i64), 1);
147+
assert_eq!(cttz_nonzero(10u128), 1); assert_eq!(cttz_nonzero(10i128), 1);
128148

129149
assert_eq!(cttz_nonzero(100u8), 2); assert_eq!(cttz_nonzero(100i8), 2);
130150
assert_eq!(cttz_nonzero(100u16), 2); assert_eq!(cttz_nonzero(100i16), 2);
131151
assert_eq!(cttz_nonzero(100u32), 2); assert_eq!(cttz_nonzero(100i32), 2);
132152
assert_eq!(cttz_nonzero(100u64), 2); assert_eq!(cttz_nonzero(100i64), 2);
153+
assert_eq!(cttz_nonzero(100u128), 2); assert_eq!(cttz_nonzero(100i128), 2);
133154

134155
assert_eq!(bswap(0x0Au8), 0x0A); // no-op
135156
assert_eq!(bswap(0x0Ai8), 0x0A); // no-op
@@ -139,6 +160,8 @@ pub fn main() {
139160
assert_eq!(bswap(0x0ABBCC0Di32), 0x0DCCBB0A);
140161
assert_eq!(bswap(0x0122334455667708u64), 0x0877665544332201);
141162
assert_eq!(bswap(0x0122334455667708i64), 0x0877665544332201);
163+
assert_eq!(bswap(0x0122334455667708u128), 0x08776655443322010000000000000000);
164+
assert_eq!(bswap(0x0122334455667708i128), 0x08776655443322010000000000000000);
142165

143166
assert_eq!(bitreverse(0x0Au8), 0x50);
144167
assert_eq!(bitreverse(0x0Ai8), 0x50);
@@ -148,5 +171,7 @@ pub fn main() {
148171
assert_eq!(bitreverse(0x0ABBCC0Ei32), 0x7033DD50);
149172
assert_eq!(bitreverse(0x0122334455667708u64), 0x10EE66AA22CC4480);
150173
assert_eq!(bitreverse(0x0122334455667708i64), 0x10EE66AA22CC4480);
174+
assert_eq!(bitreverse(0x0122334455667708u128), 0x10EE66AA22CC44800000000000000000);
175+
assert_eq!(bitreverse(0x0122334455667708i128), 0x10EE66AA22CC44800000000000000000);
151176
}
152177
}

0 commit comments

Comments
 (0)