Two results from mult_r() in libetsi.h do not match

Hi,

I found that two results from mult_r() in libetsi.h did not match; one is the result returned when __SET_ETSI_FLAGS  is set to 1, the other is the result returned when  __SET_ETSI_FLAGS is set to 0.  

I confirmed by running the following program on EVAL-BF707-EZLITE:

#include <sys/platform.h>
#include "adi_initialize.h"

#include <fract_typedef.h>
#include <stdio.h>

fract16 mult_r_0(fract16, fract16);
fract16 mult_r_1(fract16, fract16);

int main(int argc, char *argv[]) {

    adi_initComponents();

    fract16 result0, result1;

    for (int i = 0; i < 0x10000; i++) {
        result0 = mult_r_0(i, 1);
        result1 = mult_r_1(i, 1);

        if (result0 != result1) {
            printf("Not match: %x, %x, %x\n", i, result0, result1);
        }
    }

    return 0;
}

#define __SET_ETSI_FLAGS 0
#include <libetsi.h>

fract16 mult_r_0(fract16 a, fract16 b) { return mult_r(a, b); }

#define __SET_ETSI_FLAGS 1
#include <libetsi.h>

fract16 mult_r_1(fract16 a, fract16 b) { return mult_r(a, b); }

The following is an output on the debug console of the CCES:

Loading application: "C:\Users\hirano\work_cces\test_mult_r\Debug\test_mult_r.dxe"
Load complete.
Not match: 4000, 0, 1

Is it a problem in the ETSI library?

Best regards,

Hirano