• Resolved

Compiler/MSP432P401R: Incorrect _sxtb16() implementation TI ARM Compiler v18.1.3.LTS

Part Number: MSP432P401R

Tool/software: TI C/C++ Compiler


I was working with the CMSIS v5 DSPLib and noticed a difference in behavior when using the TI ARM Compiler v16.9.9.LTS versus the  TI ARM Compiler v18.1.3.LTS.

I narrowed the issue down to the _sxtb16() intrinsic function: 

Table 5-4 of ARM Optimizing C/C++ Compiler User's Guide

Section 4.6.186 of ARM Architecture Reference Manual Thumb-2 Supplement

Assembly code for correct implementation on TI ARM Compiler v16.9.9.LTS:

Assembly code for incorrect implementation on TI ARM Compiler v18.1.3.LTS

You can see the difference in the way the data is loaded with ldr or ldrsb.w. I've attached a main.c file with minimal code to reproduce the issue. 


Can you verify if this is a real issue?

Best regards, 
Caleb Overbay