parameters: (emitter, aligned, rows, cols, leftovers)
docstring: Emits code for all lhs strips & leftover rows. Quantize after mul code.
docstring_summary: Emits code for all lhs strips & leftover rows. Quantize after mul code.
docstring_tokens: Emits code for all lhs strips & leftover rows . Quantize after mul code .
function: def GenerateQuantized8BitMul(emitter, aligned, rows, cols, leftovers):
    """Emits code for all lhs strips & leftover rows. Quantize after mul code."""
    emitter.EmitOpenBracket('for (int i = 0; i < row_chunks; ++i)')
    GenerateMulRows(emitter, 'temp_result', 'int32', False, True, aligned, 3,
                    cols, leftovers)
    emitter.EmitCall(
        qnt_Nx8_neon.BuildMultiQuantizeName(aligned, 3),
        ['temp_result', 'n', 'mul_result_chunk_stride_bytes',
         'zipped_lhs_3_offsets', 'result_chunk', 'result_stride',
         'multiplicative_offset', 'rounding_offset', '-shift'])
    emitter.EmitAssignIncrement('lhs_chunk', 'chunk_size')
    emitter.EmitAssignIncrement('result_chunk', 'result_chunk_stride')
    emitter.EmitCloseBracket()
    emitter.EmitNewline()
  
    if rows is not 0:
      GenerateMulRows(emitter, 'temp_result', 'int32', False, True, aligned, rows,
                      cols, leftovers)
      emitter.EmitCall(
          qnt_Nx8_neon.BuildMultiQuantizeName(aligned, rows),
          ['temp_result', 'n', 'mul_result_chunk_stride_bytes',
           'zipped_lhs_%d_offsets' % rows, 'result_chunk', 'result_stride',
           'multiplicative_offset', 'rounding_offset', '-shift'])
function_tokens: def GenerateQuantized8BitMul ( emitter , aligned , rows , cols , leftovers ) : emitter . EmitOpenBracket ( 'for (int i = 0; i < row_chunks; ++i)' ) GenerateMulRows ( emitter , 'temp_result' , 'int32' , False , True , aligned , 3 , cols , leftovers ) emitter . EmitCall ( qnt_Nx8_neon . BuildMultiQuantizeName ( aligned , 3 ) , [ 'temp_result' , 'n' , 'mul_result_chunk_stride_bytes' , 'zipped_lhs_3_offsets' , 'result_chunk' , 'result_stride' , 'multiplicative_offset' , 'rounding_offset' , '-shift' ] ) emitter . EmitAssignIncrement ( 'lhs_chunk' , 'chunk_size' ) emitter . EmitAssignIncrement ( 'result_chunk' , 'result_chunk_stride' ) emitter . EmitCloseBracket ( ) emitter . EmitNewline ( ) if rows is not 0 : GenerateMulRows ( emitter , 'temp_result' , 'int32' , False , True , aligned , rows , cols , leftovers ) emitter . EmitCall ( qnt_Nx8_neon . BuildMultiQuantizeName ( aligned , rows ) , [ 'temp_result' , 'n' , 'mul_result_chunk_stride_bytes' , 'zipped_lhs_%d_offsets' % rows , 'result_chunk' , 'result_stride' , 'multiplicative_offset' , 'rounding_offset' , '-shift' ] )