Skip to content

Commit 05823fc

Browse files
generated tests
1 parent e16c47a commit 05823fc

File tree

2 files changed

+241
-0
lines changed

2 files changed

+241
-0
lines changed

testable-simd-models/src/core_arch/x86/tests/avx.rs

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,93 @@ mk!(_mm256_set_epi64x(a: i64, b: i64, c: i64, d: i64));
130130
mk!(_mm256_set1_epi8(a: i8));
131131
mk!(_mm256_set1_epi16(a: i16));
132132
mk!(_mm256_set1_epi32(a: i32));
133+
134+
mk!(_mm256_and_pd(a: __m256d, b: __m256d));
135+
mk!(_mm256_and_ps(a: __m256, b: __m256));
136+
mk!(_mm256_or_pd(a: __m256d, b: __m256d));
137+
mk!(_mm256_or_ps(a: __m256, b: __m256));
138+
mk!(_mm256_shuffle_pd<const MASK: i32>(a: __m256d, b: __m256d));
139+
mk!(_mm256_shuffle_ps<const MASK: i32>(a: __m256, b: __m256));
140+
mk!(_mm256_andnot_pd(a: __m256d, b: __m256d));
141+
mk!(_mm256_andnot_ps(a: __m256, b: __m256));
142+
mk!(_mm256_blend_pd<const IMM4: i32>(a: __m256d, b: __m256d));
143+
mk!(_mm256_blend_ps<const IMM8: i32>(a: __m256, b: __m256));
144+
mk!(_mm256_blendv_pd(a: __m256d, b: __m256d, c: __m256d));
145+
mk!(_mm256_blendv_ps(a: __m256, b: __m256, c: __m256));
146+
mk!(_mm256_xor_pd(a: __m256d, b: __m256d));
147+
mk!(_mm256_xor_ps(a: __m256, b: __m256));
148+
mk!(_mm256_cvtepi32_pd(a: __m128i));
149+
mk!(_mm256_cvtepi32_ps(a: __m256i));
150+
mk!(_mm256_cvtpd_ps(a: __m256d));
151+
mk!(_mm256_cvtps_pd(a: __m128));
152+
mk!(_mm256_cvtsd_f64(a: __m256d));
153+
mk!(_mm256_extractf128_ps<const IMM1: i32>(a: __m256));
154+
mk!(_mm256_extractf128_pd<const IMM1: i32>(a: __m256d));
155+
mk!(_mm256_extractf128_si256<const IMM1: i32>(a: __m256i));
156+
mk!(_mm256_extract_epi32<const INDEX: i32>(a: __m256i));
157+
mk!(_mm256_cvtsi256_si32(a: __m256i));
158+
mk!(_mm256_permute_ps<const IMM8: i32>(a: __m256));
159+
mk!(_mm_permute_ps<const IMM8: i32>(a: __m128));
160+
mk!(_mm256_permute_pd<const IMM4: i32>(a: __m256d));
161+
mk!(_mm_permute_pd<const IMM2: i32>(a: __m128d));
162+
mk!(_mm256_permute2f128_si256<const IMM8: i32>(a: __m256i, b: __m256i));
163+
mk!(_mm256_broadcast_ss(f: &f32));
164+
mk!(_mm256_broadcast_ps(a: &__m128));
165+
mk!(_mm256_broadcast_pd(a: &__m128d));
166+
mk!(_mm256_insertf128_ps<const IMM1: i32>(a: __m256, b: __m128));
167+
mk!(_mm256_insertf128_pd<const IMM1: i32>(a: __m256d, b: __m128d));
168+
mk!(_mm256_insertf128_si256<const IMM1: i32>(a: __m256i, b: __m128i));
169+
mk!(_mm256_insert_epi8<const INDEX: i32>(a: __m256i, i: i8));
170+
mk!(_mm256_insert_epi16<const INDEX: i32>(a: __m256i, i: i16));
171+
mk!(_mm256_insert_epi32<const INDEX: i32>(a: __m256i, i: i32));
172+
mk!(_mm256_movehdup_ps(a: __m256));
173+
mk!(_mm256_moveldup_ps(a: __m256));
174+
mk!(_mm256_movedup_pd(a: __m256d));
175+
mk!(_mm256_unpackhi_pd(a: __m256d, b: __m256d));
176+
mk!(_mm256_unpackhi_ps(a: __m256, b: __m256));
177+
mk!(_mm256_unpacklo_pd(a: __m256d, b: __m256d));
178+
mk!(_mm256_unpacklo_ps(a: __m256, b: __m256));
179+
mk!(_mm256_testz_si256(a: __m256i, b: __m256i));
180+
mk!(_mm256_testc_si256(a: __m256i, b: __m256i));
181+
mk!(_mm256_movemask_pd(a: __m256d));
182+
mk!(_mm256_movemask_ps(a: __m256));
183+
mk!(_mm256_setzero_pd());
184+
mk!(_mm256_setzero_ps());
185+
mk!(_mm256_setzero_si256());
186+
mk!(_mm256_set_pd(a: f64, b: f64, c: f64, d: f64));
187+
mk!(_mm256_set_ps(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32, h: f32));
188+
mk!(_mm256_set_epi64x(a: i64, b: i64, c: i64, d: i64));
189+
mk!(_mm256_setr_pd(a: f64, b: f64, c: f64, d: f64));
190+
mk!(_mm256_setr_ps(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32, h: f32));
191+
mk!(_mm256_setr_epi64x(a: i64, b: i64, c: i64, d: i64));
192+
mk!(_mm256_set1_pd(a: f64));
193+
mk!(_mm256_set1_ps(a: f32));
194+
mk!(_mm256_set1_epi8(a: i8));
195+
mk!(_mm256_set1_epi16(a: i16));
196+
mk!(_mm256_set1_epi32(a: i32));
197+
mk!(_mm256_set1_epi64x(a: i64));
198+
mk!(_mm256_castpd_ps(a: __m256d));
199+
mk!(_mm256_castps_pd(a: __m256));
200+
mk!(_mm256_castps_si256(a: __m256));
201+
mk!(_mm256_castsi256_ps(a: __m256i));
202+
mk!(_mm256_castpd_si256(a: __m256d));
203+
mk!(_mm256_castsi256_pd(a: __m256i));
204+
mk!(_mm256_castps256_ps128(a: __m256));
205+
mk!(_mm256_castpd256_pd128(a: __m256d));
206+
mk!(_mm256_castsi256_si128(a: __m256i));
207+
mk!(_mm256_castps128_ps256(a: __m128));
208+
mk!(_mm256_castpd128_pd256(a: __m128d));
209+
mk!(_mm256_castsi128_si256(a: __m128i));
210+
mk!(_mm256_zextps128_ps256(a: __m128));
211+
mk!(_mm256_zextsi128_si256(a: __m128i));
212+
mk!(_mm256_zextpd128_pd256(a: __m128d));
213+
mk!(_mm256_undefined_ps());
214+
mk!(_mm256_undefined_pd());
215+
mk!(_mm256_undefined_si256());
216+
mk!(_mm256_set_m128(hi: __m128, lo: __m128));
217+
mk!(_mm256_set_m128d(hi: __m128d, lo: __m128d));
218+
mk!(_mm256_set_m128i(hi: __m128i, lo: __m128i));
219+
mk!(_mm256_setr_m128(lo: __m128, hi: __m128));
220+
mk!(_mm256_setr_m128d(lo: __m128d, hi: __m128d));
221+
mk!(_mm256_setr_m128i(lo: __m128i, hi: __m128i));
222+
mk!(_mm256_cvtss_f32(a: __m256));

