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 36ed224bac
Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
1 year ago
..
Android.bp Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
Init.s Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
InitCache.s Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
LICENSE Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
METADATA Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
MODULE_LICENSE_MIT Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
Makefile Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
Makefile.gcc Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
OWNERS Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
README Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
armscript.inc Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
compute_ref.axf Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
compute_ref.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
compute_ref.gccarm Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
compute_ref.gccarm-rvct Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
compute_ref_data.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
expected_input4gcc-nofp16.txt Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
expected_input4gcc.txt Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
license.html Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref-rvct-all.txt Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref-rvct-neon-nofp16.txt Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref-rvct-neon.txt Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_dsp.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_dspfns.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_integer.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_v_binary_op.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_v_binary_sat_op.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_v_comp_f_op.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_v_comp_op.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_v_unary_op.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_v_unary_sat_op.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vaba.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vabal.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vabd.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vabdl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vabs.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vadd.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vaddhn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vaddl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vaddw.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vand.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vbic.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vbsl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcage.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcagt.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcale.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcalt.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vceq.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcge.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcgt.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcle.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcls.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vclt.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vclz.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcnt.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcombine.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcreate.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vcvt.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vdup.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vdup_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_veor.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vext.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vget_high.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vget_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vget_low.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vhadd.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vhsub.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vld1.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vld1_dup.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vld1_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vldX.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vldX_dup.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vldX_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmax.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmin.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmla.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmla_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmla_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmlal.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmlal_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmlal_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmls.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmls_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmls_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmlsl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmlsl_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmlsl_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmovl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmovn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmul.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmul_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmul_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmull.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmull_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmull_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vmvn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vneg.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vorn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vorr.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vpadal.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vpadd.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vpaddl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vpmax.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vpmin.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqabs.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqadd.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmlal.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmlal_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmlal_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmlsl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmlsl_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmlsl_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmulh.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmulh_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmulh_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmull.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmull_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqdmull_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqmovn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqmovun.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqneg.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqrdmulh.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqrdmulh_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqrdmulh_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqrshl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqrshrn_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqrshrun_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqshl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqshl_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqshlu_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqshrn_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqshrun_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vqsub.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vraddhn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrecpe.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrecps.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vreinterpret.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrev.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrhadd.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrshl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrshr_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrshrn_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrsqrte.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrsqrts.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrsra_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vrsubhn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsXi_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vset_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vshl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vshl_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vshll_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vshr_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vshrn_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsli_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsra_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsri_n.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vst1_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vstX_lane.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsub.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsubhn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsubl.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vsubw.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vtbX.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vtrn.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vtst.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vuzp.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
ref_vzip.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
retarget.c Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
scatter.scat Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
stm-arm-neon-ref.h Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year 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.