Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core_arch feature breaks into_bits #230

Open
TheIronBorn opened this issue Mar 16, 2019 · 4 comments
Open

core_arch feature breaks into_bits #230

TheIronBorn opened this issue Mar 16, 2019 · 4 comments
Labels
Bug Something isn't working

Comments

@TheIronBorn
Copy link
Contributor

TheIronBorn commented Mar 16, 2019

with features = ["into_bits", "core_arch"] and code like this:

use packed_simd::*;
use std::arch::x86_64::*;

pub fn foo(x: __m128d) -> f64x2 {
    f64x2::from_bits(x)
}

rust gives:

error[E0277]: the trait bound `packed_simd::Simd<[f64; 2]>: packed_simd::api::into_bits::FromBits<std::arch::x86_64::__m128d>` is not satisfied
 --> src\lib.rs:5:5
  |
5 |     f64x2::from_bits(x)
  |     ^^^^^^^^^^^^^^^^ the trait `packed_simd::api::into_bits::FromBits<std::arch::x86_64::__m128d>` is not implemented for `packed_simd::Simd<[f64; 2]>`
  |
  = help: the following implementations were found:
            <packed_simd::Simd<[f32; 16]> as packed_simd::api::into_bits::FromBits<packed_simd::Simd<[f64; 8]>>>
            <packed_simd::Simd<[f32; 16]> as packed_simd::api::into_bits::FromBits<packed_simd::Simd<[i128; 4]>>>
            <packed_simd::Simd<[f32; 16]> as packed_simd::api::into_bits::FromBits<packed_simd::Simd<[i16; 32]>>>
            <packed_simd::Simd<[f32; 16]> as packed_simd::api::into_bits::FromBits<packed_simd::Simd<[i32; 16]>>>
          and 772 others
  = note: required by `packed_simd::api::into_bits::FromBits::from_bits`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.

features = ["into_bits"] compiles fine.

@gnzlbg
Copy link
Contributor

gnzlbg commented Mar 16, 2019

Now that's weird. I'm going to ask the infra team for more CI time (cc @pietroalbini ) - we stopped testing these configurations because we are constantly hitting the 50 min limit but now that we are completing support for floating-point math we are hitting the 50 min limit again on tier 1 targets (macosx) so we need to find another solution.

@pietroalbini
Copy link
Member

The macOS slowdown is almost surely because you got moved out of the dedicated macs onto the public pool, which probably has noisy neighbors. I don't see that much of a problem to ask for a timeout increase, @rust-lang-nursery/infra?

@gnzlbg
Copy link
Contributor

gnzlbg commented Mar 28, 2019

@TheIronBorn so CI has been bumped to 90 minutes now, i think that should allow us to test for that combination.

@gnzlbg
Copy link
Contributor

gnzlbg commented Mar 28, 2019

I think the problem is that when you pick core_arch, the into_bits traits are only implemented from the types in core_arch::.. and not for the types in core::arch::*. I'd guess the fix here is for these traits to only be implemented for the core::arch::* types, but I don't know how straight forward that will be.

@Lokathor Lokathor added the Bug Something isn't working label Sep 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants