Hello Richard, On 19 Aug 14:17, Richard Henderson wrote: > On 08/14/2013 12:23 AM, Kirill Yukhin wrote: > > + ;; For AVX512F mask support > > + UNSPEC_KIOR > > + UNSPEC_KXOR > > + UNSPEC_KAND > > + UNSPEC_KANDN > > I thought we determined that you didn't need these, > that "*Yk" as a constraint was sufficient.
As far as I understood, we're talking about incorporating of mask logic instructions into existing patterns + making mask constraints disparage. E.g. for OR we have: (define_insn "*<code><mode>_1" [(set (match_operand:SWI248 0 "nonimmediate_operand" "=r,rm") (any_or:SWI248 (match_operand:SWI248 1 "nonimmediate_operand" "%0,0") (match_operand:SWI248 2 "<general_operand>" "<g>,r<i>"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)" "<logic>{<imodesuffix>}\t{%2, %0|%0, %2}" Despite of generic OR, mask version of OR do not clobber FLAGS_REG. Of course, we may conservatively think that it is, but I believe this is not good idea. Making single constraint in new pattern disparage have no sense as far as I understad, since this is relative notion. So, what should I do? -- Thanks, K