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 17ifeq ($(ARCH_ARM_HAVE_NEON),true) 18 19LOCAL_PATH := $(call my-dir) 20 21# List of validated intrinsics (copy-pasted from Makefile) 22ARM_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 42ARM_NEON_TESTS_REFLIST = $(addprefix ref_, $(ARM_NEON_TESTS_REFNAMES)) 43 44ARM_NEON_TESTS_SOURCES = compute_ref.c \ 45 $(addsuffix .c, $(ARM_NEON_TESTS_REFLIST)) 46 47ARM_NEON_TESTS_REFGCCARM = stm-arm-neon.gccarm 48ARM_NEON_TESTS_EXPECTED_INPUT = expected_input4gcc.txt 49 50ARM_NEON_TESTS_CFLAGS = -DREFFILE=\"$(ARM_NEON_TESTS_REFGCCARM)\" \ 51 -DGCCTESTS_FILE=\"$(ARM_NEON_TESTS_EXPECTED_INPUT)\" 52 53include $(CLEAR_VARS) 54LOCAL_MODULE := arm_neon_tests_arm 55LOCAL_ARM_MODE := arm 56LOCAL_MODULE_TAGS := optional 57LOCAL_MODULE_TARGET_ARCH := arm 58LOCAL_CFLAGS := $(ARM_NEON_TESTS_CFLAGS) 59LOCAL_SRC_FILES := $(ARM_NEON_TESTS_SOURCES) 60LOCAL_CXX_STL := none 61include $(BUILD_NATIVE_TEST) 62 63include $(CLEAR_VARS) 64LOCAL_MODULE := arm_neon_tests_thumb 65LOCAL_ARM_MODE := thumb 66LOCAL_MODULE_TAGS := optional 67LOCAL_MODULE_TARGET_ARCH := arm 68LOCAL_CFLAGS := $(ARM_NEON_TESTS_CFLAGS) 69LOCAL_SRC_FILES := $(ARM_NEON_TESTS_SOURCES) 70LOCAL_CXX_STL := none 71include $(BUILD_NATIVE_TEST) 72 73endif 74