testable-simd-models/src/core_arch/x86/tests/avx2.rs

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,3 +529,154 @@ fn _mm256_extract_epi16() {
529529
);
530530
}
531531
}
532+
533+
mk!(_mm256_abs_epi32(a: __m256i));
534+
mk!(_mm256_abs_epi16(a: __m256i));
535+
mk!(_mm256_abs_epi8(a: __m256i));
536+
mk!(_mm256_add_epi64(a: __m256i, b: __m256i));
537+
mk!(_mm256_add_epi32(a: __m256i, b: __m256i));
538+
mk!(_mm256_add_epi16(a: __m256i, b: __m256i));
539+
mk!(_mm256_add_epi8(a: __m256i, b: __m256i));
540+
mk!(_mm256_adds_epi8(a: __m256i, b: __m256i));
541+
mk!(_mm256_adds_epi16(a: __m256i, b: __m256i));
542+
mk!(_mm256_adds_epu8(a: __m256i, b: __m256i));
543+
mk!(_mm256_adds_epu16(a: __m256i, b: __m256i));
544+
mk!(_mm256_alignr_epi8<const IMM8: i32>(a: __m256i, b: __m256i));
545+
mk!(_mm256_and_si256(a: __m256i, b: __m256i));
546+
mk!(_mm256_andnot_si256(a: __m256i, b: __m256i));
547+
mk!(_mm256_avg_epu16(a: __m256i, b: __m256i));
548+
mk!(_mm256_avg_epu8(a: __m256i, b: __m256i));
549+
mk!(_mm_blend_epi32<const IMM4: i32>(a: __m128i, b: __m128i));
550+
mk!(_mm256_blend_epi32<const IMM8: i32>(a: __m256i, b: __m256i));
551+
mk!(_mm256_blend_epi16<const IMM8: i32>(a: __m256i, b: __m256i));
552+
mk!(_mm256_blendv_epi8(a: __m256i, b: __m256i, mask: __m256i));
553+
mk!(_mm_broadcastb_epi8(a: __m128i));
554+
mk!(_mm256_broadcastb_epi8(a: __m128i));
555+
mk!(_mm_broadcastd_epi32(a: __m128i));
556+
mk!(_mm256_broadcastd_epi32(a: __m128i));
557+
mk!(_mm_broadcastq_epi64(a: __m128i));
558+
mk!(_mm256_broadcastq_epi64(a: __m128i));
559+
mk!(_mm_broadcastsd_pd(a: __m128d));
560+
mk!(_mm256_broadcastsd_pd(a: __m128d));
561+
mk!(_mm_broadcastsi128_si256(a: __m128i));
562+
mk!(_mm256_broadcastsi128_si256(a: __m128i));
563+
mk!(_mm_broadcastss_ps(a: __m128));
564+
mk!(_mm256_broadcastss_ps(a: __m128));
565+
mk!(_mm_broadcastw_epi16(a: __m128i));
566+
mk!(_mm256_broadcastw_epi16(a: __m128i));
567+
mk!(_mm256_cmpeq_epi64(a: __m256i, b: __m256i));
568+
mk!(_mm256_cmpeq_epi32(a: __m256i, b: __m256i));
569+
mk!(_mm256_cmpeq_epi16(a: __m256i, b: __m256i));
570+
mk!(_mm256_cmpeq_epi8(a: __m256i, b: __m256i));
571+
mk!(_mm256_cmpgt_epi64(a: __m256i, b: __m256i));
572+
mk!(_mm256_cmpgt_epi32(a: __m256i, b: __m256i));
573+
mk!(_mm256_cmpgt_epi16(a: __m256i, b: __m256i));
574+
mk!(_mm256_cmpgt_epi8(a: __m256i, b: __m256i));
575+
mk!(_mm256_cvtepi16_epi32(a: __m128i));
576+
mk!(_mm256_cvtepi16_epi64(a: __m128i));
577+
mk!(_mm256_cvtepi32_epi64(a: __m128i));
578+
mk!(_mm256_cvtepi8_epi16(a: __m128i));
579+
mk!(_mm256_cvtepi8_epi32(a: __m128i));
580+
mk!(_mm256_cvtepi8_epi64(a: __m128i));
581+
mk!(_mm256_cvtepu16_epi32(a: __m128i));
582+
mk!(_mm256_cvtepu16_epi64(a: __m128i));
583+
mk!(_mm256_cvtepu32_epi64(a: __m128i));
584+
mk!(_mm256_cvtepu8_epi16(a: __m128i));
585+
mk!(_mm256_cvtepu8_epi32(a: __m128i));
586+
mk!(_mm256_cvtepu8_epi64(a: __m128i));
587+
mk!(_mm256_extracti128_si256<const IMM1: i32>(a: __m256i));
588+
mk!(_mm256_hadd_epi16(a: __m256i, b: __m256i));
589+
mk!(_mm256_hadd_epi32(a: __m256i, b: __m256i));
590+
mk!(_mm256_hadds_epi16(a: __m256i, b: __m256i));
591+
mk!(_mm256_hsub_epi16(a: __m256i, b: __m256i));
592+
mk!(_mm256_hsub_epi32(a: __m256i, b: __m256i));
593+
mk!(_mm256_hsubs_epi16(a: __m256i, b: __m256i));
594+
mk!(_mm256_inserti128_si256<const IMM1: i32>(a: __m256i, b: __m128i));
595+
mk!(_mm256_madd_epi16(a: __m256i, b: __m256i));
596+
mk!(_mm256_maddubs_epi16(a: __m256i, b: __m256i));
597+
mk!(_mm256_max_epi16(a: __m256i, b: __m256i));
598+
mk!(_mm256_max_epi32(a: __m256i, b: __m256i));
599+
mk!(_mm256_max_epi8(a: __m256i, b: __m256i));
600+
mk!(_mm256_max_epu16(a: __m256i, b: __m256i));
601+
mk!(_mm256_max_epu32(a: __m256i, b: __m256i));
602+
mk!(_mm256_max_epu8(a: __m256i, b: __m256i));
603+
mk!(_mm256_min_epi16(a: __m256i, b: __m256i));
604+
mk!(_mm256_min_epi32(a: __m256i, b: __m256i));
605+
mk!(_mm256_min_epi8(a: __m256i, b: __m256i));
606+
mk!(_mm256_min_epu16(a: __m256i, b: __m256i));
607+
mk!(_mm256_min_epu32(a: __m256i, b: __m256i));
608+
mk!(_mm256_min_epu8(a: __m256i, b: __m256i));
609+
mk!(_mm256_movemask_epi8(a: __m256i));
610+
mk!(_mm256_mpsadbw_epu8<const IMM8: i32>(a: __m256i, b: __m256i));
611+
mk!(_mm256_mul_epi32(a: __m256i, b: __m256i));
612+
mk!(_mm256_mul_epu32(a: __m256i, b: __m256i));
613+
mk!(_mm256_mulhi_epi16(a: __m256i, b: __m256i));
614+
mk!(_mm256_mulhi_epu16(a: __m256i, b: __m256i));
615+
mk!(_mm256_mullo_epi16(a: __m256i, b: __m256i));
616+
mk!(_mm256_mullo_epi32(a: __m256i, b: __m256i));
617+
mk!(_mm256_mulhrs_epi16(a: __m256i, b: __m256i));
618+
mk!(_mm256_or_si256(a: __m256i, b: __m256i));
619+
mk!(_mm256_packs_epi16(a: __m256i, b: __m256i));
620+
mk!(_mm256_packs_epi32(a: __m256i, b: __m256i));
621+
mk!(_mm256_packus_epi16(a: __m256i, b: __m256i));
622+
mk!(_mm256_packus_epi32(a: __m256i, b: __m256i));
623+
mk!(_mm256_permutevar8x32_epi32(a: __m256i, b: __m256i));
624+
mk!(_mm256_permute4x64_epi64<const IMM8: i32>(a: __m256i));
625+
mk!(_mm256_permute2x128_si256<const IMM8: i32>(a: __m256i, b: __m256i));
626+
mk!(_mm256_sad_epu8(a: __m256i, b: __m256i));
627+
mk!(_mm256_shuffle_epi8(a: __m256i, b: __m256i));
628+
mk!(_mm256_shuffle_epi32<const MASK: i32>(a: __m256i));
629+
mk!(_mm256_shufflehi_epi16<const IMM8: i32>(a: __m256i));
630+
mk!(_mm256_shufflelo_epi16<const IMM8: i32>(a: __m256i));
631+
mk!(_mm256_sign_epi16(a: __m256i, b: __m256i));
632+
mk!(_mm256_sign_epi32(a: __m256i, b: __m256i));
633+
mk!(_mm256_sign_epi8(a: __m256i, b: __m256i));
634+
mk!(_mm256_sll_epi16(a: __m256i, count: __m128i));
635+
mk!(_mm256_sll_epi32(a: __m256i, count: __m128i));
636+
mk!(_mm256_sll_epi64(a: __m256i, count: __m128i));
637+
mk!(_mm256_slli_epi16<const IMM8: i32>(a: __m256i));
638+
mk!(_mm256_slli_epi32<const IMM8: i32>(a: __m256i));
639+
mk!(_mm256_slli_epi64<const IMM8: i32>(a: __m256i));
640+
mk!(_mm256_slli_si256<const IMM8: i32>(a: __m256i));
641+
mk!(_mm256_bslli_epi128<const IMM8: i32>(a: __m256i));
642+
mk!(_mm_sllv_epi32(a: __m128i, count: __m128i));
643+
mk!(_mm256_sllv_epi32(a: __m256i, count: __m256i));
644+
mk!(_mm_sllv_epi64(a: __m128i, count: __m128i));
645+
mk!(_mm256_sllv_epi64(a: __m256i, count: __m256i));
646+
mk!(_mm256_sra_epi16(a: __m256i, count: __m128i));
647+
mk!(_mm256_sra_epi32(a: __m256i, count: __m128i));
648+
mk!(_mm256_srai_epi16<const IMM8: i32>(a: __m256i));
649+
mk!(_mm256_srai_epi32<const IMM8: i32>(a: __m256i));
650+
mk!(_mm_srav_epi32(a: __m128i, count: __m128i));
651+
mk!(_mm256_srav_epi32(a: __m256i, count: __m256i));
652+
mk!(_mm256_srli_si256<const IMM8: i32>(a: __m256i));
653+
mk!(_mm256_bsrli_epi128<const IMM8: i32>(a: __m256i));
654+
mk!(_mm256_srl_epi16(a: __m256i, count: __m128i));
655+
mk!(_mm256_srl_epi32(a: __m256i, count: __m128i));
656+
mk!(_mm256_srl_epi64(a: __m256i, count: __m128i));
657+
mk!(_mm256_srli_epi16<const IMM8: i32>(a: __m256i));
658+
mk!(_mm256_srli_epi32<const IMM8: i32>(a: __m256i));
659+
mk!(_mm256_srli_epi64<const IMM8: i32>(a: __m256i));
660+
mk!(_mm_srlv_epi32(a: __m128i, count: __m128i));
661+
mk!(_mm256_srlv_epi32(a: __m256i, count: __m256i));
662+
mk!(_mm_srlv_epi64(a: __m128i, count: __m128i));
663+
mk!(_mm256_srlv_epi64(a: __m256i, count: __m256i));
664+
mk!(_mm256_sub_epi16(a: __m256i, b: __m256i));
665+
mk!(_mm256_sub_epi32(a: __m256i, b: __m256i));
666+
mk!(_mm256_sub_epi64(a: __m256i, b: __m256i));
667+
mk!(_mm256_sub_epi8(a: __m256i, b: __m256i));
668+
mk!(_mm256_subs_epi16(a: __m256i, b: __m256i));
669+
mk!(_mm256_subs_epi8(a: __m256i, b: __m256i));
670+
mk!(_mm256_subs_epu16(a: __m256i, b: __m256i));
671+
mk!(_mm256_subs_epu8(a: __m256i, b: __m256i));
672+
mk!(_mm256_unpackhi_epi8(a: __m256i, b: __m256i));
673+
mk!(_mm256_unpacklo_epi8(a: __m256i, b: __m256i));
674+
mk!(_mm256_unpackhi_epi16(a: __m256i, b: __m256i));
675+
mk!(_mm256_unpacklo_epi16(a: __m256i, b: __m256i));
676+
mk!(_mm256_unpackhi_epi32(a: __m256i, b: __m256i));
677+
mk!(_mm256_unpacklo_epi32(a: __m256i, b: __m256i));
678+
mk!(_mm256_unpackhi_epi64(a: __m256i, b: __m256i));
679+
mk!(_mm256_unpacklo_epi64(a: __m256i, b: __m256i));
680+
mk!(_mm256_xor_si256(a: __m256i, b: __m256i));
681+
mk!(_mm256_extract_epi8<const INDEX: i32>(a: __m256i));
682+
mk!(_mm256_extract_epi16<const INDEX: i32>(a: __m256i));

0 commit comments

Comments
 (0)