Lines Matching defs:gen

566 def gen(brig_opcode, types=None, expr=None, base_class='ArithInst',
677 gen('Add', arith_types, 'src0 + src1')
678 gen('Sub', arith_types, 'src0 - src1')
679 gen('Mul', arith_types, 'src0 * src1')
680 gen('Div', arith_types, 'src0 / src1')
681 gen('Min', arith_types, 'std::min(src0, src1)')
682 gen('Max', arith_types, 'std::max(src0, src1)')
683 gen('Gcnmin', arith_types, 'std::min(src0, src1)')
685 gen('CopySign', arith_float_types,
687 gen('Sqrt', arith_float_types, 'sqrt(src0)')
688 gen('Floor', arith_float_types, 'floor(src0)')
691 gen('Nsqrt', arith_float_types, 'sqrt(src0)')
692 gen('Nrsqrt', arith_float_types, '1.0/sqrt(src0)')
693 gen('Nrcp', arith_float_types, '1.0/src0')
694 gen('Fract', arith_float_types,
697 gen('Ncos', arith_float_types, 'cos(src0)');
698 gen('Nsin', arith_float_types, 'sin(src0)');
700 gen('And', bit_types, 'src0 & src1')
701 gen('Or', bit_types, 'src0 | src1')
702 gen('Xor', bit_types, 'src0 ^ src1')
704 gen('Bitselect', bit_types, '(src1 & src0) | (src2 & ~(uint64_t)src0)')
705 gen('Popcount', ('U32',), '__builtin_popcount(src0)', 'PopcountInst', \
708 gen('Shl', arith_int_types, 'src0 << (unsigned)src1', 'ShiftInst')
709 gen('Shr', arith_int_types, 'src0 >> (unsigned)src1', 'ShiftInst')
711 # gen('Mul_hi', types=('s32','u32', '??'))
712 # gen('Mul24', types=('s32','u32', '??'))
713 gen('Rem', arith_int_types, 'src0 - ((src0 / src1) * src1)')
715 gen('Abs', arith_types, 'std::abs(src0)')
716 gen('Neg', arith_types, '-src0')
718 gen('Mov', bit_types + arith_types, 'src0')
719 gen('Not', bit_types, 'heynot(src0)')
723 gen('Mad', arith_types, 'src0 * src1 + src2')
724 gen('Fma', arith_float_types, 'src0 * src1 + src2')
727 gen('Nfma', arith_float_types, 'src0 * src1 + src2')
729 gen('Cmov', bit_types, 'src0 ? src1 : src2', 'CmovInst')
730 gen('BitAlign', bit_types, '(src0 << src2)|(src1 >> (32 - src2))')
731 gen('ByteAlign', bit_types, '(src0 << 8 * src2)|(src1 >> (32 - 8 * src2))')
734 gen('BitExtract', arith_int_types, 'bits(src0, src1, src1 + src2 - 1)',
737 gen('BitInsert', arith_int_types, 'insertBits(dest, src1, src2, src0)',
741 gen('Cmp', ('B1', 'S32', 'U32', 'F32'), 'compare(src0, src1, this->cmpOp)',
743 gen('Class', arith_float_types, 'fpclassify(src0,src1)','ClassInst')
750 gen('Cvt', cvt_types, 'src0', 'CvtInst', ('sourceType', cvt_types))
754 gen('Lda', mem_types, base_class = 'LdInst', constructor_prefix='decode')
755 gen('Ld', mem_types, base_class = 'LdInst', constructor_prefix='decode')
756 gen('St', mem_types, base_class = 'StInst', constructor_prefix='decode',
758 gen('Atomic', mem_atom_types, base_class='StInst', constructor_prefix='decode')
759 gen('AtomicNoRet', mem_atom_types, base_class='StInst',
762 gen('Cbr', base_class = 'LdInst', constructor_prefix='decode')
763 gen('Br', base_class = 'LdInst', constructor_prefix='decode')
775 gen(brig_opcode, None, expr, base_class)
792 gen('Ret', base_class='SpecialInstNoSrcNoDest')
793 gen('Barrier', base_class='SpecialInstNoSrcNoDest')
794 gen('MemFence', base_class='SpecialInstNoSrcNoDest')
801 gen('Call', base_class='SpecialInstNoSrcNoDest')
814 gen('Bitmask', base_class='Stub')
815 gen('Bitrev', base_class='Stub')
816 gen('Firstbit', base_class='Stub')
817 gen('Lastbit', base_class='Stub')
818 gen('Unpacklo', base_class='Stub')
819 gen('Unpackhi', base_class='Stub')
820 gen('Pack', base_class='Stub')
821 gen('Unpack', base_class='Stub')
822 gen('Lerp', base_class='Stub')
823 gen('Packcvt', base_class='Stub')
824 gen('Unpackcvt', base_class='Stub')
825 gen('Sad', base_class='Stub')
826 gen('Sadhi', base_class='Stub')
827 gen('Activelanecount', base_class='Stub')
828 gen('Activelaneid', base_class='Stub')
829 gen('Activelanemask', base_class='Stub')
830 gen('Activelanepermute', base_class='Stub')
831 gen('Groupbaseptr', base_class='Stub')
832 gen('Signalnoret', base_class='Stub')