about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_platform_intrinsics/aarch64.rs2
-rw-r--r--src/librustc_platform_intrinsics/arm.rs4
-rwxr-xr-xsrc/librustc_platform_intrinsics/lib.rs6
-rw-r--r--src/librustc_platform_intrinsics/x86.rs8
4 files changed, 10 insertions, 10 deletions
diff --git a/src/librustc_platform_intrinsics/aarch64.rs b/src/librustc_platform_intrinsics/aarch64.rs
index 4f311a47807..259b21704df 100644
--- a/src/librustc_platform_intrinsics/aarch64.rs
+++ b/src/librustc_platform_intrinsics/aarch64.rs
@@ -17,7 +17,7 @@ macro_rules! p {
     }
 }
 pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
-    Some(match name {
+    Some(match name["aarch64_".len()..] {
         "vmaxvq_u8" => p!("umaxv.i8.v16i8", (i8x16) -> i8),
         "vmaxvq_u16" => p!("umaxv.i16.v8i16", (i16x8) -> i16),
         "vmaxvq_u32" => p!("umaxv.i32.v4i32", (i32x4) -> i32),
diff --git a/src/librustc_platform_intrinsics/arm.rs b/src/librustc_platform_intrinsics/arm.rs
index f29f7e384b4..b8a02773ec0 100644
--- a/src/librustc_platform_intrinsics/arm.rs
+++ b/src/librustc_platform_intrinsics/arm.rs
@@ -17,8 +17,8 @@ macro_rules! p {
     }
 }
 pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
-    if !name.starts_with("v") { return None }
-    Some(match &name["v".len()..] {
+    if !name.starts_with("arm_v") { return None }
+    Some(match &name["arm_v".len()..] {
         "sqrtq_f32" => plain!("llvm.sqrt.v4f32", (f32x4) -> f32x4),
         "sqrtq_f64" => plain!("llvm.sqrt.v2f64", (f64x2) -> f64x2),
 
diff --git a/src/librustc_platform_intrinsics/lib.rs b/src/librustc_platform_intrinsics/lib.rs
index 88ad2dce55c..5eb09aeb0dc 100755
--- a/src/librustc_platform_intrinsics/lib.rs
+++ b/src/librustc_platform_intrinsics/lib.rs
@@ -96,11 +96,11 @@ mod aarch64;
 impl Intrinsic {
     pub fn find<'tcx>(tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
         if name.starts_with("x86_") {
-            x86::find(tcx, &name["x86_".len()..])
+            x86::find(tcx, name)
         } else if name.starts_with("arm_") {
-            arm::find(tcx, &name["arm_".len()..])
+            arm::find(tcx, name)
         } else if name.starts_with("aarch64_") {
-            aarch64::find(tcx, &name["aarch64_".len()..])
+            aarch64::find(tcx, name)
         } else {
             None
         }
diff --git a/src/librustc_platform_intrinsics/x86.rs b/src/librustc_platform_intrinsics/x86.rs
index cab7ab2fecb..ad5fcff8f58 100644
--- a/src/librustc_platform_intrinsics/x86.rs
+++ b/src/librustc_platform_intrinsics/x86.rs
@@ -18,8 +18,8 @@ macro_rules! p {
 }
 
 pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
-    if name.starts_with("mm_") {
-        Some(match &name["mm_".len()..] {
+    if name.starts_with("x86_mm_") {
+        Some(match &name["x86_mm_".len()..] {
             "sqrt_ps" => plain!("llvm.sqrt.v4f32", (f32x4) -> f32x4),
             "sqrt_pd" => plain!("llvm.sqrt.v2f64", (f64x2) -> f64x2),
 
@@ -105,8 +105,8 @@ pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
 
             _ => return None
         })
-    } else if name.starts_with("mm256_") {
-        Some(match &name["mm256_".len()..] {
+    } else if name.starts_with("x86_mm256_") {
+        Some(match &name["x86_mm256_".len()..] {
             "addsub_pd" => p!("avx.addsub.pd.256", (f64x4, f64x4) -> f64x4),
             "addsub_ps" => p!("avx.addsub.ps.256", (f32x8, f32x8) -> f32x8),
             "hadd_pd" => p!("avx.hadd.pd.256", (f64x4, f64x4) -> f64x4),