The source as below:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <arm_neon.h>
int process(){
__fp16* zcb_hal16 = (__fp16*)malloc(100);
zcb_hal16[0] = 0;
float16x8_t vblkA0, vblkB0, vblkC0;
vblkC0 = vfmaq_n_f16(vblkC0, vblkB0, vblkA0[0]);
__asm __volatile("fmla %[c0].8h, %[b0].8h, %[a0].h[0]" : [c0]
"+w"(vblkC0) : [b0] "w"(vblkB0), [a0] "w"(vblkA0));
return 0;
}
int main()
{
printf("start...\n");
process();
printf("ok...\n");
return 0;
}
The compile tool: clang 6
The compile args: clang ./test.cpp
The output as below:
localhost:~/workspace/neonfp16_test/jni # valgrind ./a.out
==9762== Memcheck, a memory error detector
==9762== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==9762== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==9762== Command: ./a.out
==9762==
start...
disInstr(arm64): unhandled instruction 0x1EE703E0
disInstr(arm64): 0001'1110 1110'0111 0000'0011 1110'0000
==9762== valgrind: Unrecognised instruction at address 0x4005f8.
==9762== at 0x4005F8: process() (in /root/workspace/neonfp16_test/jni/a.out)
==9762== by 0x4006C7: main (in /root/workspace/neonfp16_test/jni/a.out)
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users