diff options
| author | Folkert de Vries <folkert@folkertdev.nl> | 2025-08-20 18:08:51 +0200 |
|---|---|---|
| committer | Folkert de Vries <folkert@folkertdev.nl> | 2025-08-20 22:20:29 +0200 |
| commit | dfa95c6fa40374df410d3215d99d697c58f5da50 (patch) | |
| tree | 0aebd61bb49183bc8cf8831555a6c90764d42440 /library/stdarch | |
| parent | e1a1b1ded2d14c2bb40d236a93ad629222db4da2 (diff) | |
| download | rust-dfa95c6fa40374df410d3215d99d697c58f5da50.tar.gz rust-dfa95c6fa40374df410d3215d99d697c58f5da50.zip | |
s390x: implement `vec_subc_u128` using `overflowing_sub`
Diffstat (limited to 'library/stdarch')
| -rw-r--r-- | library/stdarch/crates/core_arch/src/s390x/vector.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/library/stdarch/crates/core_arch/src/s390x/vector.rs b/library/stdarch/crates/core_arch/src/s390x/vector.rs index 67752257889..4e4161dbb7f 100644 --- a/library/stdarch/crates/core_arch/src/s390x/vector.rs +++ b/library/stdarch/crates/core_arch/src/s390x/vector.rs @@ -4678,11 +4678,9 @@ pub unsafe fn vec_subc_u128( a: vector_unsigned_char, b: vector_unsigned_char, ) -> vector_unsigned_char { - // FIXME(llvm) sadly this does not work https://github.com/llvm/llvm-project/issues/129608 - // let a: u128 = transmute(a); - // let b: u128 = transmute(b); - // transmute(!a.overflowing_sub(b).1 as u128) - transmute(vscbiq(transmute(a), transmute(b))) + let a: u128 = transmute(a); + let b: u128 = transmute(b); + transmute(!a.overflowing_sub(b).1 as u128) } /// Vector Add Compute Carryout unsigned 128-bits @@ -4714,7 +4712,7 @@ pub unsafe fn vec_adde_u128( let a: u128 = transmute(a); let b: u128 = transmute(b); let c: u128 = transmute(c); - // FIXME(llvm) sadly this does not work + // FIXME(llvm) https://github.com/llvm/llvm-project/pull/153557 // let (d, _carry) = a.carrying_add(b, c & 1 != 0); // transmute(d) transmute(vacq(a, b, c)) |
