--enable-rust-simd fails to build using Rust 1.33

RESOLVED FIXED in Firefox 68

Status

()

defect
P3
normal
RESOLVED FIXED
3 months ago
15 days ago

People

(Reporter: jbeich, Assigned: hsivonen)

Tracking

(Blocks 1 bug)

Trunk
mozilla68
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr60 fix-optional, firefox64 wontfix, firefox65 wontfix, firefox66 wontfix, firefox67 ?, firefox68 fixed)

Details

(Whiteboard: [expected to regress performance on ARMv7 Android until bug 1529774 lands], URL)

Attachments

(5 attachments, 1 obsolete attachment)

(Reporter)

Description

3 months ago

After https://github.com/rust-lang/rust/commit/7616daabc7aa bundled encoding_rs doesn't build with simd-accel enabled.

$ rustc -vV
rustc 1.33.0-nightly
binary: rustc
commit-hash: c76f3c374f80
commit-date: 2019-01-18
host: x86_64-unknown-freebsd
release: 1.33.0-nightly
LLVM version: 8.0

$ echo "ac_add_options --enable-rust-simd # mimic MOZ_AUTOMATION" >>.mozconfig
$ ./mach build
[...]
error: unrecognized platform-specific intrinsic function: x86_mm_movemask_ps
--> third_party/rust/simd/src/x86/sse2.rs:10:5
|
10 | fn x86_mm_movemask_ps(x: f32x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_ps
--> third_party/rust/simd/src/x86/sse2.rs:11:5
|
11 | fn x86_mm_max_ps(x: f32x4, y: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_ps
--> third_party/rust/simd/src/x86/sse2.rs:12:5
|
12 | fn x86_mm_min_ps(x: f32x4, y: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_rsqrt_ps
--> third_party/rust/simd/src/x86/sse2.rs:13:5
|
13 | fn x86_mm_rsqrt_ps(x: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_rcp_ps
--> third_party/rust/simd/src/x86/sse2.rs:14:5
|
14 | fn x86_mm_rcp_ps(x: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_sqrt_ps
--> third_party/rust/simd/src/x86/sse2.rs:15:5
|
15 | fn x86_mm_sqrt_ps(x: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_adds_epi8
--> third_party/rust/simd/src/x86/sse2.rs:19:5
|
19 | fn x86_mm_adds_epi8(x: i8x16, y: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_adds_epu8
--> third_party/rust/simd/src/x86/sse2.rs:20:5
|
20 | fn x86_mm_adds_epu8(x: u8x16, y: u8x16) -> u8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_adds_epi16
--> third_party/rust/simd/src/x86/sse2.rs:21:5
|
21 | fn x86_mm_adds_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_adds_epu16
--> third_party/rust/simd/src/x86/sse2.rs:22:5
|
22 | fn x86_mm_adds_epu16(x: u16x8, y: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_avg_epu8
--> third_party/rust/simd/src/x86/sse2.rs:23:5
|
23 | fn x86_mm_avg_epu8(x: u8x16, y: u8x16) -> u8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_avg_epu16
--> third_party/rust/simd/src/x86/sse2.rs:24:5
|
24 | fn x86_mm_avg_epu16(x: u16x8, y: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_madd_epi16
--> third_party/rust/simd/src/x86/sse2.rs:25:5
|
25 | fn x86_mm_madd_epi16(x: i16x8, y: i16x8) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_epi16
--> third_party/rust/simd/src/x86/sse2.rs:26:5
|
26 | fn x86_mm_max_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_epu8
--> third_party/rust/simd/src/x86/sse2.rs:27:5
|
27 | fn x86_mm_max_epu8(x: u8x16, y: u8x16) -> u8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_pd
--> third_party/rust/simd/src/x86/sse2.rs:28:5
|
28 | fn x86_mm_max_pd(x: f64x2, y: f64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_epi16
--> third_party/rust/simd/src/x86/sse2.rs:29:5
|
29 | fn x86_mm_min_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_epu8
--> third_party/rust/simd/src/x86/sse2.rs:30:5
|
30 | fn x86_mm_min_epu8(x: u8x16, y: u8x16) -> u8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_pd
--> third_party/rust/simd/src/x86/sse2.rs:31:5
|
31 | fn x86_mm_min_pd(x: f64x2, y: f64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_movemask_pd
--> third_party/rust/simd/src/x86/sse2.rs:32:5
|
32 | fn x86_mm_movemask_pd(x: f64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_movemask_epi8
--> third_party/rust/simd/src/x86/sse2.rs:33:5
|
33 | fn x86_mm_movemask_epi8(x: i8x16) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_mul_epu32
--> third_party/rust/simd/src/x86/sse2.rs:34:5
|
34 | fn x86_mm_mul_epu32(x: u32x4, y: u32x4) -> u64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_mulhi_epi16
--> third_party/rust/simd/src/x86/sse2.rs:35:5
|
35 | fn x86_mm_mulhi_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_mulhi_epu16
--> third_party/rust/simd/src/x86/sse2.rs:36:5
|
36 | fn x86_mm_mulhi_epu16(x: u16x8, y: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_packs_epi16
--> third_party/rust/simd/src/x86/sse2.rs:37:5
|
37 | fn x86_mm_packs_epi16(x: i16x8, y: i16x8) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_packs_epi32
--> third_party/rust/simd/src/x86/sse2.rs:38:5
|
38 | fn x86_mm_packs_epi32(x: i32x4, y: i32x4) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_packus_epi16
--> third_party/rust/simd/src/x86/sse2.rs:39:5
|
39 | fn x86_mm_packus_epi16(x: i16x8, y: i16x8) -> u8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_sad_epu8
--> third_party/rust/simd/src/x86/sse2.rs:40:5
|
40 | fn x86_mm_sad_epu8(x: u8x16, y: u8x16) -> u64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_sqrt_pd
--> third_party/rust/simd/src/x86/sse2.rs:41:5
|
41 | fn x86_mm_sqrt_pd(x: f64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_subs_epi8
--> third_party/rust/simd/src/x86/sse2.rs:42:5
|
42 | fn x86_mm_subs_epi8(x: i8x16, y: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_subs_epu8
--> third_party/rust/simd/src/x86/sse2.rs:43:5
|
43 | fn x86_mm_subs_epu8(x: u8x16, y: u8x16) -> u8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_subs_epi16
--> third_party/rust/simd/src/x86/sse2.rs:44:5
|
44 | fn x86_mm_subs_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_subs_epu16
--> third_party/rust/simd/src/x86/sse2.rs:45:5
|
45 | fn x86_mm_subs_epu16(x: u16x8, y: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_addsub_ps
--> third_party/rust/simd/src/x86/sse3.rs:5:5
|
5 | fn x86_mm_addsub_ps(x: f32x4, y: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_addsub_pd
--> third_party/rust/simd/src/x86/sse3.rs:6:5
|
6 | fn x86_mm_addsub_pd(x: f64x2, y: f64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hadd_ps
--> third_party/rust/simd/src/x86/sse3.rs:7:5
|
7 | fn x86_mm_hadd_ps(x: f32x4, y: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hadd_pd
--> third_party/rust/simd/src/x86/sse3.rs:8:5
|
8 | fn x86_mm_hadd_pd(x: f64x2, y: f64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hsub_ps
--> third_party/rust/simd/src/x86/sse3.rs:9:5
|
9 | fn x86_mm_hsub_ps(x: f32x4, y: f32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hsub_pd
--> third_party/rust/simd/src/x86/sse3.rs:10:5
|
10 | fn x86_mm_hsub_pd(x: f64x2, y: f64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_abs_epi8
--> third_party/rust/simd/src/x86/ssse3.rs:11:5
|
11 | fn x86_mm_abs_epi8(x: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_abs_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:12:5
|
12 | fn x86_mm_abs_epi16(x: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_abs_epi32
--> third_party/rust/simd/src/x86/ssse3.rs:13:5
|
13 | fn x86_mm_abs_epi32(x: i32x4) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hadd_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:14:5
|
14 | fn x86_mm_hadd_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hadd_epi32
--> third_party/rust/simd/src/x86/ssse3.rs:15:5
|
15 | fn x86_mm_hadd_epi32(x: i32x4, y: i32x4) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hadds_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:16:5
|
16 | fn x86_mm_hadds_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hsub_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:17:5
|
17 | fn x86_mm_hsub_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hsub_epi32
--> third_party/rust/simd/src/x86/ssse3.rs:18:5
|
18 | fn x86_mm_hsub_epi32(x: i32x4, y: i32x4) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_hsubs_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:19:5
|
19 | fn x86_mm_hsubs_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_maddubs_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:20:5
|
20 | fn x86_mm_maddubs_epi16(x: u8x16, y: i8x16) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_mulhrs_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:21:5
|
21 | fn x86_mm_mulhrs_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_shuffle_epi8
--> third_party/rust/simd/src/x86/ssse3.rs:22:5
|
22 | fn x86_mm_shuffle_epi8(x: i8x16, y: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_sign_epi8
--> third_party/rust/simd/src/x86/ssse3.rs:23:5
|
23 | fn x86_mm_sign_epi8(x: i8x16, y: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_sign_epi16
--> third_party/rust/simd/src/x86/ssse3.rs:24:5
|
24 | fn x86_mm_sign_epi16(x: i16x8, y: i16x8) -> i16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_sign_epi32
--> third_party/rust/simd/src/x86/ssse3.rs:25:5
|
25 | fn x86_mm_sign_epi32(x: i32x4, y: i32x4) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_dp_ps
--> third_party/rust/simd/src/x86/sse4_1.rs:6:5
|
6 | fn x86_mm_dp_ps(x: f32x4, y: f32x4, z: i32) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_dp_pd
--> third_party/rust/simd/src/x86/sse4_1.rs:7:5
|
7 | fn x86_mm_dp_pd(x: f64x2, y: f64x2, z: i32) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_epi8
--> third_party/rust/simd/src/x86/sse4_1.rs:8:5
|
8 | fn x86_mm_max_epi8(x: i8x16, y: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_epu16
--> third_party/rust/simd/src/x86/sse4_1.rs:9:5
|
9 | fn x86_mm_max_epu16(x: u16x8, y: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_epi32
--> third_party/rust/simd/src/x86/sse4_1.rs:10:5
|
10 | fn x86_mm_max_epi32(x: i32x4, y: i32x4) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_max_epu32
--> third_party/rust/simd/src/x86/sse4_1.rs:11:5
|
11 | fn x86_mm_max_epu32(x: u32x4, y: u32x4) -> u32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_epi8
--> third_party/rust/simd/src/x86/sse4_1.rs:12:5
|
12 | fn x86_mm_min_epi8(x: i8x16, y: i8x16) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_epu16
--> third_party/rust/simd/src/x86/sse4_1.rs:13:5
|
13 | fn x86_mm_min_epu16(x: u16x8, y: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_epi32
--> third_party/rust/simd/src/x86/sse4_1.rs:14:5
|
14 | fn x86_mm_min_epi32(x: i32x4, y: i32x4) -> i32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_min_epu32
--> third_party/rust/simd/src/x86/sse4_1.rs:15:5
|
15 | fn x86_mm_min_epu32(x: u32x4, y: u32x4) -> u32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_minpos_epu16
--> third_party/rust/simd/src/x86/sse4_1.rs:16:5
|
16 | fn x86_mm_minpos_epu16(x: u16x8) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_mpsadbw_epu8
--> third_party/rust/simd/src/x86/sse4_1.rs:17:5
|
17 | fn x86_mm_mpsadbw_epu8(x: u8x16, y: u8x16, z: i32) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_mul_epi32
--> third_party/rust/simd/src/x86/sse4_1.rs:18:5
|
18 | fn x86_mm_mul_epi32(x: i32x4, y: i32x4) -> i64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_packus_epi32
--> third_party/rust/simd/src/x86/sse4_1.rs:19:5
|
19 | fn x86_mm_packus_epi32(x: i32x4, y: i32x4) -> u16x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testc_si128
--> third_party/rust/simd/src/x86/sse4_1.rs:20:5
|
20 | fn x86_mm_testc_si128(x: u64x2, y: u64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testnzc_si128
--> third_party/rust/simd/src/x86/sse4_1.rs:21:5
|
21 | fn x86_mm_testnzc_si128(x: u64x2, y: u64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testz_si128
--> third_party/rust/simd/src/x86/sse4_1.rs:22:5
|
22 | fn x86_mm_testz_si128(x: u64x2, y: u64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestra
--> third_party/rust/simd/src/x86/sse4_2.rs:5:5
|
5 | fn x86_mm_cmpestra(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestrc
--> third_party/rust/simd/src/x86/sse4_2.rs:6:5
|
6 | fn x86_mm_cmpestrc(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestri
--> third_party/rust/simd/src/x86/sse4_2.rs:7:5
|
7 | fn x86_mm_cmpestri(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestrm
--> third_party/rust/simd/src/x86/sse4_2.rs:8:5
|
8 | fn x86_mm_cmpestrm(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestro
--> third_party/rust/simd/src/x86/sse4_2.rs:9:5
|
9 | fn x86_mm_cmpestro(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestrs
--> third_party/rust/simd/src/x86/sse4_2.rs:10:5
|
10 | fn x86_mm_cmpestrs(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpestrz
--> third_party/rust/simd/src/x86/sse4_2.rs:11:5
|
11 | fn x86_mm_cmpestrz(x: i8x16, y: i32, z: i8x16, w: i32, a: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistra
--> third_party/rust/simd/src/x86/sse4_2.rs:12:5
|
12 | fn x86_mm_cmpistra(x: i8x16, y: i8x16, z: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistrc
--> third_party/rust/simd/src/x86/sse4_2.rs:13:5
|
13 | fn x86_mm_cmpistrc(x: i8x16, y: i8x16, z: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistri
--> third_party/rust/simd/src/x86/sse4_2.rs:14:5
|
14 | fn x86_mm_cmpistri(x: i8x16, y: i8x16, z: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistrm
--> third_party/rust/simd/src/x86/sse4_2.rs:15:5
|
15 | fn x86_mm_cmpistrm(x: i8x16, y: i8x16, z: i32) -> i8x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistro
--> third_party/rust/simd/src/x86/sse4_2.rs:16:5
|
16 | fn x86_mm_cmpistro(x: i8x16, y: i8x16, z: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistrs
--> third_party/rust/simd/src/x86/sse4_2.rs:17:5
|
17 | fn x86_mm_cmpistrs(x: i8x16, y: i8x16, z: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_cmpistrz
--> third_party/rust/simd/src/x86/sse4_2.rs:18:5
|
18 | fn x86_mm_cmpistrz(x: i8x16, y: i8x16, z: i32) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_addsub_ps
--> third_party/rust/simd/src/x86/avx.rs:16:5
|
16 | fn x86_mm256_addsub_ps(x: f32x8, y: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_addsub_pd
--> third_party/rust/simd/src/x86/avx.rs:17:5
|
17 | fn x86_mm256_addsub_pd(x: f64x4, y: f64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_dp_ps
--> third_party/rust/simd/src/x86/avx.rs:18:5
|
18 | fn x86_mm256_dp_ps(x: f32x8, y: f32x8, z: i32) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hadd_ps
--> third_party/rust/simd/src/x86/avx.rs:19:5
|
19 | fn x86_mm256_hadd_ps(x: f32x8, y: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hadd_pd
--> third_party/rust/simd/src/x86/avx.rs:20:5
|
20 | fn x86_mm256_hadd_pd(x: f64x4, y: f64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hsub_ps
--> third_party/rust/simd/src/x86/avx.rs:21:5
|
21 | fn x86_mm256_hsub_ps(x: f32x8, y: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hsub_pd
--> third_party/rust/simd/src/x86/avx.rs:22:5
|
22 | fn x86_mm256_hsub_pd(x: f64x4, y: f64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_ps
--> third_party/rust/simd/src/x86/avx.rs:23:5
|
23 | fn x86_mm256_max_ps(x: f32x8, y: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_pd
--> third_party/rust/simd/src/x86/avx.rs:24:5
|
24 | fn x86_mm256_max_pd(x: f64x4, y: f64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_ps
--> third_party/rust/simd/src/x86/avx.rs:25:5
|
25 | fn x86_mm256_min_ps(x: f32x8, y: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_pd
--> third_party/rust/simd/src/x86/avx.rs:26:5
|
26 | fn x86_mm256_min_pd(x: f64x4, y: f64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_movemask_ps
--> third_party/rust/simd/src/x86/avx.rs:27:5
|
27 | fn x86_mm256_movemask_ps(x: f32x8) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_movemask_pd
--> third_party/rust/simd/src/x86/avx.rs:28:5
|
28 | fn x86_mm256_movemask_pd(x: f64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_permutevar_ps
--> third_party/rust/simd/src/x86/avx.rs:29:5
|
29 | fn x86_mm_permutevar_ps(x: f32x4, y: i32x4) -> f32x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_permutevar_pd
--> third_party/rust/simd/src/x86/avx.rs:30:5
|
30 | fn x86_mm_permutevar_pd(x: f64x2, y: i64x2) -> f64x2;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_permutevar_ps
--> third_party/rust/simd/src/x86/avx.rs:31:5
|
31 | fn x86_mm256_permutevar_ps(x: f32x8, y: i32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_permutevar_pd
--> third_party/rust/simd/src/x86/avx.rs:32:5
|
32 | fn x86_mm256_permutevar_pd(x: f64x4, y: i64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_rcp_ps
--> third_party/rust/simd/src/x86/avx.rs:33:5
|
33 | fn x86_mm256_rcp_ps(x: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_rsqrt_ps
--> third_party/rust/simd/src/x86/avx.rs:34:5
|
34 | fn x86_mm256_rsqrt_ps(x: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_sqrt_ps
--> third_party/rust/simd/src/x86/avx.rs:35:5
|
35 | fn x86_mm256_sqrt_ps(x: f32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_sqrt_pd
--> third_party/rust/simd/src/x86/avx.rs:36:5
|
36 | fn x86_mm256_sqrt_pd(x: f64x4) -> f64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testc_ps
--> third_party/rust/simd/src/x86/avx.rs:37:5
|
37 | fn x86_mm_testc_ps(x: f32x4, y: f32x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testc_ps
--> third_party/rust/simd/src/x86/avx.rs:38:5
|
38 | fn x86_mm256_testc_ps(x: f32x8, y: f32x8) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testc_pd
--> third_party/rust/simd/src/x86/avx.rs:39:5
|
39 | fn x86_mm_testc_pd(x: f64x2, y: f64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testc_pd
--> third_party/rust/simd/src/x86/avx.rs:40:5
|
40 | fn x86_mm256_testc_pd(x: f64x4, y: f64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testc_si256
--> third_party/rust/simd/src/x86/avx.rs:41:5
|
41 | fn x86_mm256_testc_si256(x: u64x4, y: u64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testnzc_ps
--> third_party/rust/simd/src/x86/avx.rs:42:5
|
42 | fn x86_mm_testnzc_ps(x: f32x4, y: f32x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testnzc_ps
--> third_party/rust/simd/src/x86/avx.rs:43:5
|
43 | fn x86_mm256_testnzc_ps(x: f32x8, y: f32x8) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testnzc_pd
--> third_party/rust/simd/src/x86/avx.rs:44:5
|
44 | fn x86_mm_testnzc_pd(x: f64x2, y: f64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testnzc_pd
--> third_party/rust/simd/src/x86/avx.rs:45:5
|
45 | fn x86_mm256_testnzc_pd(x: f64x4, y: f64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testnzc_si256
--> third_party/rust/simd/src/x86/avx.rs:46:5
|
46 | fn x86_mm256_testnzc_si256(x: u64x4, y: u64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testz_ps
--> third_party/rust/simd/src/x86/avx.rs:47:5
|
47 | fn x86_mm_testz_ps(x: f32x4, y: f32x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testz_ps
--> third_party/rust/simd/src/x86/avx.rs:48:5
|
48 | fn x86_mm256_testz_ps(x: f32x8, y: f32x8) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm_testz_pd
--> third_party/rust/simd/src/x86/avx.rs:49:5
|
49 | fn x86_mm_testz_pd(x: f64x2, y: f64x2) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testz_pd
--> third_party/rust/simd/src/x86/avx.rs:50:5
|
50 | fn x86_mm256_testz_pd(x: f64x4, y: f64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_testz_si256
--> third_party/rust/simd/src/x86/avx.rs:51:5
|
51 | fn x86_mm256_testz_si256(x: u64x4, y: u64x4) -> i32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_abs_epi8
--> third_party/rust/simd/src/x86/avx2.rs:5:5
|
5 | fn x86_mm256_abs_epi8(x: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_abs_epi16
--> third_party/rust/simd/src/x86/avx2.rs:6:5
|
6 | fn x86_mm256_abs_epi16(x: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_abs_epi32
--> third_party/rust/simd/src/x86/avx2.rs:7:5
|
7 | fn x86_mm256_abs_epi32(x: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_adds_epi8
--> third_party/rust/simd/src/x86/avx2.rs:8:5
|
8 | fn x86_mm256_adds_epi8(x: i8x32, y: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_adds_epu8
--> third_party/rust/simd/src/x86/avx2.rs:9:5
|
9 | fn x86_mm256_adds_epu8(x: u8x32, y: u8x32) -> u8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_adds_epi16
--> third_party/rust/simd/src/x86/avx2.rs:10:5
|
10 | fn x86_mm256_adds_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_adds_epu16
--> third_party/rust/simd/src/x86/avx2.rs:11:5
|
11 | fn x86_mm256_adds_epu16(x: u16x16, y: u16x16) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_avg_epu8
--> third_party/rust/simd/src/x86/avx2.rs:12:5
|
12 | fn x86_mm256_avg_epu8(x: u8x32, y: u8x32) -> u8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_avg_epu16
--> third_party/rust/simd/src/x86/avx2.rs:13:5
|
13 | fn x86_mm256_avg_epu16(x: u16x16, y: u16x16) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hadd_epi16
--> third_party/rust/simd/src/x86/avx2.rs:14:5
|
14 | fn x86_mm256_hadd_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hadd_epi32
--> third_party/rust/simd/src/x86/avx2.rs:15:5
|
15 | fn x86_mm256_hadd_epi32(x: i32x8, y: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hadds_epi16
--> third_party/rust/simd/src/x86/avx2.rs:16:5
|
16 | fn x86_mm256_hadds_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hsub_epi16
--> third_party/rust/simd/src/x86/avx2.rs:17:5
|
17 | fn x86_mm256_hsub_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hsub_epi32
--> third_party/rust/simd/src/x86/avx2.rs:18:5
|
18 | fn x86_mm256_hsub_epi32(x: i32x8, y: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_hsubs_epi16
--> third_party/rust/simd/src/x86/avx2.rs:19:5
|
19 | fn x86_mm256_hsubs_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_madd_epi16
--> third_party/rust/simd/src/x86/avx2.rs:20:5
|
20 | fn x86_mm256_madd_epi16(x: i16x16, y: i16x16) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_maddubs_epi16
--> third_party/rust/simd/src/x86/avx2.rs:21:5
|
21 | fn x86_mm256_maddubs_epi16(x: i8x32, y: i8x32) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_epi8
--> third_party/rust/simd/src/x86/avx2.rs:22:5
|
22 | fn x86_mm256_max_epi8(x: i8x32, y: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_epu8
--> third_party/rust/simd/src/x86/avx2.rs:23:5
|
23 | fn x86_mm256_max_epu8(x: u8x32, y: u8x32) -> u8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_epi16
--> third_party/rust/simd/src/x86/avx2.rs:24:5
|
24 | fn x86_mm256_max_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_epu16
--> third_party/rust/simd/src/x86/avx2.rs:25:5
|
25 | fn x86_mm256_max_epu16(x: u16x16, y: u16x16) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_epi32
--> third_party/rust/simd/src/x86/avx2.rs:26:5
|
26 | fn x86_mm256_max_epi32(x: i32x8, y: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_max_epu32
--> third_party/rust/simd/src/x86/avx2.rs:27:5
|
27 | fn x86_mm256_max_epu32(x: u32x8, y: u32x8) -> u32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_epi8
--> third_party/rust/simd/src/x86/avx2.rs:28:5
|
28 | fn x86_mm256_min_epi8(x: i8x32, y: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_epu8
--> third_party/rust/simd/src/x86/avx2.rs:29:5
|
29 | fn x86_mm256_min_epu8(x: u8x32, y: u8x32) -> u8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_epi16
--> third_party/rust/simd/src/x86/avx2.rs:30:5
|
30 | fn x86_mm256_min_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_epu16
--> third_party/rust/simd/src/x86/avx2.rs:31:5
|
31 | fn x86_mm256_min_epu16(x: u16x16, y: u16x16) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_epi32
--> third_party/rust/simd/src/x86/avx2.rs:32:5
|
32 | fn x86_mm256_min_epi32(x: i32x8, y: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_min_epu32
--> third_party/rust/simd/src/x86/avx2.rs:33:5
|
33 | fn x86_mm256_min_epu32(x: u32x8, y: u32x8) -> u32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_mul_epi64
--> third_party/rust/simd/src/x86/avx2.rs:34:5
|
34 | fn x86_mm256_mul_epi64(x: i32x8, y: i32x8) -> i64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_mul_epu64
--> third_party/rust/simd/src/x86/avx2.rs:35:5
|
35 | fn x86_mm256_mul_epu64(x: u32x8, y: u32x8) -> u64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_mulhi_epi16
--> third_party/rust/simd/src/x86/avx2.rs:36:5
|
36 | fn x86_mm256_mulhi_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_mulhi_epu16
--> third_party/rust/simd/src/x86/avx2.rs:37:5
|
37 | fn x86_mm256_mulhi_epu16(x: u16x16, y: u16x16) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_mulhrs_epi16
--> third_party/rust/simd/src/x86/avx2.rs:38:5
|
38 | fn x86_mm256_mulhrs_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_packs_epi16
--> third_party/rust/simd/src/x86/avx2.rs:39:5
|
39 | fn x86_mm256_packs_epi16(x: i16x16, y: i16x16) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_packus_epi16
--> third_party/rust/simd/src/x86/avx2.rs:40:5
|
40 | fn x86_mm256_packus_epi16(x: i16x16, y: i16x16) -> u8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_packs_epi32
--> third_party/rust/simd/src/x86/avx2.rs:41:5
|
41 | fn x86_mm256_packs_epi32(x: i32x8, y: i32x8) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_packus_epi32
--> third_party/rust/simd/src/x86/avx2.rs:42:5
|
42 | fn x86_mm256_packus_epi32(x: i32x8, y: i32x8) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_permutevar8x32_epi32
--> third_party/rust/simd/src/x86/avx2.rs:43:5
|
43 | fn x86_mm256_permutevar8x32_epi32(x: i32x8, y: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_permutevar8x32_ps
--> third_party/rust/simd/src/x86/avx2.rs:44:5
|
44 | fn x86_mm256_permutevar8x32_ps(x: f32x8, y: i32x8) -> f32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_sad_epu8
--> third_party/rust/simd/src/x86/avx2.rs:45:5
|
45 | fn x86_mm256_sad_epu8(x: u8x32, y: u8x32) -> u64x4;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_shuffle_epi8
--> third_party/rust/simd/src/x86/avx2.rs:46:5
|
46 | fn x86_mm256_shuffle_epi8(x: i8x32, y: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_sign_epi8
--> third_party/rust/simd/src/x86/avx2.rs:47:5
|
47 | fn x86_mm256_sign_epi8(x: i8x32, y: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_sign_epi16
--> third_party/rust/simd/src/x86/avx2.rs:48:5
|
48 | fn x86_mm256_sign_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_sign_epi32
--> third_party/rust/simd/src/x86/avx2.rs:49:5
|
49 | fn x86_mm256_sign_epi32(x: i32x8, y: i32x8) -> i32x8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_subs_epi8
--> third_party/rust/simd/src/x86/avx2.rs:50:5
|
50 | fn x86_mm256_subs_epi8(x: i8x32, y: i8x32) -> i8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_subs_epu8
--> third_party/rust/simd/src/x86/avx2.rs:51:5
|
51 | fn x86_mm256_subs_epu8(x: u8x32, y: u8x32) -> u8x32;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_subs_epi16
--> third_party/rust/simd/src/x86/avx2.rs:52:5
|
52 | fn x86_mm256_subs_epi16(x: i16x16, y: i16x16) -> i16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: unrecognized platform-specific intrinsic function: x86_mm256_subs_epu16
--> third_party/rust/simd/src/x86/avx2.rs:53:5
|
53 | fn x86_mm256_subs_epu16(x: u16x16, y: u16x16) -> u16x16;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 170 previous errors
error: Could not compile simd.

(Reporter)

Updated

3 months ago
Version: 60 Branch → Trunk
Priority: -- → P3

Thanks for filing. This code removal happening before https://github.com/rust-lang/rust/issues/57030 is done is problematic in terms of migrating encoding_rs from the simd crate to the packed_simd crate. I'll investigate a bit.

Intermediate finding:

With RUSTC_BOOTSTRAP=1, packed_simd 0.3.1 compiles with rustc 1.30.0 and later on x86_64 (and encoding_rs unit tests pass). However, it doesn't take care of setting RUSTC_BOOTSTRAP=1 itself like the simd crate does.

m_kato, regarding the tracking flags: Shouldn't branches be "wontfix" instead of "affected"? I.e. branches keep working with the release-channel version of Rust that they worked with when they branched away from m-c.

Flags: needinfo?(m_kato)
(Reporter)

Comment 4

3 months ago

The assumption here is once Rust 1.33 hits release channel downstream would face a dillemma until Firefox ESR60 reaches EOL:
(1) drop --enable-rust-simd from .mozconfig
(2) delay rust update until something requires >= 1.33
(3) package rust < 1.33 just for firefox

(In reply to Henri Sivonen (:hsivonen) from comment #3)

m_kato, regarding the tracking flags: Shouldn't branches be "wontfix" instead of "affected"? I.e. branches keep working with the release-channel version of Rust that they worked with when they branched away from m-c.

Until 65, our requirement isn't 1.33, so I mark as wontfix or fix-optinal. Firefox 66 is 1.32 or 1.33?

(In reply to Makoto Kato [:m_kato] from comment #5)

(In reply to Henri Sivonen (:hsivonen) from comment #3)

m_kato, regarding the tracking flags: Shouldn't branches be "wontfix" instead of "affected"? I.e. branches keep working with the release-channel version of Rust that they worked with when they branched away from m-c.

Until 65, our requirement isn't 1.33, so I mark as wontfix or fix-optinal. Firefox 66 is 1.32 or 1.33?

For the time being, this is not yet a problem for official builds but for building Firefox with a newer Rust than the official builds are built with.

I'm not sure if 66 is 1.30 or 1.31. Certainly not 1.33.

Also, since 66 is now in soft-freeze, I don't expect it to be OK to fix this until m-c becomes 67.

(In reply to Jan Beich from comment #4)

The assumption here is once Rust 1.33 hits release channel downstream would face a dillemma until Firefox ESR60 reaches EOL:
(1) drop --enable-rust-simd from .mozconfig
(2) delay rust update until something requires >= 1.33
(3) package rust < 1.33 just for firefox

The situation is indeed quite unfortunate for downstreams that simultaneously wish to package ESR and the latest Rust and only one version of Rust.

Once this situation is resolved for m-c, if the fix is migrating to packed_simd (as opposed to reverting the rustc change), I expect it to be possible to apply the fix to ESR in order to build with Rust 1.33 or later, but doing so would probably break the ability to break buildabilility with Rust 1.24, to which Mozilla's ESR 60 builds are pinned. At present, I don't expect us to roll the rustc version forward for ESR upstream, but folks working on the build system could probably say something with more confidence.

Another intermediate finding:
Compiling packed_simd makes rustc consume more than 2 GB of RAM. Fortunately, it's still within the 3 GB address space limit for 32-bit build hosts. (I verified that it's buildable on an ARMv7 Linux host with 4 GB of physical RAM.)

(In reply to Henri Sivonen (:hsivonen) from comment #6)

Another intermediate finding:
Compiling packed_simd makes rustc consume more than 2 GB of RAM.

This is, to put it nicely, ridiculous.

(In reply to Nathan Froyd [:froydnj] from comment #7)

(In reply to Henri Sivonen (:hsivonen) from comment #6)

Another intermediate finding:
Compiling packed_simd makes rustc consume more than 2 GB of RAM.

This is, to put it nicely, ridiculous.

Filed as a Rust issue.

(In reply to Henri Sivonen (:hsivonen) from comment #9)

Relevant dependencies:

For clarity: These aren't relevant to compiler memory usage but relevant to moving forward with the migration to packed_simd.

Removing bug 1476505 from the dependencies, since it's unlikely that packed_simd will become std::simd before we need this fixed.

No longer depends on: 1476505

Nick - can you see if you can find a way to improve the memory usage here?

Flags: needinfo?(n.nethercote)

Switching to a NEON-enabled standard library didn't bring packed_simd to performance parity with simd on ARMv7 yet. I need to examine the compiler output, try with a git clone of packed_simd, etc.

I did a DHAT run, which shows that 54% of the peak memory usage has a single cause (lazy constant interning): https://github.com/rust-lang/rust/issues/57829#issuecomment-460425506

I will see if I can improve things, or if not, try to find someone who can.

Flags: needinfo?(n.nethercote)

(In reply to Henri Sivonen (:hsivonen) from comment #13)

Switching to a NEON-enabled standard library didn't bring packed_simd to performance parity with simd on ARMv7 yet. I need to examine the compiler output, try with a git clone of packed_simd, etc.

Filed as https://github.com/rust-lang-nursery/packed_simd/issues/215

No longer depends on: 1521734

1.33 broke simd and now packed_simd requires 1.34 and will require an additional change in order not to regress performance on ARMv7.

Since the Firefox build system requires crates to use RUSTC_BOOTSTRAP and packed_simd won't have that in the upstream crate, I'll need to maintain a fork of packed_simd anyway and use the cargo replacement feature when vendoring the crates into m-c.

Once it's known how large the change not to regress perf on ARMv7 is going to be, I'll see if it makes sense to make the fork a snapshot of packed_simd that compiles on 1.33 and backport the ARMv7 fix.

If that turns out not to make sense, we should probably skip 1.33 for Mozilla-provided builds. Unclear how that's going to work for distros. One option would be to publish an easy-to-apply patch that makes Firefox compile with 1.33 and with SIMD but in a way that regresses perf on ARMv7. At least that wouldn't disrupt 64-bit distro builds. I gather that distros tend to build without SIMD anyway for 32-bit x86 and ARMv7.

(Using nightly Rust,) When I build packed_simd 0.3.3 outside Gecko, it builds fine. However, when I vendor it into m-c and build, the imports get all messed up.

Is there some known thing that the Firefox build system does that could confuse module references, especially 2018-style ones, within a vendored crate?

 7:41.85 error[E0432]: unresolved imports `crate::codegen::pointer_sized_int::isize_`, `crate::codegen::pointer_sized_int::usize_`
 7:41.85  --> /opt/Projects/gecko/third_party/rust/packed_simd/src/codegen/vSize.rs:3:41
 7:41.85   |
 7:41.85 3 | use crate::codegen::pointer_sized_int::{isize_, usize_};
 7:41.85   |                                         ^^^^^^  ^^^^^^ no `usize_` in `codegen::pointer_sized_int`
 7:41.86   |                                         |
 7:41.86   |                                         no `isize_` in `codegen::pointer_sized_int`
 7:41.86 error[E0433]: failed to resolve: did you mean `core::arch`?
 7:41.86   --> /opt/Projects/gecko/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs:50:20
 7:41.86    |
 7:41.86 50 |           use crate::arch::$arch::{
 7:41.86    |                      ^^^^ did you mean `core::arch`?
 7:41.86 ...
 7:41.86 86 | / impl_arch!(
 7:41.86 87 | |     [x86["x86"]: __m64], [x86_64["x86_64"]: __m64],
 7:41.86 88 | |     [arm["arm"]: int8x8_t, uint8x8_t, poly8x8_t, int16x4_t, uint16x4_t,
 7:41.86 89 | |      poly16x4_t, int32x2_t, uint32x2_t, float32x2_t, int64x1_t,
 7:41.86 ...  |
 7:41.86 96 | |     test: test_v64
 7:41.86 97 | | );
 7:41.86    | |__- in this macro invocation
Flags: needinfo?(mh+mozilla)

(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #12)

Nick - can you see if you can find a way to improve the memory usage here?

https://github.com/rust-lang/rust/pull/58207 reduces memory usage by 59%. It's currently in the landing queue and will hopefully land some time in the next few days.

cd third_party/rust/packed_simd/; cargo build works, so the vendoring process hasn't damaged the crate. The errors are a subset of the errors I get if I comment out edition = "2018" from Cargo.toml of packed_simd when building it individually (the extra errors I get that way relate to locating cfg_if).

It the cranelift-* crates are already edition 2018 crates, so it seems the issue isn't the edition 2018 in m-c is totally broken and packed_simd was the first edition 2018 crate.

In any case, it looks a lot like the full build doesn't propagate edition the right way. Why might that be and what can I do about it?

By watching the process list during the build, it seems that 1) the rustc being invoked is indeed the right one (nightly) and 2) --edition 2018 is being passed to rustc.

(In reply to Henri Sivonen (:hsivonen) from comment #18)

(Using nightly Rust,) When I build packed_simd 0.3.3 outside Gecko, it builds fine. However, when I vendor it into m-c and build, the imports get all messed up.

Is there some known thing that the Firefox build system does that could confuse module references, especially 2018-style ones, within a vendored crate?

Your guess is as good as mine.

Flags: needinfo?(mh+mozilla)
Posted patch Patch that fails to build (obsolete) — Splinter Review

For reference, here's the patch that introduces packed_simd (in a nightly-only-compatible state) but that fails to build due to 2018-style module paths mysteriously not working.

(In reply to Mike Hommey [:glandium] from comment #22)

Your guess is as good as mine.

I asked on users.rust-lang.org.

Removing sccache from the build didn't help. strace shows --edition=2018 being passed the same way during an m-c build and during a standalone packed_simd build.

(In reply to Henri Sivonen (:hsivonen) from comment #18)

(Using nightly Rust,) When I build packed_simd 0.3.3 outside Gecko, it builds fine. However, when I vendor it into m-c and build, the imports get all messed up.

Filed as bug 1526924.

Attachment #9042410 - Attachment is obsolete: true

Making dependent on bug 1521734 again, because vendoring core_arch didn't work on the first attempt. (It's likely that vendoring core_arch would work with some effort, but it makes more sense to put effort into bug 1521734, which will give us core::arch. With core_arch we'd have to track compiler compat. core::arch is guaranteed to be compatible with the compilers, since it ships with the compiler.)

Depends on: 1521734

mhoye, does an import of a crate from rust-lang-nursery under Apache License 2.0 need license review as a formality?

Flags: needinfo?(mhoye)

I can answer for mhoye: it doesn't. As a matter of fact, we already have plenty of Apache License 2.0 code in the tree. Normally, you'd have to update toolkit/content/license.html with the new directory that contains code under the known license, but apparently, for the Apache license, we've gone with a broad "This license applies to various files in the Mozilla codebase."

Flags: needinfo?(mhoye)

This changeset requires nightly Rust (to be changed in the next part).

This adds the Firefox-required build.rs hack and reverts the commit
that added bitmasks in a way that depends on Rust 1.34 compiler
internals.

Depends on D20288

The attached patches work with Rust 1.32, 1.33, and 1.34 for x86_64, x86, and aarch64. However, 32-bit ARM performance depends on bug 1521734, which depends on Rust 1.33.

(In reply to Mike Hommey [:glandium] from comment #30)

I can answer for mhoye: it doesn't. As a matter of fact, we already have plenty of Apache License 2.0 code in the tree. Normally, you'd have to update toolkit/content/license.html with the new directory that contains code under the known license, but apparently, for the Apache license, we've gone with a broad "This license applies to various files in the Mozilla codebase."

I'm aware that this is totally within policy. What was not clear to me was if a license r+ was needed anyway.

Mike Hommey is correct, but I should clarify why, and what I think "license r+" means.

In general "we need to import code X under already-accepted license Y" is fast and easy, and all it involves is adding the list of files or directories being added to that license's section - see about:license#apache-llvm as an example. I generally get back to those quickly, but if you're concerned about my response time or product momentum in general feel free to file the changes to about:license as a separate change so you're not blocking on me, and if you're concerned about my responsiveness you are always welcome to contact my boss to nudge me about it.

Unfortunately, "we need to import code X under new license Z" is always going to be harder and take longer, and should be considered a blocker, which kind of sucks but there's a reason they call it "doing the right thing", not "doing the easy thing". If you foresee this in your future I would be grateful for as much notice as you can give me.

More generally, I would like any interested party to be able to move back and forth between any part of the codebase and the related license on the about:license page for anything not MPL. In practice this is a mess and we're a very long way from being able to do that. This is not to say that we're out of compliance with any licensing that I'm aware of, only that our traceability situation here is poor.

At the moment there are four licenses - Apache, React, React-MIT and the Android OSL - that are listed in about:license with the phrase "This license applies to various files in the Mozilla codebase, including (whatever)", which I would like people to interpret as "FIXME". Cleaning that up will take a while but just so we're not losing ground on that cleanup, I would like to add newly-imported files under those four licenses to the list of files in about:license, following the Apache-LLVM example. That said, it's a nice to have in this case, not a requirement.

You're welcome to file that patch yourself - as I say, I can turn those reviews around quickly - or to tag me in to the bug where it's happening so I can clean it up later.

This patch backports part 1 to ESR60. You probably don't want this unless you are building ESR with a new rustc, since this breaks compat with Rust 1.24, which ESR upstream is pinned to. This should work at least with Rust 1.32, 1.33 and 1.34 for x86, x86_64 and aarch64. Regresses perf for 32-bit ARM.

(To build with current Rust, you also need to remove #![deny(missing_docs)] from servo/components/style/lib.rs and servo/components/style_traits/lib.rs.)

This patch backports part 2 to ESR60.

Whiteboard: [waiting for bug 1521734]

Can you land this?

Flags: needinfo?(hsivonen)

Comment 40

25 days ago
Pushed by hsivonen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/be4f4ec91925
part 0 - Remove Rust version cap from --enable-rust-simd. r=glandium
https://hg.mozilla.org/integration/autoland/rev/d3d185b3c085
part 1 - Update encoding_rs to 0.8.16. r=glandium
https://hg.mozilla.org/integration/autoland/rev/0b463e85dfe4
part 2 - Make packed_simd compile with Rust 1.32 and later. r=glandium

(In reply to Mike Hommey [:glandium] from comment #39)

Can you land this?

Landed on the assumption that bug 1529774 will follow soon.

Note to sheriff: This is expected to regress performance on ARMv7 Android until bug 1529774 lands.

Flags: needinfo?(hsivonen)
Whiteboard: [waiting for bug 1521734]
Whiteboard: [expected to regress performance on ARMv7 Android until bug 1529774 lands]

Comment 42

24 days ago
bugherder
Status: ASSIGNED → RESOLVED
Last Resolved: 24 days ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
https://hg.mozilla.org/projects/ash/rev/be4f4ec91925f3eff135c2a6e3c3a3eeffd59462
Bug 1521249 part 0 - Remove Rust version cap from --enable-rust-simd. r=glandium

https://hg.mozilla.org/projects/ash/rev/d3d185b3c08554f9ebdb0410d3be4b4fa15477d7
Bug 1521249 part 1 - Update encoding_rs to 0.8.16. r=glandium

https://hg.mozilla.org/projects/ash/rev/0b463e85dfe44a65dace0c816b084fe1332d53f1
Bug 1521249 part 2 - Make packed_simd compile with Rust 1.32 and later. r=glandium
You need to log in before you can comment on or make changes to this bug.