Skip to content

Commit c054cef

Browse files
feat: handled extraction for 64-bit vector elements
1 parent 9f56458 commit c054cef

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ int mm512_extract_intrinsic_test_epi16(__m512i m, int lane) {
5252
int mm512_extract_intrinsic_test_epi64(__m512i m, int lane) {
5353
return mm512_extract(m, 512, 64, lane)
5454
}
55+
56+
int mm64_extract_intrinsic_test_epi32(__m64 m, int lane) {
57+
int bit_shift_amount = lane * 32;
58+
return _m_to_int(m >> bit_shift_amount);
59+
}
5560
"#;
5661

5762
pub const X86_CONFIGURATIONS: &str = r#"

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ 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(16), Some(64)) => String::from("_mm_extract_pi16"),
143+
(Some(32), Some(64)) => String::from("mm64_extract_intrinsic_test_epi32"),
142144
_ => unreachable!(
143145
"invalid length for vector argument: {:?}, {:?}",
144146
self.bit_len, self.vec_len

0 commit comments

Comments
 (0)