This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C7x C/C++ Compiler throws bug report error during compilation

Using the C7x compiler that comes with the J721E RTOS SDK, I got the following output compiling some of our code:

>>>> Optimizer terminated abnormally
>>>>    in function complexDivideRealConst()
>>>>    in file "benchmark_float.c"
This is caused by a defect in the TI C/C++ Optimizer.
TI Customer Support may be able to suggest a workaround to avoid this.

Upgrading to the newest version of the compiler may fix this problem.

Contact TI in the E2E support forums at http://e2e.ti.com under
"Development Tools", "TI C/C++ Compiler".  See the link titled
"Submitting an issue".

We need to see this ENTIRE error message and a complete, reproducible
test case including ALL of the command-line options.
Include the .pp file created by option --preproc_with_comment


>> Compilation failure

This compiler version included with the SDK is "ti-cgt-c7000_3.0.0.STS".

I have managed to get a minimal reproduction case, as follows:

#include <c7x.h>
#include <stdint.h>

#define NUM_BATCHES 512
#define NUM_POINTS  512

static __SE_TEMPLATE_v1 divideSE;
static __SA_TEMPLATE_v1 divideSA;

// Ok for out to equal either dividend (destructive)
void complexDivideRealConst(float *dividend, uint32_t divisor, float *out)
{
    __SE0_OPEN((void *)dividend, divideSE);
    __SA0_OPEN(divideSA);

    for(int i = 0; i < NUM_BATCHES * NUM_POINTS * 2 / 16; i++)
        *__SA0ADV(float16, out) = __SE0ADV(float16) / divisor;

    __SE0_CLOSE();
    __SA0_CLOSE();
}

Which shows the problem when the following compilation command line:

/opt/ti-cgt-c7000_3.0.0.STS/bin/cl7x -c --c99 -O3 --issue_remarks --emit_warnings_as_errors -pden --abi=eabi --silicon_version=7100 --silicon_errata_i2117 -I/opt/ti-cgt-c7000_3.0.0.STS/include -D=C71="C71" -D=C7100 -D=__C7X_UNSTABLE_API -ppc --preproc_with_compile benchmark_float.c -fe benchmark_float.o

I'll attempt to attach the pre-processed output as requested (can't seem to do so here on initial post).