160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# 260fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# Copyright (C) 2016 The Android Open Source Project 360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# 460fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# Licensed under the Apache License, Version 2.0 (the "License"); 560fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# you may not use this file except in compliance with the License. 660fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# You may obtain a copy of the License at 760fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# 860fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# http://www.apache.org/licenses/LICENSE-2.0 960fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# 1060fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# Unless required by applicable law or agreed to in writing, software 1160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# distributed under the License is distributed on an "AS IS" BASIS, 1260fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# See the License for the specific language governing permissions and 1460fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# limitations under the License. 1560fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# 1660fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 1760fd40592419d4254bc40c11c4806619134dc56aVictor Khimenkoifeq ($(ARCH_ARM_HAVE_NEON),true) 1860fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 1960fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_PATH := $(call my-dir) 2060fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 2160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko# List of validated intrinsics (copy-pasted from Makefile) 2260fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoARM_NEON_TESTS_REFNAMES = \ 2360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vld1 vadd vld1_lane vld1_dup vdup vget_high vget_low \ 2460fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqdmlal_lane vqdmlsl_lane vext vshrn_n vset_lane vget_lane \ 2560fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqsub vqdmulh_lane vqdmull vqdmlal vqdmlsl vceq vcge vcle \ 2660fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vcgt vclt vbsl vshl vldX vdup_lane vrshrn_n vqdmull_lane \ 2760fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vst1_lane vqshl vqshl_n vqrshrn_n vsub vqadd vabs vqabs \ 2860fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vcombine vmax vmin vneg vqneg vmlal vmlal_lane vmlsl \ 2960fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vmlsl_lane vmovl vmovn vmull vmull_lane vrev vrshl vshl_n \ 3060fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vshr_n vsra_n vtrn vuzp vzip vreinterpret vqdmulh vqrdmulh \ 3160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqrdmulh_lane vqrshl vaba vabal vabd vabdl vand vorr vorn \ 3260fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko veor vbic vcreate vldX_lane vldX_dup vmla vmls vmul \ 3360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vmul_lane vmul_n vmull_n vqdmulh_n vqdmull_n vqrdmulh_n \ 3460fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vmla_lane vmls_lane vmla_n vmls_n vmlal_n vmlsl_n vqdmlal_n \ 3560fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqdmlsl_n vsri_n vsli_n vtst vaddhn vraddhn vaddl vaddw \ 3660fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vhadd vrhadd vhsub vsubl vsubw vsubhn vrsubhn vmvn vqmovn \ 3760fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqmovun vrshr_n vrsra_n vshll_n vpaddl vpadd vpadal \ 3860fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqshlu_n vclz vcls vcnt vqshrn_n vpmax vpmin vqshrun_n \ 3960fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vqrshrun_n vstX_lane vtbX vrecpe vrsqrte vcage vcagt vcale \ 4060fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko vcalt vrecps vrsqrts vcvt 4160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 4260fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoARM_NEON_TESTS_REFLIST = $(addprefix ref_, $(ARM_NEON_TESTS_REFNAMES)) 4360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 4460fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoARM_NEON_TESTS_SOURCES = compute_ref.c \ 4560fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko $(addsuffix .c, $(ARM_NEON_TESTS_REFLIST)) 4660fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 4760fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoARM_NEON_TESTS_REFGCCARM = stm-arm-neon.gccarm 4860fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoARM_NEON_TESTS_EXPECTED_INPUT = expected_input4gcc.txt 4960fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 5060fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoARM_NEON_TESTS_CFLAGS = -DREFFILE=\"$(ARM_NEON_TESTS_REFGCCARM)\" \ 513de3e4a967a5ec95482a7ce89c9a4d35aa714fd1Victor Khimenko -DGCCTESTS_FILE=\"$(ARM_NEON_TESTS_EXPECTED_INPUT)\" 5260fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 5360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenkoinclude $(CLEAR_VARS) 5460fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_MODULE := arm_neon_tests_arm 5560fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_ARM_MODE := arm 5660fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_MODULE_TAGS := optional 5760fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_MODULE_TARGET_ARCH := arm 5860fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_CFLAGS := $(ARM_NEON_TESTS_CFLAGS) 5960fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_SRC_FILES := $(ARM_NEON_TESTS_SOURCES) 6060fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_CXX_STL := none 6160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenkoinclude $(BUILD_NATIVE_TEST) 6260fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 6360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenkoinclude $(CLEAR_VARS) 6460fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_MODULE := arm_neon_tests_thumb 6560fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_ARM_MODE := thumb 6660fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_MODULE_TAGS := optional 6760fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_MODULE_TARGET_ARCH := arm 6860fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_CFLAGS := $(ARM_NEON_TESTS_CFLAGS) 6960fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_SRC_FILES := $(ARM_NEON_TESTS_SOURCES) 7060fd40592419d4254bc40c11c4806619134dc56aVictor KhimenkoLOCAL_CXX_STL := none 7160fd40592419d4254bc40c11c4806619134dc56aVictor Khimenkoinclude $(BUILD_NATIVE_TEST) 7260fd40592419d4254bc40c11c4806619134dc56aVictor Khimenko 7360fd40592419d4254bc40c11c4806619134dc56aVictor Khimenkoendif 74