Skip to content

Commit ddc49a0

Browse files
committed
Fix rounding modes
1 parent 9fe9612 commit ddc49a0

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

crates/core_arch/src/x86/f16c.rs

+10-12
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,15 @@ pub unsafe fn _mm256_cvtph_ps(a: __m128i) -> __m256 {
4343

4444
macro_rules! dispatch_rounding {
4545
($rounding:ident, $call:ident) => {{
46-
const NEAREST: i32 = _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC;
47-
const DOWN: i32 = _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC;
48-
const UP: i32 = _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC;
49-
const TRUNCATE: i32 = _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC;
50-
const MXCSR: i32 = _MM_FROUND_CUR_DIRECTION;
5146
match $rounding {
52-
NEAREST => call!(NEAREST),
53-
DOWN => call!(DOWN),
54-
UP => call!(UP),
55-
TRUNCATE => call!(TRUNCATE),
56-
MXCSR => call!(MXCSR),
47+
0 => call!(0),
48+
1 => call!(1),
49+
2 => call!(2),
50+
3 => call!(3),
51+
4 => call!(4),
52+
5 => call!(5),
53+
6 => call!(6),
54+
7 => call!(7),
5755
_ => unreachable_unchecked(),
5856
}
5957
}};
@@ -77,7 +75,7 @@ macro_rules! dispatch_rounding {
7775
pub unsafe fn _mm_cvtps_ph(a: __m128, imm_rounding: i32) -> __m128i {
7876
let a = transmute(a);
7977
macro_rules! call {
80-
($rounding:ident) => {
78+
($rounding:expr) => {
8179
llvm_vcvtps2ph_128(a, $rounding)
8280
};
8381
}
@@ -101,7 +99,7 @@ pub unsafe fn _mm_cvtps_ph(a: __m128, imm_rounding: i32) -> __m128i {
10199
pub unsafe fn _mm256_cvtps_ph(a: __m256, imm_rounding: i32) -> __m128i {
102100
let a = transmute(a);
103101
macro_rules! call {
104-
($rounding:ident) => {
102+
($rounding:expr) => {
105103
llvm_vcvtps2ph_256(a, $rounding)
106104
};
107105
}

0 commit comments

Comments
 (0)