cortex-a53 에서 neon 으로 실수 나누기를 하는데
이상하게 적용이 안되서 확인중
소스는 아래 한줄인데 stdev_val은 앞서 단계에서 계산한 변수라 그런가
scope 문제로 인해서 안될 것 같진 않은데
int tempval = (int)((value - abs_avg) / (int)stdev_val); |
아무튼 에러는 아래와 같이. 332 라인은 for() 337은 위의 소스인데
modules/m7_adc.c:332:27: missed: couldn't vectorize loop modules/m7_adc.c:337:11: missed: not vectorized: relevant stmt not supported: tempval_168 = _73 / stdev_val_162; |
얘 되고
int tempval = (int)((double)(value - abs_avg) / (double)stdev_val); |
얘도 된다.
int tempval = (int)((value - abs_avg) / (double)stdev_val); |
나누기 연산에서 피 연산자가 int 형이면 안되고, double 형이면 된다라..
아래 문서를 참조해도 딱히 divide 연산자에 대한 이야기는 없고
cortex-a53이라면.. cortex-a9도 아니고.. hardware divider가 없을리도 없을 것 같은데.
아무튼.. 의외의 점이라면 예제코드 중에 곱셈은 있어도 나눗셈은 없다. (에이 설마..)
[링크 : https://gcc.gnu.org/projects/tree-ssa/vectorization.html]
'embeded > i.mx 8m plus' 카테고리의 다른 글
sounddevice on arm i.mx8 evk (0) | 2024.05.14 |
---|---|
NXP i.mx8mp LF_v6.1.55-2.2.0 테스트 (0) | 2023.12.21 |
nxp i.mx8mp win iot part 2 (0) | 2023.05.26 |
nxp i.mx8mp win iot (0) | 2023.05.26 |
rpmsg-lite (0) | 2023.03.23 |