Skip to content

Commit d285ad5

Browse files
committed
Add tracking issues for WebAssembly
1 parent c9b5d33 commit d285ad5

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

crates/core_arch/src/wasm32/atomic.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ extern "C" {
3636
#[cfg_attr(test, assert_instr(memory.atomic.wait32))]
3737
#[target_feature(enable = "atomics")]
3838
#[doc(alias("memory.atomic.wait32"))]
39+
#[unstable(feature = "stdarch_wasm_atomic_wait", issue = "77839")]
3940
pub unsafe fn memory_atomic_wait32(ptr: *mut i32, expression: i32, timeout_ns: i64) -> i32 {
4041
llvm_atomic_wait_i32(ptr, expression, timeout_ns)
4142
}
@@ -66,6 +67,7 @@ pub unsafe fn memory_atomic_wait32(ptr: *mut i32, expression: i32, timeout_ns: i
6667
#[cfg_attr(test, assert_instr(memory.atomic.wait64))]
6768
#[target_feature(enable = "atomics")]
6869
#[doc(alias("memory.atomic.wait64"))]
70+
#[unstable(feature = "stdarch_wasm_atomic_wait", issue = "77839")]
6971
pub unsafe fn memory_atomic_wait64(ptr: *mut i64, expression: i64, timeout_ns: i64) -> i32 {
7072
llvm_atomic_wait_i64(ptr, expression, timeout_ns)
7173
}
@@ -88,6 +90,7 @@ pub unsafe fn memory_atomic_wait64(ptr: *mut i64, expression: i64, timeout_ns: i
8890
#[cfg_attr(test, assert_instr(memory.atomic.notify))]
8991
#[target_feature(enable = "atomics")]
9092
#[doc(alias("memory.atomic.notify"))]
93+
#[unstable(feature = "stdarch_wasm_atomic_wait", issue = "77839")]
9194
pub unsafe fn memory_atomic_notify(ptr: *mut i32, waiters: u32) -> u32 {
9295
llvm_atomic_notify(ptr, waiters as i32) as u32
9396
}

crates/core_arch/src/wasm32/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,19 @@
44
use stdarch_test::assert_instr;
55

66
mod atomic;
7+
#[unstable(feature = "stdarch_wasm_atomic_wait", issue = "77839")]
78
pub use self::atomic::*;
89

910
mod simd128;
11+
#[stable(feature = "wasm_simd", since = "1.54.0")]
1012
pub use self::simd128::*;
1113

1214
mod relaxed_simd;
15+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
1316
pub use self::relaxed_simd::*;
1417

1518
mod memory;
19+
#[stable(feature = "simd_wasm32", since = "1.33.0")]
1620
pub use self::memory::*;
1721

1822
/// Generates the [`unreachable`] instruction, which causes an unconditional [trap].

crates/core_arch/src/wasm32/relaxed_simd.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ extern "C" {
6868
#[cfg_attr(test, assert_instr(i8x16.relaxed_swizzle))]
6969
#[target_feature(enable = "relaxed-simd")]
7070
#[doc(alias("i8x16.relaxed_swizzle"))]
71+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
7172
pub fn i8x16_relaxed_swizzle(a: v128, s: v128) -> v128 {
7273
unsafe { llvm_relaxed_swizzle(a.as_i8x16(), s.as_i8x16()).v128() }
7374
}
@@ -81,6 +82,7 @@ pub fn i8x16_relaxed_swizzle(a: v128, s: v128) -> v128 {
8182
#[cfg_attr(test, assert_instr(i32x4.relaxed_trunc_f32x4_s))]
8283
#[target_feature(enable = "relaxed-simd")]
8384
#[doc(alias("i32x4.relaxed_trunc_f32x4_s"))]
85+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
8486
pub fn i32x4_relaxed_trunc_f32x4(a: v128) -> v128 {
8587
unsafe { llvm_relaxed_trunc_signed(a.as_f32x4()).v128() }
8688
}
@@ -94,6 +96,7 @@ pub fn i32x4_relaxed_trunc_f32x4(a: v128) -> v128 {
9496
#[cfg_attr(test, assert_instr(i32x4.relaxed_trunc_f32x4_u))]
9597
#[target_feature(enable = "relaxed-simd")]
9698
#[doc(alias("i32x4.relaxed_trunc_f32x4_u"))]
99+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
97100
pub fn u32x4_relaxed_trunc_f32x4(a: v128) -> v128 {
98101
unsafe { llvm_relaxed_trunc_unsigned(a.as_f32x4()).v128() }
99102
}
@@ -107,6 +110,7 @@ pub fn u32x4_relaxed_trunc_f32x4(a: v128) -> v128 {
107110
#[cfg_attr(test, assert_instr(i32x4.relaxed_trunc_f64x2_s_zero))]
108111
#[target_feature(enable = "relaxed-simd")]
109112
#[doc(alias("i32x4.relaxed_trunc_f64x2_s_zero"))]
113+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
110114
pub fn i32x4_relaxed_trunc_f64x2_zero(a: v128) -> v128 {
111115
unsafe { llvm_relaxed_trunc_signed_zero(a.as_f64x2()).v128() }
112116
}
@@ -120,6 +124,7 @@ pub fn i32x4_relaxed_trunc_f64x2_zero(a: v128) -> v128 {
120124
#[cfg_attr(test, assert_instr(i32x4.relaxed_trunc_f64x2_u_zero))]
121125
#[target_feature(enable = "relaxed-simd")]
122126
#[doc(alias("i32x4.relaxed_trunc_f64x2_u_zero"))]
127+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
123128
pub fn u32x4_relaxed_trunc_f64x2_zero(a: v128) -> v128 {
124129
unsafe { llvm_relaxed_trunc_unsigned_zero(a.as_f64x2()).v128() }
125130
}
@@ -129,6 +134,7 @@ pub fn u32x4_relaxed_trunc_f64x2_zero(a: v128) -> v128 {
129134
#[cfg_attr(test, assert_instr(f32x4.relaxed_madd))]
130135
#[target_feature(enable = "relaxed-simd")]
131136
#[doc(alias("f32x4.relaxed_madd"))]
137+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
132138
pub fn f32x4_relaxed_madd(a: v128, b: v128, c: v128) -> v128 {
133139
unsafe { llvm_f32x4_fma(a.as_f32x4(), b.as_f32x4(), c.as_f32x4()).v128() }
134140
}
@@ -138,6 +144,7 @@ pub fn f32x4_relaxed_madd(a: v128, b: v128, c: v128) -> v128 {
138144
#[cfg_attr(test, assert_instr(f32x4.relaxed_nmadd))]
139145
#[target_feature(enable = "relaxed-simd")]
140146
#[doc(alias("f32x4.relaxed_nmadd"))]
147+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
141148
pub fn f32x4_relaxed_nmadd(a: v128, b: v128, c: v128) -> v128 {
142149
unsafe { llvm_f32x4_fms(a.as_f32x4(), b.as_f32x4(), c.as_f32x4()).v128() }
143150
}
@@ -147,6 +154,7 @@ pub fn f32x4_relaxed_nmadd(a: v128, b: v128, c: v128) -> v128 {
147154
#[cfg_attr(test, assert_instr(f64x2.relaxed_madd))]
148155
#[target_feature(enable = "relaxed-simd")]
149156
#[doc(alias("f64x2.relaxed_madd"))]
157+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
150158
pub fn f64x2_relaxed_madd(a: v128, b: v128, c: v128) -> v128 {
151159
unsafe { llvm_f64x2_fma(a.as_f64x2(), b.as_f64x2(), c.as_f64x2()).v128() }
152160
}
@@ -156,6 +164,7 @@ pub fn f64x2_relaxed_madd(a: v128, b: v128, c: v128) -> v128 {
156164
#[cfg_attr(test, assert_instr(f64x2.relaxed_nmadd))]
157165
#[target_feature(enable = "relaxed-simd")]
158166
#[doc(alias("f64x2.relaxed_nmadd"))]
167+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
159168
pub fn f64x2_relaxed_nmadd(a: v128, b: v128, c: v128) -> v128 {
160169
unsafe { llvm_f64x2_fms(a.as_f64x2(), b.as_f64x2(), c.as_f64x2()).v128() }
161170
}
@@ -171,6 +180,7 @@ pub fn f64x2_relaxed_nmadd(a: v128, b: v128, c: v128) -> v128 {
171180
#[cfg_attr(test, assert_instr(i8x16.relaxed_laneselect))]
172181
#[target_feature(enable = "relaxed-simd")]
173182
#[doc(alias("i8x16.relaxed_laneselect"))]
183+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
174184
pub fn i8x16_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
175185
unsafe { llvm_i8x16_laneselect(a.as_i8x16(), b.as_i8x16(), m.as_i8x16()).v128() }
176186
}
@@ -186,6 +196,7 @@ pub fn i8x16_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
186196
#[cfg_attr(test, assert_instr(i16x8.relaxed_laneselect))]
187197
#[target_feature(enable = "relaxed-simd")]
188198
#[doc(alias("i16x8.relaxed_laneselect"))]
199+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
189200
pub fn i16x8_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
190201
unsafe { llvm_i16x8_laneselect(a.as_i16x8(), b.as_i16x8(), m.as_i16x8()).v128() }
191202
}
@@ -201,6 +212,7 @@ pub fn i16x8_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
201212
#[cfg_attr(test, assert_instr(i32x4.relaxed_laneselect))]
202213
#[target_feature(enable = "relaxed-simd")]
203214
#[doc(alias("i32x4.relaxed_laneselect"))]
215+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
204216
pub fn i32x4_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
205217
unsafe { llvm_i32x4_laneselect(a.as_i32x4(), b.as_i32x4(), m.as_i32x4()).v128() }
206218
}
@@ -216,6 +228,7 @@ pub fn i32x4_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
216228
#[cfg_attr(test, assert_instr(i64x2.relaxed_laneselect))]
217229
#[target_feature(enable = "relaxed-simd")]
218230
#[doc(alias("i64x2.relaxed_laneselect"))]
231+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
219232
pub fn i64x2_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
220233
unsafe { llvm_i64x2_laneselect(a.as_i64x2(), b.as_i64x2(), m.as_i64x2()).v128() }
221234
}
@@ -226,6 +239,7 @@ pub fn i64x2_relaxed_laneselect(a: v128, b: v128, m: v128) -> v128 {
226239
#[cfg_attr(test, assert_instr(f32x4.relaxed_min))]
227240
#[target_feature(enable = "relaxed-simd")]
228241
#[doc(alias("f32x4.relaxed_min"))]
242+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
229243
pub fn f32x4_relaxed_min(a: v128, b: v128) -> v128 {
230244
unsafe { llvm_f32x4_relaxed_min(a.as_f32x4(), b.as_f32x4()).v128() }
231245
}
@@ -236,6 +250,7 @@ pub fn f32x4_relaxed_min(a: v128, b: v128) -> v128 {
236250
#[cfg_attr(test, assert_instr(f32x4.relaxed_max))]
237251
#[target_feature(enable = "relaxed-simd")]
238252
#[doc(alias("f32x4.relaxed_max"))]
253+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
239254
pub fn f32x4_relaxed_max(a: v128, b: v128) -> v128 {
240255
unsafe { llvm_f32x4_relaxed_max(a.as_f32x4(), b.as_f32x4()).v128() }
241256
}
@@ -246,6 +261,7 @@ pub fn f32x4_relaxed_max(a: v128, b: v128) -> v128 {
246261
#[cfg_attr(test, assert_instr(f64x2.relaxed_min))]
247262
#[target_feature(enable = "relaxed-simd")]
248263
#[doc(alias("f64x2.relaxed_min"))]
264+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
249265
pub fn f64x2_relaxed_min(a: v128, b: v128) -> v128 {
250266
unsafe { llvm_f64x2_relaxed_min(a.as_f64x2(), b.as_f64x2()).v128() }
251267
}
@@ -256,6 +272,7 @@ pub fn f64x2_relaxed_min(a: v128, b: v128) -> v128 {
256272
#[cfg_attr(test, assert_instr(f64x2.relaxed_max))]
257273
#[target_feature(enable = "relaxed-simd")]
258274
#[doc(alias("f64x2.relaxed_max"))]
275+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
259276
pub fn f64x2_relaxed_max(a: v128, b: v128) -> v128 {
260277
unsafe { llvm_f64x2_relaxed_max(a.as_f64x2(), b.as_f64x2()).v128() }
261278
}
@@ -266,6 +283,7 @@ pub fn f64x2_relaxed_max(a: v128, b: v128) -> v128 {
266283
#[cfg_attr(test, assert_instr(i16x8.relaxed_q15mulr_s))]
267284
#[target_feature(enable = "relaxed-simd")]
268285
#[doc(alias("i16x8.relaxed_q15mulr_s"))]
286+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
269287
pub fn i16x8_relaxed_q15mulr(a: v128, b: v128) -> v128 {
270288
unsafe { llvm_relaxed_q15mulr_signed(a.as_i16x8(), b.as_i16x8()).v128() }
271289
}
@@ -285,6 +303,7 @@ pub fn i16x8_relaxed_q15mulr(a: v128, b: v128) -> v128 {
285303
#[cfg_attr(test, assert_instr(i16x8.relaxed_dot_i8x16_i7x16_s))]
286304
#[target_feature(enable = "relaxed-simd")]
287305
#[doc(alias("i16x8.relaxed_dot_i8x16_i7x16_s"))]
306+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
288307
pub fn i16x8_relaxed_dot_i8x16_i7x16(a: v128, b: v128) -> v128 {
289308
unsafe { llvm_i16x8_relaxed_dot_i8x16_i7x16_s(a.as_i8x16(), b.as_i8x16()).v128() }
290309
}
@@ -296,6 +315,7 @@ pub fn i16x8_relaxed_dot_i8x16_i7x16(a: v128, b: v128) -> v128 {
296315
#[cfg_attr(test, assert_instr(i32x4.relaxed_dot_i8x16_i7x16_add_s))]
297316
#[target_feature(enable = "relaxed-simd")]
298317
#[doc(alias("i32x4.relaxed_dot_i8x16_i7x16_add_s"))]
318+
#[unstable(feature = "stdarch_wasm_relaxed_simd", issue = "111196")]
299319
pub fn i32x4_relaxed_dot_i8x16_i7x16_add(a: v128, b: v128, c: v128) -> v128 {
300320
unsafe {
301321
llvm_i32x4_relaxed_dot_i8x16_i7x16_add_s(a.as_i8x16(), b.as_i8x16(), c.as_i32x4()).v128()

0 commit comments

Comments
 (0)