@@ -79,6 +79,110 @@ fn benchmark_bitvector_simd4_u16x8(c: &mut Criterion) {
7979 } ) ;
8080}
8181
82+ fn benchmark_bitvector_bitvec_simd ( c : & mut Criterion ) {
83+ let b1 = bitvec_simd:: BitVec :: ones ( 100_000 ) ;
84+ let b2 = bitvec_simd:: BitVec :: zeros ( 100_000 ) ;
85+ c. bench_function ( "bitvec_simd 0.15.0" , |b| {
86+ b. iter ( || {
87+ black_box ( b1. and_cloned ( & b2) ) ;
88+ } )
89+ } ) ;
90+ }
91+
92+ fn benchmark_bitvector_bitvec_simd2 ( c : & mut Criterion ) {
93+ c. bench_function ( "bitvec_simd 0.15.0 with creation" , |b| {
94+ b. iter ( || {
95+ let b1 = bitvec_simd:: BitVec :: ones ( 100_000 ) ;
96+ let b2 = bitvec_simd:: BitVec :: zeros ( 100_000 ) ;
97+ black_box ( b1. and ( b2) ) ;
98+ } )
99+ } ) ;
100+ }
101+
102+ fn benchmark_bitvector_bitvec_simd3 ( c : & mut Criterion ) {
103+ c. bench_function ( "bitvec_simd 0.15.0 resize false" , |b| {
104+ b. iter ( || {
105+ let mut b1 = bitvec_simd:: BitVec :: ones ( 100_000 ) ;
106+ black_box ( b1. resize ( 200_000 , false ) ) ;
107+ } )
108+ } ) ;
109+ }
110+
111+ fn benchmark_bitvector_bitvec_simd4 ( c : & mut Criterion ) {
112+ c. bench_function ( "bitvec_simd 0.15.0 resize true" , |b| {
113+ b. iter ( || {
114+ let mut b1 = bitvec_simd:: BitVec :: ones ( 100_000 ) ;
115+ black_box ( b1. resize ( 200_000 , true ) ) ;
116+ } )
117+ } ) ;
118+ }
119+
120+ fn benchmark_bitvector_bitvec_simd_u16x8 ( c : & mut Criterion ) {
121+ use wide:: * ;
122+
123+ let b1 = bitvec_simd:: BitVecSimd :: < [ u16x8 ; 4 ] , 8 > :: ones ( 100_000 ) ;
124+ let b2 = bitvec_simd:: BitVecSimd :: < [ u16x8 ; 4 ] , 8 > :: zeros ( 100_000 ) ;
125+ c. bench_function ( "bitvec_simd 0.15.0 u16x8" , |b| {
126+ b. iter ( || {
127+ black_box ( b1. and_cloned ( & b2) ) ;
128+ } )
129+ } ) ;
130+ }
131+
132+ fn benchmark_bitvector_bitvec_simd2_u16x8 ( c : & mut Criterion ) {
133+ use wide:: * ;
134+
135+ c. bench_function ( "bitvec_simd 0.15.0 u16x8 with creation" , |b| {
136+ b. iter ( || {
137+ let b1 = bitvec_simd:: BitVecSimd :: < [ u16x8 ; 4 ] , 8 > :: ones ( 100_000 ) ;
138+ let b2 = bitvec_simd:: BitVecSimd :: < [ u16x8 ; 4 ] , 8 > :: zeros ( 100_000 ) ;
139+ black_box ( b1. and ( b2) ) ;
140+ } )
141+ } ) ;
142+ }
143+
144+ fn benchmark_bitvector_bitvec_simd3_u16x8 ( c : & mut Criterion ) {
145+ use wide:: * ;
146+
147+ c. bench_function ( "bitvec_simd 0.15.0 u16x8 resize false" , |b| {
148+ b. iter ( || {
149+ let mut b1 = bitvec_simd:: BitVecSimd :: < [ u16x8 ; 4 ] , 8 > :: ones ( 100_000 ) ;
150+ black_box ( b1. resize ( 200_000 , false ) ) ;
151+ } )
152+ } ) ;
153+ }
154+
155+ fn benchmark_bitvector_bitvec_simd4_u16x8 ( c : & mut Criterion ) {
156+ use wide:: * ;
157+
158+ c. bench_function ( "bitvec_simd 0.15.0 u16x8 resize true" , |b| {
159+ b. iter ( || {
160+ let mut b1 = bitvec_simd:: BitVecSimd :: < [ u16x8 ; 4 ] , 8 > :: ones ( 100_000 ) ;
161+ black_box ( b1. resize ( 200_000 , true ) ) ;
162+ } )
163+ } ) ;
164+ }
165+
166+ fn benchmark_bitvector_bitvector_simd ( c : & mut Criterion ) {
167+ let b1 = bitvector_simd:: BitVector :: ones ( 100_000 ) ;
168+ let b2 = bitvector_simd:: BitVector :: zeros ( 100_000 ) ;
169+ c. bench_function ( "bitvector_simd 0.2.2" , |b| {
170+ b. iter ( || {
171+ black_box ( b1. and_cloned ( & b2) ) ;
172+ } )
173+ } ) ;
174+ }
175+
176+ fn benchmark_bitvector_bitvector_simd2 ( c : & mut Criterion ) {
177+ c. bench_function ( "bitvector_simd 0.2.2 with creation" , |b| {
178+ b. iter ( || {
179+ let b1 = bitvector_simd:: BitVector :: ones ( 100_000 ) ;
180+ let b2 = bitvector_simd:: BitVector :: zeros ( 100_000 ) ;
181+ black_box ( b1. and ( b2) ) ;
182+ } )
183+ } ) ;
184+ }
185+
82186fn benchmark_bitvector_bitvec ( c : & mut Criterion ) {
83187 let b1 = bit_vec:: BitVec :: from_elem ( 100_000 , true ) ;
84188 let b2 = bit_vec:: BitVec :: from_elem ( 100_000 , false ) ;
@@ -141,26 +245,36 @@ criterion_group!(
141245 normal_benches,
142246 benchmark_bitvector_simd,
143247 benchmark_bitvector_simd_u16x8,
248+ benchmark_bitvector_bitvec_simd,
249+ benchmark_bitvector_bitvec_simd_u16x8,
250+ benchmark_bitvector_bitvector_simd,
144251 benchmark_bitvector_bitvec,
145252 benchmark_bitvector_bitvec_n
146253) ;
147254criterion_group ! (
148255 with_creation_benches,
149256 benchmark_bitvector_simd2,
150257 benchmark_bitvector_simd2_u16x8,
258+ benchmark_bitvector_bitvec_simd2,
259+ benchmark_bitvector_bitvec_simd2_u16x8,
260+ benchmark_bitvector_bitvector_simd2,
151261 benchmark_bitvector_bitvec2,
152262 benchmark_bitvector_bitvec_n2
153263) ;
154264criterion_group ! (
155265 resize_false_benches,
156266 benchmark_bitvector_simd3,
157267 benchmark_bitvector_simd3_u16x8,
268+ benchmark_bitvector_bitvec_simd3,
269+ benchmark_bitvector_bitvec_simd3_u16x8,
158270 benchmark_bitvector_bitvec_n3
159271) ;
160272criterion_group ! (
161273 resize_true_benches,
162274 benchmark_bitvector_simd4,
163275 benchmark_bitvector_simd4_u16x8,
276+ benchmark_bitvector_bitvec_simd4,
277+ benchmark_bitvector_bitvec_simd4_u16x8,
164278 benchmark_bitvector_bitvec_n4
165279) ;
166280criterion_main ! (
0 commit comments