Skip to content

Commit 11b2b9e

Browse files
committed
Fix _mm_sm3rnds2_epi32
1 parent d8f77a2 commit 11b2b9e

3 files changed

Lines changed: 5 additions & 5 deletions

File tree

crates/intrinsic-test/missing_x86.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@ _mm_set1_pch
4545
_tpause
4646
_umwait
4747

48-
# IMM8 must be an even number in the range `0..=62`
49-
_mm_sm3rnds2_epi32
50-
5148
# SDE ERROR: Cannot execute XGETBV with ECX != 0
5249
_xgetbv
5350

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
use crate::common::constraint::Constraint;
22

3-
pub fn map_constraints(imm_type: &String, imm_width: u32) -> Option<Constraint> {
3+
pub fn map_constraints(fn_name: &str, imm_type: &String, imm_width: u32) -> Option<Constraint> {
44
if imm_width > 0 {
5+
if fn_name == "_mm_sm3rnds2_epi32" {
6+
return Some(Constraint::Set((0..64).step_by(2).collect()));
7+
}
58
let max: i64 = 2i64.pow(imm_width);
69
return Some(Constraint::Range(0..max));
710
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ fn xml_to_intrinsic(
9999
} else {
100100
param.imm_width
101101
};
102-
let constraint = map_constraints(&param.imm_type, effective_imm_width);
102+
let constraint = map_constraints(&name, &param.imm_type, effective_imm_width);
103103
let arg = Argument::<X86IntrinsicType>::new(
104104
i,
105105
param.var_name.clone(),

0 commit comments

Comments
 (0)