From 0c31e945ea0969a1ca503e88f3fc60680cf9f125 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Wed, 22 May 2024 07:36:46 -0400 Subject: 126.0 with defuzz a patch --- scripts/126.0_defuzz-encoding_rs.patch | 4520 ++++++++++++++++++++++++++++++++ scripts/prep-librewolf-dpkg.conf | 6 +- scripts/prep-librewolf-dpkg.sh | 5 +- 3 files changed, 4527 insertions(+), 4 deletions(-) create mode 100644 scripts/126.0_defuzz-encoding_rs.patch diff --git a/scripts/126.0_defuzz-encoding_rs.patch b/scripts/126.0_defuzz-encoding_rs.patch new file mode 100644 index 0000000..8adce9a --- /dev/null +++ b/scripts/126.0_defuzz-encoding_rs.patch @@ -0,0 +1,4520 @@ +--- debian/patches/librewolf/encoding_rs.patch 2024-05-21 14:49:38.963623665 -0400 ++++ librewolf_126.0/debian/patches/librewolf/encoding_rs.patch 2024-05-21 20:55:23.325759333 -0400 +@@ -8,15 +8,9 @@ + + Differential Revision: https://phabricator.services.mozilla.com/D207167 + +-diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in + --- a/.cargo/config.toml.in + +++ b/.cargo/config.toml.in +-@@ -35,16 +35,21 @@ git = "https://github.com/gfx-rs/wgpu" +- rev = "2b0e3ed01cfcc4bcccc7fd63b2581b260c00b089" +- replace-with = "vendored-sources" +- +- [source."git+https://github.com/glandium/mio?rev=9a2ef335c366044ffe73b1c4acabe50a1daefe05"] +- git = "https://github.com/glandium/mio" ++@@ -35,6 +35,11 @@ git = "https://github.com/glandium/mio" + rev = "9a2ef335c366044ffe73b1c4acabe50a1daefe05" + replace-with = "vendored-sources" + +@@ -28,20 +22,9 @@ + [source."git+https://github.com/hsivonen/chardetng?rev=3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"] + git = "https://github.com/hsivonen/chardetng" + rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" +- replace-with = "vendored-sources" +- +- [source."git+https://github.com/hsivonen/chardetng_c?rev=ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"] +- git = "https://github.com/hsivonen/chardetng_c" +- rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" +-diff --git a/Cargo.lock b/Cargo.lock + --- a/Cargo.lock + +++ b/Cargo.lock +-@@ -87,16 +87,25 @@ dependencies = [ +- +- [[package]] +- name = "anstyle" +- version = "1.0.3" +- source = "registry+https://github.com/rust-lang/crates.io-index" ++@@ -92,6 +92,15 @@ source = "registry+https://github.com/ru + checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" + + [[package]] +@@ -57,45 +40,23 @@ + name = "anyhow" + version = "1.0.69" + source = "registry+https://github.com/rust-lang/crates.io-index" +- checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" +- +- [[package]] +- name = "app_services_logger" +- version = "0.1.0" +-@@ -1571,22 +1580,22 @@ dependencies = [ +- "encoding_rs", +- "nserror", +- "nsstring", +- "xmldecl", +- ] ++@@ -1575,12 +1584,12 @@ dependencies = [ + + [[package]] + name = "encoding_rs" + -version = "0.8.33" +--source = "registry+https://github.com/rust-lang/crates.io-index" +--checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +--dependencies = [ + +version = "0.8.34" +-+source = "registry+https://github.com/rust-lang/crates.io-index" ++ source = "registry+https://github.com/rust-lang/crates.io-index" ++-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" + +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +-+dependencies = [ ++ dependencies = [ + + "any_all_workaround", + "cfg-if 1.0.0", + - "packed_simd", + ] + + [[package]] +- name = "enum-map" +- version = "2.7.3" +- source = "registry+https://github.com/rust-lang/crates.io-index" +- checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +- dependencies = [ +-@@ -4321,26 +4330,16 @@ checksum = "8d91edf4fbb970279443471345a4 +- name = "oxilangtag-ffi" +- version = "0.1.0" +- dependencies = [ +- "nsstring", +- "oxilangtag", ++@@ -4333,16 +4342,6 @@ dependencies = [ + ] + + [[package]] +@@ -112,20 +73,9 @@ + name = "parking_lot" + version = "0.12.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +- checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +- dependencies = [ +- "lock_api", +- "parking_lot_core", +- ] +-diff --git a/Cargo.toml b/Cargo.toml + --- a/Cargo.toml + +++ b/Cargo.toml +-@@ -188,16 +188,17 @@ moz_asserts = { path = "mozglue/static/r +- rure = { path = "third_party/rust/rure" } +- +- # To-be-published changes. +- cssparser = { git = "https://github.com/servo/rust-cssparser", rev = "aaa966d9d6ae70c4b8a62bb5e3a14c068bb7dff0" } +- cssparser-macros = { git = "https://github.com/servo/rust-cssparser", rev = "aaa966d9d6ae70c4b8a62bb5e3a14c068bb7dff0" } ++@@ -200,6 +200,7 @@ cssparser-macros = { git = "https://gith + unicode-bidi = { git = "https://github.com/servo/unicode-bidi", rev = "ca612daf1c08c53abe07327cb3e6ef6e0a760f0c" } + + # Other overrides +@@ -133,20 +83,9 @@ + chardetng = { git = "https://github.com/hsivonen/chardetng", rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" } + chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" } + coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev = "fc68464b5445caf111e41f643a2e69ccce0b4f83" } +- cose = { git = "https://github.com/franziskuskiefer/cose-rust", rev = "43c22248d136c8b38fe42ea709d08da6355cf04b" } +- firefox-on-glean = { path = "toolkit/components/glean/api" } +- icu_capi = { path = "intl/icu_capi" } +- icu_segmenter_data = { path = "intl/icu_segmenter_data" } +- libudev-sys = { path = "dom/webauthn/libudev-sys" } +-diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk + --- a/config/makefiles/rust.mk + +++ b/config/makefiles/rust.mk +-@@ -260,17 +260,17 @@ export COREAUDIO_SDK_PATH=$(IPHONEOS_SDK +- export IPHONEOS_SDK_DIR +- PATH := $(topsrcdir)/build/macosx:$(PATH) +- endif +- endif +- ++@@ -267,7 +267,7 @@ endif + ifndef RUSTC_BOOTSTRAP + RUSTC_BOOTSTRAP := mozglue_static,qcms + ifdef MOZ_RUST_SIMD +@@ -155,20 +94,9 @@ + endif + export RUSTC_BOOTSTRAP + endif +- +- target_rust_ltoable := force-cargo-library-build $(ADD_RUST_LTOABLE) +- target_rust_nonltoable := force-cargo-test-run force-cargo-program-build +- +- ifdef MOZ_PGO_RUST +-diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml + --- a/supply-chain/audits.toml + +++ b/supply-chain/audits.toml +-@@ -596,16 +596,29 @@ who = "Mike Hommey "] + description = "A Gecko-oriented implementation of the Encoding Standard" + homepage = "https://docs.rs/encoding_rs/" +- documentation = "https://docs.rs/encoding_rs/" +- readme = "README.md" +- keywords = [ +- "encoding", +- "web", +-@@ -31,23 +32,23 @@ categories = [ +- "internationalization", +- ] +- license = "(Apache-2.0 OR MIT) AND BSD-3-Clause" +- repository = "https://github.com/hsivonen/encoding_rs" +- ++@@ -36,13 +37,13 @@ repository = "https://github.com/hsivone + [profile.release] + lto = true + +@@ -516,17 +382,7 @@ + [dependencies.serde] + version = "1.0" + optional = true +- +- [dev-dependencies.bincode] +- version = "1.0" +- +- [dev-dependencies.serde_derive] +-@@ -69,15 +70,9 @@ fast-legacy-encode = [ +- "fast-hanja-encode", +- "fast-kanji-encode", +- "fast-gb-hanzi-encode", +- "fast-big5-hanzi-encode", +- ] ++@@ -74,10 +75,4 @@ fast-legacy-encode = [ + less-slow-big5-hanzi-encode = [] + less-slow-gb-hanzi-encode = [] + less-slow-kanji-encode = [] +@@ -538,15 +394,9 @@ + -[badges.travis-ci] + -repository = "hsivonen/encoding_rs" + +simd-accel = ["any_all_workaround"] +-diff --git a/third_party/rust/encoding_rs/README.md b/third_party/rust/encoding_rs/README.md + --- a/third_party/rust/encoding_rs/README.md + +++ b/third_party/rust/encoding_rs/README.md +-@@ -162,50 +162,36 @@ wrappers. +- * [C++](https://github.com/hsivonen/recode_cpp) +- +- ## Optional features +- +- There are currently these optional cargo features: ++@@ -167,13 +167,15 @@ There are currently these optional cargo + + ### `simd-accel` + +@@ -564,11 +414,7 @@ + + * x86_64 + * i686 +- * aarch64 +- * thumbv7neon +- +- If you use nightly Rust, you use targets whose first component is one of the +- above, and you are prepared _to have to revise your configuration when updating ++@@ -185,22 +187,6 @@ above, and you are prepared _to have to + Rust_, you should enable this feature. Otherwise, please _do not_ enable this + feature. + +@@ -591,17 +437,7 @@ + Used by Firefox. + + ### `serde` +- +- Enables support for serializing and deserializing `&'static Encoding`-typed +- struct fields using [Serde][1]. +- +- [1]: https://serde.rs/ +-@@ -376,18 +362,19 @@ It is a goal to support the latest stabl +- the version of Rust that's used for Firefox Nightly. +- +- At this time, there is no firm commitment to support a version older than +- what's required by Firefox, and there is no commitment to treat MSRV changes +- as semver-breaking, because this crate depends on `cfg-if`, which doesn't ++@@ -381,8 +367,9 @@ as semver-breaking, because this crate d + appear to treat MSRV changes as semver-breaking, so it would be useless for + this crate to treat MSRV changes as semver-breaking. + +@@ -612,17 +448,7 @@ + + ## Compatibility with rust-encoding + +- A compatibility layer that implements the rust-encoding API on top of +- encoding_rs is +- [provided as a separate crate](https://github.com/hsivonen/encoding_rs_compat) +- (cannot be uploaded to crates.io). The compatibility layer was originally +- written with the assuption that Firefox would need it, but it is not currently +-@@ -441,20 +428,27 @@ To regenerate the generated code: +- - [x] Implement the rust-encoding API in terms of encoding_rs. +- - [x] Add SIMD acceleration for Aarch64. +- - [x] Investigate the use of NEON on 32-bit ARM. +- - [ ] ~Investigate Björn Höhrmann's lookup table acceleration for UTF-8 as +- adapted to Rust in rust-encoding.~ ++@@ -446,10 +433,17 @@ To regenerate the generated code: + - [x] Add actually fast CJK encode options. + - [ ] ~Investigate [Bob Steagall's lookup table acceleration for UTF-8](https://github.com/BobSteagall/CppNow2018/blob/master/FastConversionFromUTF-8/Fast%20Conversion%20From%20UTF-8%20with%20C%2B%2B%2C%20DFAs%2C%20and%20SSE%20Intrinsics%20-%20Bob%20Steagall%20-%20C%2B%2BNow%202018.pdf).~ + - [x] Provide a build mode that works without `alloc` (with lesser API surface). +@@ -641,20 +467,9 @@ + ### 0.8.33 + + * Use `packed_simd` instead of `packed_simd_2` again now that updates are back under the `packed_simd` name. Only affects the `simd-accel` optional nightly feature. +- +- ### 0.8.32 +- +- * Removed `build.rs`. (This removal should resolve false positives reported by some antivirus products. This may break some build configurations that have opted out of Rust's guarantees against future build breakage.) +- * Internal change to what API is used for reinterpreting the lane configuration of SIMD vectors. +-diff --git a/third_party/rust/encoding_rs/src/ascii.rs b/third_party/rust/encoding_rs/src/ascii.rs + --- a/third_party/rust/encoding_rs/src/ascii.rs + +++ b/third_party/rust/encoding_rs/src/ascii.rs +-@@ -46,71 +46,87 @@ cfg_if! { +- #[allow(dead_code)] +- #[inline(always)] +- fn likely(b: bool) -> bool { +- b +- } ++@@ -51,6 +51,8 @@ cfg_if! { + } + } + +@@ -663,11 +478,7 @@ + // `as` truncates, so works on 32-bit, too. + #[allow(dead_code)] + pub const ASCII_MASK: usize = 0x8080_8080_8080_8080u64 as usize; +- +- // `as` truncates, so works on 32-bit, too. +- #[allow(dead_code)] +- pub const BASIC_LATIN_MASK: usize = 0xFF80_FF80_FF80_FF80u64 as usize; +- ++@@ -62,6 +64,9 @@ pub const BASIC_LATIN_MASK: usize = 0xFF + #[allow(unused_macros)] + macro_rules! ascii_naive { + ($name:ident, $src_unit:ty, $dst_unit:ty) => { +@@ -677,9 +488,7 @@ + #[inline(always)] + pub unsafe fn $name( + src: *const $src_unit, +- dst: *mut $dst_unit, +- len: usize, +- ) -> Option<($src_unit, usize)> { ++@@ -71,10 +76,13 @@ macro_rules! ascii_naive { + // Yes, manually omitting the bound check here matters + // a lot for perf. + for i in 0..len { +@@ -693,10 +502,7 @@ + *(dst.add(i)) = code_unit as $dst_unit; + } + return None; +- } +- }; +- } +- ++@@ -85,9 +93,15 @@ macro_rules! ascii_naive { + #[allow(unused_macros)] + macro_rules! ascii_alu { + ($name:ident, +@@ -712,10 +518,7 @@ + #[cfg_attr(feature = "cargo-clippy", allow(never_loop, cast_ptr_alignment))] + #[inline(always)] + pub unsafe fn $name( +- src: *const $src_unit, +- dst: *mut $dst_unit, +- len: usize, +- ) -> Option<($src_unit, usize)> { ++@@ -98,6 +112,7 @@ macro_rules! ascii_alu { + let mut offset = 0usize; + // This loop is only broken out of as a `goto` forward + loop { +@@ -723,8 +526,7 @@ + let mut until_alignment = { + // Check if the other unit aligns if we move the narrower unit + // to alignment. +- // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() { +- // ascii_to_ascii ++@@ -106,6 +121,7 @@ macro_rules! ascii_alu { + let src_alignment = (src as usize) & ALU_ALIGNMENT_MASK; + let dst_alignment = (dst as usize) & ALU_ALIGNMENT_MASK; + if src_alignment != dst_alignment { +@@ -732,17 +534,7 @@ + break; + } + (ALU_ALIGNMENT - src_alignment) & ALU_ALIGNMENT_MASK +- // } else if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() { +- // ascii_to_basic_latin +- // let src_until_alignment = (ALIGNMENT - ((src as usize) & ALIGNMENT_MASK)) & ALIGNMENT_MASK; +- // if (dst.add(src_until_alignment) as usize) & ALIGNMENT_MASK != 0 { +- // break; +-@@ -129,74 +145,104 @@ macro_rules! ascii_alu { +- // Moving pointers to alignment seems to be a pessimization on +- // x86_64 for operations that have UTF-16 as the internal +- // Unicode representation. However, since it seems to be a win +- // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except +- // mixed results when encoding from UTF-16 and since x86 and ++@@ -134,25 +150,40 @@ macro_rules! ascii_alu { + // x86_64 should be using SSE2 in due course, keeping the move + // to alignment here. It would be good to test on more ARM CPUs + // and on real MIPS and POWER hardware. +@@ -783,7 +575,7 @@ + if offset > len_minus_stride { + break; + } +- } ++@@ -160,11 +191,17 @@ macro_rules! ascii_alu { + } + break; + } +@@ -801,11 +593,7 @@ + *(dst.add(offset)) = code_unit as $dst_unit; + offset += 1; + } +- None +- } +- }; +- } +- ++@@ -176,9 +213,16 @@ macro_rules! ascii_alu { + #[allow(unused_macros)] + macro_rules! basic_latin_alu { + ($name:ident, +@@ -822,13 +610,7 @@ + #[cfg_attr( + feature = "cargo-clippy", + allow(never_loop, cast_ptr_alignment, cast_lossless) +- )] +- #[inline(always)] +- pub unsafe fn $name( +- src: *const $src_unit, +- dst: *mut $dst_unit, +- len: usize, +- ) -> Option<($src_unit, usize)> { ++@@ -192,6 +236,8 @@ macro_rules! basic_latin_alu { + let mut offset = 0usize; + // This loop is only broken out of as a `goto` forward + loop { +@@ -837,17 +619,7 @@ + let mut until_alignment = { + // Check if the other unit aligns if we move the narrower unit + // to alignment. +- // if ::core::mem::size_of::<$src_unit>() == ::core::mem::size_of::<$dst_unit>() { +- // ascii_to_ascii +- // let src_alignment = (src as usize) & ALIGNMENT_MASK; +- // let dst_alignment = (dst as usize) & ALIGNMENT_MASK; +- // if src_alignment != dst_alignment { +-@@ -232,66 +278,89 @@ macro_rules! basic_latin_alu { +- // Moving pointers to alignment seems to be a pessimization on +- // x86_64 for operations that have UTF-16 as the internal +- // Unicode representation. However, since it seems to be a win +- // on ARM (tested ARMv7 code running on ARMv8 [rpi3]), except +- // mixed results when encoding from UTF-16 and since x86 and ++@@ -237,24 +283,37 @@ macro_rules! basic_latin_alu { + // x86_64 should be using SSE2 in due course, keeping the move + // to alignment here. It would be good to test on more ARM CPUs + // and on real MIPS and POWER hardware. +@@ -885,7 +657,7 @@ + if offset > len_minus_stride { + break; + } +- } ++@@ -262,11 +321,15 @@ macro_rules! basic_latin_alu { + } + break; + } +@@ -901,10 +673,7 @@ + *(dst.add(offset)) = code_unit as $dst_unit; + offset += 1; + } +- None +- } +- }; +- } ++@@ -277,7 +340,11 @@ macro_rules! basic_latin_alu { + + #[allow(unused_macros)] + macro_rules! latin1_alu { +@@ -916,9 +685,7 @@ + #[cfg_attr( + feature = "cargo-clippy", + allow(never_loop, cast_ptr_alignment, cast_lossless) +- )] +- #[inline(always)] +- pub unsafe fn $name(src: *const $src_unit, dst: *mut $dst_unit, len: usize) { ++@@ -287,6 +354,8 @@ macro_rules! latin1_alu { + let mut offset = 0usize; + // This loop is only broken out of as a `goto` forward + loop { +@@ -927,17 +694,7 @@ + let mut until_alignment = { + if ::core::mem::size_of::<$src_unit>() < ::core::mem::size_of::<$dst_unit>() { + // unpack +- let src_until_alignment = (ALU_ALIGNMENT +- - ((src as usize) & ALU_ALIGNMENT_MASK)) +- & ALU_ALIGNMENT_MASK; +- if (dst.wrapping_add(src_until_alignment) as usize) & ALU_ALIGNMENT_MASK +- != 0 +-@@ -308,373 +377,485 @@ macro_rules! latin1_alu { +- != 0 +- { +- break; +- } +- dst_until_alignment ++@@ -313,19 +382,30 @@ macro_rules! latin1_alu { + } + }; + if until_alignment + ALU_STRIDE_SIZE <= len { +@@ -968,7 +725,7 @@ + if offset > len_minus_stride { + break; + } +- } ++@@ -333,7 +413,9 @@ macro_rules! latin1_alu { + } + break; + } +@@ -978,14 +735,7 @@ + let code_unit = *(src.add(offset)); + *(dst.add(offset)) = code_unit as $dst_unit; + offset += 1; +- } +- } +- }; +- } +- +- #[allow(unused_macros)] +- macro_rules! ascii_simd_check_align { +- ( ++@@ -348,11 +430,19 @@ macro_rules! ascii_simd_check_align { + $name:ident, + $src_unit:ty, + $dst_unit:ty, +@@ -1005,7 +755,7 @@ + #[inline(always)] + pub unsafe fn $name( + src: *const $src_unit, +- dst: *mut $dst_unit, ++@@ -360,6 +450,7 @@ macro_rules! ascii_simd_check_align { + len: usize, + ) -> Option<($src_unit, usize)> { + let mut offset = 0usize; +@@ -1013,8 +763,7 @@ + if SIMD_STRIDE_SIZE <= len { + let len_minus_stride = len - SIMD_STRIDE_SIZE; + // XXX Should we first process one stride unconditionally as unaligned to +- // avoid the cost of the branchiness below if the first stride fails anyway? +- // XXX Should we just use unaligned SSE2 access unconditionally? It seems that ++@@ -368,23 +459,29 @@ macro_rules! ascii_simd_check_align { + // on Haswell, it would make sense to just use unaligned and not bother + // checking. Need to benchmark older architectures before deciding. + let dst_masked = (dst as usize) & SIMD_ALIGNMENT_MASK; +@@ -1044,8 +793,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } ++@@ -393,20 +490,24 @@ macro_rules! ascii_simd_check_align { + } else { + if dst_masked == 0 { + loop { +@@ -1070,8 +818,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } ++@@ -415,8 +516,10 @@ macro_rules! ascii_simd_check_align { + } + } + while offset < len { +@@ -1082,16 +829,7 @@ + return Some((code_unit, offset)); + } + *(dst.add(offset)) = code_unit as $dst_unit; +- offset += 1; +- } +- None +- } +- }; +- } +- +- #[allow(unused_macros)] +- macro_rules! ascii_simd_check_align_unrolled { +- ( ++@@ -433,13 +536,21 @@ macro_rules! ascii_simd_check_align_unro + $name:ident, + $src_unit:ty, + $dst_unit:ty, +@@ -1114,10 +852,7 @@ + pub unsafe fn $name( + src: *const $src_unit, + dst: *mut $dst_unit, +- len: usize, +- ) -> Option<($src_unit, usize)> { +- let unit_size = ::core::mem::size_of::<$src_unit>(); +- let mut offset = 0usize; ++@@ -450,8 +561,10 @@ macro_rules! ascii_simd_check_align_unro + // This loop is only broken out of as a goto forward without + // actually looping + 'outer: loop { +@@ -1128,9 +863,7 @@ + if !$stride_neither_aligned(src, dst) { + break 'outer; + } +- offset = SIMD_STRIDE_SIZE; +- +- // We have now seen 16 ASCII bytes. Let's guess that ++@@ -461,37 +574,54 @@ macro_rules! ascii_simd_check_align_unro + // there will be enough more to justify more expense + // in the case of non-ASCII. + // Use aligned reads for the sake of old microachitectures. +@@ -1186,8 +919,7 @@ + if offset + SIMD_STRIDE_SIZE <= len { + if !$stride_both_aligned(src.add(offset), dst.add(offset)) { + break 'outer; +- } +- offset += SIMD_STRIDE_SIZE; ++@@ -500,18 +630,25 @@ macro_rules! ascii_simd_check_align_unro + } + } else { + loop { +@@ -1213,10 +945,7 @@ + if offset + SIMD_STRIDE_SIZE <= len { + if !$stride_src_aligned(src.add(offset), dst.add(offset)) { + break 'outer; +- } +- offset += SIMD_STRIDE_SIZE; +- } +- } ++@@ -522,11 +659,13 @@ macro_rules! ascii_simd_check_align_unro + } else { + // At most two iterations, so unroll + if offset + SIMD_STRIDE_SIZE <= len { +@@ -1230,11 +959,7 @@ + if !$stride_neither_aligned(src.add(offset), dst.add(offset)) { + break; + } +- offset += SIMD_STRIDE_SIZE; +- } +- } +- } +- } ++@@ -538,8 +677,10 @@ macro_rules! ascii_simd_check_align_unro + break 'outer; + } + while offset < len { +@@ -1245,16 +970,7 @@ + return Some((code_unit, offset)); + } + *(dst.add(offset)) = code_unit as $dst_unit; +- offset += 1; +- } +- None +- } +- }; +- } +- +- #[allow(unused_macros)] +- macro_rules! latin1_simd_check_align { +- ( ++@@ -556,30 +697,45 @@ macro_rules! latin1_simd_check_align { + $name:ident, + $src_unit:ty, + $dst_unit:ty, +@@ -1300,8 +1016,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } ++@@ -588,16 +744,22 @@ macro_rules! latin1_simd_check_align { + } else { + if dst_masked == 0 { + loop { +@@ -1324,8 +1039,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } ++@@ -606,6 +768,7 @@ macro_rules! latin1_simd_check_align { + } + } + while offset < len { +@@ -1333,14 +1047,7 @@ + let code_unit = *(src.add(offset)); + *(dst.add(offset)) = code_unit as $dst_unit; + offset += 1; +- } +- } +- }; +- } +- +- #[allow(unused_macros)] +- macro_rules! latin1_simd_check_align_unrolled { +- ( ++@@ -620,56 +783,74 @@ macro_rules! latin1_simd_check_align_unr + $name:ident, + $src_unit:ty, + $dst_unit:ty, +@@ -1415,17 +1122,7 @@ + let code_unit = *(src.add(offset)); + // On x86_64, this loop autovectorizes but in the pack + // case there are instructions whose purpose is to make sure +- // each u16 in the vector is truncated before packing. However, +- // since we don't care about saturating behavior of SSE2 packing +- // when the input isn't Latin1, those instructions are useless. +- // Unfortunately, using the `assume` intrinsic to lie to the +- // optimizer doesn't make LLVM omit the trunctation that we +-@@ -688,138 +869,180 @@ macro_rules! latin1_simd_check_align_unr +- offset += 1; +- } +- } +- }; +- } ++@@ -693,7 +874,12 @@ macro_rules! latin1_simd_check_align_unr + + #[allow(unused_macros)] + macro_rules! ascii_simd_unalign { +@@ -1438,7 +1135,7 @@ + #[inline(always)] + pub unsafe fn $name( + src: *const $src_unit, +- dst: *mut $dst_unit, ++@@ -701,21 +887,26 @@ macro_rules! ascii_simd_unalign { + len: usize, + ) -> Option<($src_unit, usize)> { + let mut offset = 0usize; +@@ -1465,12 +1162,7 @@ + return Some((code_unit, offset)); + } + *(dst.add(offset)) = code_unit as $dst_unit; +- offset += 1; +- } +- None +- } +- }; +- } ++@@ -728,21 +919,27 @@ macro_rules! ascii_simd_unalign { + + #[allow(unused_macros)] + macro_rules! latin1_simd_unalign { +@@ -1498,10 +1190,7 @@ + let code_unit = *(src.add(offset)); + *(dst.add(offset)) = code_unit as $dst_unit; + offset += 1; +- } +- } +- }; +- } ++@@ -753,7 +950,11 @@ macro_rules! latin1_simd_unalign { + + #[allow(unused_macros)] + macro_rules! ascii_to_ascii_simd_stride { +@@ -1513,14 +1202,7 @@ + #[inline(always)] + pub unsafe fn $name(src: *const u8, dst: *mut u8) -> bool { + let simd = $load(src); +- if !simd_is_ascii(simd) { +- return false; +- } +- $store(dst, simd); +- true +- } +- }; +- } ++@@ -768,19 +969,32 @@ macro_rules! ascii_to_ascii_simd_stride + + #[allow(unused_macros)] + macro_rules! ascii_to_ascii_simd_double_stride { +@@ -1553,10 +1235,7 @@ + return Some(SIMD_STRIDE_SIZE + mask_second.trailing_zeros() as usize); + } + $store(dst.add(SIMD_STRIDE_SIZE), second); +- None +- } +- }; +- } ++@@ -791,7 +1005,11 @@ macro_rules! ascii_to_ascii_simd_double_ + + #[allow(unused_macros)] + macro_rules! ascii_to_basic_latin_simd_stride { +@@ -1568,16 +1247,7 @@ + #[inline(always)] + pub unsafe fn $name(src: *const u8, dst: *mut u16) -> bool { + let simd = $load(src); +- if !simd_is_ascii(simd) { +- return false; +- } +- let (first, second) = simd_unpack(simd); +- $store(dst, first); +- $store(dst.add(8), second); +- true +- } +- }; +- } ++@@ -808,13 +1026,18 @@ macro_rules! ascii_to_basic_latin_simd_s + + #[allow(unused_macros)] + macro_rules! ascii_to_basic_latin_simd_double_stride { +@@ -1596,17 +1266,7 @@ + $store(dst.add(SIMD_STRIDE_SIZE / 2), b); + if unlikely(!simd_is_ascii(first | second)) { + let mask_first = mask_ascii(first); +- if mask_first != 0 { +- return Some(mask_first.trailing_zeros() as usize); +- } +- let (c, d) = simd_unpack(second); +- $store(dst.add(SIMD_STRIDE_SIZE), c); +-@@ -832,47 +1055,59 @@ macro_rules! ascii_to_basic_latin_simd_d +- $store(dst.add(SIMD_STRIDE_SIZE + (SIMD_STRIDE_SIZE / 2)), d); +- None +- } +- }; +- } ++@@ -837,7 +1060,11 @@ macro_rules! ascii_to_basic_latin_simd_d + + #[allow(unused_macros)] + macro_rules! unpack_simd_stride { +@@ -1618,12 +1278,7 @@ + #[inline(always)] + pub unsafe fn $name(src: *const u8, dst: *mut u16) { + let simd = $load(src); +- let (first, second) = simd_unpack(simd); +- $store(dst, first); +- $store(dst.add(8), second); +- } +- }; +- } ++@@ -850,7 +1077,11 @@ macro_rules! unpack_simd_stride { + + #[allow(unused_macros)] + macro_rules! basic_latin_to_ascii_simd_stride { +@@ -1635,16 +1290,7 @@ + #[inline(always)] + pub unsafe fn $name(src: *const u16, dst: *mut u8) -> bool { + let first = $load(src); +- let second = $load(src.add(8)); +- if simd_is_basic_latin(first | second) { +- $store(dst, simd_pack(first, second)); +- true +- } else { +- false +- } +- } +- }; +- } ++@@ -867,7 +1098,11 @@ macro_rules! basic_latin_to_ascii_simd_s + + #[allow(unused_macros)] + macro_rules! pack_simd_stride { +@@ -1656,17 +1302,7 @@ + #[inline(always)] + pub unsafe fn $name(src: *const u16, dst: *mut u8) { + let first = $load(src); +- let second = $load(src.add(8)); +- $store(dst, simd_pack(first, second)); +- } +- }; +- } +-@@ -888,24 +1123,28 @@ cfg_if! { +- // pub const ALIGNMENT: usize = 8; +- +- pub const ALU_STRIDE_SIZE: usize = 16; +- +- pub const ALU_ALIGNMENT: usize = 8; ++@@ -893,6 +1128,8 @@ cfg_if! { + + pub const ALU_ALIGNMENT_MASK: usize = 7; + +@@ -1675,8 +1311,7 @@ + ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned); + + ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_neither_aligned, load16_unaligned, store8_unaligned); +- unpack_simd_stride!(unpack_stride_neither_aligned, load16_unaligned, store8_unaligned); +- ++@@ -901,6 +1138,8 @@ cfg_if! { + basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned); + pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned); + +@@ -1685,17 +1320,7 @@ + ascii_simd_unalign!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_neither_aligned); + ascii_simd_unalign!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_neither_aligned); + ascii_simd_unalign!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_neither_aligned); +- latin1_simd_unalign!(unpack_latin1, u8, u16, unpack_stride_neither_aligned); +- latin1_simd_unalign!(pack_latin1, u16, u8, pack_stride_neither_aligned); +- } else if #[cfg(all(feature = "simd-accel", target_endian = "little", target_feature = "neon"))] { +- // SIMD with different instructions for aligned and unaligned loads and stores. +- // +-@@ -914,16 +1153,19 @@ cfg_if! { +- // but the benchmark results I see don't agree. +- +- pub const SIMD_STRIDE_SIZE: usize = 16; +- +- pub const MAX_STRIDE_SIZE: usize = 16; ++@@ -919,6 +1158,9 @@ cfg_if! { + + pub const SIMD_ALIGNMENT_MASK: usize = 15; + +@@ -1705,17 +1330,7 @@ + ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned); + ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned); + ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_dst_aligned, load16_unaligned, store16_aligned); +- ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_neither_aligned, load16_unaligned, store16_unaligned); +- +- ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_both_aligned, load16_aligned, store8_aligned); +- ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_src_aligned, load16_aligned, store8_unaligned); +- ascii_to_basic_latin_simd_stride!(ascii_to_basic_latin_stride_dst_aligned, load16_unaligned, store8_aligned); +-@@ -939,36 +1181,43 @@ cfg_if! { +- basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned); +- basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned); +- +- pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned); +- pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned); ++@@ -944,6 +1186,9 @@ cfg_if! { + pack_simd_stride!(pack_stride_dst_aligned, load8_unaligned, store16_aligned); + pack_simd_stride!(pack_stride_neither_aligned, load8_unaligned, store16_unaligned); + +@@ -1725,14 +1340,7 @@ + ascii_simd_check_align!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_dst_aligned, ascii_to_ascii_stride_neither_aligned); + ascii_simd_check_align!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_dst_aligned, ascii_to_basic_latin_stride_neither_aligned); + ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned); +- latin1_simd_check_align!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned); +- latin1_simd_check_align!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned); +- } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] { +- // SIMD with different instructions for aligned and unaligned loads and stores. +- // +- // Newer microarchitectures are not supposed to have a performance difference between +- // aligned and unaligned SSE2 loads and stores when the address is actually aligned, +- // but the benchmark results I see don't agree. ++@@ -958,12 +1203,16 @@ cfg_if! { + + pub const SIMD_STRIDE_SIZE: usize = 16; + +@@ -1749,17 +1357,7 @@ + ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_both_aligned, store16_aligned); + ascii_to_ascii_simd_double_stride!(ascii_to_ascii_simd_double_stride_src_aligned, store16_unaligned); + +- ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_both_aligned, store8_aligned); +- ascii_to_basic_latin_simd_double_stride!(ascii_to_basic_latin_simd_double_stride_src_aligned, store8_unaligned); +- +- ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_both_aligned, load16_aligned, store16_aligned); +- ascii_to_ascii_simd_stride!(ascii_to_ascii_stride_src_aligned, load16_aligned, store16_unaligned); +-@@ -984,33 +1233,43 @@ cfg_if! { +- basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_both_aligned, load8_aligned, store16_aligned); +- basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_src_aligned, load8_aligned, store16_unaligned); +- basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_dst_aligned, load8_unaligned, store16_aligned); +- basic_latin_to_ascii_simd_stride!(basic_latin_to_ascii_stride_neither_aligned, load8_unaligned, store16_unaligned); +- ++@@ -989,6 +1238,9 @@ cfg_if! { + pack_simd_stride!(pack_stride_both_aligned, load8_aligned, store16_aligned); + pack_simd_stride!(pack_stride_src_aligned, load8_aligned, store16_unaligned); + +@@ -1769,9 +1367,7 @@ + ascii_simd_check_align_unrolled!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride_both_aligned, ascii_to_ascii_stride_src_aligned, ascii_to_ascii_stride_neither_aligned, ascii_to_ascii_simd_double_stride_both_aligned, ascii_to_ascii_simd_double_stride_src_aligned); + ascii_simd_check_align_unrolled!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_both_aligned, ascii_to_basic_latin_stride_src_aligned, ascii_to_basic_latin_stride_neither_aligned, ascii_to_basic_latin_simd_double_stride_both_aligned, ascii_to_basic_latin_simd_double_stride_src_aligned); + +- ascii_simd_check_align!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_both_aligned, basic_latin_to_ascii_stride_src_aligned, basic_latin_to_ascii_stride_dst_aligned, basic_latin_to_ascii_stride_neither_aligned); +- latin1_simd_check_align_unrolled!(unpack_latin1, u8, u16, unpack_stride_both_aligned, unpack_stride_src_aligned, unpack_stride_dst_aligned, unpack_stride_neither_aligned); +- latin1_simd_check_align_unrolled!(pack_latin1, u16, u8, pack_stride_both_aligned, pack_stride_src_aligned, pack_stride_dst_aligned, pack_stride_neither_aligned); ++@@ -998,14 +1250,21 @@ cfg_if! { + } else if #[cfg(all(target_endian = "little", target_pointer_width = "64"))] { + // Aligned ALU word, little-endian, 64-bit + +@@ -1793,17 +1389,7 @@ + #[inline(always)] + unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) { + let first = ((0x0000_0000_FF00_0000usize & word) << 24) | +- ((0x0000_0000_00FF_0000usize & word) << 16) | +- ((0x0000_0000_0000_FF00usize & word) << 8) | +- (0x0000_0000_0000_00FFusize & word); +- let second = ((0xFF00_0000_0000_0000usize & word) >> 8) | +- ((0x00FF_0000_0000_0000usize & word) >> 16) | +-@@ -1019,22 +1278,24 @@ cfg_if! { +- let third = ((0x0000_0000_FF00_0000usize & second_word) << 24) | +- ((0x0000_0000_00FF_0000usize & second_word) << 16) | +- ((0x0000_0000_0000_FF00usize & second_word) << 8) | +- (0x0000_0000_0000_00FFusize & second_word); +- let fourth = ((0xFF00_0000_0000_0000usize & second_word) >> 8) | ++@@ -1024,12 +1283,14 @@ cfg_if! { + ((0x00FF_0000_0000_0000usize & second_word) >> 16) | + ((0x0000_FF00_0000_0000usize & second_word) >> 24) | + ((0x0000_00FF_0000_0000usize & second_word) >> 32); +@@ -1818,17 +1404,7 @@ + #[inline(always)] + unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) { + let word = ((0x00FF_0000_0000_0000usize & second) << 8) | +- ((0x0000_00FF_0000_0000usize & second) << 16) | +- ((0x0000_0000_00FF_0000usize & second) << 24) | +- ((0x0000_0000_0000_00FFusize & second) << 32) | +- ((0x00FF_0000_0000_0000usize & first) >> 24) | +- ((0x0000_00FF_0000_0000usize & first) >> 16) | +-@@ -1043,70 +1304,88 @@ cfg_if! { +- let second_word = ((0x00FF_0000_0000_0000usize & fourth) << 8) | +- ((0x0000_00FF_0000_0000usize & fourth) << 16) | +- ((0x0000_0000_00FF_0000usize & fourth) << 24) | +- ((0x0000_0000_0000_00FFusize & fourth) << 32) | +- ((0x00FF_0000_0000_0000usize & third) >> 24) | ++@@ -1048,20 +1309,28 @@ cfg_if! { + ((0x0000_00FF_0000_0000usize & third) >> 16) | + ((0x0000_0000_00FF_0000usize & third) >> 8) | + (0x0000_0000_0000_00FFusize & third); +@@ -1857,10 +1433,7 @@ + #[inline(always)] + unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) { + let first = ((0x0000_FF00usize & word) << 8) | +- (0x0000_00FFusize & word); +- let second = ((0xFF00_0000usize & word) >> 8) | +- ((0x00FF_0000usize & word) >> 16); +- let third = ((0x0000_FF00usize & second_word) << 8) | ++@@ -1072,12 +1341,14 @@ cfg_if! { + (0x0000_00FFusize & second_word); + let fourth = ((0xFF00_0000usize & second_word) >> 8) | + ((0x00FF_0000usize & second_word) >> 16); +@@ -1875,10 +1448,7 @@ + #[inline(always)] + unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) { + let word = ((0x00FF_0000usize & second) << 8) | +- ((0x0000_00FFusize & second) << 16) | +- ((0x00FF_0000usize & first) >> 8) | +- (0x0000_00FFusize & first); +- let second_word = ((0x00FF_0000usize & fourth) << 8) | ++@@ -1088,20 +1359,28 @@ cfg_if! { + ((0x0000_00FFusize & fourth) << 16) | + ((0x00FF_0000usize & third) >> 8) | + (0x0000_00FFusize & third); +@@ -1907,17 +1477,7 @@ + #[inline(always)] + unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) { + let first = ((0xFF00_0000_0000_0000usize & word) >> 8) | +- ((0x00FF_0000_0000_0000usize & word) >> 16) | +- ((0x0000_FF00_0000_0000usize & word) >> 24) | +- ((0x0000_00FF_0000_0000usize & word) >> 32); +- let second = ((0x0000_0000_FF00_0000usize & word) << 24) | +- ((0x0000_0000_00FF_0000usize & word) << 16) | +-@@ -1115,22 +1394,24 @@ cfg_if! { +- let third = ((0xFF00_0000_0000_0000usize & second_word) >> 8) | +- ((0x00FF_0000_0000_0000usize & second_word) >> 16) | +- ((0x0000_FF00_0000_0000usize & second_word) >> 24) | +- ((0x0000_00FF_0000_0000usize & second_word) >> 32); +- let fourth = ((0x0000_0000_FF00_0000usize & second_word) << 24) | ++@@ -1120,12 +1399,14 @@ cfg_if! { + ((0x0000_0000_00FF_0000usize & second_word) << 16) | + ((0x0000_0000_0000_FF00usize & second_word) << 8) | + (0x0000_0000_0000_00FFusize & second_word); +@@ -1932,17 +1492,7 @@ + #[inline(always)] + unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) { + let word = ((0x00FF0000_00000000usize & first) << 8) | +- ((0x000000FF_00000000usize & first) << 16) | +- ((0x00000000_00FF0000usize & first) << 24) | +- ((0x00000000_000000FFusize & first) << 32) | +- ((0x00FF0000_00000000usize & second) >> 24) | +- ((0x000000FF_00000000usize & second) >> 16) | +-@@ -1139,67 +1420,80 @@ cfg_if! { +- let second_word = ((0x00FF0000_00000000usize & third) << 8) | +- ((0x000000FF_00000000usize & third) << 16) | +- ((0x00000000_00FF0000usize & third) << 24) | +- ((0x00000000_000000FFusize & third) << 32) | +- ((0x00FF0000_00000000usize & fourth) >> 24) | ++@@ -1144,20 +1425,28 @@ cfg_if! { + ((0x000000FF_00000000usize & fourth) >> 16) | + ((0x00000000_00FF0000usize & fourth) >> 8) | + (0x00000000_000000FFusize & fourth); +@@ -1971,10 +1521,7 @@ + #[inline(always)] + unsafe fn unpack_alu(word: usize, second_word: usize, dst: *mut usize) { + let first = ((0xFF00_0000usize & word) >> 8) | +- ((0x00FF_0000usize & word) >> 16); +- let second = ((0x0000_FF00usize & word) << 8) | +- (0x0000_00FFusize & word); +- let third = ((0xFF00_0000usize & second_word) >> 8) | ++@@ -1168,12 +1457,14 @@ cfg_if! { + ((0x00FF_0000usize & second_word) >> 16); + let fourth = ((0x0000_FF00usize & second_word) << 8) | + (0x0000_00FFusize & second_word); +@@ -1989,10 +1536,7 @@ + #[inline(always)] + unsafe fn pack_alu(first: usize, second: usize, third: usize, fourth: usize, dst: *mut usize) { + let word = ((0x00FF_0000usize & first) << 8) | +- ((0x0000_00FFusize & first) << 16) | +- ((0x00FF_0000usize & second) >> 8) | +- (0x0000_00FFusize & second); +- let second_word = ((0x00FF_0000usize & third) << 8) | ++@@ -1184,6 +1475,7 @@ cfg_if! { + ((0x0000_00FFusize & third) << 16) | + ((0x00FF_0000usize & fourth) >> 8) | + (0x0000_00FFusize & fourth); +@@ -2000,11 +1544,7 @@ + *dst = word; + *(dst.add(1)) = second_word; + } +- } else { +- ascii_naive!(ascii_to_ascii, u8, u8); +- ascii_naive!(ascii_to_basic_latin, u8, u16); +- ascii_naive!(basic_latin_to_ascii, u16, u8); +- } ++@@ -1195,6 +1487,8 @@ cfg_if! { + } + + cfg_if! { +@@ -2013,17 +1553,7 @@ + if #[cfg(target_endian = "little")] { + #[allow(dead_code)] + #[inline(always)] +- fn count_zeros(word: usize) -> u32 { +- word.trailing_zeros() +- } +- } else { +- #[allow(dead_code)] +-@@ -1207,208 +1501,272 @@ cfg_if! { +- fn count_zeros(word: usize) -> u32 { +- word.leading_zeros() +- } +- } +- } ++@@ -1212,19 +1506,24 @@ cfg_if! { + + cfg_if! { + if #[cfg(all(feature = "simd-accel", target_endian = "little", target_arch = "disabled"))] { +@@ -2048,8 +1578,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } ++@@ -1233,6 +1532,7 @@ cfg_if! { + while offset < len { + let code_unit = slice[offset]; + if code_unit > 127 { +@@ -2057,7 +1586,7 @@ + return Some((code_unit, offset)); + } + offset += 1; +- } ++@@ -1240,13 +1540,17 @@ cfg_if! { + None + } + } else if #[cfg(all(feature = "simd-accel", target_feature = "sse2"))] { +@@ -2075,8 +1604,7 @@ + let simd = unsafe { load16_unaligned(src) }; + let mask = mask_ascii(simd); + if mask != 0 { +- offset = mask.trailing_zeros() as usize; +- let non_ascii = unsafe { *src.add(offset) }; ++@@ -1255,18 +1559,26 @@ cfg_if! { + return Some((non_ascii, offset)); + } + offset = SIMD_STRIDE_SIZE; +@@ -2103,9 +1631,7 @@ + let simd = unsafe { load16_unaligned(src.add(offset)) }; + let mask = mask_ascii(simd); + if mask != 0 { +- offset += mask.trailing_zeros() as usize; +- let non_ascii = unsafe { *src.add(offset) }; +- return Some((non_ascii, offset)); ++@@ -1276,53 +1588,78 @@ cfg_if! { + } + offset += until_alignment; + } +@@ -2186,8 +1712,7 @@ + return Some((non_ascii, offset)); + } + offset += SIMD_STRIDE_SIZE; +- } +- } ++@@ -1331,8 +1668,10 @@ cfg_if! { + } + } + while offset < len { +@@ -2198,7 +1723,7 @@ + return Some((code_unit, offset)); + } + offset += 1; +- } ++@@ -1340,31 +1679,40 @@ cfg_if! { + None + } + } else { +@@ -2241,7 +1766,7 @@ + #[inline(always)] + unsafe fn validate_ascii_stride(src: *const usize) -> Option { + let word = *src; +- let second_word = *(src.add(1)); ++@@ -1372,6 +1720,8 @@ cfg_if! { + find_non_ascii(word, second_word) + } + +@@ -2250,7 +1775,7 @@ + #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))] + #[inline(always)] + pub fn validate_ascii(slice: &[u8]) -> Option<(u8, usize)> { +- let src = slice.as_ptr(); ++@@ -1379,23 +1729,30 @@ cfg_if! { + let len = slice.len(); + let mut offset = 0usize; + let mut until_alignment = (ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK)) & ALU_ALIGNMENT_MASK; +@@ -2281,8 +1806,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } ++@@ -1404,6 +1761,7 @@ cfg_if! { + while offset < len { + let code_unit = slice[offset]; + if code_unit > 127 { +@@ -2290,17 +1814,7 @@ + return Some((code_unit, offset)); + } + offset += 1; +- } +- None +- } +- +- } +-@@ -1423,70 +1781,88 @@ cfg_if! { +- // vector reads without vector writes. +- +- pub const ALU_STRIDE_SIZE: usize = 8; +- +- pub const ALU_ALIGNMENT: usize = 4; ++@@ -1428,36 +1786,47 @@ cfg_if! { + + pub const ALU_ALIGNMENT_MASK: usize = 3; + } else { +@@ -2348,7 +1862,7 @@ + let first = *src; + let second = *(src.add(1)); + let third = *(src.add(2)); +- let fourth = *(src.add(3)); ++@@ -1465,16 +1834,22 @@ cfg_if! { + if (first & BASIC_LATIN_MASK) | (second & BASIC_LATIN_MASK) | (third & BASIC_LATIN_MASK) | (fourth & BASIC_LATIN_MASK) != 0 { + return false; + } +@@ -2371,7 +1885,7 @@ + find_non_ascii(word, second_word) + } + +- basic_latin_alu!(ascii_to_basic_latin, u8, u16, ascii_to_basic_latin_stride_alu); ++@@ -1482,6 +1857,7 @@ cfg_if! { + basic_latin_alu!(basic_latin_to_ascii, u16, u8, basic_latin_to_ascii_stride_alu); + latin1_alu!(unpack_latin1, u8, u16, unpack_latin1_stride_alu); + latin1_alu!(pack_latin1, u16, u8, pack_latin1_stride_alu); +@@ -2379,20 +1893,9 @@ + ascii_alu!(ascii_to_ascii, u8, u8, ascii_to_ascii_stride); + } + } +- +- pub fn ascii_valid_up_to(bytes: &[u8]) -> usize { +- match validate_ascii(bytes) { +- None => bytes.len(), +- Some((_, num_valid)) => num_valid, +-diff --git a/third_party/rust/encoding_rs/src/handles.rs b/third_party/rust/encoding_rs/src/handles.rs + --- a/third_party/rust/encoding_rs/src/handles.rs + +++ b/third_party/rust/encoding_rs/src/handles.rs +-@@ -29,17 +29,17 @@ use crate::simd_funcs::*; +- #[cfg(all( +- feature = "simd-accel", +- any( +- target_feature = "sse2", +- all(target_endian = "little", target_arch = "aarch64"), ++@@ -34,7 +34,7 @@ use crate::simd_funcs::*; + all(target_endian = "little", target_feature = "neon") + ) + ))] +@@ -2401,17 +1904,7 @@ + + use super::DecoderResult; + use super::EncoderResult; +- use crate::ascii::*; +- use crate::utf_8::convert_utf8_to_utf16_up_to_invalid; +- use crate::utf_8::utf8_valid_up_to; +- +- pub enum Space { +-@@ -85,84 +85,100 @@ impl Endian for LittleEndian { +- const OPPOSITE_ENDIAN: bool = false; +- +- #[cfg(target_endian = "big")] +- const OPPOSITE_ENDIAN: bool = true; +- } ++@@ -90,19 +90,23 @@ impl Endian for LittleEndian { + + #[derive(Debug, Copy, Clone)] + struct UnalignedU16Slice { +@@ -2435,10 +1928,7 @@ + self.len -= 1; + } + +- #[inline(always)] +- pub fn at(&self, i: usize) -> u16 { +- use core::mem::MaybeUninit; +- ++@@ -113,7 +117,9 @@ impl UnalignedU16Slice { + assert!(i < self.len); + unsafe { + let mut u: MaybeUninit = MaybeUninit::uninit(); +@@ -2448,7 +1938,7 @@ + u.assume_init() + } + } +- ++@@ -121,8 +127,13 @@ impl UnalignedU16Slice { + #[cfg(feature = "simd-accel")] + #[inline(always)] + pub fn simd_at(&self, i: usize) -> u16x8 { +@@ -2462,13 +1952,7 @@ + unsafe { to_u16_lanes(load16_unaligned(self.ptr.add(byte_index))) } + } + +- #[inline(always)] +- pub fn len(&self) -> usize { +- self.len +- } +- +- #[inline(always)] +- pub fn tail(&self, from: usize) -> UnalignedU16Slice { ++@@ -136,6 +147,7 @@ impl UnalignedU16Slice { + // XXX the return value should be restricted not to + // outlive self. + assert!(from <= self.len); +@@ -2476,8 +1960,7 @@ + unsafe { UnalignedU16Slice::new(self.ptr.add(from * 2), self.len - from) } + } + +- #[cfg(feature = "simd-accel")] +- #[inline(always)] ++@@ -144,6 +156,8 @@ impl UnalignedU16Slice { + pub fn copy_bmp_to(&self, other: &mut [u16]) -> Option<(u16, usize)> { + assert!(self.len <= other.len()); + let mut offset = 0; +@@ -2486,7 +1969,7 @@ + if SIMD_STRIDE_SIZE / 2 <= self.len { + let len_minus_stride = self.len - SIMD_STRIDE_SIZE / 2; + loop { +- let mut simd = self.simd_at(offset); ++@@ -151,6 +165,7 @@ impl UnalignedU16Slice { + if E::OPPOSITE_ENDIAN { + simd = simd_byte_swap(simd); + } +@@ -2494,7 +1977,7 @@ + unsafe { + store8_unaligned(other.as_mut_ptr().add(offset), simd); + } +- if contains_surrogates(simd) { ++@@ -158,6 +173,7 @@ impl UnalignedU16Slice { + break; + } + offset += SIMD_STRIDE_SIZE / 2; +@@ -2502,17 +1985,7 @@ + if offset > len_minus_stride { + break; + } +- } +- } +- while offset < self.len { +- let unit = swap_if_opposite_endian::(self.at(offset)); +- other[offset] = unit; +-@@ -231,33 +247,37 @@ fn copy_unaligned_basic_latin_to_ascii( +- src: UnalignedU16Slice, +- dst: &mut [u8], ++@@ -236,6 +252,7 @@ fn copy_unaligned_basic_latin_to_ascii CopyAsciiResult { + let len = ::core::cmp::min(src.len(), dst.len()); + let mut offset = 0; +@@ -2520,13 +1993,7 @@ + if SIMD_STRIDE_SIZE <= len { + let len_minus_stride = len - SIMD_STRIDE_SIZE; + loop { +- let mut first = src.simd_at(offset); +- let mut second = src.simd_at(offset + (SIMD_STRIDE_SIZE / 2)); +- if E::OPPOSITE_ENDIAN { +- first = simd_byte_swap(first); +- second = simd_byte_swap(second); +- } +- if !simd_is_basic_latin(first | second) { ++@@ -249,10 +266,13 @@ fn copy_unaligned_basic_latin_to_ascii len_minus_stride { + break; + } +- } +- } +- copy_unaligned_basic_latin_to_ascii_alu::(src.tail(offset), &mut dst[offset..], offset) +- } +- +-@@ -632,94 +652,106 @@ impl<'a> Utf16Destination<'a> { +- #[inline(always)] +- fn write_astral(&mut self, astral: u32) { +- debug_assert!(astral > 0xFFFF); +- debug_assert!(astral <= 0x10_FFFF); +- self.write_code_unit((0xD7C0 + (astral >> 10)) as u16); ++@@ -637,7 +657,7 @@ impl<'a> Utf16Destination<'a> { + self.write_code_unit((0xDC00 + (astral & 0x3FF)) as u16); + } + #[inline(always)] +@@ -2559,8 +2016,7 @@ + self.write_code_unit(high); + self.write_code_unit(low); + } +- #[inline(always)] +- fn write_big5_combination(&mut self, combined: u16, combining: u16) { ++@@ -646,6 +666,7 @@ impl<'a> Utf16Destination<'a> { + self.write_bmp_excl_ascii(combined); + self.write_bmp_excl_ascii(combining); + } +@@ -2568,13 +2024,7 @@ + #[inline(always)] + pub fn copy_ascii_from_check_space_bmp<'b>( + &'b mut self, +- source: &mut ByteSource, +- ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16BmpHandle<'b, 'a>)> { +- let non_ascii_ret = { +- let src_remaining = &source.slice[source.pos..]; +- let dst_remaining = &mut self.slice[self.pos..]; +- let (pending, length) = if dst_remaining.len() < src_remaining.len() { +- (DecoderResult::OutputFull, dst_remaining.len()) ++@@ -659,6 +680,8 @@ impl<'a> Utf16Destination<'a> { + } else { + (DecoderResult::InputEmpty, src_remaining.len()) + }; +@@ -2583,8 +2033,7 @@ + match unsafe { + ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length) + } { +- None => { +- source.pos += length; ++@@ -667,16 +690,20 @@ impl<'a> Utf16Destination<'a> { + self.pos += length; + return CopyAsciiResult::Stop((pending, source.pos, self.pos)); + } +@@ -2605,14 +2054,7 @@ + #[inline(always)] + pub fn copy_ascii_from_check_space_astral<'b>( + &'b mut self, +- source: &mut ByteSource, +- ) -> CopyAsciiResult<(DecoderResult, usize, usize), (u8, Utf16AstralHandle<'b, 'a>)> { +- let non_ascii_ret = { +- let dst_len = self.slice.len(); +- let src_remaining = &source.slice[source.pos..]; +- let dst_remaining = &mut self.slice[self.pos..]; +- let (pending, length) = if dst_remaining.len() < src_remaining.len() { +- (DecoderResult::OutputFull, dst_remaining.len()) ++@@ -691,6 +718,8 @@ impl<'a> Utf16Destination<'a> { + } else { + (DecoderResult::InputEmpty, src_remaining.len()) + }; +@@ -2621,8 +2063,7 @@ + match unsafe { + ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length) + } { +- None => { +- source.pos += length; ++@@ -699,11 +728,13 @@ impl<'a> Utf16Destination<'a> { + self.pos += length; + return CopyAsciiResult::Stop((pending, source.pos, self.pos)); + } +@@ -2636,11 +2077,7 @@ + non_ascii + } else { + return CopyAsciiResult::Stop(( +- DecoderResult::OutputFull, +- source.pos, +- self.pos, +- )); +- } ++@@ -715,6 +746,7 @@ impl<'a> Utf16Destination<'a> { + } + } + }; +@@ -2648,20 +2085,9 @@ + CopyAsciiResult::GoOn((non_ascii_ret, Utf16AstralHandle::new(self))) + } + #[inline(always)] +- pub fn copy_utf8_up_to_invalid_from(&mut self, source: &mut ByteSource) { +- let src_remaining = &source.slice[source.pos..]; +- let dst_remaining = &mut self.slice[self.pos..]; +- let (read, written) = convert_utf8_to_utf16_up_to_invalid(src_remaining, dst_remaining); +- source.pos += read; +-diff --git a/third_party/rust/encoding_rs/src/lib.rs b/third_party/rust/encoding_rs/src/lib.rs + --- a/third_party/rust/encoding_rs/src/lib.rs + +++ b/third_party/rust/encoding_rs/src/lib.rs +-@@ -684,37 +684,26 @@ +- //! TIS-620windows-874 +- //! +- //! +- //! +- //! See the section [_UTF-16LE, UTF-16BE and Unicode Encoding Schemes_](#utf-16le-utf-16be-and-unicode-encoding-schemes) ++@@ -689,7 +689,7 @@ + //! for discussion about the UTF-16 family. + + #![no_std] +@@ -2670,9 +2096,7 @@ + + #[cfg(feature = "alloc")] + #[cfg_attr(test, macro_use)] +- extern crate alloc; +- +- extern crate core; ++@@ -699,17 +699,6 @@ extern crate core; + #[macro_use] + extern crate cfg_if; + +@@ -2690,20 +2114,9 @@ + #[cfg(feature = "serde")] + extern crate serde; + +- #[cfg(all(test, feature = "serde"))] +- extern crate bincode; +- #[cfg(all(test, feature = "serde"))] +- #[macro_use] +- extern crate serde_derive; +-diff --git a/third_party/rust/encoding_rs/src/mem.rs b/third_party/rust/encoding_rs/src/mem.rs + --- a/third_party/rust/encoding_rs/src/mem.rs + +++ b/third_party/rust/encoding_rs/src/mem.rs +-@@ -111,16 +111,21 @@ macro_rules! by_unit_check_alu { +- until_alignment -= 1; +- } +- if accu >= $bound { +- return false; +- } ++@@ -116,6 +116,11 @@ macro_rules! by_unit_check_alu { + } + let len_minus_stride = len - ALU_ALIGNMENT / unit_size; + if offset + (4 * (ALU_ALIGNMENT / unit_size)) <= len { +@@ -2715,17 +2128,7 @@ + let len_minus_unroll = len - (4 * (ALU_ALIGNMENT / unit_size)); + loop { + let unroll_accu = unsafe { *(src.add(offset) as *const usize) } +- | unsafe { +- *(src.add(offset + (ALU_ALIGNMENT / unit_size)) as *const usize) +- } +- | unsafe { +- *(src.add(offset + (2 * (ALU_ALIGNMENT / unit_size))) +-@@ -129,22 +134,24 @@ macro_rules! by_unit_check_alu { +- | unsafe { +- *(src.add(offset + (3 * (ALU_ALIGNMENT / unit_size))) +- as *const usize) +- }; +- if unroll_accu & $mask != 0 { ++@@ -134,12 +139,14 @@ macro_rules! by_unit_check_alu { + return false; + } + offset += 4 * (ALU_ALIGNMENT / unit_size); +@@ -2740,17 +2143,7 @@ + accu |= unsafe { *(src.add(offset) as *const usize) }; + offset += ALU_ALIGNMENT / unit_size; + } +- } +- } +- for &unit in &buffer[offset..] { +- accu |= unit as usize; +- } +-@@ -184,16 +191,21 @@ macro_rules! by_unit_check_simd { +- until_alignment -= 1; +- } +- if accu >= $bound { +- return false; +- } ++@@ -189,6 +196,11 @@ macro_rules! by_unit_check_simd { + } + let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size; + if offset + (4 * (SIMD_STRIDE_SIZE / unit_size)) <= len { +@@ -2762,17 +2155,7 @@ + let len_minus_unroll = len - (4 * (SIMD_STRIDE_SIZE / unit_size)); + loop { + let unroll_accu = unsafe { *(src.add(offset) as *const $simd_ty) } +- | unsafe { +- *(src.add(offset + (SIMD_STRIDE_SIZE / unit_size)) +- as *const $simd_ty) +- } +- | unsafe { +-@@ -203,23 +215,25 @@ macro_rules! by_unit_check_simd { +- | unsafe { +- *(src.add(offset + (3 * (SIMD_STRIDE_SIZE / unit_size))) +- as *const $simd_ty) +- }; +- if !$func(unroll_accu) { ++@@ -208,6 +220,7 @@ macro_rules! by_unit_check_simd { + return false; + } + offset += 4 * (SIMD_STRIDE_SIZE / unit_size); +@@ -2780,7 +2163,7 @@ + if offset > len_minus_unroll { + break; + } +- } ++@@ -215,6 +228,7 @@ macro_rules! by_unit_check_simd { + } + let mut simd_accu = $splat; + while offset <= len_minus_stride { +@@ -2788,17 +2171,7 @@ + simd_accu = simd_accu | unsafe { *(src.add(offset) as *const $simd_ty) }; + offset += SIMD_STRIDE_SIZE / unit_size; + } +- if !$func(simd_accu) { +- return false; +- } +- } +- } +-@@ -229,18 +243,18 @@ macro_rules! by_unit_check_simd { +- accu < $bound +- } +- }; +- } +- ++@@ -234,8 +248,8 @@ macro_rules! by_unit_check_simd { + cfg_if! { + if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] { + use crate::simd_funcs::*; +@@ -2809,20 +2182,9 @@ + + const SIMD_ALIGNMENT: usize = 16; + +- const SIMD_ALIGNMENT_MASK: usize = 15; +- +- by_unit_check_simd!(is_ascii_impl, u8, u8x16::splat(0), u8x16, 0x80, simd_is_ascii); +- by_unit_check_simd!(is_basic_latin_impl, u16, u16x8::splat(0), u16x8, 0x80, simd_is_basic_latin); +- by_unit_check_simd!(is_utf16_latin1_impl, u16, u16x8::splat(0), u16x8, 0x100, simd_is_latin1); +-diff --git a/third_party/rust/encoding_rs/src/simd_funcs.rs b/third_party/rust/encoding_rs/src/simd_funcs.rs + --- a/third_party/rust/encoding_rs/src/simd_funcs.rs + +++ b/third_party/rust/encoding_rs/src/simd_funcs.rs +-@@ -2,65 +2,84 @@ +- // file at the top-level directory of this distribution. +- // +- // Licensed under the Apache License, Version 2.0 or the MIT license +- // , at your ++@@ -7,55 +7,74 @@ + // option. This file may not be copied, modified, or distributed + // except according to those terms. + +@@ -2906,17 +2268,7 @@ + #[allow(dead_code)] + #[inline(always)] + pub unsafe fn store8_aligned(ptr: *mut u16, s: u16x8) { +- *(ptr as *mut u16x8) = s; +- } +- +- cfg_if! { +- if #[cfg(all(target_feature = "sse2", target_arch = "x86_64"))] { +-@@ -95,234 +114,241 @@ cfg_if! { +- pub fn simd_byte_swap(s: u16x8) -> u16x8 { +- let left = s << 8; +- let right = s >> 8; +- left | right +- } ++@@ -100,7 +119,7 @@ pub fn simd_byte_swap(s: u16x8) -> u16x8 + + #[inline(always)] + pub fn to_u16_lanes(s: u8x16) -> u16x8 { +@@ -2925,7 +2277,7 @@ + } + + cfg_if! { +- if #[cfg(target_feature = "sse2")] { ++@@ -108,10 +127,11 @@ cfg_if! { + + // Expose low-level mask instead of higher-level conclusion, + // because the non-ASCII case would perform less well otherwise. +@@ -2938,13 +2290,7 @@ + } + } + +- } else { +- +- } +- } +- +- cfg_if! { +- if #[cfg(target_feature = "sse2")] { ++@@ -125,14 +145,16 @@ cfg_if! { + #[inline(always)] + pub fn simd_is_ascii(s: u8x16) -> bool { + unsafe { +@@ -2963,8 +2309,7 @@ + } + } + } else { +- #[inline(always)] +- pub fn simd_is_ascii(s: u8x16) -> bool { ++@@ -141,7 +163,7 @@ cfg_if! { + // This optimizes better on ARM than + // the lt formulation. + let highest_ascii = u8x16::splat(0x7F); +@@ -2973,12 +2318,7 @@ + } + } + } +- +- cfg_if! { +- if #[cfg(target_feature = "sse2")] { +- #[inline(always)] +- pub fn simd_is_str_latin1(s: u8x16) -> bool { +- if simd_is_ascii(s) { ++@@ -154,20 +176,21 @@ cfg_if! { + return true; + } + let above_str_latin1 = u8x16::splat(0xC4); +@@ -3003,9 +2343,7 @@ + } + } + } +- +- cfg_if! { +- if #[cfg(target_arch = "aarch64")]{ ++@@ -177,21 +200,23 @@ cfg_if! { + #[inline(always)] + pub fn simd_is_basic_latin(s: u16x8) -> bool { + unsafe { +@@ -3032,8 +2370,7 @@ + } + + #[inline(always)] +- pub fn simd_is_latin1(s: u16x8) -> bool { +- // For some reason, on SSE2 this formulation ++@@ -200,7 +225,7 @@ cfg_if! { + // seems faster in this case while the above + // function is better the other way round... + let highest_latin1 = u16x8::splat(0xFF); +@@ -3042,8 +2379,7 @@ + } + } + } +- +- #[inline(always)] ++@@ -209,7 +234,7 @@ cfg_if! { + pub fn contains_surrogates(s: u16x8) -> bool { + let mask = u16x8::splat(0xF800); + let surrogate_bits = u16x8::splat(0xD800); +@@ -3052,7 +2388,7 @@ + } + + cfg_if! { +- if #[cfg(target_arch = "aarch64")]{ ++@@ -217,7 +242,8 @@ cfg_if! { + macro_rules! aarch64_return_false_if_below_hebrew { + ($s:ident) => ({ + unsafe { +@@ -3062,16 +2398,7 @@ + return false; + } + } +- }) +- } +- +- macro_rules! non_aarch64_return_false_if_all { +- ($s:ident) => () +- } +- } else { +- macro_rules! aarch64_return_false_if_below_hebrew { +- ($s:ident) => () +- } ++@@ -234,7 +260,7 @@ cfg_if! { + + macro_rules! non_aarch64_return_false_if_all { + ($s:ident) => ({ +@@ -3080,10 +2407,7 @@ + return false; + } + }) +- } +- } +- } +- ++@@ -245,7 +271,7 @@ cfg_if! { + macro_rules! in_range16x8 { + ($s:ident, $start:expr, $end:expr) => {{ + // SIMD sub is wrapping +@@ -3092,13 +2416,7 @@ + }}; + } + +- #[inline(always)] +- pub fn is_u16x8_bidi(s: u16x8) -> bool { +- // We try to first quickly refute the RTLness of the vector. If that +- // fails, we do the real RTL check, so in that case we end up wasting +- // the work for the up-front quick checks. Even the quick-check is +- // two-fold in order to return `false` ASAP if everything is below +- // Hebrew. ++@@ -259,43 +285,44 @@ pub fn is_u16x8_bidi(s: u16x8) -> bool { + + aarch64_return_false_if_below_hebrew!(s); + +@@ -3168,7 +2486,7 @@ + } + + cfg_if! { +- if #[cfg(target_feature = "sse2")] { ++@@ -303,21 +330,20 @@ cfg_if! { + #[inline(always)] + pub fn simd_pack(a: u16x8, b: u16x8) -> u8x16 { + unsafe { +@@ -3199,20 +2517,9 @@ + } + } + } +- +- #[cfg(test)] +- mod tests { +- use super::*; +- use alloc::vec::Vec; +-diff --git a/third_party/rust/encoding_rs/src/single_byte.rs b/third_party/rust/encoding_rs/src/single_byte.rs + --- a/third_party/rust/encoding_rs/src/single_byte.rs + +++ b/third_party/rust/encoding_rs/src/single_byte.rs +-@@ -48,16 +48,19 @@ impl SingleByteDecoder { +- CopyAsciiResult::GoOn((mut non_ascii, mut handle)) => 'middle: loop { +- // Start non-boilerplate +- // +- // Since the non-ASCIIness of `non_ascii` is hidden from +- // the optimizer, it can't figure out that it's OK to ++@@ -53,6 +53,9 @@ impl SingleByteDecoder { + // statically omit the bound check when accessing + // `[u16; 128]` with an index + // `non_ascii as usize - 0x80usize`. +@@ -3222,17 +2529,7 @@ + let mapped = + unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) }; + // let mapped = self.table[non_ascii as usize - 0x80usize]; +- if mapped == 0u16 { +- return ( +- DecoderResult::Malformed(1, 0), +- source.consumed(), +- handle.written(), +-@@ -146,82 +149,103 @@ impl SingleByteDecoder { +- dst: &mut [u16], +- _last: bool, +- ) -> (DecoderResult, usize, usize) { +- let (pending, length) = if dst.len() < src.len() { +- (DecoderResult::OutputFull, dst.len()) ++@@ -151,9 +154,12 @@ impl SingleByteDecoder { + } else { + (DecoderResult::InputEmpty, src.len()) + }; +@@ -3245,10 +2542,7 @@ + ascii_to_basic_latin( + src.as_ptr().add(converted), + dst.as_mut_ptr().add(converted), +- length - converted, +- ) +- } { +- None => { ++@@ -164,6 +170,12 @@ impl SingleByteDecoder { + return (pending, length, length); + } + Some((mut non_ascii, consumed)) => { +@@ -3261,8 +2555,7 @@ + converted += consumed; + 'middle: loop { + // `converted` doesn't count the reading of `non_ascii` yet. +- // Since the non-ASCIIness of `non_ascii` is hidden from +- // the optimizer, it can't figure out that it's OK to ++@@ -172,6 +184,9 @@ impl SingleByteDecoder { + // statically omit the bound check when accessing + // `[u16; 128]` with an index + // `non_ascii as usize - 0x80usize`. +@@ -3272,11 +2565,7 @@ + let mapped = + unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) }; + // let mapped = self.table[non_ascii as usize - 0x80usize]; +- if mapped == 0u16 { +- return ( +- DecoderResult::Malformed(1, 0), +- converted + 1, // +1 `for non_ascii` +- converted, ++@@ -183,9 +198,10 @@ impl SingleByteDecoder { + ); + } + unsafe { +@@ -3288,12 +2577,7 @@ + converted += 1; + // Next, handle ASCII punctuation and non-ASCII without + // going back to ASCII acceleration. Non-ASCII scripts +- // use ASCII punctuation, so this avoid going to +- // acceleration just for punctuation/space and then +- // failing. This is a significant boost to non-ASCII +- // scripts. +- // TODO: Split out Latin converters without this part +- // this stuff makes Latin script-conversion slower. ++@@ -198,7 +214,10 @@ impl SingleByteDecoder { + if converted == length { + return (pending, length, length); + } +@@ -3304,9 +2588,7 @@ + 'innermost: loop { + if b > 127 { + non_ascii = b; +- continue 'middle; +- } +- // Testing on Haswell says that we should write the ++@@ -208,15 +227,20 @@ impl SingleByteDecoder { + // byte unconditionally instead of trying to unread it + // to make it part of the next SIMD stride. + unsafe { +@@ -3327,17 +2609,7 @@ + continue 'innermost; + } + // We've got markup or ASCII text +- continue 'outermost; +- } +- } +- } +- } +-@@ -229,16 +253,18 @@ impl SingleByteDecoder { +- } +- +- pub fn latin1_byte_compatible_up_to(&self, buffer: &[u8]) -> usize { +- let mut bytes = buffer; +- let mut total = 0; ++@@ -234,6 +258,8 @@ impl SingleByteDecoder { + loop { + if let Some((non_ascii, offset)) = validate_ascii(bytes) { + total += offset; +@@ -3346,17 +2618,7 @@ + let mapped = unsafe { *(self.table.get_unchecked(non_ascii as usize - 0x80usize)) }; + if mapped != u16::from(non_ascii) { + return total; +- } +- total += 1; +- bytes = &bytes[offset + 1..]; +- } else { +- return total; +-@@ -379,64 +405,89 @@ impl SingleByteEncoder { +- dst: &mut [u8], +- _last: bool, +- ) -> (EncoderResult, usize, usize) { +- let (pending, length) = if dst.len() < src.len() { +- (EncoderResult::OutputFull, dst.len()) ++@@ -384,9 +410,12 @@ impl SingleByteEncoder { + } else { + (EncoderResult::InputEmpty, src.len()) + }; +@@ -3369,10 +2631,7 @@ + basic_latin_to_ascii( + src.as_ptr().add(converted), + dst.as_mut_ptr().add(converted), +- length - converted, +- ) +- } { +- None => { ++@@ -397,15 +426,23 @@ impl SingleByteEncoder { + return (pending, length, length); + } + Some((mut non_ascii, consumed)) => { +@@ -3396,15 +2655,7 @@ + } + None => { + // At this point, we need to know if we +- // have a surrogate. +- let high_bits = non_ascii & 0xFC00u16; +- if high_bits == 0xD800u16 { +- // high surrogate +- if converted + 1 == length { +- // End of buffer. This surrogate is unpaired. +- return ( +- EncoderResult::Unmappable('\u{FFFD}'), +- converted + 1, // +1 `for non_ascii` ++@@ -421,6 +458,8 @@ impl SingleByteEncoder { + converted, + ); + } +@@ -3413,11 +2664,7 @@ + let second = + u32::from(unsafe { *src.get_unchecked(converted + 1) }); + if second & 0xFC00u32 != 0xDC00u32 { +- return ( +- EncoderResult::Unmappable('\u{FFFD}'), +- converted + 1, // +1 `for non_ascii` +- converted, +- ); ++@@ -432,6 +471,18 @@ impl SingleByteEncoder { + } + // The next code unit is a low surrogate. + let astral: char = unsafe { +@@ -3436,17 +2683,7 @@ + ::core::char::from_u32_unchecked( + (u32::from(non_ascii) << 10) + second + - (((0xD800u32 << 10) - 0x1_0000u32) + 0xDC00u32), +- ) +- }; +- return ( +- EncoderResult::Unmappable(astral), +- converted + 2, // +2 `for non_ascii` and `second` +-@@ -451,52 +502,63 @@ impl SingleByteEncoder { +- converted, +- ); +- } +- return ( +- EncoderResult::unmappable_from_bmp(non_ascii), ++@@ -456,6 +507,7 @@ impl SingleByteEncoder { + converted + 1, // +1 `for non_ascii` + converted, + ); +@@ -3454,13 +2691,7 @@ + } + } + // Next, handle ASCII punctuation and non-ASCII without +- // going back to ASCII acceleration. Non-ASCII scripts +- // use ASCII punctuation, so this avoid going to +- // acceleration just for punctuation/space and then +- // failing. This is a significant boost to non-ASCII +- // scripts. +- // TODO: Split out Latin converters without this part +- // this stuff makes Latin script-conversion slower. ++@@ -469,8 +521,12 @@ impl SingleByteEncoder { + if converted == length { + return (pending, length, length); + } +@@ -3473,8 +2704,7 @@ + if unit > 127 { + non_ascii = unit; + continue 'middle; +- } +- // Testing on Haswell says that we should write the ++@@ -479,19 +535,25 @@ impl SingleByteEncoder { + // byte unconditionally instead of trying to unread it + // to make it part of the next SIMD stride. + unsafe { +@@ -3500,20 +2730,9 @@ + } + } + } +- } +- } +- } +- } +- +-diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs + --- a/third_party/rust/encoding_rs/src/x_user_defined.rs + +++ b/third_party/rust/encoding_rs/src/x_user_defined.rs +-@@ -9,22 +9,23 @@ +- +- use super::*; +- use crate::handles::*; +- use crate::variant::*; +- ++@@ -14,12 +14,13 @@ use crate::variant::*; + cfg_if! { + if #[cfg(feature = "simd-accel")] { + use simd_funcs::*; +@@ -3529,17 +2748,7 @@ + } else { + } + } +- +- pub struct UserDefinedDecoder; +- +- impl UserDefinedDecoder { +- pub fn new() -> VariantDecoder { +-@@ -111,20 +112,25 @@ impl UserDefinedDecoder { +- } else { +- (DecoderResult::InputEmpty, src.len()) +- }; +- // Not bothering with alignment +- let tail_start = length & !0xF; ++@@ -116,10 +117,15 @@ impl UserDefinedDecoder { + let simd_iterations = length >> 4; + let src_ptr = src.as_ptr(); + let dst_ptr = dst.as_mut_ptr(); +@@ -3555,20 +2764,11 @@ + store8_unaligned(dst_ptr.add(i * 16), shift_upper(first)); + store8_unaligned(dst_ptr.add((i * 16) + 8), shift_upper(second)); + } +- } +- let src_tail = &src[tail_start..length]; +- let dst_tail = &mut dst[tail_start..length]; +- src_tail +- .iter() +-diff --git a/third_party/rust/packed_simd/.cargo-checksum.json b/third_party/rust/packed_simd/.cargo-checksum.json +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/.cargo-checksum.json + +++ /dev/null +-@@ -1,1 +0,0 @@ ++@@ -1 +0,0 @@ + -{"files":{"Cargo.toml":"ae219b55eab1f8cd8c3497d7327ea0e5426dba23d2446f7981ca799ad80b6a52","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"c4ac7027a9ab7d7858aa8957d7454dbfcdbb81e605b6a171f05310cc3cad3762","bors.toml":"dee881dc69b9b7834e4eba5d95c3ed5a416d4628815a167d6a22d4cb4fb064b8","build.rs":"019ed29c43989782d8eec3a961654cfc172d7a7898da4eca8f654700af7e1988","ci/all.sh":"2ae6b2445b4db83833e40b37efd0016c6b9879ee988b9b3ef94db5439a3e1606","ci/android-install-ndk.sh":"bdcf93ba9043ac1184e2c504a3d40c47c6c1601d882e0f0a27a8eb56fbabcb5f","ci/android-install-sdk.sh":"3490432022c5c8f5a115c084f7a9aca1626f96c0c87ffb62019228c4346b47e4","ci/android-sysimage.sh":"ebf4e5daa1f0fe1b2092b79f0f3f161c4c4275cb744e52352c4d81ab451e4c5a","ci/benchmark.sh":"b61d19ef6b90deba8fb79dee74c8b062d94844676293da346da87bb78a9a49a4","ci/deploy_and_run_on_ios_simulator.rs":"ec8ecf82d92072676aa47f0d1a3d021b60a7ae3531153ef12d2ff4541fc294dc","ci/docker/aarch64-linux-android/Dockerfile":"ace2e7d33c87bc0f6d3962a4a3408c04557646f7f51ab99cfbf574906796b016","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"da88c0d50f16dc08448c7fdf1fa5ed2cbe576acf9e7dd85b5b818621b2a8c702","ci/docker/arm-unknown-linux-gnueabi/Dockerfile":"bb5f8ae890707c128652290ffc544447643bf12037ddd73c6ad6989f848cb380","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"1afaefcbc05b740859acd4e067bc92439be6bcbe8f2e9678474fb434bcd398d9","ci/docker/armv7-linux-androideabi/Dockerfile":"370e55d3330a413a3ccf677b3afb3e0ef9018a5fab263faa97ae8ac017fc2286","ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile":"8282ea707a94109beed47a57574755e2d58401735904a03f85fb64c578c53b4f","ci/docker/i586-unknown-linux-gnu/Dockerfile":"49792922269f371bd29da4727e9085101b27be67a6b97755d0196c63317f7abb","ci/docker/i686-unknown-linux-gnu/Dockerfile":"49792922269f371bd29da4727e9085101b27be67a6b97755d0196c63317f7abb","ci/docker/mips-unknown-linux-gnu/Dockerfile":"b2ebc25797612c4f8395fe9d407725156044955bfbcf442036b7f55b43a5f9da","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"b0c1692ac65bc56dd30494b1993d8e929c48cc9c4b92029b7c7592af6d4f9220","ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile":"4e9249c179300138141d0b2b7401b11897f64aed69f541f078c1db4594df2827","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"3164c52b0dcbb01afa78292b15b5c43503ccf0491cf6eb801ec2bf22ae274e52","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"ae8274309928620a5dd232a46264e05399bb746288ebee3843a71c4162208cc3","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"ba5fbc4bf3bb91cd50b407248da31225681efc8f2be7618f4a0ab1219b389508","ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile":"53f97f8b9b5aca7534b9bf9ea48f35175052cd2a560a107e01ad270731c032fc","ci/docker/s390x-unknown-linux-gnu/Dockerfile":"89f5421cf06d817ae94092987e914472ef384ad2d1fff2735be3d8786ba11214","ci/docker/sparc64-unknown-linux-gnu/Dockerfile":"83eba19576486f9d10d7c037d669d72b31a65565a479f30b22aab36aaa2ff8dc","ci/docker/thumbv7neon-linux-androideabi/Dockerfile":"c2decd5591bd7a09378901bef629cd944acf052eb55e4f35b79eb9cb4d62246a","ci/docker/thumbv7neon-unknown-linux-gnueabihf/Dockerfile":"51955a8bf3c4d440f47382af6f5426ebff94ab01a04da36175babda9a057740f","ci/docker/wasm32-unknown-unknown/Dockerfile":"b982b421c70db476900df5b60e19ef8815e6c7dae22687225002780cab7b0a76","ci/docker/x86_64-linux-android/Dockerfile":"a17ebdb186ce2dd6b62100b5a439e05a1ab9adab113e2508843e121aaea52992","ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile":"44b6203d9290bfdc53d81219f0937e1110847a23dd982ec8c4de388354f01536","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"7f4e3ca5fa288ea70edb4d1f75309708cd30b192e2e4444e61c4d5b3b58f89cf","ci/dox.sh":"434e9611c52e389312d2b03564adf09429f10cc76fe66a8644adb104903b87b7","ci/linux-s390x.sh":"d6b732d7795b4ba131326aff893bca6228a7d2eb0e9402f135705413dbbe0dce","ci/linux-sparc64.sh":"c92966838b1ab7ad3b7a344833ee726aba6b647cf5952e56f0ad1ba420b13325","ci/lld-shim.rs":"3d7f71ec23a49e2b67f694a0168786f9a954dda15f5a138815d966643fd3fcc3","ci/max_line_width.sh":"0a1518bba4c9ecaa55694cb2e9930d0e19c265baabf73143f17f9cf285aaa5bb","ci/run-docker.sh":"92e036390ad9b0d16f109579df1b5ced2e72e9afea40c7d011400ebd3a2a90de","ci/run.sh":"9afabc961e0ee83b87201f3fd554c19e5b0c36f3a95d013595e276c9882dd0a4","ci/run_examples.sh":"d1a23c6c35374a0678ba5114b9b8fefd8be0a79e774872a8bf0898d1baca18d0","ci/runtest-android.rs":"145a8e9799a5223975061fe7e586ade5669ee4877a7d7a4cf6b4ab48e8e36c7c","ci/setup_benchmarks.sh":"fae3960023f6f3d1388cd2ad22fdbab4b075f1f29dd4292d7994a20783beb6cf","ci/test-runner-linux":"c8aa6025cff5306f4f31d0c61dc5f9d4dd5a1d189ab613ef8d4c367c694d9ccd","contributing.md":"2d2629310ad4d464c482bdbb5819f0d6ce223c576aeef2cdce6a1f6857085ea5","perf-guide/book.toml":"115a98284126c6b180178b44713314cc494f08a71662ee2ce15cf67f17a51064","perf-guide/src/SUMMARY.md":"3e03bffc991fdc2050f3d51842d72d9d21ea6abab56a3baf3b2d5973a78b89e1","perf-guide/src/ascii.css":"29afb08833b2fe2250f0412e1fa1161a2432a0820a14953c87124407417c741a","perf-guide/src/bound_checks.md":"5e4991ff58a183ef0cd9fdc1feb4cd12d083b44bdf87393bbb0927808ef3ce7d","perf-guide/src/float-math/approx.md":"8c09032fa2d795a0c5db1775826c850d28eb2627846d0965c60ee72de63735ad","perf-guide/src/float-math/fma.md":"311076ba4b741d604a82e74b83a8d7e8c318fcbd7f64c4392d1cf5af95c60243","perf-guide/src/float-math/fp.md":"04153e775ab6e4f0d7837bcc515230d327b04edfa34c84ce9c9e10ebaeef2be8","perf-guide/src/float-math/svml.md":"0798873b8eedaeda5fed62dc91645b57c20775a02d3cd74d8bd06958f1516506","perf-guide/src/introduction.md":"9f5a19e9e6751f25d2daad39891a0cc600974527ec4c8305843f9618910671bd","perf-guide/src/prof/linux.md":"447731eb5de7d69166728fdbc5ecb0c0c9db678ea493b45a592d67dd002184c0","perf-guide/src/prof/mca.md":"f56d54f3d20e7aa4d32052186e8237b03d65971eb5d112802b442570ff11d344","perf-guide/src/prof/profiling.md":"8a650c0fd6ede0964789bb6577557eeef1d8226a896788602ce61528e260e43c","perf-guide/src/target-feature/attribute.md":"615f88dca0a707b6c416fa605435dd6e1fb5361cc639429cbf68cd87624bd78b","perf-guide/src/target-feature/features.md":"17077760ff24c006b606dd21889c53d87228f4311f3ba3a574f9afdeacd86165","perf-guide/src/target-feature/inlining.md":"7ed1d7068d8173a00d84c16cfe5871cd68b9f04f8d0cca2d01ebc84957ebf2f6","perf-guide/src/target-feature/practice.md":"c4b371842e0086df178488fec97f20def8f0c62ee588bcd25fd948b9b1fa227e","perf-guide/src/target-feature/runtime.md":"835425f5ee597fb3e51d36e725a81ebee29f4561231d19563cd4da81dbb1cfcb","perf-guide/src/target-feature/rustflags.md":"01197acf6f0adec8db32b8591811f69cecb6555a2b05dc5d5ec27d0e3f7b065e","perf-guide/src/vert-hor-ops.md":"c6211c0ee91e60552ec592d89d9d957eedc21dee3cbd89e1ad6765ea06a27471","rust-toolchain":"58bea07cb6d97f9cfcd5c8f98b1feca0fb81cce5b0bf29a8e70ed2641956e9a6","rustfmt.toml":"d99a43f3f8ef9e425cf01c333fba9f0051f888f5d87ab4e8f63c2f7d0fe6620f","src/api.rs":"45508c6c0241519fc01a7f00c9105554c24c312c4e46900ef9c75139ea438305","src/api/bit_manip.rs":"27f3097fc0a11e3c4107049d9779e680dcd67407a066704008a6b9c4fd529e05","src/api/bitmask.rs":"058ebc38a2e0363f07a441d3e9a4775aaec57ccb170a0e5d5efa5dc4743ab07b","src/api/cast.rs":"03b94a3d316ac7b7be7068810044911e965e889a0ace7bae762749ca74a92747","src/api/cast/macros.rs":"b0a14d0c83ad2ebb7a275180f6d9e3f2bc312ba57a7d3d6c39fad4e0f20f9408","src/api/cast/v128.rs":"edd0994efac4379dff26e178423a52dbb3ffeb38b1fc97cae975d744c00b4fb6","src/api/cast/v16.rs":"96bd98c2d21b0663abe6c0ab33005b1fa693f3db7ee6795351391343863484da","src/api/cast/v256.rs":"8c31fe91f5e78ef737dfba6979cc1240210cb094a89d284fe459bf8a991ca24b","src/api/cast/v32.rs":"a99a79dd84d2a5e6adf9db98705675915bd03fd1287d489c7fe38e84d7e4a086","src/api/cast/v512.rs":"c0dd526f41ed7b8a71c3743d91267554ec0a0c75834ccc2e3ecb0ef3004af642","src/api/cast/v64.rs":"6572fdba2a1241a6cd666d3f0cce3306cd2cb7e5e236172e59d5d4351c8a88af","src/api/cmp.rs":"357c3a2a09c6d4611c32dd7fa95be2fae933d513e229026ec9b44451a77b884e","src/api/cmp/eq.rs":"60f70f355bae4cb5b17db53204cacc3890f70670611c17df638d4c04f7cc8075","src/api/cmp/ord.rs":"589f7234761c294fa5df8f525bc4acd5a47cdb602207d524a0d4e19804cd9695","src/api/cmp/partial_eq.rs":"902ccb8aa01fd5738b30ba0b712669c21d4801958907e03bad23432c7dba0198","src/api/cmp/partial_ord.rs":"9db0c37d7434cdfc62d8d66912e972fa3d8c115ab2af051a6f45e414bd3e4f1c","src/api/cmp/vertical.rs":"de3d62f38eba817299aa16f1e1939954c9a447e316509397465c2830852ba053","src/api/default.rs":"67bf21c134127d12a7028c8b88a57f0ceee8ccbd74976da8ca74eb9f16a174d5","src/api/fmt.rs":"67fb804bb86b6cd77cf8cd492b5733ce437071b66fe3297278b8a6552c325dda","src/api/fmt/binary.rs":"02b2b287f7404f8a983813cf70c87108c8da3835578b63ab303116885f609413","src/api/fmt/debug.rs":"56e1c3bdc092747344fffaafff9da7163ee7827857f6fb7cb1c9923eca4f6fa0","src/api/fmt/lower_hex.rs":"558fd592f7f485712fb051509cecc7174a21e6bf62e5ce64766e75afc97bb8e1","src/api/fmt/octal.rs":"3b2e70877a4f368c7704f8e254236c014c365c74d93371c1feb5f030e6c66422","src/api/fmt/upper_hex.rs":"2a442f666bc80e22d41f903f881238fe114dd49344c3ed69849250e853cafc5d","src/api/from.rs":"2e599d8329cb05eaf06224cc441355c4b7b51254fc19256619333be8c149d444","src/api/from/from_array.rs":"5d2cc700568376bf6ee1fe5e406da3bc2d488ff155644bf73d06a1349b73fc53","src/api/from/from_vector.rs":"9764371aa9e6005aace74dea14f59e5611a095b7cf42707940924749282c52f0","src/api/hash.rs":"5076ece87969592c876486f5b1ea8affbeaec379d1a14a30859e0aa5592019de","src/api/into_bits.rs":"8f8011627250e23e66b5c0ca641afb079d8232674bb1354140b536bdbea63e55","src/api/into_bits/arch_specific.rs":"e7445021f3908326bfee758835e5fc5ad56aa1baa77fc1c58abe4350c66c670a","src/api/into_bits/macros.rs":"bb4fe99be2af6a21d805efab44c8e4e61a7b2adb42a65504a0cf26d13efdadcd","src/api/into_bits/v128.rs":"145a44922b09a5ca5b62d88a461d327d399a997a15db4b11d7b17e554a9fa4c0","src/api/into_bits/v16.rs":"f4f4f61ba88aa51b158ec56ca3dce234349aea0daf2b3029a14ab5125d1e41e5","src/api/into_bits/v256.rs":"8cea9c5d9809f11323cb7cdc53b83df593fd17caf926251e412ae9777bed547f","src/api/into_bits/v32.rs":"905ba683d342fa32f4202b80bb46530807bd0a5b588f6c2e8c9f475223c47775","src/api/into_bits/v512.rs":"e25afa1fbf088a5d58e7d75d197b6cd4c56637ea28542ba18e46a451f29d04e7","src/api/into_bits/v64.rs":"d6238022ccff7b92e55b3f6017fc269acb6f36330a6d7e8fb389853a0f1b6478","src/api/math.rs":"8b2a2fc651917a850539f993aa0b9e5bf4da67b11685285b8de8cdca311719ec","src/api/math/float.rs":"969a75cdb3743c5ac7cde653d1a7f659ac65f2a5afb004c9928a7b34b79c3e39","src/api/math/float/abs.rs":"5b6b2701e2e11135b7ce58a05052ea8120e10e4702c95d046b9d21b827b26bf8","src/api/math/float/consts.rs":"6302c9261da4291d144d5bb53493cdd073498feb40955fb6860ea3c4d06c978a","src/api/math/float/cos.rs":"4c2dd7173728ef189314f1576c9486e03be21b7da98843b2f9011282a7979e31","src/api/math/float/exp.rs":"7c6d5f1e304f498a01cfa23b92380c815d7da0ad94eae3483783bc377d287eef","src/api/math/float/ln.rs":"54c7583f3df793b39ff57534fade27b41bb992439e5dc178252f5ca3190a3e54","src/api/math/float/mul_add.rs":"62cac77660d20159276d4c9ef066eb90c81cbddb808e8e157182c607625ad2eb","src/api/math/float/mul_adde.rs":"bae056ee9f3a70df39ec3c3b2f6437c65303888a7b843ef1a5bcf1f5aca0e602","src/api/math/float/powf.rs":"9ddb938984b36d39d82a82f862f80df8f7fb013f1d222d45698d41d88472f568","src/api/math/float/recpre.rs":"589225794ff1dbf31158dff660e6d4509ecc8befbb57c633900dea5ac0b840d6","src/api/math/float/rsqrte.rs":"a32abdcc318d7ccc8448231f54d75b884b7cbeb03a7d595713ab6243036f4dbf","src/api/math/float/sin.rs":"cbd3622b7df74f19691743001c8cf747a201f8977ad90542fee915f37dcd1e49","src/api/math/float/sqrt.rs":"0c66d5d63fb08e4d99c6b82a8828e41173aff1ac9fa1a2764a11fac217ccf2ac","src/api/math/float/sqrte.rs":"731e1c9f321b662accdd27dacb3aac2e8043b7aecb2f2161dde733bd9f025362","src/api/math/float/tanh.rs":"e57940434cc05981b086f0f3b92d32caceb38d67b90aebce5d3ed8e07c80538f","src/api/minimal.rs":"1f22bcc528555444e76de569ec0ae2029b9ae9d04805efeafa93369c8098036b","src/api/minimal/iuf.rs":"819cff26d3e196f807645bcc1d79eb27d9f175edb89910f2274d52a1e913cd11","src/api/minimal/mask.rs":"0cae10ae1fc65f5070e686c0c79bfba27b86b33d6c399367bd4848fb367dcec4","src/api/minimal/ptr.rs":"f74d7a4925d7209faebc26ea8315259cb2c08ec65789a70869e595649a9bc39a","src/api/ops.rs":"3e273b277a0f3019d42c3c59ca94a5afd4885d5ae6d2182e5089bbeec9de42ee","src/api/ops/scalar_arithmetic.rs":"d2d5ad897a59dd0787544f927e0e7ca4072c3e58b0f4a2324083312b0d5a21d7","src/api/ops/scalar_bitwise.rs":"482204e459ca6be79568e1c9f70adbe2d2151412ddf122fb2161be8ebb51c40c","src/api/ops/scalar_mask_bitwise.rs":"c250f52042e37b22d57256c80d4604104cfd2fbe2a2e127c676267270ca5d350","src/api/ops/scalar_shifts.rs":"c4773d435c3f9da4454327e6fbb2b5b41a1c0ebb1cca7372e69dc7a344a1b6e4","src/api/ops/vector_arithmetic.rs":"ddca15d09ddeef502c2ed66117a62300ca65d87e959e8b622d767bdf1c307910","src/api/ops/vector_bitwise.rs":"b3968f7005b649edcc22a54e2379b14d5ee19045f2e784029805781ae043b5ee","src/api/ops/vector_float_min_max.rs":"76bf8cb607e2c442923c1da1061a6b80d742d607408033c2a3761161114cf2a0","src/api/ops/vector_int_min_max.rs":"a378789c6ff9b32a51fbd0a97ffd36ed102cd1fe6a067d2b02017c1df342def6","src/api/ops/vector_mask_bitwise.rs":"5052d18517d765415d40327e6e8e55a312daaca0a5e2aec959bfa54b1675f9c8","src/api/ops/vector_neg.rs":"5c62f6b0221983cdbd23cd0a3af3672e6ba1255f0dfe8b19aae6fbd6503e231b","src/api/ops/vector_rotates.rs":"6c3f761d9d551f6365a8a95539ceace4b1a02e0b12d144f34ed68db94e88cff4","src/api/ops/vector_shifts.rs":"e510be14127c0ffd58a2573a39701da3557d66bedec09837ac8bbd44d579da00","src/api/ptr.rs":"8a793251bed6130dcfb2f1519ceaa18b751bbb15875928d0fb6deb5a5e07523a","src/api/ptr/gather_scatter.rs":"3d614f9d5b4ca201a9f7e46af4405e1d2c28ecee1620297c23b52e37b92cc0ea","src/api/reductions.rs":"ae5baca81352ecd44526d6c30c0a1feeda475ec73ddd3c3ec6b14e944e5448ee","src/api/reductions/bitwise.rs":"8bf910ae226188bd15fc7e125f058cd2566b6186fcd0cd8fd020f352c39ce139","src/api/reductions/float_arithmetic.rs":"47a5679896db2cbb56c31372fe42143da015b6beae7db5d2f3a0309ddf427ae1","src/api/reductions/integer_arithmetic.rs":"c2df3cf7493cca4174f2c65aea422a3d20d8a23af03f8d57cef72c19fee8f20d","src/api/reductions/mask.rs":"db83327a950e33a317f37fd33ca4e20c347fb415975ec024f3e23da8509425af","src/api/reductions/min_max.rs":"6af8c9aa45c69961b1b6fc205395f4767d4421869fb105fb3d563c5605fc13cd","src/api/select.rs":"6b07e7e8026df561f7307221a896f0fbb272536f41b9109040ac094c24c69331","src/api/shuffle.rs":"be7faff9b59654926df12897b2f98a4baa7d6acf2af1aaf93d388ba6e96f83ec","src/api/shuffle1_dyn.rs":"bfea5a91905b31444e9ef7ca6eddb7a9606b7e22d3f71bb842eb2795a0346620","src/api/slice.rs":"ee87484e8af329547b9a5d4f2a69e8bed6ea10bbd96270d706083843d4eea2ac","src/api/slice/from_slice.rs":"3735363000737104a8fc5f394ad8c31ec14e885952bd57647dd2a84001aee0a6","src/api/slice/write_to_slice.rs":"79d09c64d00724783c77c42e4583eeec97b18db94cf2ae146b564c3f85cfefd6","src/api/swap_bytes.rs":"05b4262eaade2f63e6cd3b780c19a03aecd2459d4cc4360051fc088887179a6e","src/codegen.rs":"db4f232fb9f5728db310b87dc8c4733be48afacab1053798c06106bef9a42b05","src/codegen/bit_manip.rs":"525ea6ff7ad1e043b6f6136992166f1803ed5563b7f6fc292c1c40257d20e264","src/codegen/llvm.rs":"12e748b4928c3be6cc12b4165c3041a3d0efccf6195338ecd3d88b8fdb0bbcc7","src/codegen/math.rs":"dfcf02ad34e2fdfe22c3f1cc2822001cc895e65031b4d06e585e5047839febb7","src/codegen/math/float.rs":"b2f31f479c5c70a6ff9ad33872c1e65506f72882b77a2e3f9e71c42e92af9355","src/codegen/math/float/abs.rs":"d5aaadcf540bdb9b4264dca6471a255fd7bf509e763bef0239c0144a68466fea","src/codegen/math/float/cos.rs":"17f28d2900c852dca221fa9c92a9cd5fe7fd2df8d427bbc60216c749b2be013d","src/codegen/math/float/cos_pi.rs":"dbaf9f443f9846a491d4ec52210a7b5835dd593b03366e3135b05c37d70f9d6c","src/codegen/math/float/exp.rs":"d300058a4bcc7ae7976f216f81902cd73a9e603ad63880dff3bbc866c27a9f37","src/codegen/math/float/ln.rs":"c851e211e43f8256093ba75b03ae0c307c9962ee66d94f09b4dd80068190cbdf","src/codegen/math/float/macros.rs":"fc9924869ed85e4795983af228cacf23158f4f35919adce16c920ad4a3f0a009","src/codegen/math/float/mul_add.rs":"041a5b69d5991d93ef795351b17560c10faf80b78fd26ad7df42a239b32cf9de","src/codegen/math/float/mul_adde.rs":"d71d5f0f3333b62a7439b823cb7adf5340ea1555ce820fb4a3f4cb922f73f5f5","src/codegen/math/float/powf.rs":"9742c3877f1a5509ca5c9492a40884b6579ba6dd11c26b7112e63f70666b395d","src/codegen/math/float/sin.rs":"0e9868d35531566509f3a01d85d5253045eb4afa8525d8407dcc1f5f33c56036","src/codegen/math/float/sin_cos_pi.rs":"8e6b6142d7dd240cdb36669722e82ab9810a2261e86e659f7d97a942ad8b1258","src/codegen/math/float/sin_pi.rs":"bb6d39db8f921e03a301fc5206ac1a61a97def8a2cb83b87ccf189f3fc48d548","src/codegen/math/float/sqrt.rs":"e6ebb0c5f428efad1f672b9a8fe4e58534dbf1ea5a8fe092ce5ce76b52fe89cb","src/codegen/math/float/sqrte.rs":"23acfaea38d0e081a6d9021c1094e813d0cfd12c58c1eca9662aade5e625d51c","src/codegen/math/float/tanh.rs":"816fd107f134920fb1a21cd792029d4b89306f6cf16d6f030cc1136823b033e7","src/codegen/pointer_sized_int.rs":"6ca13c214b6cf7e0929dbe18e96a16fc0bb7d8799608df29c4c8115490f99e01","src/codegen/reductions.rs":"8eb18ebac76985d2aa30262a2edd8cb004230b511a765d657525f677a585c12c","src/codegen/reductions/mask.rs":"e67f35a1f4d156a4894a2d6ea5a935b4d898cf70eefb2715f5c1cc165e776c11","src/codegen/reductions/mask/aarch64.rs":"84b101c17cad1ede4eb6d38cada0ac7da239dba8cea3badd3829b967e558431f","src/codegen/reductions/mask/arm.rs":"aaa07129bd078ae7e677cf8b8e67ec9f30536606a0c7ed1baaa18fd1793bb218","src/codegen/reductions/mask/fallback.rs":"3eb9319d2c7cf19216b607b8459612c4e027b643cf11b036937d36896bf76786","src/codegen/reductions/mask/fallback_impl.rs":"76547f396e55ef403327c77c314cf8db8c7a5c9b9819bfb925abeacf130249e5","src/codegen/reductions/mask/x86.rs":"36dcd8af4ab99730a078ed113d3955f74eb1a2876e2e6d9f224e0ff462c216d1","src/codegen/reductions/mask/x86/avx.rs":"3a40868b38c86e35aefb96d7578de6322efe89d8135e0366359b54ddd06f861a","src/codegen/reductions/mask/x86/avx2.rs":"677aed3f056285285daa3adff8bc65e739630b4424defa6d9665e160f027507e","src/codegen/reductions/mask/x86/sse.rs":"8522f6ed03f6c32dd577d4298df477c08aeaaa38563706f29096e1911ed731f2","src/codegen/reductions/mask/x86/sse2.rs":"54ec56e49b0c6841eccb719e4f310d65fe767c04136b2ec20bd8b9d7d9897b9e","src/codegen/shuffle.rs":"1ec2930f4e1acc43ac30b518af298d466a79e9e75734a51c380b7810efd1a27f","src/codegen/shuffle1_dyn.rs":"3f13ca1597378758d05106bf5ff3715eee531f3cb6d88f48b9182bd6c9386b51","src/codegen/swap_bytes.rs":"c67c86e91ca3fc77539e0efcea081a3c62548cccf503963ae408f2e86f4e6a21","src/codegen/v128.rs":"94226b31ec403d18d9d2fe06713f147c9c79e9b5f9105089088266313f843185","src/codegen/v16.rs":"ddec4ffb66b6f7aaffb9a1780c5ddba82557abd74f45073d335047e04cf74924","src/codegen/v256.rs":"6b63917f0444118d6b1595bff2045e59b97c4d24012bd575f69f1f0efc5a0241","src/codegen/v32.rs":"3477b3c5540aed86e61e2f5807dd31db947413cec9181c587d93ed6ec74f0eba","src/codegen/v512.rs":"5854f99d3aabc4cd42b28a20d9ce447756dc2ba024a409a69b6a8ae1f1842fc5","src/codegen/v64.rs":"e9e89caebfe63d10c0cbca61e4dfdba3b7e02ee0989170f80beed23237ddd950","src/codegen/vPtr.rs":"f0753b405cdc865bdf8e82c6505f299ea1f96136239ebbaf7f9ce93d310764b8","src/codegen/vSize.rs":"c89f5fdeb28ac4c8272ed1816fce03d9d95308cc32bb2533bd8b20cd5ac102ac","src/lib.rs":"05048c6a85ec65cf902d9dd8f757a3f76392b703a6794ea71f0d41500a89f78f","src/masks.rs":"70fc0abe4c2907ce2a491c574e1cfb9f3423385da2e1a923a48c9c13f8ba6ed8","src/sealed.rs":"ae7fdeaf5d84cd7710ed730ca72ca7eaba93df6cb0acb183e5c0a7327acf197f","src/testing.rs":"896669c08d8c801448a4d2fadc9d633eda0fbe879d229997e2a182e31278e469","src/testing/macros.rs":"403bbc5ecb7c786fe36156df302d0c07a8122408dbb15f7474d7682224ba1106","src/testing/utils.rs":"41912a92266dfe884647fc035e4242fd746100df8e839808ae0397af3759a3c8","src/v128.rs":"16cf9a8e7156b899ee9b9cd3f2dba9d13ec63289bea8c3ee9ae2e43ad9510288","src/v16.rs":"cb6465cf1e00bf530183af1819b9fe3d7eec978f8765d5e85d9b58a39a4b4045","src/v256.rs":"fe235017da18c7f3c361831c60e3173ad304d8ea1e95d64ebebc79da2d708511","src/v32.rs":"145d347855bac59b2de6508f9e594654e6c330423af9edc0e2ac8f4d1abdf45e","src/v512.rs":"f372f277f3e62eb5c945bb1c460333fdb17b6974fcc876633788ff53bded9599","src/v64.rs":"0b8079881b71575e3414be0b7f8f7eaba65281ba6732f2b2f61f73e95b6f48f7","src/vPtr.rs":"8b3e433d487180bb4304ff71245ecad90f0010f43e139a72027b672abe58facc","src/vSize.rs":"eda5aa020706cbf94d15bada41a0c2a35fc8f3f37cb7c2cd6f34d201399a495e","tests/endianness.rs":"5147f86d224c4c540b772033da2f994cad9bc9c035f38ec21e23bc4e55f8a759"},"package":"1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d"} + \ No newline at end of file +-diff --git a/third_party/rust/packed_simd/Cargo.toml b/third_party/rust/packed_simd/Cargo.toml +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/Cargo.toml + +++ /dev/null + @@ -1,83 +0,0 @@ +@@ -3655,8 +2855,6 @@ + - + -[badges.maintenance] + -status = "experimental" +-diff --git a/third_party/rust/packed_simd/README.md b/third_party/rust/packed_simd/README.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/README.md + +++ /dev/null + @@ -1,144 +0,0 @@ +@@ -3804,8 +3002,6 @@ + -[sleef_sys]: https://crates.io/crates/sleef-sys + -[contributing instructions]: contributing.md + -[Code of Conduct]: https://www.rust-lang.org/en-US/conduct.html +-diff --git a/third_party/rust/packed_simd/bors.toml b/third_party/rust/packed_simd/bors.toml +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/bors.toml + +++ /dev/null + @@ -1,3 +0,0 @@ +@@ -3813,8 +3009,6 @@ + - "continuous-integration/travis-ci/push" + -] + \ No newline at end of file +-diff --git a/third_party/rust/packed_simd/build.rs b/third_party/rust/packed_simd/build.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/build.rs + +++ /dev/null + @@ -1,6 +0,0 @@ +@@ -3824,8 +3018,6 @@ + - println!("cargo:rustc-cfg=libcore_neon"); + - } + -} +-diff --git a/third_party/rust/packed_simd/ci/all.sh b/third_party/rust/packed_simd/ci/all.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/all.sh + +++ /dev/null + @@ -1,71 +0,0 @@ +@@ -3900,8 +3092,6 @@ + - cd micro_benchmarks + - $CMD + -) +-diff --git a/third_party/rust/packed_simd/ci/android-install-ndk.sh b/third_party/rust/packed_simd/ci/android-install-ndk.sh +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/android-install-ndk.sh + +++ /dev/null + @@ -1,21 +0,0 @@ +@@ -3926,8 +3116,6 @@ + -rm $ANDROID_NDK_ARCHIVE + -mv android-ndk-* ndk + -rm -rf android-ndk-* +-diff --git a/third_party/rust/packed_simd/ci/android-install-sdk.sh b/third_party/rust/packed_simd/ci/android-install-sdk.sh +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/android-install-sdk.sh + +++ /dev/null + @@ -1,60 +0,0 @@ +@@ -3991,8 +3179,6 @@ + - ./sdk/tools/bin/avdmanager create avd \ + - --name "${1}" \ + - --package "system-images;android-24;default;$abi" +-diff --git a/third_party/rust/packed_simd/ci/android-sysimage.sh b/third_party/rust/packed_simd/ci/android-sysimage.sh +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/android-sysimage.sh + +++ /dev/null + @@ -1,56 +0,0 @@ +@@ -4052,8 +3238,6 @@ + -} + - + -main "${@}" +-diff --git a/third_party/rust/packed_simd/ci/benchmark.sh b/third_party/rust/packed_simd/ci/benchmark.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/benchmark.sh + +++ /dev/null + @@ -1,32 +0,0 @@ +@@ -4089,8 +3273,6 @@ + - cd - + -done + - +-diff --git a/third_party/rust/packed_simd/ci/deploy_and_run_on_ios_simulator.rs b/third_party/rust/packed_simd/ci/deploy_and_run_on_ios_simulator.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/deploy_and_run_on_ios_simulator.rs + +++ /dev/null + @@ -1,176 +0,0 @@ +@@ -4270,8 +3452,6 @@ + - install_app_to_simulator(); + - run_app_on_simulator(); + -} +-diff --git a/third_party/rust/packed_simd/ci/docker/aarch64-linux-android/Dockerfile b/third_party/rust/packed_simd/ci/docker/aarch64-linux-android/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/aarch64-linux-android/Dockerfile + +++ /dev/null + @@ -1,47 +0,0 @@ +@@ -4322,8 +3502,6 @@ + - exec \"$@\"", \ + - "--" \ + -] +-diff --git a/third_party/rust/packed_simd/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/aarch64-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/aarch64-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,14 +0,0 @@ +@@ -4341,8 +3519,6 @@ + -ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ + - CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -L /usr/aarch64-linux-gnu" \ + - OBJDUMP=aarch64-linux-gnu-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/arm-unknown-linux-gnueabi/Dockerfile b/third_party/rust/packed_simd/ci/docker/arm-unknown-linux-gnueabi/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/arm-unknown-linux-gnueabi/Dockerfile + +++ /dev/null + @@ -1,15 +0,0 @@ +@@ -4361,8 +3537,6 @@ + -ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabi-gcc \ + - CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_RUNNER="qemu-arm -L /usr/arm-linux-gnueabi" \ + - OBJDUMP=arm-linux-gnueabi-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile b/third_party/rust/packed_simd/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -4379,8 +3553,6 @@ + -ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ + - CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \ + - OBJDUMP=arm-linux-gnueabihf-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/armv7-linux-androideabi/Dockerfile b/third_party/rust/packed_simd/ci/docker/armv7-linux-androideabi/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/armv7-linux-androideabi/Dockerfile + +++ /dev/null + @@ -1,47 +0,0 @@ +@@ -4431,8 +3603,6 @@ + - exec \"$@\"", \ + - "--" \ + -] +-diff --git a/third_party/rust/packed_simd/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile b/third_party/rust/packed_simd/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -4449,8 +3619,6 @@ + -ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ + - CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \ + - OBJDUMP=arm-linux-gnueabihf-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/i586-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/i586-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/i586-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -4461,8 +3629,6 @@ + - file \ + - make \ + - ca-certificates +-diff --git a/third_party/rust/packed_simd/ci/docker/i686-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/i686-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/i686-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -4473,8 +3639,6 @@ + - file \ + - make \ + - ca-certificates +-diff --git a/third_party/rust/packed_simd/ci/docker/mips-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/mips-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/mips-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -4492,8 +3656,6 @@ + - CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER="qemu-mips -L /usr/mips-linux-gnu" \ + - OBJDUMP=mips-linux-gnu-objdump + \ No newline at end of file +-diff --git a/third_party/rust/packed_simd/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile b/third_party/rust/packed_simd/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile + +++ /dev/null + @@ -1,10 +0,0 @@ +@@ -4508,8 +3670,6 @@ + - CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_RUNNER="qemu-mips64 -L /usr/mips64-linux-gnuabi64" \ + - OBJDUMP=mips64-linux-gnuabi64-objdump + \ No newline at end of file +-diff --git a/third_party/rust/packed_simd/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile b/third_party/rust/packed_simd/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile + +++ /dev/null + @@ -1,10 +0,0 @@ +@@ -4524,8 +3684,6 @@ + - CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_RUNNER="qemu-mips64el -L /usr/mips64el-linux-gnuabi64" \ + - OBJDUMP=mips64el-linux-gnuabi64-objdump + \ No newline at end of file +-diff --git a/third_party/rust/packed_simd/ci/docker/mipsel-unknown-linux-musl/Dockerfile b/third_party/rust/packed_simd/ci/docker/mipsel-unknown-linux-musl/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/mipsel-unknown-linux-musl/Dockerfile + +++ /dev/null + @@ -1,25 +0,0 @@ +@@ -4554,8 +3712,6 @@ + - CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \ + - CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_LINKER=mipsel-openwrt-linux-gcc \ + - CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_RUNNER="qemu-mipsel -L /toolchain" +-diff --git a/third_party/rust/packed_simd/ci/docker/powerpc-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/powerpc-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/powerpc-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -4572,8 +3728,6 @@ + - CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc -cpu Vger -L /usr/powerpc-linux-gnu" \ + - CC=powerpc-linux-gnu-gcc \ + - OBJDUMP=powerpc-linux-gnu-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,17 +0,0 @@ +@@ -4594,8 +3748,6 @@ + - CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64 -L /usr/powerpc64-linux-gnu" \ + - CC=powerpc64-linux-gnu-gcc \ + - OBJDUMP=powerpc64-linux-gnu-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,11 +0,0 @@ +@@ -4610,8 +3762,6 @@ + - CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64le -L /usr/powerpc64le-linux-gnu" \ + - CC=powerpc64le-linux-gnu-gcc \ + - OBJDUMP=powerpc64le-linux-gnu-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/s390x-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/s390x-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/s390x-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,20 +0,0 @@ +@@ -4635,8 +3785,6 @@ + - CC_s390x_unknown_linux_gnu=s390x-linux-gnu-gcc \ + - CXX_s390x_unknown_linux_gnu=s390x-linux-gnu-g++ \ + - OBJDUMP=s390x-linux-gnu-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/sparc64-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/sparc64-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/sparc64-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,18 +0,0 @@ +@@ -4658,8 +3806,6 @@ + - CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="/test-runner-linux sparc64" \ + - CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc \ + - PATH=$PATH:/rust/bin +-diff --git a/third_party/rust/packed_simd/ci/docker/thumbv7neon-linux-androideabi/Dockerfile b/third_party/rust/packed_simd/ci/docker/thumbv7neon-linux-androideabi/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/thumbv7neon-linux-androideabi/Dockerfile + +++ /dev/null + @@ -1,47 +0,0 @@ +@@ -4710,8 +3856,6 @@ + - exec \"$@\"", \ + - "--" \ + -] +-diff --git a/third_party/rust/packed_simd/ci/docker/thumbv7neon-unknown-linux-gnueabihf/Dockerfile b/third_party/rust/packed_simd/ci/docker/thumbv7neon-unknown-linux-gnueabihf/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/thumbv7neon-unknown-linux-gnueabihf/Dockerfile + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -4728,8 +3872,6 @@ + -ENV CARGO_TARGET_THUMBV7NEON_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ + - CARGO_TARGET_THUMBV7NEON_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \ + - OBJDUMP=arm-linux-gnueabihf-objdump +-diff --git a/third_party/rust/packed_simd/ci/docker/wasm32-unknown-unknown/Dockerfile b/third_party/rust/packed_simd/ci/docker/wasm32-unknown-unknown/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/wasm32-unknown-unknown/Dockerfile + +++ /dev/null + @@ -1,39 +0,0 @@ +@@ -4772,8 +3914,6 @@ + -# Rustc isn't available until this container starts, so defer compilation of the + -# shim. + -ENTRYPOINT /rust/bin/rustc /lld-shim.rs -o /tmp/lld-shim && exec bash "$@" +-diff --git a/third_party/rust/packed_simd/ci/docker/x86_64-linux-android/Dockerfile b/third_party/rust/packed_simd/ci/docker/x86_64-linux-android/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/x86_64-linux-android/Dockerfile + +++ /dev/null + @@ -1,31 +0,0 @@ +@@ -4808,8 +3948,6 @@ + - CXX_x86_64_linux_android=x86_64-linux-android21-clang++ \ + - OBJDUMP=llvm-objdump \ + - HOME=/tmp +-diff --git a/third_party/rust/packed_simd/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile b/third_party/rust/packed_simd/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile + +++ /dev/null + @@ -1,16 +0,0 @@ +@@ -4829,8 +3967,6 @@ + -RUN wget https://github.com/gnzlbg/intel_sde/raw/master/sde-external-8.16.0-2018-01-30-lin.tar.bz2 + -RUN tar -xjf sde-external-8.16.0-2018-01-30-lin.tar.bz2 + -ENV CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="/sde-external-8.16.0-2018-01-30-lin/sde64 --" +-diff --git a/third_party/rust/packed_simd/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/third_party/rust/packed_simd/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/docker/x86_64-unknown-linux-gnu/Dockerfile + +++ /dev/null + @@ -1,10 +0,0 @@ +@@ -4844,8 +3980,6 @@ + - cmake \ + - libclang-dev \ + - clang +-diff --git a/third_party/rust/packed_simd/ci/dox.sh b/third_party/rust/packed_simd/ci/dox.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/dox.sh + +++ /dev/null + @@ -1,27 +0,0 @@ +@@ -4876,8 +4010,6 @@ + - ghp-import -n target/doc + - git push -qf https://${GH_PAGES}@github.com/${TRAVIS_REPO_SLUG}.git gh-pages + -fi +-diff --git a/third_party/rust/packed_simd/ci/linux-s390x.sh b/third_party/rust/packed_simd/ci/linux-s390x.sh +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/linux-s390x.sh + +++ /dev/null + @@ -1,18 +0,0 @@ +@@ -4899,8 +4031,6 @@ + -rm ../initrd.gz + -cp /usr/s390x-linux-gnu/lib/libgcc_s.so.1 usr/lib/ + -chmod a+w . +-diff --git a/third_party/rust/packed_simd/ci/linux-sparc64.sh b/third_party/rust/packed_simd/ci/linux-sparc64.sh +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/linux-sparc64.sh + +++ /dev/null + @@ -1,17 +0,0 @@ +@@ -4921,8 +4051,6 @@ + -rm ../initrd.gz + -cp /usr/sparc64-linux-gnu/lib/libgcc_s.so.1 usr/lib/ + -chmod a+w . +-diff --git a/third_party/rust/packed_simd/ci/lld-shim.rs b/third_party/rust/packed_simd/ci/lld-shim.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/lld-shim.rs + +++ /dev/null + @@ -1,11 +0,0 @@ +@@ -4937,8 +4065,6 @@ + - .collect::>(); + - panic!("failed to exec: {}", Command::new("rust-lld").args(&args).exec()); + -} +-diff --git a/third_party/rust/packed_simd/ci/max_line_width.sh b/third_party/rust/packed_simd/ci/max_line_width.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/max_line_width.sh + +++ /dev/null + @@ -1,17 +0,0 @@ +@@ -4959,8 +4085,6 @@ + - fi + -done + - +-diff --git a/third_party/rust/packed_simd/ci/run-docker.sh b/third_party/rust/packed_simd/ci/run-docker.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/run-docker.sh + +++ /dev/null + @@ -1,38 +0,0 @@ +@@ -5002,8 +4126,6 @@ + -else + - run ${TARGET} + -fi +-diff --git a/third_party/rust/packed_simd/ci/run.sh b/third_party/rust/packed_simd/ci/run.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/run.sh + +++ /dev/null + @@ -1,99 +0,0 @@ +@@ -5106,8 +4228,6 @@ + - + -# FIXME: Figure out which examples take too long to run and ignore or adjust those + -#. ci/run_examples.sh +-diff --git a/third_party/rust/packed_simd/ci/run_examples.sh b/third_party/rust/packed_simd/ci/run_examples.sh +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/run_examples.sh + +++ /dev/null + @@ -1,51 +0,0 @@ +@@ -5162,8 +4282,6 @@ + - + -cp -r examples/triangle_xform target/triangle_xform + -cargo_test --manifest-path=target/triangle_xform/Cargo.toml --release +-diff --git a/third_party/rust/packed_simd/ci/runtest-android.rs b/third_party/rust/packed_simd/ci/runtest-android.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/ci/runtest-android.rs + +++ /dev/null + @@ -1,45 +0,0 @@ +@@ -5212,8 +4330,6 @@ + - panic!("failed to find successful test run"); + - } + -} +-diff --git a/third_party/rust/packed_simd/ci/setup_benchmarks.sh b/third_party/rust/packed_simd/ci/setup_benchmarks.sh +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/setup_benchmarks.sh + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -5224,8 +4340,6 @@ + -# Get latest ISPC binary for the target and put it in the path + -git clone https://github.com/gnzlbg/ispc-binaries + -cp ispc-binaries/ispc-${TARGET} ispc +-diff --git a/third_party/rust/packed_simd/ci/test-runner-linux b/third_party/rust/packed_simd/ci/test-runner-linux +-deleted file mode 100755 + --- a/third_party/rust/packed_simd/ci/test-runner-linux + +++ /dev/null + @@ -1,24 +0,0 @@ +@@ -5253,8 +4367,6 @@ + - + -# if the output contains a failure, return error + -! grep FAILED output > /dev/null +-diff --git a/third_party/rust/packed_simd/contributing.md b/third_party/rust/packed_simd/contributing.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/contributing.md + +++ /dev/null + @@ -1,67 +0,0 @@ +@@ -5325,8 +4437,6 @@ + - + -[perf-guide]: https://rust-lang-nursery.github.io/packed_simd/perf-guide/ + -[mdBook]: https://github.com/rust-lang-nursery/mdBook +-diff --git a/third_party/rust/packed_simd/perf-guide/book.toml b/third_party/rust/packed_simd/perf-guide/book.toml +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/book.toml + +++ /dev/null + @@ -1,12 +0,0 @@ +@@ -5342,8 +4452,6 @@ + - + -[output.html] + -additional-css = ["./src/ascii.css"] +-diff --git a/third_party/rust/packed_simd/perf-guide/src/SUMMARY.md b/third_party/rust/packed_simd/perf-guide/src/SUMMARY.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/SUMMARY.md + +++ /dev/null + @@ -1,21 +0,0 @@ +@@ -5368,8 +4476,6 @@ + -- [Performance profiling](./prof/profiling.md) + - - [Profiling on Linux](./prof/linux.md) + - - [Using machine code analyzers](./prof/mca.md) +-diff --git a/third_party/rust/packed_simd/perf-guide/src/ascii.css b/third_party/rust/packed_simd/perf-guide/src/ascii.css +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/ascii.css + +++ /dev/null + @@ -1,4 +0,0 @@ +@@ -5377,8 +4483,6 @@ + - /* "Source Code Pro" breaks ASCII art */ + - font-family: Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace; + -} +-diff --git a/third_party/rust/packed_simd/perf-guide/src/bound_checks.md b/third_party/rust/packed_simd/perf-guide/src/bound_checks.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/bound_checks.md + +++ /dev/null + @@ -1,22 +0,0 @@ +@@ -5404,8 +4508,6 @@ + - + -These assertions do often significantly impact performance and you should be + -aware of them. +-diff --git a/third_party/rust/packed_simd/perf-guide/src/float-math/approx.md b/third_party/rust/packed_simd/perf-guide/src/float-math/approx.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/float-math/approx.md + +++ /dev/null + @@ -1,8 +0,0 @@ +@@ -5417,8 +4519,6 @@ + -that people should check whether the error is good enough for their + -applications. Explain that this error is currently unstable and might change. + ---> +-diff --git a/third_party/rust/packed_simd/perf-guide/src/float-math/fma.md b/third_party/rust/packed_simd/perf-guide/src/float-math/fma.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/float-math/fma.md + +++ /dev/null + @@ -1,6 +0,0 @@ +@@ -5428,16 +4528,12 @@ + -Explain that this is a compound operation, infinite precision, difference + -between `mul_add` and `mul_adde`, that LLVM cannot do this by itself, etc. + ---> +-diff --git a/third_party/rust/packed_simd/perf-guide/src/float-math/fp.md b/third_party/rust/packed_simd/perf-guide/src/float-math/fp.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/float-math/fp.md + +++ /dev/null + @@ -1,3 +0,0 @@ + -# Floating-point math + - + -This chapter contains information pertaining to working with floating-point numbers. +-diff --git a/third_party/rust/packed_simd/perf-guide/src/float-math/svml.md b/third_party/rust/packed_simd/perf-guide/src/float-math/svml.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/float-math/svml.md + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -5448,8 +4544,6 @@ + - + -Explain how to enable `sleef`, etc. + ---> +-diff --git a/third_party/rust/packed_simd/perf-guide/src/introduction.md b/third_party/rust/packed_simd/perf-guide/src/introduction.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/introduction.md + +++ /dev/null + @@ -1,26 +0,0 @@ +@@ -5479,8 +4573,6 @@ + - + -This book attempts to document these best practices and provides practical examples + -on how to apply the tips to _your_ code. +-diff --git a/third_party/rust/packed_simd/perf-guide/src/prof/linux.md b/third_party/rust/packed_simd/perf-guide/src/prof/linux.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/prof/linux.md + +++ /dev/null + @@ -1,107 +0,0 @@ +@@ -5591,8 +4683,6 @@ + -TODO: explain valgrind's dynamic binary translation, warn about massive + -slowdown, talk about `kcachegrind` for a GUI + ---> +-diff --git a/third_party/rust/packed_simd/perf-guide/src/prof/mca.md b/third_party/rust/packed_simd/perf-guide/src/prof/mca.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/prof/mca.md + +++ /dev/null + @@ -1,100 +0,0 @@ +@@ -5696,8 +4786,6 @@ + -TODO: once LLVM 7 gets released, write a chapter on using llvm-mca + -with SIMD disassembly. + ---> +-diff --git a/third_party/rust/packed_simd/perf-guide/src/prof/profiling.md b/third_party/rust/packed_simd/perf-guide/src/prof/profiling.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/prof/profiling.md + +++ /dev/null + @@ -1,14 +0,0 @@ +@@ -5715,8 +4803,6 @@ + - + -[profiling]: https://en.wikipedia.org/wiki/Profiling_(computer_programming) + -[cargo-ref]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-profile-sections +-diff --git a/third_party/rust/packed_simd/perf-guide/src/target-feature/attribute.md b/third_party/rust/packed_simd/perf-guide/src/target-feature/attribute.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/target-feature/attribute.md + +++ /dev/null + @@ -1,5 +0,0 @@ +@@ -5725,8 +4811,6 @@ + - +-diff --git a/third_party/rust/packed_simd/perf-guide/src/target-feature/features.md b/third_party/rust/packed_simd/perf-guide/src/target-feature/features.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/target-feature/features.md + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -5743,8 +4827,6 @@ + -specifications [in the compiler's source code][targets]. + - + -[targets]: https://github.com/rust-lang/rust/tree/master/src/librustc_target/spec +-diff --git a/third_party/rust/packed_simd/perf-guide/src/target-feature/inlining.md b/third_party/rust/packed_simd/perf-guide/src/target-feature/inlining.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/target-feature/inlining.md + +++ /dev/null + @@ -1,5 +0,0 @@ +@@ -5753,8 +4835,6 @@ + - +-diff --git a/third_party/rust/packed_simd/perf-guide/src/target-feature/practice.md b/third_party/rust/packed_simd/perf-guide/src/target-feature/practice.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/target-feature/practice.md + +++ /dev/null + @@ -1,31 +0,0 @@ +@@ -5789,8 +4869,6 @@ + -generated instructions with the [VEX] prefix. + - + -[VEX]: https://en.wikipedia.org/wiki/VEX_prefix +-diff --git a/third_party/rust/packed_simd/perf-guide/src/target-feature/runtime.md b/third_party/rust/packed_simd/perf-guide/src/target-feature/runtime.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/target-feature/runtime.md + +++ /dev/null + @@ -1,5 +0,0 @@ +@@ -5799,8 +4877,6 @@ + - +-diff --git a/third_party/rust/packed_simd/perf-guide/src/target-feature/rustflags.md b/third_party/rust/packed_simd/perf-guide/src/target-feature/rustflags.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/target-feature/rustflags.md + +++ /dev/null + @@ -1,77 +0,0 @@ +@@ -5881,8 +4957,6 @@ + - plan to only use locally. This should never be used when the generated programs + - are meant to be run on other computers, such as when packaging for distribution + - or cross-compiling. +-diff --git a/third_party/rust/packed_simd/perf-guide/src/vert-hor-ops.md b/third_party/rust/packed_simd/perf-guide/src/vert-hor-ops.md +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/perf-guide/src/vert-hor-ops.md + +++ /dev/null + @@ -1,76 +0,0 @@ +@@ -5962,14 +5036,10 @@ + -than `slow_sum`. You can run the [slice_sum]() example and see for yourself. On + -the particular machine tested there the algorithm using the horizontal vector + -addition is 2.7x slower than the one using vertical vector operations! +-diff --git a/third_party/rust/packed_simd/rust-toolchain b/third_party/rust/packed_simd/rust-toolchain +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/rust-toolchain + +++ /dev/null +-@@ -1,1 +0,0 @@ ++@@ -1 +0,0 @@ + -nightly +-diff --git a/third_party/rust/packed_simd/rustfmt.toml b/third_party/rust/packed_simd/rustfmt.toml +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/rustfmt.toml + +++ /dev/null + @@ -1,5 +0,0 @@ +@@ -5979,8 +5049,6 @@ + -edition = "2018" + -error_on_line_overflow = true + \ No newline at end of file +-diff --git a/third_party/rust/packed_simd/src/api.rs b/third_party/rust/packed_simd/src/api.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api.rs + +++ /dev/null + @@ -1,309 +0,0 @@ +@@ -6293,8 +5361,6 @@ + - impl_ptr_write!([$elem_ty; $elem_n]: $tuple_id, $mask_ty | $test_tt); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/api/bit_manip.rs b/third_party/rust/packed_simd/src/api/bit_manip.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/bit_manip.rs + +++ /dev/null + @@ -1,129 +0,0 @@ +@@ -6427,8 +5493,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/bitmask.rs b/third_party/rust/packed_simd/src/api/bitmask.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/bitmask.rs + +++ /dev/null + @@ -1,79 +0,0 @@ +@@ -6511,8 +5575,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/cast.rs b/third_party/rust/packed_simd/src/api/cast.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast.rs + +++ /dev/null + @@ -1,108 +0,0 @@ +@@ -6624,8 +5686,6 @@ + - + -mod v512; + -pub use self::v512::*; +-diff --git a/third_party/rust/packed_simd/src/api/cast/macros.rs b/third_party/rust/packed_simd/src/api/cast/macros.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/macros.rs + +++ /dev/null + @@ -1,82 +0,0 @@ +@@ -6711,8 +5771,6 @@ + - )* + - } + -} +-diff --git a/third_party/rust/packed_simd/src/api/cast/v128.rs b/third_party/rust/packed_simd/src/api/cast/v128.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/v128.rs + +++ /dev/null + @@ -1,302 +0,0 @@ +@@ -7018,8 +6076,6 @@ + -impl_from_cast!(i128x1[test_v128]: u128x1, m128x1); + -impl_from_cast!(u128x1[test_v128]: i128x1, m128x1); + -impl_from_cast!(m128x1[test_v128]: i128x1, u128x1); +-diff --git a/third_party/rust/packed_simd/src/api/cast/v16.rs b/third_party/rust/packed_simd/src/api/cast/v16.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/v16.rs + +++ /dev/null + @@ -1,68 +0,0 @@ +@@ -7091,8 +6147,6 @@ + - usizex2, + - msizex2 + -); +-diff --git a/third_party/rust/packed_simd/src/api/cast/v256.rs b/third_party/rust/packed_simd/src/api/cast/v256.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/v256.rs + +++ /dev/null + @@ -1,298 +0,0 @@ +@@ -7394,8 +6448,6 @@ + - isizex4, + - usizex4 + -); +-diff --git a/third_party/rust/packed_simd/src/api/cast/v32.rs b/third_party/rust/packed_simd/src/api/cast/v32.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/v32.rs + +++ /dev/null + @@ -1,132 +0,0 @@ +@@ -7531,8 +6583,6 @@ + - usizex2, + - msizex2 + -); +-diff --git a/third_party/rust/packed_simd/src/api/cast/v512.rs b/third_party/rust/packed_simd/src/api/cast/v512.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/v512.rs + +++ /dev/null + @@ -1,209 +0,0 @@ +@@ -7745,8 +6795,6 @@ + - isizex8, + - usizex8 + -); +-diff --git a/third_party/rust/packed_simd/src/api/cast/v64.rs b/third_party/rust/packed_simd/src/api/cast/v64.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cast/v64.rs + +++ /dev/null + @@ -1,208 +0,0 @@ +@@ -7958,8 +7006,6 @@ + - usizex2, + - msizex2 + -); +-diff --git a/third_party/rust/packed_simd/src/api/cmp.rs b/third_party/rust/packed_simd/src/api/cmp.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cmp.rs + +++ /dev/null + @@ -1,16 +0,0 @@ +@@ -7979,8 +7025,6 @@ + - + -#[macro_use] + -mod vertical; +-diff --git a/third_party/rust/packed_simd/src/api/cmp/eq.rs b/third_party/rust/packed_simd/src/api/cmp/eq.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cmp/eq.rs + +++ /dev/null + @@ -1,27 +0,0 @@ +@@ -8011,8 +7055,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/cmp/ord.rs b/third_party/rust/packed_simd/src/api/cmp/ord.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cmp/ord.rs + +++ /dev/null + @@ -1,43 +0,0 @@ +@@ -8059,8 +7101,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/cmp/partial_eq.rs b/third_party/rust/packed_simd/src/api/cmp/partial_eq.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cmp/partial_eq.rs + +++ /dev/null + @@ -1,65 +0,0 @@ +@@ -8129,8 +7169,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/cmp/partial_ord.rs b/third_party/rust/packed_simd/src/api/cmp/partial_ord.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cmp/partial_ord.rs + +++ /dev/null + @@ -1,230 +0,0 @@ +@@ -8364,8 +7402,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/cmp/vertical.rs b/third_party/rust/packed_simd/src/api/cmp/vertical.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/cmp/vertical.rs + +++ /dev/null + @@ -1,114 +0,0 @@ +@@ -8483,8 +7519,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/default.rs b/third_party/rust/packed_simd/src/api/default.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/default.rs + +++ /dev/null + @@ -1,30 +0,0 @@ +@@ -8518,8 +7552,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/fmt.rs b/third_party/rust/packed_simd/src/api/fmt.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/fmt.rs + +++ /dev/null + @@ -1,12 +0,0 @@ +@@ -8535,8 +7567,6 @@ + -mod octal; + -#[macro_use] + -mod binary; +-diff --git a/third_party/rust/packed_simd/src/api/fmt/binary.rs b/third_party/rust/packed_simd/src/api/fmt/binary.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/fmt/binary.rs + +++ /dev/null + @@ -1,54 +0,0 @@ +@@ -8594,8 +7624,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/fmt/debug.rs b/third_party/rust/packed_simd/src/api/fmt/debug.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/fmt/debug.rs + +++ /dev/null + @@ -1,60 +0,0 @@ +@@ -8659,8 +7687,6 @@ + - impl_fmt_debug_tests!([$elem_ty; $elem_count]: $id | $test_tt); + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/fmt/lower_hex.rs b/third_party/rust/packed_simd/src/api/fmt/lower_hex.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/fmt/lower_hex.rs + +++ /dev/null + @@ -1,54 +0,0 @@ +@@ -8718,8 +7744,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/fmt/octal.rs b/third_party/rust/packed_simd/src/api/fmt/octal.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/fmt/octal.rs + +++ /dev/null + @@ -1,54 +0,0 @@ +@@ -8777,8 +7801,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/fmt/upper_hex.rs b/third_party/rust/packed_simd/src/api/fmt/upper_hex.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/fmt/upper_hex.rs + +++ /dev/null + @@ -1,54 +0,0 @@ +@@ -8836,8 +7858,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/from.rs b/third_party/rust/packed_simd/src/api/from.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/from.rs + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -8848,8 +7868,6 @@ + - + -#[macro_use] + -mod from_vector; +-diff --git a/third_party/rust/packed_simd/src/api/from/from_array.rs b/third_party/rust/packed_simd/src/api/from/from_array.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/from/from_array.rs + +++ /dev/null + @@ -1,124 +0,0 @@ +@@ -8977,8 +7995,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/from/from_vector.rs b/third_party/rust/packed_simd/src/api/from/from_vector.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/from/from_vector.rs + +++ /dev/null + @@ -1,67 +0,0 @@ +@@ -9049,8 +8065,6 @@ + - )* + - } + -} +-diff --git a/third_party/rust/packed_simd/src/api/hash.rs b/third_party/rust/packed_simd/src/api/hash.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/hash.rs + +++ /dev/null + @@ -1,49 +0,0 @@ +@@ -9103,8 +8117,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/into_bits.rs b/third_party/rust/packed_simd/src/api/into_bits.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits.rs + +++ /dev/null + @@ -1,59 +0,0 @@ +@@ -9167,8 +8179,6 @@ + - + -mod arch_specific; + -pub use self::arch_specific::*; +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs b/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs + +++ /dev/null + @@ -1,345 +0,0 @@ +@@ -9517,8 +8527,6 @@ + - + -//////////////////////////////////////////////////////////////////////////////// + -// FIXME: Implementations for the 512-bit wide vector types +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/macros.rs b/third_party/rust/packed_simd/src/api/into_bits/macros.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/macros.rs + +++ /dev/null + @@ -1,74 +0,0 @@ +@@ -9596,8 +8604,6 @@ + - )* + - } + -} +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/v128.rs b/third_party/rust/packed_simd/src/api/into_bits/v128.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/v128.rs + +++ /dev/null + @@ -1,232 +0,0 @@ +@@ -9833,8 +8839,6 @@ + -); + -// note: m128x1 cannot be constructed from all the other masks bit patterns in + -// here +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/v16.rs b/third_party/rust/packed_simd/src/api/into_bits/v16.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/v16.rs + +++ /dev/null + @@ -1,9 +0,0 @@ +@@ -9847,8 +8851,6 @@ + -impl_from_bits!(i8x2[test_v16]: u8x2, m8x2); + -impl_from_bits!(u8x2[test_v16]: i8x2, m8x2); + -// note: m8x2 cannot be constructed from all i8x2 or u8x2 bit patterns +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/v256.rs b/third_party/rust/packed_simd/src/api/into_bits/v256.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/v256.rs + +++ /dev/null + @@ -1,232 +0,0 @@ +@@ -10084,8 +9086,6 @@ + -); + -// note: m128x2 cannot be constructed from all the other masks bit patterns in + -// here +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/v32.rs b/third_party/rust/packed_simd/src/api/into_bits/v32.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/v32.rs + +++ /dev/null + @@ -1,13 +0,0 @@ +@@ -10102,8 +9102,6 @@ + -impl_from_bits!(i16x2[test_v32]: i8x4, u8x4, m8x4, u16x2, m16x2); + -impl_from_bits!(u16x2[test_v32]: i8x4, u8x4, m8x4, i16x2, m16x2); + -// note: m16x2 cannot be constructed from all m8x4 bit patterns +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/v512.rs b/third_party/rust/packed_simd/src/api/into_bits/v512.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/v512.rs + +++ /dev/null + @@ -1,232 +0,0 @@ +@@ -10339,8 +9337,6 @@ + -); + -// note: m128x4 cannot be constructed from all the other masks bit patterns in + -// here +-diff --git a/third_party/rust/packed_simd/src/api/into_bits/v64.rs b/third_party/rust/packed_simd/src/api/into_bits/v64.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/into_bits/v64.rs + +++ /dev/null + @@ -1,18 +0,0 @@ +@@ -10362,8 +9358,6 @@ + -impl_from_bits!(u32x2[test_v64]: i8x8, u8x8, m8x8, i16x4, u16x4, m16x4, i32x2, f32x2, m32x2); + -impl_from_bits!(f32x2[test_v64]: i8x8, u8x8, m8x8, i16x4, u16x4, m16x4, i32x2, u32x2, m32x2); + -// note: m32x2 cannot be constructed from all m16x4 or m8x8 bit patterns +-diff --git a/third_party/rust/packed_simd/src/api/math.rs b/third_party/rust/packed_simd/src/api/math.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math.rs + +++ /dev/null + @@ -1,4 +0,0 @@ +@@ -10371,8 +9365,6 @@ + - + -#[macro_use] + -mod float; +-diff --git a/third_party/rust/packed_simd/src/api/math/float.rs b/third_party/rust/packed_simd/src/api/math/float.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float.rs + +++ /dev/null + @@ -1,64 +0,0 @@ +@@ -10440,8 +9432,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/abs.rs b/third_party/rust/packed_simd/src/api/math/float/abs.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/abs.rs + +++ /dev/null + @@ -1,31 +0,0 @@ +@@ -10476,8 +9466,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/consts.rs b/third_party/rust/packed_simd/src/api/math/float/consts.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/consts.rs + +++ /dev/null + @@ -1,74 +0,0 @@ +@@ -10555,8 +9543,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/cos.rs b/third_party/rust/packed_simd/src/api/math/float/cos.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/cos.rs + +++ /dev/null + @@ -1,44 +0,0 @@ +@@ -10604,8 +9590,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/exp.rs b/third_party/rust/packed_simd/src/api/math/float/exp.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/exp.rs + +++ /dev/null + @@ -1,33 +0,0 @@ +@@ -10642,8 +9626,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/ln.rs b/third_party/rust/packed_simd/src/api/math/float/ln.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/ln.rs + +++ /dev/null + @@ -1,33 +0,0 @@ +@@ -10680,8 +9662,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/mul_add.rs b/third_party/rust/packed_simd/src/api/math/float/mul_add.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/mul_add.rs + +++ /dev/null + @@ -1,44 +0,0 @@ +@@ -10729,8 +9709,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/mul_adde.rs b/third_party/rust/packed_simd/src/api/math/float/mul_adde.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/mul_adde.rs + +++ /dev/null + @@ -1,48 +0,0 @@ +@@ -10782,8 +9760,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/powf.rs b/third_party/rust/packed_simd/src/api/math/float/powf.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/powf.rs + +++ /dev/null + @@ -1,36 +0,0 @@ +@@ -10823,8 +9799,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/recpre.rs b/third_party/rust/packed_simd/src/api/math/float/recpre.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/recpre.rs + +++ /dev/null + @@ -1,36 +0,0 @@ +@@ -10864,8 +9838,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/rsqrte.rs b/third_party/rust/packed_simd/src/api/math/float/rsqrte.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/rsqrte.rs + +++ /dev/null + @@ -1,40 +0,0 @@ +@@ -10909,8 +9881,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/sin.rs b/third_party/rust/packed_simd/src/api/math/float/sin.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/sin.rs + +++ /dev/null + @@ -1,50 +0,0 @@ +@@ -10964,8 +9934,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/sqrt.rs b/third_party/rust/packed_simd/src/api/math/float/sqrt.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/sqrt.rs + +++ /dev/null + @@ -1,35 +0,0 @@ +@@ -11004,8 +9972,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/sqrte.rs b/third_party/rust/packed_simd/src/api/math/float/sqrte.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/sqrte.rs + +++ /dev/null + @@ -1,44 +0,0 @@ +@@ -11053,8 +10019,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/math/float/tanh.rs b/third_party/rust/packed_simd/src/api/math/float/tanh.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/math/float/tanh.rs + +++ /dev/null + @@ -1,29 +0,0 @@ +@@ -11087,8 +10051,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/minimal.rs b/third_party/rust/packed_simd/src/api/minimal.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/minimal.rs + +++ /dev/null + @@ -1,6 +0,0 @@ +@@ -11098,8 +10060,6 @@ + -mod mask; + -#[macro_use] + -mod ptr; +-diff --git a/third_party/rust/packed_simd/src/api/minimal/iuf.rs b/third_party/rust/packed_simd/src/api/minimal/iuf.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/minimal/iuf.rs + +++ /dev/null + @@ -1,169 +0,0 @@ +@@ -11272,8 +10232,6 @@ + - } + - } + -} +-diff --git a/third_party/rust/packed_simd/src/api/minimal/mask.rs b/third_party/rust/packed_simd/src/api/minimal/mask.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/minimal/mask.rs + +++ /dev/null + @@ -1,176 +0,0 @@ +@@ -11453,8 +10411,6 @@ + - } + - } + -} +-diff --git a/third_party/rust/packed_simd/src/api/minimal/ptr.rs b/third_party/rust/packed_simd/src/api/minimal/ptr.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/minimal/ptr.rs + +++ /dev/null + @@ -1,1373 +0,0 @@ +@@ -12831,8 +11787,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops.rs b/third_party/rust/packed_simd/src/api/ops.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops.rs + +++ /dev/null + @@ -1,32 +0,0 @@ +@@ -12868,8 +11822,6 @@ + - + -#[macro_use] + -mod vector_float_min_max; +-diff --git a/third_party/rust/packed_simd/src/api/ops/scalar_arithmetic.rs b/third_party/rust/packed_simd/src/api/ops/scalar_arithmetic.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/scalar_arithmetic.rs + +++ /dev/null + @@ -1,203 +0,0 @@ +@@ -13076,8 +12028,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/scalar_bitwise.rs b/third_party/rust/packed_simd/src/api/ops/scalar_bitwise.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/scalar_bitwise.rs + +++ /dev/null + @@ -1,162 +0,0 @@ +@@ -13243,8 +12193,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/scalar_mask_bitwise.rs b/third_party/rust/packed_simd/src/api/ops/scalar_mask_bitwise.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/scalar_mask_bitwise.rs + +++ /dev/null + @@ -1,140 +0,0 @@ +@@ -13388,8 +12336,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/scalar_shifts.rs b/third_party/rust/packed_simd/src/api/ops/scalar_shifts.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/scalar_shifts.rs + +++ /dev/null + @@ -1,106 +0,0 @@ +@@ -13499,8 +12445,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_arithmetic.rs b/third_party/rust/packed_simd/src/api/ops/vector_arithmetic.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_arithmetic.rs + +++ /dev/null + @@ -1,148 +0,0 @@ +@@ -13652,8 +12596,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_bitwise.rs b/third_party/rust/packed_simd/src/api/ops/vector_bitwise.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_bitwise.rs + +++ /dev/null + @@ -1,129 +0,0 @@ +@@ -13786,8 +12728,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_float_min_max.rs b/third_party/rust/packed_simd/src/api/ops/vector_float_min_max.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_float_min_max.rs + +++ /dev/null + @@ -1,74 +0,0 @@ +@@ -13865,8 +12805,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_int_min_max.rs b/third_party/rust/packed_simd/src/api/ops/vector_int_min_max.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_int_min_max.rs + +++ /dev/null + @@ -1,57 +0,0 @@ +@@ -13927,8 +12865,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_mask_bitwise.rs b/third_party/rust/packed_simd/src/api/ops/vector_mask_bitwise.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_mask_bitwise.rs + +++ /dev/null + @@ -1,116 +0,0 @@ +@@ -14048,8 +12984,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_neg.rs b/third_party/rust/packed_simd/src/api/ops/vector_neg.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_neg.rs + +++ /dev/null + @@ -1,43 +0,0 @@ +@@ -14096,8 +13030,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_rotates.rs b/third_party/rust/packed_simd/src/api/ops/vector_rotates.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_rotates.rs + +++ /dev/null + @@ -1,92 +0,0 @@ +@@ -14193,8 +13125,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ops/vector_shifts.rs b/third_party/rust/packed_simd/src/api/ops/vector_shifts.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ops/vector_shifts.rs + +++ /dev/null + @@ -1,106 +0,0 @@ +@@ -14304,8 +13234,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/ptr.rs b/third_party/rust/packed_simd/src/api/ptr.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ptr.rs + +++ /dev/null + @@ -1,4 +0,0 @@ +@@ -14313,8 +13241,6 @@ + - + -#[macro_use] + -mod gather_scatter; +-diff --git a/third_party/rust/packed_simd/src/api/ptr/gather_scatter.rs b/third_party/rust/packed_simd/src/api/ptr/gather_scatter.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/ptr/gather_scatter.rs + +++ /dev/null + @@ -1,216 +0,0 @@ +@@ -14534,8 +13460,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/reductions.rs b/third_party/rust/packed_simd/src/api/reductions.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/reductions.rs + +++ /dev/null + @@ -1,12 +0,0 @@ +@@ -14551,8 +13475,6 @@ + -mod mask; + -#[macro_use] + -mod min_max; +-diff --git a/third_party/rust/packed_simd/src/api/reductions/bitwise.rs b/third_party/rust/packed_simd/src/api/reductions/bitwise.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/reductions/bitwise.rs + +++ /dev/null + @@ -1,151 +0,0 @@ +@@ -14707,8 +13629,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/reductions/float_arithmetic.rs b/third_party/rust/packed_simd/src/api/reductions/float_arithmetic.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/reductions/float_arithmetic.rs + +++ /dev/null + @@ -1,313 +0,0 @@ +@@ -15025,8 +13945,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/reductions/integer_arithmetic.rs b/third_party/rust/packed_simd/src/api/reductions/integer_arithmetic.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/reductions/integer_arithmetic.rs + +++ /dev/null + @@ -1,193 +0,0 @@ +@@ -15223,8 +14141,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/reductions/mask.rs b/third_party/rust/packed_simd/src/api/reductions/mask.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/reductions/mask.rs + +++ /dev/null + @@ -1,89 +0,0 @@ +@@ -15317,8 +14233,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/reductions/min_max.rs b/third_party/rust/packed_simd/src/api/reductions/min_max.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/reductions/min_max.rs + +++ /dev/null + @@ -1,360 +0,0 @@ +@@ -15682,8 +14596,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/select.rs b/third_party/rust/packed_simd/src/api/select.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/select.rs + +++ /dev/null + @@ -1,73 +0,0 @@ +@@ -15760,8 +14672,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/shuffle.rs b/third_party/rust/packed_simd/src/api/shuffle.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/shuffle.rs + +++ /dev/null + @@ -1,184 +0,0 @@ +@@ -15949,8 +14859,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/shuffle1_dyn.rs b/third_party/rust/packed_simd/src/api/shuffle1_dyn.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/shuffle1_dyn.rs + +++ /dev/null + @@ -1,159 +0,0 @@ +@@ -16113,8 +15021,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/slice.rs b/third_party/rust/packed_simd/src/api/slice.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/slice.rs + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -16125,8 +15031,6 @@ + - + -#[macro_use] + -mod write_to_slice; +-diff --git a/third_party/rust/packed_simd/src/api/slice/from_slice.rs b/third_party/rust/packed_simd/src/api/slice/from_slice.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/slice/from_slice.rs + +++ /dev/null + @@ -1,202 +0,0 @@ +@@ -16332,8 +15236,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/slice/write_to_slice.rs b/third_party/rust/packed_simd/src/api/slice/write_to_slice.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/slice/write_to_slice.rs + +++ /dev/null + @@ -1,196 +0,0 @@ +@@ -16533,8 +15435,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/api/swap_bytes.rs b/third_party/rust/packed_simd/src/api/swap_bytes.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/api/swap_bytes.rs + +++ /dev/null + @@ -1,192 +0,0 @@ +@@ -16730,8 +15630,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen.rs b/third_party/rust/packed_simd/src/codegen.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen.rs + +++ /dev/null + @@ -1,62 +0,0 @@ +@@ -16797,8 +15695,6 @@ + - + -pub(crate) mod vPtr; + -pub(crate) use self::vPtr::*; +-diff --git a/third_party/rust/packed_simd/src/codegen/bit_manip.rs b/third_party/rust/packed_simd/src/codegen/bit_manip.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/bit_manip.rs + +++ /dev/null + @@ -1,347 +0,0 @@ +@@ -17149,8 +16045,6 @@ + - compile_error!("unsupported target_pointer_width"); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/llvm.rs b/third_party/rust/packed_simd/src/codegen/llvm.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/llvm.rs + +++ /dev/null + @@ -1,122 +0,0 @@ +@@ -17276,16 +16170,12 @@ + - + - pub(crate) fn simd_bitmask(value: T) -> U; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math.rs b/third_party/rust/packed_simd/src/codegen/math.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math.rs + +++ /dev/null + @@ -1,3 +0,0 @@ + -//! Vertical math operations + - + -pub(crate) mod float; +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float.rs b/third_party/rust/packed_simd/src/codegen/math/float.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float.rs + +++ /dev/null + @@ -1,19 +0,0 @@ +@@ -17308,8 +16198,6 @@ + -pub(crate) mod sqrt; + -pub(crate) mod sqrte; + -pub(crate) mod tanh; +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/abs.rs b/third_party/rust/packed_simd/src/codegen/math/float/abs.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/abs.rs + +++ /dev/null + @@ -1,103 +0,0 @@ +@@ -17416,8 +16304,6 @@ + - impl_unary!(f64x8: fabs_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/cos.rs b/third_party/rust/packed_simd/src/codegen/math/float/cos.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/cos.rs + +++ /dev/null + @@ -1,103 +0,0 @@ +@@ -17524,8 +16410,6 @@ + - impl_unary!(f64x8: cos_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/cos_pi.rs b/third_party/rust/packed_simd/src/codegen/math/float/cos_pi.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/cos_pi.rs + +++ /dev/null + @@ -1,87 +0,0 @@ +@@ -17616,8 +16500,6 @@ + - impl_def64!(f64x8); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/exp.rs b/third_party/rust/packed_simd/src/codegen/math/float/exp.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/exp.rs + +++ /dev/null + @@ -1,112 +0,0 @@ +@@ -17733,8 +16615,6 @@ + - impl_unary!(f64x8: exp_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/ln.rs b/third_party/rust/packed_simd/src/codegen/math/float/ln.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/ln.rs + +++ /dev/null + @@ -1,112 +0,0 @@ +@@ -17850,8 +16730,6 @@ + - impl_unary!(f64x8: ln_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/macros.rs b/third_party/rust/packed_simd/src/codegen/math/float/macros.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/macros.rs + +++ /dev/null + @@ -1,470 +0,0 @@ +@@ -18325,8 +17203,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/mul_add.rs b/third_party/rust/packed_simd/src/codegen/math/float/mul_add.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/mul_add.rs + +++ /dev/null + @@ -1,109 +0,0 @@ +@@ -18439,8 +17315,6 @@ + - impl_tertiary!(f64x8: fma_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/mul_adde.rs b/third_party/rust/packed_simd/src/codegen/math/float/mul_adde.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/mul_adde.rs + +++ /dev/null + @@ -1,60 +0,0 @@ +@@ -18504,8 +17378,6 @@ + -impl_mul_adde!(f64x2: fmuladd_v2f64); + -impl_mul_adde!(f64x4: fmuladd_v4f64); + -impl_mul_adde!(f64x8: fmuladd_v8f64); +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/powf.rs b/third_party/rust/packed_simd/src/codegen/math/float/powf.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/powf.rs + +++ /dev/null + @@ -1,112 +0,0 @@ +@@ -18621,8 +17493,6 @@ + - impl_binary!(f64x8: powf_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/sin.rs b/third_party/rust/packed_simd/src/codegen/math/float/sin.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/sin.rs + +++ /dev/null + @@ -1,103 +0,0 @@ +@@ -18729,8 +17599,6 @@ + - impl_unary!(f64x8: sin_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/sin_cos_pi.rs b/third_party/rust/packed_simd/src/codegen/math/float/sin_cos_pi.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/sin_cos_pi.rs + +++ /dev/null + @@ -1,188 +0,0 @@ +@@ -18922,8 +17790,6 @@ + - impl_def64!(f64x8); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/sin_pi.rs b/third_party/rust/packed_simd/src/codegen/math/float/sin_pi.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/sin_pi.rs + +++ /dev/null + @@ -1,87 +0,0 @@ +@@ -19014,8 +17880,6 @@ + - impl_def64!(f64x8); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/sqrt.rs b/third_party/rust/packed_simd/src/codegen/math/float/sqrt.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/sqrt.rs + +++ /dev/null + @@ -1,103 +0,0 @@ +@@ -19122,8 +17986,6 @@ + - impl_unary!(f64x8: sqrt_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/sqrte.rs b/third_party/rust/packed_simd/src/codegen/math/float/sqrte.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/sqrte.rs + +++ /dev/null + @@ -1,67 +0,0 @@ +@@ -19194,8 +18056,6 @@ + - impl_unary!(f64x8[g]: simd_fsqrt); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/math/float/tanh.rs b/third_party/rust/packed_simd/src/codegen/math/float/tanh.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/math/float/tanh.rs + +++ /dev/null + @@ -1,120 +0,0 @@ +@@ -19319,8 +18179,6 @@ + - impl_unary!(f64x8: tanh_v8f64); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/pointer_sized_int.rs b/third_party/rust/packed_simd/src/codegen/pointer_sized_int.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/pointer_sized_int.rs + +++ /dev/null + @@ -1,28 +0,0 @@ +@@ -19352,14 +18210,10 @@ + - compile_error!("unsupported target_pointer_width"); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions.rs b/third_party/rust/packed_simd/src/codegen/reductions.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions.rs + +++ /dev/null +-@@ -1,1 +0,0 @@ ++@@ -1 +0,0 @@ + -pub(crate) mod mask; +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask.rs + +++ /dev/null + @@ -1,69 +0,0 @@ +@@ -19432,8 +18286,6 @@ + -impl_mask_reductions!(msizex2); + -impl_mask_reductions!(msizex4); + -impl_mask_reductions!(msizex8); +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/aarch64.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/aarch64.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/aarch64.rs + +++ /dev/null + @@ -1,81 +0,0 @@ +@@ -19518,8 +18370,6 @@ + - fallback_impl!($id); + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/arm.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/arm.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/arm.rs + +++ /dev/null + @@ -1,56 +0,0 @@ +@@ -19579,8 +18429,6 @@ + - fallback_impl!($id); + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/fallback.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/fallback.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/fallback.rs + +++ /dev/null + @@ -1,8 +0,0 @@ +@@ -19592,8 +18440,6 @@ + - fallback_impl!($id); + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/fallback_impl.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/fallback_impl.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/fallback_impl.rs + +++ /dev/null + @@ -1,237 +0,0 @@ +@@ -19834,8 +18680,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/x86.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86.rs + +++ /dev/null + @@ -1,216 +0,0 @@ +@@ -20055,8 +18899,6 @@ + - fallback_impl!($id); + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/avx.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/avx.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/avx.rs + +++ /dev/null + @@ -1,95 +0,0 @@ +@@ -20155,8 +18997,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/avx2.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/avx2.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/avx2.rs + +++ /dev/null + @@ -1,35 +0,0 @@ +@@ -20195,8 +19035,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/sse.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/sse.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/sse.rs + +++ /dev/null + @@ -1,35 +0,0 @@ +@@ -20235,8 +19073,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/sse2.rs b/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/sse2.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/reductions/mask/x86/sse2.rs + +++ /dev/null + @@ -1,68 +0,0 @@ +@@ -20308,8 +19144,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/shuffle.rs b/third_party/rust/packed_simd/src/codegen/shuffle.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/shuffle.rs + +++ /dev/null + @@ -1,150 +0,0 @@ +@@ -20463,8 +19297,6 @@ + -impl_shuffle! { [u32; 1], m128, crate::codegen::m128x1 } + -impl_shuffle! { [u32; 2], m128, crate::codegen::m128x2 } + -impl_shuffle! { [u32; 4], m128, crate::codegen::m128x4 } +-diff --git a/third_party/rust/packed_simd/src/codegen/shuffle1_dyn.rs b/third_party/rust/packed_simd/src/codegen/shuffle1_dyn.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/shuffle1_dyn.rs + +++ /dev/null + @@ -1,408 +0,0 @@ +@@ -20876,8 +19708,6 @@ + -impl_shuffle1_dyn_ptr!(mptrx2, usizex2); + -impl_shuffle1_dyn_ptr!(mptrx4, usizex4); + -impl_shuffle1_dyn_ptr!(mptrx8, usizex8); +-diff --git a/third_party/rust/packed_simd/src/codegen/swap_bytes.rs b/third_party/rust/packed_simd/src/codegen/swap_bytes.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/swap_bytes.rs + +++ /dev/null + @@ -1,149 +0,0 @@ +@@ -21030,8 +19860,6 @@ + - compile_error!("unsupported target_pointer_width"); + - } + -} +-diff --git a/third_party/rust/packed_simd/src/codegen/v128.rs b/third_party/rust/packed_simd/src/codegen/v128.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/v128.rs + +++ /dev/null + @@ -1,46 +0,0 @@ +@@ -21081,8 +19909,6 @@ + -impl_simd_array!([i128; 1]: i128x1 | i128); + -impl_simd_array!([u128; 1]: u128x1 | u128); + -impl_simd_array!([m128; 1]: m128x1 | i128); +-diff --git a/third_party/rust/packed_simd/src/codegen/v16.rs b/third_party/rust/packed_simd/src/codegen/v16.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/v16.rs + +++ /dev/null + @@ -1,7 +0,0 @@ +@@ -21093,8 +19919,6 @@ + -impl_simd_array!([i8; 2]: i8x2 | i8, i8); + -impl_simd_array!([u8; 2]: u8x2 | u8, u8); + -impl_simd_array!([m8; 2]: m8x2 | i8, i8); +-diff --git a/third_party/rust/packed_simd/src/codegen/v256.rs b/third_party/rust/packed_simd/src/codegen/v256.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/v256.rs + +++ /dev/null + @@ -1,78 +0,0 @@ +@@ -21176,8 +20000,6 @@ + -impl_simd_array!([i128; 2]: i128x2 | i128, i128); + -impl_simd_array!([u128; 2]: u128x2 | u128, u128); + -impl_simd_array!([m128; 2]: m128x2 | i128, i128); +-diff --git a/third_party/rust/packed_simd/src/codegen/v32.rs b/third_party/rust/packed_simd/src/codegen/v32.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/v32.rs + +++ /dev/null + @@ -1,11 +0,0 @@ +@@ -21192,8 +20014,6 @@ + -impl_simd_array!([i16; 2]: i16x2 | i16, i16); + -impl_simd_array!([u16; 2]: u16x2 | u16, u16); + -impl_simd_array!([m16; 2]: m16x2 | i16, i16); +-diff --git a/third_party/rust/packed_simd/src/codegen/v512.rs b/third_party/rust/packed_simd/src/codegen/v512.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/v512.rs + +++ /dev/null + @@ -1,145 +0,0 @@ +@@ -21342,8 +20162,6 @@ + -impl_simd_array!([i128; 4]: i128x4 | i128, i128, i128, i128); + -impl_simd_array!([u128; 4]: u128x4 | u128, u128, u128, u128); + -impl_simd_array!([m128; 4]: m128x4 | i128, i128, i128, i128); +-diff --git a/third_party/rust/packed_simd/src/codegen/v64.rs b/third_party/rust/packed_simd/src/codegen/v64.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/v64.rs + +++ /dev/null + @@ -1,21 +0,0 @@ +@@ -21368,8 +20186,6 @@ + -impl_simd_array!([u64; 1]: u64x1 | u64); + -impl_simd_array!([f64; 1]: f64x1 | f64); + -impl_simd_array!([m64; 1]: m64x1 | i64); +-diff --git a/third_party/rust/packed_simd/src/codegen/vPtr.rs b/third_party/rust/packed_simd/src/codegen/vPtr.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/vPtr.rs + +++ /dev/null + @@ -1,35 +0,0 @@ +@@ -21408,8 +20224,6 @@ + -impl_simd_ptr!([*mut T; 2]: mptrx2 | T | T, T); + -impl_simd_ptr!([*mut T; 4]: mptrx4 | T | T, T, T, T); + -impl_simd_ptr!([*mut T; 8]: mptrx8 | T | T, T, T, T, T, T, T, T); +-diff --git a/third_party/rust/packed_simd/src/codegen/vSize.rs b/third_party/rust/packed_simd/src/codegen/vSize.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/codegen/vSize.rs + +++ /dev/null + @@ -1,16 +0,0 @@ +@@ -21429,8 +20243,6 @@ + -impl_simd_array!([isize; 8]: isizex8 | isize_, isize_, isize_, isize_, isize_, isize_, isize_, isize_); + -impl_simd_array!([usize; 8]: usizex8 | usize_, usize_, usize_, usize_, usize_, usize_, usize_, usize_); + -impl_simd_array!([msize; 8]: msizex8 | isize_, isize_, isize_, isize_, isize_, isize_, isize_, isize_); +-diff --git a/third_party/rust/packed_simd/src/lib.rs b/third_party/rust/packed_simd/src/lib.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/lib.rs + +++ /dev/null + @@ -1,348 +0,0 @@ +@@ -21782,8 +20594,6 @@ + -pub(crate) mod llvm { + - pub(crate) use crate::codegen::llvm::*; + -} +-diff --git a/third_party/rust/packed_simd/src/masks.rs b/third_party/rust/packed_simd/src/masks.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/masks.rs + +++ /dev/null + @@ -1,126 +0,0 @@ +@@ -21913,8 +20723,6 @@ + -); + -impl_mask_ty!(msize: isize | /// isize-wide mask. + -); +-diff --git a/third_party/rust/packed_simd/src/sealed.rs b/third_party/rust/packed_simd/src/sealed.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/sealed.rs + +++ /dev/null + @@ -1,42 +0,0 @@ +@@ -21960,8 +20768,6 @@ + -pub trait Mask: Seal { + - fn test(&self) -> bool; + -} +-diff --git a/third_party/rust/packed_simd/src/testing.rs b/third_party/rust/packed_simd/src/testing.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/testing.rs + +++ /dev/null + @@ -1,8 +0,0 @@ +@@ -21973,8 +20779,6 @@ + -#[cfg(test)] + -#[macro_use] + -pub(crate) mod utils; +-diff --git a/third_party/rust/packed_simd/src/testing/macros.rs b/third_party/rust/packed_simd/src/testing/macros.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/testing/macros.rs + +++ /dev/null + @@ -1,44 +0,0 @@ +@@ -22022,8 +20826,6 @@ + - &mut $anything + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/testing/utils.rs b/third_party/rust/packed_simd/src/testing/utils.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/testing/utils.rs + +++ /dev/null + @@ -1,130 +0,0 @@ +@@ -22157,8 +20959,6 @@ + - } + - }; + -} +-diff --git a/third_party/rust/packed_simd/src/v128.rs b/third_party/rust/packed_simd/src/v128.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/v128.rs + +++ /dev/null + @@ -1,80 +0,0 @@ +@@ -22242,8 +21042,6 @@ + - From: /*m8x1, m16x1, m32x1, m64x1 */ | // FIXME: unary small vector types + - /// A 128-bit vector mask with 1 `m128` lane. + -); +-diff --git a/third_party/rust/packed_simd/src/v16.rs b/third_party/rust/packed_simd/src/v16.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/v16.rs + +++ /dev/null + @@ -1,16 +0,0 @@ +@@ -22263,8 +21061,6 @@ + - From: m16x2, m32x2, m64x2, m128x2 | + - /// A 16-bit vector mask with 2 `m8` lanes. + -); +-diff --git a/third_party/rust/packed_simd/src/v256.rs b/third_party/rust/packed_simd/src/v256.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/v256.rs + +++ /dev/null + @@ -1,86 +0,0 @@ +@@ -22354,8 +21150,6 @@ + - From: m8x2, m16x2, m32x2, m64x2 | + - /// A 256-bit vector mask with 2 `m128` lanes. + -); +-diff --git a/third_party/rust/packed_simd/src/v32.rs b/third_party/rust/packed_simd/src/v32.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/v32.rs + +++ /dev/null + @@ -1,29 +0,0 @@ +@@ -22388,8 +21182,6 @@ + - From: m8x2, m32x2, m64x2, m128x2 | + - /// A 32-bit vector mask with 2 `m16` lanes. + -); +-diff --git a/third_party/rust/packed_simd/src/v512.rs b/third_party/rust/packed_simd/src/v512.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/v512.rs + +++ /dev/null + @@ -1,99 +0,0 @@ +@@ -22492,8 +21284,6 @@ + - From: m8x4, m16x4, m32x4, m64x4 | + - /// A 512-bit vector mask with 4 `m128` lanes. + -); +-diff --git a/third_party/rust/packed_simd/src/v64.rs b/third_party/rust/packed_simd/src/v64.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/v64.rs + +++ /dev/null + @@ -1,66 +0,0 @@ +@@ -22563,8 +21353,6 @@ + - /// A 64-bit vector with 1 `f64` lanes. + -); + -*/ +-diff --git a/third_party/rust/packed_simd/src/vPtr.rs b/third_party/rust/packed_simd/src/vPtr.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/vPtr.rs + +++ /dev/null + @@ -1,34 +0,0 @@ +@@ -22602,8 +21390,6 @@ + - [*mut T; 8]: mptrx8, msizex8, usizex8, isizex8 | test_v512 | x0, x1, x2, x3, x4, x5, x6, x7 | From: | + - /// A vector with 8 `*mut T` lanes + -); +-diff --git a/third_party/rust/packed_simd/src/vSize.rs b/third_party/rust/packed_simd/src/vSize.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/src/vSize.rs + +++ /dev/null + @@ -1,53 +0,0 @@ +@@ -22660,8 +21446,6 @@ + - From: | + - /// A vector mask with 8 `msize` lanes. + -); +-diff --git a/third_party/rust/packed_simd/tests/endianness.rs b/third_party/rust/packed_simd/tests/endianness.rs +-deleted file mode 100644 + --- a/third_party/rust/packed_simd/tests/endianness.rs + +++ /dev/null + @@ -1,268 +0,0 @@ +@@ -22933,4 +21717,467 @@ + - assert_eq!(x.10 as i16, e[10]); + - assert_eq!(x.11 as i16, e[11]); + -} +- ++--- /dev/null +++++ b/third_party/rust/any_all_workaround/LICENSE-APACHE ++@@ -0,0 +1,201 @@ +++ Apache License +++ Version 2.0, January 2004 +++ http://www.apache.org/licenses/ +++ +++TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +++ +++1. Definitions. +++ +++ "License" shall mean the terms and conditions for use, reproduction, +++ and distribution as defined by Sections 1 through 9 of this document. +++ +++ "Licensor" shall mean the copyright owner or entity authorized by +++ the copyright owner that is granting the License. +++ +++ "Legal Entity" shall mean the union of the acting entity and all +++ other entities that control, are controlled by, or are under common +++ control with that entity. For the purposes of this definition, +++ "control" means (i) the power, direct or indirect, to cause the +++ direction or management of such entity, whether by contract or +++ otherwise, or (ii) ownership of fifty percent (50%) or more of the +++ outstanding shares, or (iii) beneficial ownership of such entity. +++ +++ "You" (or "Your") shall mean an individual or Legal Entity +++ exercising permissions granted by this License. +++ +++ "Source" form shall mean the preferred form for making modifications, +++ including but not limited to software source code, documentation +++ source, and configuration files. +++ +++ "Object" form shall mean any form resulting from mechanical +++ transformation or translation of a Source form, including but +++ not limited to compiled object code, generated documentation, +++ and conversions to other media types. +++ +++ "Work" shall mean the work of authorship, whether in Source or +++ Object form, made available under the License, as indicated by a +++ copyright notice that is included in or attached to the work +++ (an example is provided in the Appendix below). +++ +++ "Derivative Works" shall mean any work, whether in Source or Object +++ form, that is based on (or derived from) the Work and for which the +++ editorial revisions, annotations, elaborations, or other modifications +++ represent, as a whole, an original work of authorship. For the purposes +++ of this License, Derivative Works shall not include works that remain +++ separable from, or merely link (or bind by name) to the interfaces of, +++ the Work and Derivative Works thereof. +++ +++ "Contribution" shall mean any work of authorship, including +++ the original version of the Work and any modifications or additions +++ to that Work or Derivative Works thereof, that is intentionally +++ submitted to Licensor for inclusion in the Work by the copyright owner +++ or by an individual or Legal Entity authorized to submit on behalf of +++ the copyright owner. For the purposes of this definition, "submitted" +++ means any form of electronic, verbal, or written communication sent +++ to the Licensor or its representatives, including but not limited to +++ communication on electronic mailing lists, source code control systems, +++ and issue tracking systems that are managed by, or on behalf of, the +++ Licensor for the purpose of discussing and improving the Work, but +++ excluding communication that is conspicuously marked or otherwise +++ designated in writing by the copyright owner as "Not a Contribution." +++ +++ "Contributor" shall mean Licensor and any individual or Legal Entity +++ on behalf of whom a Contribution has been received by Licensor and +++ subsequently incorporated within the Work. +++ +++2. Grant of Copyright License. Subject to the terms and conditions of +++ this License, each Contributor hereby grants to You a perpetual, +++ worldwide, non-exclusive, no-charge, royalty-free, irrevocable +++ copyright license to reproduce, prepare Derivative Works of, +++ publicly display, publicly perform, sublicense, and distribute the +++ Work and such Derivative Works in Source or Object form. +++ +++3. Grant of Patent License. Subject to the terms and conditions of +++ this License, each Contributor hereby grants to You a perpetual, +++ worldwide, non-exclusive, no-charge, royalty-free, irrevocable +++ (except as stated in this section) patent license to make, have made, +++ use, offer to sell, sell, import, and otherwise transfer the Work, +++ where such license applies only to those patent claims licensable +++ by such Contributor that are necessarily infringed by their +++ Contribution(s) alone or by combination of their Contribution(s) +++ with the Work to which such Contribution(s) was submitted. If You +++ institute patent litigation against any entity (including a +++ cross-claim or counterclaim in a lawsuit) alleging that the Work +++ or a Contribution incorporated within the Work constitutes direct +++ or contributory patent infringement, then any patent licenses +++ granted to You under this License for that Work shall terminate +++ as of the date such litigation is filed. +++ +++4. Redistribution. You may reproduce and distribute copies of the +++ Work or Derivative Works thereof in any medium, with or without +++ modifications, and in Source or Object form, provided that You +++ meet the following conditions: +++ +++ (a) You must give any other recipients of the Work or +++ Derivative Works a copy of this License; and +++ +++ (b) You must cause any modified files to carry prominent notices +++ stating that You changed the files; and +++ +++ (c) You must retain, in the Source form of any Derivative Works +++ that You distribute, all copyright, patent, trademark, and +++ attribution notices from the Source form of the Work, +++ excluding those notices that do not pertain to any part of +++ the Derivative Works; and +++ +++ (d) If the Work includes a "NOTICE" text file as part of its +++ distribution, then any Derivative Works that You distribute must +++ include a readable copy of the attribution notices contained +++ within such NOTICE file, excluding those notices that do not +++ pertain to any part of the Derivative Works, in at least one +++ of the following places: within a NOTICE text file distributed +++ as part of the Derivative Works; within the Source form or +++ documentation, if provided along with the Derivative Works; or, +++ within a display generated by the Derivative Works, if and +++ wherever such third-party notices normally appear. The contents +++ of the NOTICE file are for informational purposes only and +++ do not modify the License. You may add Your own attribution +++ notices within Derivative Works that You distribute, alongside +++ or as an addendum to the NOTICE text from the Work, provided +++ that such additional attribution notices cannot be construed +++ as modifying the License. +++ +++ You may add Your own copyright statement to Your modifications and +++ may provide additional or different license terms and conditions +++ for use, reproduction, or distribution of Your modifications, or +++ for any such Derivative Works as a whole, provided Your use, +++ reproduction, and distribution of the Work otherwise complies with +++ the conditions stated in this License. +++ +++5. Submission of Contributions. Unless You explicitly state otherwise, +++ any Contribution intentionally submitted for inclusion in the Work +++ by You to the Licensor shall be under the terms and conditions of +++ this License, without any additional terms or conditions. +++ Notwithstanding the above, nothing herein shall supersede or modify +++ the terms of any separate license agreement you may have executed +++ with Licensor regarding such Contributions. +++ +++6. Trademarks. This License does not grant permission to use the trade +++ names, trademarks, service marks, or product names of the Licensor, +++ except as required for reasonable and customary use in describing the +++ origin of the Work and reproducing the content of the NOTICE file. +++ +++7. Disclaimer of Warranty. Unless required by applicable law or +++ agreed to in writing, Licensor provides the Work (and each +++ Contributor provides its Contributions) on an "AS IS" BASIS, +++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +++ implied, including, without limitation, any warranties or conditions +++ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +++ PARTICULAR PURPOSE. You are solely responsible for determining the +++ appropriateness of using or redistributing the Work and assume any +++ risks associated with Your exercise of permissions under this License. +++ +++8. Limitation of Liability. In no event and under no legal theory, +++ whether in tort (including negligence), contract, or otherwise, +++ unless required by applicable law (such as deliberate and grossly +++ negligent acts) or agreed to in writing, shall any Contributor be +++ liable to You for damages, including any direct, indirect, special, +++ incidental, or consequential damages of any character arising as a +++ result of this License or out of the use or inability to use the +++ Work (including but not limited to damages for loss of goodwill, +++ work stoppage, computer failure or malfunction, or any and all +++ other commercial damages or losses), even if such Contributor +++ has been advised of the possibility of such damages. +++ +++9. Accepting Warranty or Additional Liability. While redistributing +++ the Work or Derivative Works thereof, You may choose to offer, +++ and charge a fee for, acceptance of support, warranty, indemnity, +++ or other liability obligations and/or rights consistent with this +++ License. However, in accepting such obligations, You may act only +++ on Your own behalf and on Your sole responsibility, not on behalf +++ of any other Contributor, and only if You agree to indemnify, +++ defend, and hold each Contributor harmless for any liability +++ incurred by, or claims asserted against, such Contributor by reason +++ of your accepting any such warranty or additional liability. +++ +++END OF TERMS AND CONDITIONS +++ +++APPENDIX: How to apply the Apache License to your work. +++ +++ To apply the Apache License to your work, attach the following +++ boilerplate notice, with the fields enclosed by brackets "[]" +++ replaced with your own identifying information. (Don't include +++ the brackets!) The text should be enclosed in the appropriate +++ comment syntax for the file format. We also recommend that a +++ file or class name and description of purpose be included on the +++ same "printed page" as the copyright notice for easier +++ identification within third-party archives. +++ +++Copyright [yyyy] [name of copyright owner] +++ +++Licensed under the Apache License, Version 2.0 (the "License"); +++you may not use this file except in compliance with the License. +++You may obtain a copy of the License at +++ +++ http://www.apache.org/licenses/LICENSE-2.0 +++ +++Unless required by applicable law or agreed to in writing, software +++distributed under the License is distributed on an "AS IS" BASIS, +++WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +++See the License for the specific language governing permissions and +++limitations under the License. ++--- /dev/null +++++ b/third_party/rust/any_all_workaround/LICENSE-MIT ++@@ -0,0 +1,25 @@ +++Copyright (c) 2014 The Rust Project Developers +++ +++Permission is hereby granted, free of charge, to any +++person obtaining a copy of this software and associated +++documentation files (the "Software"), to deal in the +++Software without restriction, including without +++limitation the rights to use, copy, modify, merge, +++publish, distribute, sublicense, and/or sell copies of +++the Software, and to permit persons to whom the Software +++is furnished to do so, subject to the following +++conditions: +++ +++The above copyright notice and this permission notice +++shall be included in all copies or substantial portions +++of the Software. +++ +++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +++ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +++TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +++PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +++SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +++CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +++IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +++DEALINGS IN THE SOFTWARE. ++--- a/third_party/rust/packed_simd/LICENSE-APACHE +++++ /dev/null ++@@ -1,201 +0,0 @@ ++- Apache License ++- Version 2.0, January 2004 ++- http://www.apache.org/licenses/ ++- ++-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION ++- ++-1. Definitions. ++- ++- "License" shall mean the terms and conditions for use, reproduction, ++- and distribution as defined by Sections 1 through 9 of this document. ++- ++- "Licensor" shall mean the copyright owner or entity authorized by ++- the copyright owner that is granting the License. ++- ++- "Legal Entity" shall mean the union of the acting entity and all ++- other entities that control, are controlled by, or are under common ++- control with that entity. For the purposes of this definition, ++- "control" means (i) the power, direct or indirect, to cause the ++- direction or management of such entity, whether by contract or ++- otherwise, or (ii) ownership of fifty percent (50%) or more of the ++- outstanding shares, or (iii) beneficial ownership of such entity. ++- ++- "You" (or "Your") shall mean an individual or Legal Entity ++- exercising permissions granted by this License. ++- ++- "Source" form shall mean the preferred form for making modifications, ++- including but not limited to software source code, documentation ++- source, and configuration files. ++- ++- "Object" form shall mean any form resulting from mechanical ++- transformation or translation of a Source form, including but ++- not limited to compiled object code, generated documentation, ++- and conversions to other media types. ++- ++- "Work" shall mean the work of authorship, whether in Source or ++- Object form, made available under the License, as indicated by a ++- copyright notice that is included in or attached to the work ++- (an example is provided in the Appendix below). ++- ++- "Derivative Works" shall mean any work, whether in Source or Object ++- form, that is based on (or derived from) the Work and for which the ++- editorial revisions, annotations, elaborations, or other modifications ++- represent, as a whole, an original work of authorship. For the purposes ++- of this License, Derivative Works shall not include works that remain ++- separable from, or merely link (or bind by name) to the interfaces of, ++- the Work and Derivative Works thereof. ++- ++- "Contribution" shall mean any work of authorship, including ++- the original version of the Work and any modifications or additions ++- to that Work or Derivative Works thereof, that is intentionally ++- submitted to Licensor for inclusion in the Work by the copyright owner ++- or by an individual or Legal Entity authorized to submit on behalf of ++- the copyright owner. For the purposes of this definition, "submitted" ++- means any form of electronic, verbal, or written communication sent ++- to the Licensor or its representatives, including but not limited to ++- communication on electronic mailing lists, source code control systems, ++- and issue tracking systems that are managed by, or on behalf of, the ++- Licensor for the purpose of discussing and improving the Work, but ++- excluding communication that is conspicuously marked or otherwise ++- designated in writing by the copyright owner as "Not a Contribution." ++- ++- "Contributor" shall mean Licensor and any individual or Legal Entity ++- on behalf of whom a Contribution has been received by Licensor and ++- subsequently incorporated within the Work. ++- ++-2. Grant of Copyright License. Subject to the terms and conditions of ++- this License, each Contributor hereby grants to You a perpetual, ++- worldwide, non-exclusive, no-charge, royalty-free, irrevocable ++- copyright license to reproduce, prepare Derivative Works of, ++- publicly display, publicly perform, sublicense, and distribute the ++- Work and such Derivative Works in Source or Object form. ++- ++-3. Grant of Patent License. Subject to the terms and conditions of ++- this License, each Contributor hereby grants to You a perpetual, ++- worldwide, non-exclusive, no-charge, royalty-free, irrevocable ++- (except as stated in this section) patent license to make, have made, ++- use, offer to sell, sell, import, and otherwise transfer the Work, ++- where such license applies only to those patent claims licensable ++- by such Contributor that are necessarily infringed by their ++- Contribution(s) alone or by combination of their Contribution(s) ++- with the Work to which such Contribution(s) was submitted. If You ++- institute patent litigation against any entity (including a ++- cross-claim or counterclaim in a lawsuit) alleging that the Work ++- or a Contribution incorporated within the Work constitutes direct ++- or contributory patent infringement, then any patent licenses ++- granted to You under this License for that Work shall terminate ++- as of the date such litigation is filed. ++- ++-4. Redistribution. You may reproduce and distribute copies of the ++- Work or Derivative Works thereof in any medium, with or without ++- modifications, and in Source or Object form, provided that You ++- meet the following conditions: ++- ++- (a) You must give any other recipients of the Work or ++- Derivative Works a copy of this License; and ++- ++- (b) You must cause any modified files to carry prominent notices ++- stating that You changed the files; and ++- ++- (c) You must retain, in the Source form of any Derivative Works ++- that You distribute, all copyright, patent, trademark, and ++- attribution notices from the Source form of the Work, ++- excluding those notices that do not pertain to any part of ++- the Derivative Works; and ++- ++- (d) If the Work includes a "NOTICE" text file as part of its ++- distribution, then any Derivative Works that You distribute must ++- include a readable copy of the attribution notices contained ++- within such NOTICE file, excluding those notices that do not ++- pertain to any part of the Derivative Works, in at least one ++- of the following places: within a NOTICE text file distributed ++- as part of the Derivative Works; within the Source form or ++- documentation, if provided along with the Derivative Works; or, ++- within a display generated by the Derivative Works, if and ++- wherever such third-party notices normally appear. The contents ++- of the NOTICE file are for informational purposes only and ++- do not modify the License. You may add Your own attribution ++- notices within Derivative Works that You distribute, alongside ++- or as an addendum to the NOTICE text from the Work, provided ++- that such additional attribution notices cannot be construed ++- as modifying the License. ++- ++- You may add Your own copyright statement to Your modifications and ++- may provide additional or different license terms and conditions ++- for use, reproduction, or distribution of Your modifications, or ++- for any such Derivative Works as a whole, provided Your use, ++- reproduction, and distribution of the Work otherwise complies with ++- the conditions stated in this License. ++- ++-5. Submission of Contributions. Unless You explicitly state otherwise, ++- any Contribution intentionally submitted for inclusion in the Work ++- by You to the Licensor shall be under the terms and conditions of ++- this License, without any additional terms or conditions. ++- Notwithstanding the above, nothing herein shall supersede or modify ++- the terms of any separate license agreement you may have executed ++- with Licensor regarding such Contributions. ++- ++-6. Trademarks. This License does not grant permission to use the trade ++- names, trademarks, service marks, or product names of the Licensor, ++- except as required for reasonable and customary use in describing the ++- origin of the Work and reproducing the content of the NOTICE file. ++- ++-7. Disclaimer of Warranty. Unless required by applicable law or ++- agreed to in writing, Licensor provides the Work (and each ++- Contributor provides its Contributions) on an "AS IS" BASIS, ++- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or ++- implied, including, without limitation, any warranties or conditions ++- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A ++- PARTICULAR PURPOSE. You are solely responsible for determining the ++- appropriateness of using or redistributing the Work and assume any ++- risks associated with Your exercise of permissions under this License. ++- ++-8. Limitation of Liability. In no event and under no legal theory, ++- whether in tort (including negligence), contract, or otherwise, ++- unless required by applicable law (such as deliberate and grossly ++- negligent acts) or agreed to in writing, shall any Contributor be ++- liable to You for damages, including any direct, indirect, special, ++- incidental, or consequential damages of any character arising as a ++- result of this License or out of the use or inability to use the ++- Work (including but not limited to damages for loss of goodwill, ++- work stoppage, computer failure or malfunction, or any and all ++- other commercial damages or losses), even if such Contributor ++- has been advised of the possibility of such damages. ++- ++-9. Accepting Warranty or Additional Liability. While redistributing ++- the Work or Derivative Works thereof, You may choose to offer, ++- and charge a fee for, acceptance of support, warranty, indemnity, ++- or other liability obligations and/or rights consistent with this ++- License. However, in accepting such obligations, You may act only ++- on Your own behalf and on Your sole responsibility, not on behalf ++- of any other Contributor, and only if You agree to indemnify, ++- defend, and hold each Contributor harmless for any liability ++- incurred by, or claims asserted against, such Contributor by reason ++- of your accepting any such warranty or additional liability. ++- ++-END OF TERMS AND CONDITIONS ++- ++-APPENDIX: How to apply the Apache License to your work. ++- ++- To apply the Apache License to your work, attach the following ++- boilerplate notice, with the fields enclosed by brackets "[]" ++- replaced with your own identifying information. (Don't include ++- the brackets!) The text should be enclosed in the appropriate ++- comment syntax for the file format. We also recommend that a ++- file or class name and description of purpose be included on the ++- same "printed page" as the copyright notice for easier ++- identification within third-party archives. ++- ++-Copyright [yyyy] [name of copyright owner] ++- ++-Licensed under the Apache License, Version 2.0 (the "License"); ++-you may not use this file except in compliance with the License. ++-You may obtain a copy of the License at ++- ++- http://www.apache.org/licenses/LICENSE-2.0 ++- ++-Unless required by applicable law or agreed to in writing, software ++-distributed under the License is distributed on an "AS IS" BASIS, ++-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++-See the License for the specific language governing permissions and ++-limitations under the License. ++--- a/third_party/rust/packed_simd/LICENSE-MIT +++++ /dev/null ++@@ -1,25 +0,0 @@ ++-Copyright (c) 2014 The Rust Project Developers ++- ++-Permission is hereby granted, free of charge, to any ++-person obtaining a copy of this software and associated ++-documentation files (the "Software"), to deal in the ++-Software without restriction, including without ++-limitation the rights to use, copy, modify, merge, ++-publish, distribute, sublicense, and/or sell copies of ++-the Software, and to permit persons to whom the Software ++-is furnished to do so, subject to the following ++-conditions: ++- ++-The above copyright notice and this permission notice ++-shall be included in all copies or substantial portions ++-of the Software. ++- ++-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ++-ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ++-TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A ++-PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT ++-SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ++-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR ++-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++-DEALINGS IN THE SOFTWARE. diff --git a/scripts/prep-librewolf-dpkg.conf b/scripts/prep-librewolf-dpkg.conf index 0b82198..97e35b3 100644 --- a/scripts/prep-librewolf-dpkg.conf +++ b/scripts/prep-librewolf-dpkg.conf @@ -4,11 +4,11 @@ # Available options for DISTRO: debian DISTRO=${DISTRO:-'debian'} # current version of Firefox package in target distro -distro_firefox_version=${distro_firefox_version:-'125.0.1-1'} +distro_firefox_version=${distro_firefox_version:-'126.0-1'} # current version of Firefox, as defined by name of the orig tarball. -firefox_version=${firefox_version:-'125.0.1'} +firefox_version=${firefox_version:-'126.0'} # input git tag of source repo -source_version=${source_version:-'125.0.1-1'} +source_version=${source_version:-'126.0-1'} settings_commit=${settings_commit:-'master'} CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)} output_dir=${CI_PROJECT_DIR}/out diff --git a/scripts/prep-librewolf-dpkg.sh b/scripts/prep-librewolf-dpkg.sh index 0a7b496..dba3b95 100755 --- a/scripts/prep-librewolf-dpkg.sh +++ b/scripts/prep-librewolf-dpkg.sh @@ -1,7 +1,7 @@ #!/bin/sh # File: prep-librewolf-dpkg.sh # Location: https://gitlab.com/bgstack15/librewolf-linux.git -# Latest supported version: librewolf-125.0.1-1 +# Latest supported version: librewolf-126.0-1 # Author: bgstack15 # SPDX-License-Identifier: CC-BY-SA-4.0 # Startdate: 2020-11-29 @@ -46,6 +46,7 @@ git_source_dir=${CI_PROJECT_DIR}/git # where LibreWolf git contents are cached debian_dir=${CI_PROJECT_DIR}/${firefox_version}/debian # where the firefox_debian.tar.xz file is extracted source_dir=${CI_PROJECT_DIR}/${firefox_version}/librewolf_${firefox_version} # where firefox.orig.tar.xz file is extracted with --strip-components=1 work_dir=${CI_PROJECT_DIR}/prepared/ +scripts_dir="${CI_PROJECT_DIR}/scripts" ##################################### # Download initial components @@ -200,6 +201,8 @@ else awk -F'/' '{print "librewolf/"$NF}' "${git_source_dir}"/source/assets/patches.txt | \ sed -r -e 's@$@ -p1@' -e '/vpn-ad/d' >> "${debian_dir}/patches/series" #echo "librewolf/webrender_ffi.patch -p1" >> "${debian_dir}/patches/series" + # added 126.0 ; just defuzzing this patch + test -n "1" && patch -p1 "${debian_dir}/patches/librewolf/encoding_rs.patch" < "${scripts_dir}/126.0_defuzz-encoding_rs.patch" # added 120.0.1; just defuzzing this patch test -n "1" && patch -p1 "${debian_dir}/patches/librewolf/rust-gentoo-musl.patch" <<'EOF' --- a/librewolf/rust-gentoo-musl.patch 2023-12-05 09:05:23.029244795 -0500 -- cgit