]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_codegen_llvm/src/context.rs
Auto merge of #86062 - nagisa:nagisa/what-a-lie, r=estebank
[rust.git] / compiler / rustc_codegen_llvm / src / context.rs
index ac7190fa68653d46f6e9665a9b490ea71f3f46ce..d6a60956555956c1e04c37abe1ce5244015faf71 100644 (file)
@@ -501,6 +501,7 @@ macro_rules! mk_struct {
         let t_i32 = self.type_i32();
         let t_i64 = self.type_i64();
         let t_i128 = self.type_i128();
+        let t_isize = self.type_isize();
         let t_f32 = self.type_f32();
         let t_f64 = self.type_f64();
 
@@ -713,6 +714,10 @@ macro_rules! mk_struct {
         ifn!("llvm.assume", fn(i1) -> void);
         ifn!("llvm.prefetch", fn(i8p, t_i32, t_i32, t_i32) -> void);
 
+        // This isn't an "LLVM intrinsic", but LLVM's optimization passes
+        // recognize it like one and we assume it exists in `core::slice::cmp`
+        ifn!("memcmp", fn(i8p, i8p, t_isize) -> t_i32);
+
         // variadic intrinsics
         ifn!("llvm.va_start", fn(i8p) -> void);
         ifn!("llvm.va_end", fn(i8p) -> void);