1mod bvec2;
2mod bvec3;
3mod bvec4;
4
5#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
6mod coresimd;
7
8#[cfg(all(
9 target_feature = "sse2",
10 not(any(feature = "core-simd", feature = "scalar-math"))
11))]
12mod sse2;
13
14#[cfg(all(
15 target_feature = "simd128",
16 not(any(feature = "core-simd", feature = "scalar-math"))
17))]
18mod wasm32;
19
20#[cfg(any(
21 not(any(
22 feature = "core-simd",
23 target_feature = "sse2",
24 target_feature = "simd128"
25 )),
26 feature = "scalar-math"
27))]
28mod scalar;
29
30pub use bvec2::BVec2;
31pub use bvec3::BVec3;
32pub use bvec4::BVec4;
33
34#[cfg(all(
35 target_feature = "sse2",
36 not(any(feature = "core-simd", feature = "scalar-math"))
37))]
38pub use sse2::bvec3a::BVec3A;
39#[cfg(all(
40 target_feature = "sse2",
41 not(any(feature = "core-simd", feature = "scalar-math"))
42))]
43pub use sse2::bvec4a::BVec4A;
44
45#[cfg(all(
46 target_feature = "simd128",
47 not(any(feature = "core-simd", feature = "scalar-math"))
48))]
49pub use wasm32::bvec3a::BVec3A;
50#[cfg(all(
51 target_feature = "simd128",
52 not(any(feature = "core-simd", feature = "scalar-math"))
53))]
54pub use wasm32::bvec4a::BVec4A;
55
56#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
57pub use coresimd::bvec3a::BVec3A;
58#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
59pub use coresimd::bvec4a::BVec4A;
60
61#[cfg(any(
62 not(any(
63 feature = "core-simd",
64 target_feature = "sse2",
65 target_feature = "simd128"
66 )),
67 feature = "scalar-math"
68))]
69pub use scalar::bvec3a::BVec3A;
70
71#[cfg(not(any(
72 feature = "scalar-math",
73 feature = "core-simd",
74 target_feature = "sse2",
75 target_feature = "simd128"
76),))]
77pub use scalar::bvec4a::BVec4A;
78
79mod const_test_bvec2 {
80 const_assert_eq!(1, core::mem::align_of::<super::BVec2>());
81 const_assert_eq!(2, core::mem::size_of::<super::BVec2>());
82}
83
84mod const_test_bvec3 {
85 const_assert_eq!(1, core::mem::align_of::<super::BVec3>());
86 const_assert_eq!(3, core::mem::size_of::<super::BVec3>());
87}
88
89mod const_test_bvec4 {
90 const_assert_eq!(1, core::mem::align_of::<super::BVec4>());
91 const_assert_eq!(4, core::mem::size_of::<super::BVec4>());
92}
93
94#[cfg(not(feature = "scalar-math"))]
95mod const_test_bvec3a {
96 const_assert_eq!(16, core::mem::align_of::<super::BVec3A>());
97 const_assert_eq!(16, core::mem::size_of::<super::BVec3A>());
98}
99
100#[cfg(not(feature = "scalar-math"))]
101mod const_test_bvec4a {
102 const_assert_eq!(16, core::mem::align_of::<super::BVec4A>());
103 const_assert_eq!(16, core::mem::size_of::<super::BVec4A>());
104}