about summary refs log tree commit diff
path: root/compiler/rustc_hir_analysis/src
diff options
context:
space:
mode:
authorsayantn <sayantn05@gmail.com>2025-08-21 04:47:05 +0530
committersayantn <sayantn05@gmail.com>2025-09-03 14:13:24 +0530
commit62b4347e80cc86314bd98749e95eff8cdf8ef005 (patch)
tree69b4d50bbd60c11647a12bbc0544a5d546855e1e /compiler/rustc_hir_analysis/src
parentf5703d5dd3eec176f86a6e9bf7e668b48b84eabb (diff)
downloadrust-62b4347e80cc86314bd98749e95eff8cdf8ef005.tar.gz
rust-62b4347e80cc86314bd98749e95eff8cdf8ef005.zip
Add `funnel_sh{l,r}` functions and intrinsics
 - Add a fallback implementation for the intrinsics
 - Add LLVM backend support for funnel shifts

Co-Authored-By: folkertdev <folkert@folkertdev.nl>
Diffstat (limited to 'compiler/rustc_hir_analysis/src')
-rw-r--r--compiler/rustc_hir_analysis/src/check/intrinsic.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_hir_analysis/src/check/intrinsic.rs b/compiler/rustc_hir_analysis/src/check/intrinsic.rs
index cfc6bc2f3a0..aa2d27ab809 100644
--- a/compiler/rustc_hir_analysis/src/check/intrinsic.rs
+++ b/compiler/rustc_hir_analysis/src/check/intrinsic.rs
@@ -449,6 +449,9 @@ pub(crate) fn check_intrinsic_type(
         }
         sym::unchecked_shl | sym::unchecked_shr => (2, 0, vec![param(0), param(1)], param(0)),
         sym::rotate_left | sym::rotate_right => (1, 0, vec![param(0), tcx.types.u32], param(0)),
+        sym::unchecked_funnel_shl | sym::unchecked_funnel_shr => {
+            (1, 0, vec![param(0), param(0), tcx.types.u32], param(0))
+        }
         sym::unchecked_add | sym::unchecked_sub | sym::unchecked_mul => {
             (1, 0, vec![param(0), param(0)], param(0))
         }