Add sse4.2 string/text processing intrinsics. We'll select these later.
authorEric Christopher <echristo@apple.com>
Fri, 14 Aug 2009 20:27:57 +0000 (20:27 +0000)
committerEric Christopher <echristo@apple.com>
Fri, 14 Aug 2009 20:27:57 +0000 (20:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79037 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IntrinsicsX86.td

index c6c0310278832d8da187342add6688d04dc7a1df..5be032bb82046663268559b999cc16a7c3e9acc6 100644 (file)
@@ -897,6 +897,73 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
                     [IntrNoMem]>;
 }
 
+// String/text processing ops.
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+  def int_x86_sse42_pcmpistrm128  : GCCBuiltin<"__builtin_ia32_pcmpistrm128">,
+         Intrinsic<[llvm_v16i8_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpistri128  : GCCBuiltin<"__builtin_ia32_pcmpistri128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpistria128 : GCCBuiltin<"__builtin_ia32_pcmpistria128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpistric128 : GCCBuiltin<"__builtin_ia32_pcmpistric128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpistrio128 : GCCBuiltin<"__builtin_ia32_pcmpistrio128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpistris128 : GCCBuiltin<"__builtin_ia32_pcmpistris128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpistriz128 : GCCBuiltin<"__builtin_ia32_pcmpistriz128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestrm128  : GCCBuiltin<"__builtin_ia32_pcmpestrm128">,
+         Intrinsic<[llvm_v16i8_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestri128  : GCCBuiltin<"__builtin_ia32_pcmpestri128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestria128 : GCCBuiltin<"__builtin_ia32_pcmpestria128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestric128 : GCCBuiltin<"__builtin_ia32_pcmpestric128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestrio128 : GCCBuiltin<"__builtin_ia32_pcmpestrio128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestris128 : GCCBuiltin<"__builtin_ia32_pcmpestris128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+  def int_x86_sse42_pcmpestriz128 : GCCBuiltin<"__builtin_ia32_pcmpestriz128">,
+         Intrinsic<[llvm_i32_ty],
+                   [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty,
+                    llvm_i8_ty],
+                   [IntrNoMem]>;
+}
+
 //===----------------------------------------------------------------------===//
 // MMX