Skip to content

Commit 401a003

Browse files
committed
Remove uses of deprecated llvm.x86.addcarryx.u{32,64} intrinsics
- Correct mistake in x86_64/adx.rs where it was not testing `_addcarryx` at all
1 parent 999b963 commit 401a003

File tree

2 files changed

+8
-12
lines changed

2 files changed

+8
-12
lines changed

crates/core_arch/src/x86/adx.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ use stdarch_test::assert_instr;
55
unsafe extern "unadjusted" {
66
#[link_name = "llvm.x86.addcarry.32"]
77
fn llvm_addcarry_u32(a: u8, b: u32, c: u32) -> (u8, u32);
8-
#[link_name = "llvm.x86.addcarryx.u32"]
9-
fn llvm_addcarryx_u32(a: u8, b: u32, c: u32, d: *mut u32) -> u8;
108
#[link_name = "llvm.x86.subborrow.32"]
119
fn llvm_subborrow_u32(a: u8, b: u32, c: u32) -> (u8, u32);
1210
}
@@ -35,7 +33,7 @@ pub unsafe fn _addcarry_u32(c_in: u8, a: u32, b: u32, out: &mut u32) -> u8 {
3533
#[cfg_attr(test, assert_instr(adc))]
3634
#[stable(feature = "simd_x86_adx", since = "1.33.0")]
3735
pub unsafe fn _addcarryx_u32(c_in: u8, a: u32, b: u32, out: &mut u32) -> u8 {
38-
llvm_addcarryx_u32(c_in, a, b, out as *mut _)
36+
_addcarry_u32(c_in, a, b, out)
3937
}
4038

4139
/// Adds unsigned 32-bit integers `a` and `b` with unsigned 8-bit carry-in `c_in`

crates/core_arch/src/x86_64/adx.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ use stdarch_test::assert_instr;
55
unsafe extern "unadjusted" {
66
#[link_name = "llvm.x86.addcarry.64"]
77
fn llvm_addcarry_u64(a: u8, b: u64, c: u64) -> (u8, u64);
8-
#[link_name = "llvm.x86.addcarryx.u64"]
9-
fn llvm_addcarryx_u64(a: u8, b: u64, c: u64, d: *mut u64) -> u8;
108
#[link_name = "llvm.x86.subborrow.64"]
119
fn llvm_subborrow_u64(a: u8, b: u64, c: u64) -> (u8, u64);
1210
}
@@ -35,7 +33,7 @@ pub unsafe fn _addcarry_u64(c_in: u8, a: u64, b: u64, out: &mut u64) -> u8 {
3533
#[cfg_attr(test, assert_instr(adc))]
3634
#[stable(feature = "simd_x86_adx", since = "1.33.0")]
3735
pub unsafe fn _addcarryx_u64(c_in: u8, a: u64, b: u64, out: &mut u64) -> u8 {
38-
llvm_addcarryx_u64(c_in, a, b, out as *mut _)
36+
_addcarry_u64(c_in, a, b, out)
3937
}
4038

4139
/// Adds unsigned 64-bit integers `a` and `b` with unsigned 8-bit carry-in `c_in`.
@@ -95,27 +93,27 @@ mod tests {
9593
let a = u64::MAX;
9694
let mut out = 0;
9795

98-
let r = _addcarry_u64(0, a, 1, &mut out);
96+
let r = _addcarryx_u64(0, a, 1, &mut out);
9997
assert_eq!(r, 1);
10098
assert_eq!(out, 0);
10199

102-
let r = _addcarry_u64(0, a, 0, &mut out);
100+
let r = _addcarryx_u64(0, a, 0, &mut out);
103101
assert_eq!(r, 0);
104102
assert_eq!(out, a);
105103

106-
let r = _addcarry_u64(1, a, 1, &mut out);
104+
let r = _addcarryx_u64(1, a, 1, &mut out);
107105
assert_eq!(r, 1);
108106
assert_eq!(out, 1);
109107

110-
let r = _addcarry_u64(1, a, 0, &mut out);
108+
let r = _addcarryx_u64(1, a, 0, &mut out);
111109
assert_eq!(r, 1);
112110
assert_eq!(out, 0);
113111

114-
let r = _addcarry_u64(0, 3, 4, &mut out);
112+
let r = _addcarryx_u64(0, 3, 4, &mut out);
115113
assert_eq!(r, 0);
116114
assert_eq!(out, 7);
117115

118-
let r = _addcarry_u64(1, 3, 4, &mut out);
116+
let r = _addcarryx_u64(1, 3, 4, &mut out);
119117
assert_eq!(r, 0);
120118
assert_eq!(out, 8);
121119
}

0 commit comments

Comments
 (0)