r214316 - [AVX512] Add intrinsic for knot

Adam Nemet anemet at apple.com
Wed Jul 30 09:51:27 PDT 2014


Author: anemet
Date: Wed Jul 30 11:51:27 2014
New Revision: 214316

URL: http://llvm.org/viewvc/llvm-project?rev=214316&view=rev
Log:
[AVX512] Add intrinsic for knot

Part of <rdar://problem/17688758>

Modified:
    cfe/trunk/include/clang/Basic/BuiltinsX86.def
    cfe/trunk/lib/Headers/avx512fintrin.h
    cfe/trunk/test/CodeGen/avx512f-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=214316&r1=214315&r2=214316&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original)
+++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Wed Jul 30 11:51:27 2014
@@ -862,5 +862,6 @@ BUILTIN(__builtin_ia32_scatterpfdpd, "vU
 BUILTIN(__builtin_ia32_scatterpfdps, "vUsV16iv*CiCi", "")
 BUILTIN(__builtin_ia32_scatterpfqpd, "vUcV8LLiv*CiCi", "")
 BUILTIN(__builtin_ia32_scatterpfqps, "vUcV8LLiv*CiCi", "")
+BUILTIN(__builtin_ia32_knothi, "UsUs", "")
 
 #undef BUILTIN

Modified: cfe/trunk/lib/Headers/avx512fintrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintrin.h?rev=214316&r1=214315&r2=214316&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/avx512fintrin.h (original)
+++ cfe/trunk/lib/Headers/avx512fintrin.h Wed Jul 30 11:51:27 2014
@@ -844,4 +844,12 @@ _mm512_store_pd(void *__P, __m512d __A)
   *(__m512d*)__P = __A;
 }
 
+/* Mask ops */
+
+static __inline __mmask16 __attribute__ ((__always_inline__, __nodebug__))
+_mm512_knot(__mmask16 __M)
+{
+  return __builtin_ia32_knothi(__M);
+}
+
 #endif // __AVX512FINTRIN_H

Modified: cfe/trunk/test/CodeGen/avx512f-builtins.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-builtins.c?rev=214316&r1=214315&r2=214316&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)
+++ cfe/trunk/test/CodeGen/avx512f-builtins.c Wed Jul 30 11:51:27 2014
@@ -109,3 +109,10 @@ __m512d test_mm512_castpd256_pd512(__m25
   // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
   return _mm512_castpd256_pd512(a);
 }
+
+__mmask16 test_mm512_knot(__mmask16 a)
+{
+  // CHECK-LABEL: @test_mm512_knot
+  // CHECK: @llvm.x86.avx512.knot.w
+  return _mm512_knot(a);
+}





More information about the cfe-commits mailing list