@@ -4,9 +4,8 @@ use super::*;
4
4
fn size_of ( ) {
5
5
check_number (
6
6
r#"
7
- extern "rust-intrinsic" {
8
- pub fn size_of<T>() -> usize;
9
- }
7
+ #[rustc_intrinsic]
8
+ pub fn size_of<T>() -> usize;
10
9
11
10
const GOAL: usize = size_of::<i32>();
12
11
"# ,
@@ -19,9 +18,8 @@ fn size_of_val() {
19
18
check_number (
20
19
r#"
21
20
//- minicore: coerce_unsized
22
- extern "rust-intrinsic" {
23
- pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
24
- }
21
+ #[rustc_intrinsic]
22
+ pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
25
23
26
24
struct X(i32, u8);
27
25
@@ -32,9 +30,8 @@ fn size_of_val() {
32
30
check_number (
33
31
r#"
34
32
//- minicore: coerce_unsized
35
- extern "rust-intrinsic" {
36
- pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
37
- }
33
+ #[rustc_intrinsic]
34
+ pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
38
35
39
36
const GOAL: usize = {
40
37
let it: &[i32] = &[1, 2, 3];
@@ -48,9 +45,8 @@ fn size_of_val() {
48
45
//- minicore: coerce_unsized, transmute
49
46
use core::mem::transmute;
50
47
51
- extern "rust-intrinsic" {
52
- pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
53
- }
48
+ #[rustc_intrinsic]
49
+ pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
54
50
55
51
struct X {
56
52
x: i64,
@@ -70,9 +66,8 @@ fn size_of_val() {
70
66
//- minicore: coerce_unsized, transmute
71
67
use core::mem::transmute;
72
68
73
- extern "rust-intrinsic" {
74
- pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
75
- }
69
+ #[rustc_intrinsic]
70
+ pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
76
71
77
72
struct X {
78
73
x: i32,
@@ -90,9 +85,8 @@ fn size_of_val() {
90
85
check_number (
91
86
r#"
92
87
//- minicore: coerce_unsized, fmt, builtin_impls, dispatch_from_dyn
93
- extern "rust-intrinsic" {
94
- pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
95
- }
88
+ #[rustc_intrinsic]
89
+ pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
96
90
97
91
const GOAL: usize = {
98
92
let x: &i16 = &5;
@@ -106,9 +100,8 @@ fn size_of_val() {
106
100
check_number (
107
101
r#"
108
102
//- minicore: coerce_unsized
109
- extern "rust-intrinsic" {
110
- pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
111
- }
103
+ #[rustc_intrinsic]
104
+ pub fn size_of_val<T: ?Sized>(_: *const T) -> usize;
112
105
113
106
const GOAL: usize = {
114
107
size_of_val("salam")
@@ -123,9 +116,8 @@ fn min_align_of_val() {
123
116
check_number (
124
117
r#"
125
118
//- minicore: coerce_unsized
126
- extern "rust-intrinsic" {
127
- pub fn min_align_of_val<T: ?Sized>(_: *const T) -> usize;
128
- }
119
+ #[rustc_intrinsic]
120
+ pub fn min_align_of_val<T: ?Sized>(_: *const T) -> usize;
129
121
130
122
struct X(i32, u8);
131
123
@@ -136,9 +128,8 @@ fn min_align_of_val() {
136
128
check_number (
137
129
r#"
138
130
//- minicore: coerce_unsized
139
- extern "rust-intrinsic" {
140
- pub fn min_align_of_val<T: ?Sized>(_: *const T) -> usize;
141
- }
131
+ #[rustc_intrinsic]
132
+ pub fn min_align_of_val<T: ?Sized>(_: *const T) -> usize;
142
133
143
134
const GOAL: usize = {
144
135
let x: &[i32] = &[1, 2, 3];
@@ -153,19 +144,17 @@ fn min_align_of_val() {
153
144
fn type_name ( ) {
154
145
check_str (
155
146
r#"
156
- extern "rust-intrinsic" {
157
- pub fn type_name<T: ?Sized>() -> &'static str;
158
- }
147
+ #[rustc_intrinsic]
148
+ pub fn type_name<T: ?Sized>() -> &'static str;
159
149
160
150
const GOAL: &str = type_name::<i32>();
161
151
"# ,
162
152
"i32" ,
163
153
) ;
164
154
check_str (
165
155
r#"
166
- extern "rust-intrinsic" {
167
- pub fn type_name<T: ?Sized>() -> &'static str;
168
- }
156
+ #[rustc_intrinsic]
157
+ pub fn type_name<T: ?Sized>() -> &'static str;
169
158
170
159
mod mod1 {
171
160
pub mod mod2 {
@@ -183,9 +172,8 @@ fn type_name() {
183
172
fn transmute ( ) {
184
173
check_number (
185
174
r#"
186
- extern "rust-intrinsic" {
187
- pub fn transmute<T, U>(e: T) -> U;
188
- }
175
+ #[rustc_intrinsic]
176
+ pub fn transmute<T, U>(e: T) -> U;
189
177
190
178
const GOAL: i32 = transmute((1i16, 1i16));
191
179
"# ,
@@ -197,10 +185,10 @@ fn transmute() {
197
185
fn read_via_copy ( ) {
198
186
check_number (
199
187
r#"
200
- extern "rust-intrinsic" {
201
- pub fn read_via_copy<T>(e: *const T) -> T;
202
- pub fn volatile_load<T>(e: *const T) -> T;
203
- }
188
+ #[rustc_intrinsic]
189
+ pub fn read_via_copy<T>(e: *const T) -> T;
190
+ #[rustc_intrinsic]
191
+ pub fn volatile_load<T>(e: *const T) -> T;
204
192
205
193
const GOAL: i32 = {
206
194
let x = 2;
@@ -399,9 +387,14 @@ fn discriminant_value() {
399
387
fn likely ( ) {
400
388
check_number (
401
389
r#"
402
- extern "rust-intrinsic" {
403
- pub fn likely(b: bool) -> bool;
404
- pub fn unlikely(b: bool) -> bool;
390
+ #[rustc_intrinsic]
391
+ pub const fn likely(b: bool) -> bool {
392
+ b
393
+ }
394
+
395
+ #[rustc_intrinsic]
396
+ pub const fn unlikely(b: bool) -> bool {
397
+ b
405
398
}
406
399
407
400
const GOAL: bool = likely(true) && unlikely(true) && !likely(false) && !unlikely(false);
@@ -704,9 +697,8 @@ fn rotate() {
704
697
) ;
705
698
check_number (
706
699
r#"
707
- extern "rust-intrinsic" {
708
- pub fn rotate_right<T: Copy>(x: T, y: T) -> T;
709
- }
700
+ #[rustc_intrinsic]
701
+ pub fn rotate_right<T: Copy>(x: T, y: T) -> T;
710
702
711
703
const GOAL: i32 = rotate_right(10006016, 1020315);
712
704
"# ,
@@ -721,9 +713,8 @@ fn simd() {
721
713
pub struct i8x16(
722
714
i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,
723
715
);
724
- extern "platform-intrinsic" {
725
- pub fn simd_bitmask<T, U>(x: T) -> U;
726
- }
716
+ #[rustc_intrinsic]
717
+ pub fn simd_bitmask<T, U>(x: T) -> U;
727
718
const GOAL: u16 = simd_bitmask(i8x16(
728
719
0, 1, 0, 0, 2, 255, 100, 0, 50, 0, 1, 1, 0, 0, 0, 0
729
720
));
@@ -735,10 +726,10 @@ fn simd() {
735
726
pub struct i8x16(
736
727
i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,
737
728
);
738
- extern "platform-intrinsic" {
739
- pub fn simd_lt<T, U>(x: T, y: T) -> U;
740
- pub fn simd_bitmask<T, U>(x: T) -> U;
741
- }
729
+ #[rustc_intrinsic]
730
+ pub fn simd_lt<T, U>(x: T, y: T) -> U;
731
+ #[rustc_intrinsic]
732
+ pub fn simd_bitmask<T, U>(x: T) -> U;
742
733
const GOAL: u16 = simd_bitmask(simd_lt::<i8x16, i8x16>(
743
734
i8x16(
744
735
-105, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
0 commit comments