1 # 2 # Copyright (C) 2016 The Android Open Source Project 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 # 16 17 ifeq ($(ARCH_ARM_HAVE_NEON),true) 18 19 LOCAL_PATH := $(call my-dir) 20 21 # List of validated intrinsics (copy-pasted from Makefile) 22 ARM_NEON_TESTS_REFNAMES = \ 23 vld1 vadd vld1_lane vld1_dup vdup vget_high vget_low \ 24 vqdmlal_lane vqdmlsl_lane vext vshrn_n vset_lane vget_lane \ 25 vqsub vqdmulh_lane vqdmull vqdmlal vqdmlsl vceq vcge vcle \ 26 vcgt vclt vbsl vshl vldX vdup_lane vrshrn_n vqdmull_lane \ 27 vst1_lane vqshl vqshl_n vqrshrn_n vsub vqadd vabs vqabs \ 28 vcombine vmax vmin vneg vqneg vmlal vmlal_lane vmlsl \ 29 vmlsl_lane vmovl vmovn vmull vmull_lane vrev vrshl vshl_n \ 30 vshr_n vsra_n vtrn vuzp vzip vreinterpret vqdmulh vqrdmulh \ 31 vqrdmulh_lane vqrshl vaba vabal vabd vabdl vand vorr vorn \ 32 veor vbic vcreate vldX_lane vldX_dup vmla vmls vmul \ 33 vmul_lane vmul_n vmull_n vqdmulh_n vqdmull_n vqrdmulh_n \ 34 vmla_lane vmls_lane vmla_n vmls_n vmlal_n vmlsl_n vqdmlal_n \ 35 vqdmlsl_n vsri_n vsli_n vtst vaddhn vraddhn vaddl vaddw \ 36 vhadd vrhadd vhsub vsubl vsubw vsubhn vrsubhn vmvn vqmovn \ 37 vqmovun vrshr_n vrsra_n vshll_n vpaddl vpadd vpadal \ 38 vqshlu_n vclz vcls vcnt vqshrn_n vpmax vpmin vqshrun_n \ 39 vqrshrun_n vstX_lane vtbX vrecpe vrsqrte vcage vcagt vcale \ 40 vcalt vrecps vrsqrts vcvt 41 42 ARM_NEON_TESTS_REFLIST = $(addprefix ref_, $(ARM_NEON_TESTS_REFNAMES)) 43 44 ARM_NEON_TESTS_SOURCES = compute_ref.c \ 45 $(addsuffix .c, $(ARM_NEON_TESTS_REFLIST)) 46 47 ARM_NEON_TESTS_REFGCCARM = stm-arm-neon.gccarm 48 ARM_NEON_TESTS_EXPECTED_INPUT = expected_input4gcc.txt 49 50 ARM_NEON_TESTS_CFLAGS = -DREFFILE=\"$(ARM_NEON_TESTS_REFGCCARM)\" \ 51 -DGCCTESTS_FILE=\"$(ARM_NEON_TESTS_EXPECTED_INPUT)\" 52 53 include $(CLEAR_VARS) 54 LOCAL_MODULE := arm_neon_tests_arm 55 LOCAL_ARM_MODE := arm 56 LOCAL_MODULE_TAGS := optional 57 LOCAL_MODULE_TARGET_ARCH := arm 58 LOCAL_CFLAGS := $(ARM_NEON_TESTS_CFLAGS) 59 LOCAL_SRC_FILES := $(ARM_NEON_TESTS_SOURCES) 60 LOCAL_CXX_STL := none 61 include $(BUILD_NATIVE_TEST) 62 63 include $(CLEAR_VARS) 64 LOCAL_MODULE := arm_neon_tests_thumb 65 LOCAL_ARM_MODE := thumb 66 LOCAL_MODULE_TAGS := optional 67 LOCAL_MODULE_TARGET_ARCH := arm 68 LOCAL_CFLAGS := $(ARM_NEON_TESTS_CFLAGS) 69 LOCAL_SRC_FILES := $(ARM_NEON_TESTS_SOURCES) 70 LOCAL_CXX_STL := none 71 include $(BUILD_NATIVE_TEST) 72 73 endif 74