about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-12-03 07:48:33 +0100
committerGitHub <noreply@github.com>2024-12-03 07:48:33 +0100
commitc5acac93fd6d79e0788c6290fc80c1ad4e56d8d6 (patch)
tree5c153962e76b935fc1ee1f0292122399f7b266b3
parent1aded6079a70a89e72bd139e44485496d12643cf (diff)
parent8f9d76550bc15e50372020a8270ecc1b969c151f (diff)
downloadrust-c5acac93fd6d79e0788c6290fc80c1ad4e56d8d6.tar.gz
rust-c5acac93fd6d79e0788c6290fc80c1ad4e56d8d6.zip
Rollup merge of #133395 - calebzulawski:simd_relaxed_fma, r=workingjubilee
Add simd_relaxed_fma intrinsic

Adds compiler support for https://github.com/rust-lang/portable-simd/issues/387#issuecomment-2337169786

r? `@workingjubilee`

cc `@RalfJung` is this kind of nondeterminism a problem for miri/opsem?
-rw-r--r--src/intrinsics/simd.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/intrinsics/simd.rs b/src/intrinsics/simd.rs
index f787b8a6fd9..e0ebe30752a 100644
--- a/src/intrinsics/simd.rs
+++ b/src/intrinsics/simd.rs
@@ -415,7 +415,8 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
             });
         }
 
-        sym::simd_fma => {
+        // FIXME: simd_relaxed_fma doesn't relax to non-fused multiply-add
+        sym::simd_fma | sym::simd_relaxed_fma => {
             intrinsic_args!(fx, args => (a, b, c); intrinsic);
 
             if !a.layout().ty.is_simd() {