Skip to content

Commit a119be1

Browse files
feat: add 8x8 case for get_lane_function for 64-bit vector
1 parent c054cef commit a119be1

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

crates/intrinsic-test/src/x86/config.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ int mm512_extract_intrinsic_test_epi64(__m512i m, int lane) {
5353
return mm512_extract(m, 512, 64, lane)
5454
}
5555
56+
int mm64_extract_intrinsic_test_epi8(__m64 m, int lane) {
57+
int real_lane_shift = lane / 2;
58+
int real_bit_shift = (lane % 2) * 8;
59+
int result = _mm_extract_pi16(m, lane / 2);
60+
return (result >> real_bit_shift);
61+
}
62+
5663
int mm64_extract_intrinsic_test_epi32(__m64 m, int lane) {
5764
int bit_shift_amount = lane * 32;
5865
return _m_to_int(m >> bit_shift_amount);

crates/intrinsic-test/src/x86/types.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ impl IntrinsicTypeDefinition for X86IntrinsicType {
139139
(Some(16), Some(512)) => String::from("_mm512_extract_intrinsic_test_epi16"),
140140
(Some(32), Some(512)) => String::from("_mm512_extract_intrinsic_test_epi32"),
141141
(Some(64), Some(512)) => String::from("_mm512_extract_intrinsic_test_epi64"),
142+
(Some(8), Some(64)) => String::from("mm64_extract_intrinsic_test_epi8"),
142143
(Some(16), Some(64)) => String::from("_mm_extract_pi16"),
143144
(Some(32), Some(64)) => String::from("mm64_extract_intrinsic_test_epi32"),
144145
_ => unreachable!(

0 commit comments

Comments
 (0)