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
*(__m512d*)__P = __A;
}
+/* Mask ops */
+
+static __inline __mmask16 __attribute__ ((__always_inline__, __nodebug__))
+_mm512_knot(__mmask16 __M)
+{
+ return __builtin_ia32_knothi(__M);
+}
+
#endif // __AVX512FINTRIN_H
// 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);
+}