[cfe-commits] r153726 - in /cfe/trunk: include/clang/Basic/BuiltinsX86.def lib/Headers/smmintrin.h test/CodeGen/sse-builtins.c

Craig Topper craig.topper at gmail.com
Thu Mar 29 22:41:28 PDT 2012


Author: ctopper
Date: Fri Mar 30 00:41:28 2012
New Revision: 153726

URL: http://llvm.org/viewvc/llvm-project?rev=153726&view=rev
Log:
Add _mm_minpos_epu16 to smmintrin.h. Fixes PR12399.

Modified:
    cfe/trunk/include/clang/Basic/BuiltinsX86.def
    cfe/trunk/lib/Headers/smmintrin.h
    cfe/trunk/test/CodeGen/sse-builtins.c

Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=153726&r1=153725&r2=153726&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original)
+++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Fri Mar 30 00:41:28 2012
@@ -346,6 +346,7 @@
 BUILTIN(__builtin_ia32_ptestc128, "iV2LLiV2LLi", "")
 BUILTIN(__builtin_ia32_ptestnzc128, "iV2LLiV2LLi", "")
 BUILTIN(__builtin_ia32_mpsadbw128, "V16cV16cV16ci", "")
+BUILTIN(__builtin_ia32_phminposuw128, "V8sV8s", "")
 
 // SSE 4.2
 BUILTIN(__builtin_ia32_pcmpistrm128, "V16cV16cV16cIc", "")

Modified: cfe/trunk/lib/Headers/smmintrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/smmintrin.h?rev=153726&r1=153725&r2=153726&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/smmintrin.h (original)
+++ cfe/trunk/lib/Headers/smmintrin.h Fri Mar 30 00:41:28 2012
@@ -332,6 +332,12 @@
 /* SSE4 Multiple Packed Sums of Absolute Difference.  */
 #define _mm_mpsadbw_epu8(X, Y, M) __builtin_ia32_mpsadbw128((X), (Y), (M))
 
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_minpos_epu16(__m128i __V)
+{
+  return (__m128i) __builtin_ia32_phminposuw128((__v8hi)__V);
+}
+
 /* These definitions are normally in nmmintrin.h, but gcc puts them in here
    so we'll do the same.  */
 #ifdef __SSE4_2__

Modified: cfe/trunk/test/CodeGen/sse-builtins.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/sse-builtins.c?rev=153726&r1=153725&r2=153726&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/sse-builtins.c (original)
+++ cfe/trunk/test/CodeGen/sse-builtins.c Fri Mar 30 00:41:28 2012
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 -ffreestanding -triple i386-apple-darwin9 -target-cpu pentium4 -target-feature +sse4.1 -g -emit-llvm %s -o - | FileCheck %s
 
 #include <emmintrin.h>
+#include <smmintrin.h>
 
 __m128 test_loadl_pi(__m128 x, void* y) {
   // CHECK: define {{.*}} @test_loadl_pi
@@ -102,3 +103,7 @@
   // CHECK: load i64* {{.*}}, align 1{{$}}
   return _mm_loadl_epi64(y);
 }
+
+__m128i test_mm_minpos_epu16(__m128i x) {
+  return _mm_minpos_epu16(x);
+}





More information about the cfe-commits mailing list