1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hmz007 6d24f2138b
Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56)
3 years ago
..
Android.bp Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
Init.s Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
InitCache.s Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
LICENSE Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
METADATA Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
MODULE_LICENSE_MIT Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
Makefile Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
Makefile.gcc Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
OWNERS Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
README Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
armscript.inc Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
compute_ref.axf Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
compute_ref.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
compute_ref.gccarm Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
compute_ref.gccarm-rvct Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
compute_ref_data.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
expected_input4gcc-nofp16.txt Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
expected_input4gcc.txt Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
license.html Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref-rvct-all.txt Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref-rvct-neon-nofp16.txt Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref-rvct-neon.txt Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_dsp.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_dspfns.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_integer.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_v_binary_op.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_v_binary_sat_op.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_v_comp_f_op.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_v_comp_op.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_v_unary_op.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_v_unary_sat_op.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vaba.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vabal.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vabd.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vabdl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vabs.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vadd.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vaddhn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vaddl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vaddw.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vand.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vbic.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vbsl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcage.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcagt.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcale.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcalt.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vceq.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcge.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcgt.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcle.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcls.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vclt.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vclz.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcnt.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcombine.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcreate.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vcvt.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vdup.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vdup_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_veor.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vext.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vget_high.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vget_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vget_low.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vhadd.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vhsub.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vld1.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vld1_dup.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vld1_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vldX.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vldX_dup.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vldX_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmax.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmin.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmla.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmla_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmla_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmlal.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmlal_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmlal_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmls.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmls_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmls_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmlsl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmlsl_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmlsl_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmovl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmovn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmul.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmul_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmul_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmull.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmull_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmull_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vmvn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vneg.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vorn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vorr.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vpadal.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vpadd.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vpaddl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vpmax.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vpmin.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqabs.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqadd.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmlal.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmlal_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmlal_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmlsl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmlsl_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmlsl_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmulh.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmulh_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmulh_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmull.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmull_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqdmull_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqmovn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqmovun.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqneg.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqrdmulh.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqrdmulh_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqrdmulh_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqrshl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqrshrn_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqrshrun_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqshl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqshl_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqshlu_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqshrn_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqshrun_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vqsub.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vraddhn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrecpe.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrecps.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vreinterpret.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrev.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrhadd.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrshl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrshr_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrshrn_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrsqrte.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrsqrts.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrsra_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vrsubhn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsXi_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vset_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vshl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vshl_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vshll_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vshr_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vshrn_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsli_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsra_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsri_n.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vst1_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vstX_lane.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsub.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsubhn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsubl.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vsubw.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vtbX.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vtrn.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vtst.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vuzp.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
ref_vzip.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
retarget.c Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
scatter.scat Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago
stm-arm-neon-ref.h Rockchip Anroid12_SDK 20220721-rkr10 (e1522e56) 3 years ago

README

ARM Neon reference tests
========================
This package contains extensive tests for the ARM/Neon instructions.

It works by building a program which uses all of them, and then
executing it on an actual target or a simulator.

It can be used to validate the simulator against an actual HW target,
or to validate C compilers in presence of Neon intrinsics calls.

The supplied Makefile enables to build with both ARM RVCT compiler and
GNU GCC (for the ARM target), and supports execution with ARM RVDEBUG
on an ARM simulator and with QEMU.

For convenience, the ARM ELF binary file (as compiled with RVCT) is
supplied (compute_ref.axf), as well as expected output (ref-rvct.txt).

A second file containing expected output is also supplied:
ref-rvct-neon.txt, which contains only the results of the Neon
instrinsics tests. It is aimed at being used to check GCC's results,
since this compiler does not support the integer & dsp builtins whose
results are also present in ref-rvct.txt.

Typical usage when used to debug QEmu:
$ make all # to build the test program with ARM rvct and execute with QEmu
$ make check # to compare the results with the expected output


Known issues:
-------------
Some tests currently fail to build with GCC/ARM:
- missing include files: dspfns.h, armdsp.h

As GCC/ARM provides no support for the
Neon_Cumulative_Saturation/fpsrc register, auxiliary accessor
functions have been implemented in stm-arm-neon-ref.h.

Engineering:
------------
In order to cover all the Neon instructions extensively, these tests
make intensive use of the C-preprocessor, to save maintenance efforts.

Most tests (the more regular ones) share a common basic structure. In
general, variable names are suffixed by their type name, so as to
differentiate variables with the same purpose but of differente types.
Hence vector1_int8x8, vector1_int16x4 etc...

For instance in ref_vmul.c the layout of the code is as follows:

- declare input and output vectors (named 'vector1', 'vector2' and
  'vector_res') of each possible type (s/u, 8/16/32/64 bits).

- clean the result buffers.

- initialize input vectors 'vector1' and 'vector2'.

- call each variant of the intrinsic and store the result in a buffer
  named 'buffer', whose contents is printed after execution.

One can then compare the actual result with the expected one.