Hello Richard,
Thanks for inputs.
On 09 Sep 10:39, Richard Henderson wrote:
> gen_andhi_1 is not used, nor is it likely to be in the future, therefore this
> should still have "*".
We're using it in patch 6/8 when introducing plugins:
+ { OPTION_MASK_ISA_AVX512F, CODE_FOR_andhi_1, "__builtin_ia32_kandhi",
IX86_BUILTIN_KAND16, UNKNOWN, (int) HI_FTYPE_HI_HI },
And covered by tests in patch 8/8:
new file mode 100644
index 0000000..3d777c8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx512f-kandnw-1.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f -O2" } */
+/* { dg-final { scan-assembler-times "kandnw\[ \\t\]+\[^\n\]*%k\[1-7\]" 1 } }
*/
+
+#include <immintrin.h>
+
+void
+avx512f_test ()
+{
+ __mmask16 k1, k2, k3;
+ volatile __m512 x;
+
+ __asm__( "kmovw %1, %0" : "=k" (k1) : "r" (1) );
+ __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (2) );
+
+ k3 = _mm512_kandn (k1, k2);
+ x = _mm512_mask_add_ps (x, k3, x, x);
+}
>
> > +(define_insn "<code>hi_1"
> > + [(set (match_operand:HI 0 "nonimmediate_operand" "=r,rm,!Yk")
> > + (any_or:HI
> > + (match_operand:HI 1 "nonimmediate_operand" "%0,0,Yk")
> > + (match_operand:HI 2 "general_operand" "<g>,r<i>,Yk")))
> > + (clobber (reg:CC FLAGS_REG))]
>
> Likewise.
Same as above.
Do you still think we need "*"?
--
Thanks, K