brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 8bfe3ac Raw
55 lines · c
1// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +neon -target-feature +bf16 -target-feature +faminmax -target-feature +fp8 -emit-llvm -verify %s -o /dev/null2 3// REQUIRES: aarch64-registered-target4 5#include <arm_neon.h>6 7void test_features(float16x4_t vd4, float16x8_t vd8, float32x4_t va4, float32x2_t va2,8                   mfloat8x8_t v8, mfloat8x16_t v16, fpm_t fpm) {9  (void) vdot_f16_mf8_fpm(vd4, v8, v8, fpm);10// expected-error@-1 {{'vdot_f16_mf8_fpm' requires target feature 'fp8dot2'}}11  (void) vdotq_f16_mf8_fpm(vd8, v16, v16, fpm);12// expected-error@-1 {{'vdotq_f16_mf8_fpm' requires target feature 'fp8dot2'}}13  (void) vdot_lane_f16_mf8_fpm(vd4, v8, v8, 3, fpm);14// expected-error@-1 {{'__builtin_neon_vdot_lane_f16_mf8_fpm' needs target feature fp8dot2,neon}}15  (void) vdot_laneq_f16_mf8_fpm(vd4, v8, v16, 7, fpm);16// expected-error@-1 {{'__builtin_neon_vdot_laneq_f16_mf8_fpm' needs target feature fp8dot2,neon}}17  (void) vdotq_lane_f16_mf8_fpm(vd8, v16, v8, 3, fpm);18// expected-error@-1 {{'__builtin_neon_vdotq_lane_f16_mf8_fpm' needs target feature fp8dot2,neon}}19  (void) vdotq_laneq_f16_mf8_fpm(vd8, v16, v16, 7, fpm);20// expected-error@-1 {{'__builtin_neon_vdotq_laneq_f16_mf8_fpm' needs target feature fp8dot2,neon}}21 22  (void) vdot_f32_mf8_fpm(va2, v8, v8, fpm);23// expected-error@-1 {{'vdot_f32_mf8_fpm' requires target feature 'fp8dot4'}}24  (void) vdotq_f32_mf8_fpm(va4, v16, v16, fpm);25// expected-error@-1 {{'vdotq_f32_mf8_fpm' requires target feature 'fp8dot4}}26  (void) vdot_lane_f32_mf8_fpm(va2, v8, v8, 1, fpm);27// expected-error@-1 {{'__builtin_neon_vdot_lane_f32_mf8_fpm' needs target feature fp8dot4,neon}}28  (void) vdot_laneq_f32_mf8_fpm(va2, v8, v16, 3, fpm);29// expected-error@-1 {{'__builtin_neon_vdot_laneq_f32_mf8_fpm' needs target feature fp8dot4,neon}}30  (void) vdotq_lane_f32_mf8_fpm(va4, v16, v8, 1, fpm);31// expected-error@-1 {{'__builtin_neon_vdotq_lane_f32_mf8_fpm' needs target feature fp8dot4,neon}}32  (void) vdotq_laneq_f32_mf8_fpm(va4, v16, v16, 3, fpm);33// expected-error@-1 {{'__builtin_neon_vdotq_laneq_f32_mf8_fpm' needs target feature fp8dot4,neon}}34}35 36void test_imm(float16x4_t vd4, float16x8_t vd8, float32x2_t va2, float32x4_t va4,37              mfloat8x8_t v8, mfloat8x16_t v16, fpm_t fpm) {38  (void) vdot_lane_f16_mf8_fpm(vd4, v8, v8, -1, fpm);39  // expected-error@-1 {{argument value -1 is outside the valid range [0, 3]}}40  (void) vdot_laneq_f16_mf8_fpm(vd4, v8, v16, -1, fpm);41  // expected-error@-1 {{argument value -1 is outside the valid range [0, 7]}}42  (void) vdotq_lane_f16_mf8_fpm(vd8, v16, v8, -1, fpm);43  // expected-error@-1 {{argument value -1 is outside the valid range [0, 3]}}44  (void) vdotq_laneq_f16_mf8_fpm(vd8, v16, v16, -1, fpm);45  // expected-error@-1 {{argument value -1 is outside the valid range [0, 7]}}46  (void) vdot_lane_f32_mf8_fpm(va2, v8, v8, -1, fpm);47  // expected-error@-1 {{argument value -1 is outside the valid range [0, 1]}}48  (void) vdot_laneq_f32_mf8_fpm(va2, v8, v16, -1, fpm);49  // expected-error@-1 {{argument value -1 is outside the valid range [0, 3]}}50  (void) vdotq_lane_f32_mf8_fpm(va4, v16, v8, -1, fpm);51  // expected-error@-1 {{argument value -1 is outside the valid range [0, 1]}}52  (void) vdotq_laneq_f32_mf8_fpm(va4, v16, v16, -1, fpm);53  // expected-error@-1 {{argument value -1 is outside the valid range [0, 3]}}54}55