brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · 21c2497 Raw
203 lines · c
1// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +neon -target-feature +v8.3a -ffreestanding -fsyntax-only -verify %s2// REQUIRES: aarch64-registered-target3 4#include <arm_neon.h>5#include <arm_fp16.h>6 7void test_vcmla_lane_f16(float16x4_t a, float16x4_t b, float16x4_t c){8  vcmla_lane_f16(a, b, c, 0);9  vcmla_lane_f16(a, b, c, 1);10 11  vcmla_lane_f16(a, b, c, 2); // expected-error-re +{{argument value {{.*}} is outside the valid range}}12  vcmla_lane_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}13}14 15void test_vcmla_laneq_f16(float16x4_t a, float16x4_t b, float16x8_t c){16  vcmla_laneq_f16(a, b, c, 0);17  vcmla_laneq_f16(a, b, c, 1);18  vcmla_laneq_f16(a, b, c, 3);19 20  vcmla_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}21  vcmla_laneq_f16(a, b, c, 4);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}22}23 24void test_vcmlaq_lane_f16(float16x8_t a, float16x8_t b, float16x4_t c){25  vcmlaq_lane_f16(a, b, c, 0);26  vcmlaq_lane_f16(a, b, c, 1);27 28  vcmlaq_lane_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}29  vcmlaq_lane_f16(a, b, c, 2);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}30}31 32void test_vcmlaq_laneq_f16(float16x8_t a, float16x8_t b, float16x8_t c){33  vcmlaq_laneq_f16(a, b, c, 0);34  vcmlaq_laneq_f16(a, b, c, 1);35  vcmlaq_laneq_f16(a, b, c, 3);36 37  vcmlaq_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}38  vcmlaq_laneq_f16(a, b, c, 4);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}39}40 41void test_vcmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c){42  vcmla_lane_f32(a, b, c, 0);43 44  vcmla_lane_f32(a, b, c, 1); // expected-error-re {{argument value {{.*}} is outside the valid range}}45  vcmla_lane_f32(a, b, c, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}46  vcmla_lane_f32(a, b, c, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}47}48 49void test_vcmla_laneq_f32(float32x2_t a, float32x2_t b, float32x4_t c){50  vcmla_laneq_f32(a, b, c, 0);51 52  vcmla_laneq_f32(a, b, c, 2); // expected-error-re {{argument value {{.*}} is outside the valid range}}53  vcmla_laneq_f32(a, b, c, -1); // expected-error-re {{argument value {{.*}} is outside the valid range}}54}55 56void test_vcmlaq_laneq_f32(float32x4_t a, float32x4_t b, float32x4_t c){57  vcmlaq_laneq_f32(a, b, c, 0);58  vcmlaq_laneq_f32(a, b, c, 1);59 60  vcmlaq_laneq_f32(a, b, c, 2); // expected-error-re +{{argument value {{.*}} is outside the valid range}}61  vcmlaq_laneq_f32(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}62}63 64void test_vcmla_rot90_lane_f16(float16x4_t a, float16x4_t b, float16x4_t c){65  vcmla_rot90_lane_f16(a, b, c, 0);66  vcmla_rot90_lane_f16(a, b, c, 1);67 68  vcmla_rot90_lane_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}69  vcmla_rot90_lane_f16(a, b, c, 2); // expected-error-re +{{argument value {{.*}} is outside the valid range}}70}71 72void test_vcmla_rot90_laneq_f16(float16x4_t a, float16x4_t b, float16x8_t c){73  vcmla_rot90_laneq_f16(a, b, c, 0);74  vcmla_rot90_laneq_f16(a, b, c, 3);75 76  vcmla_rot90_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}77  vcmla_rot90_laneq_f16(a, b, c, 4); // expected-error-re +{{argument value {{.*}} is outside the valid range}}78}79 80void test_vcmlaq_rot90_laneq_f16(float16x8_t a, float16x8_t b, float16x8_t c){81  vcmlaq_rot90_laneq_f16(a, b, c, 0);82  vcmlaq_rot90_laneq_f16(a, b, c, 3);83 84  vcmlaq_rot90_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}85  vcmlaq_rot90_laneq_f16(a, b, c, 4); // expected-error-re +{{argument value {{.*}} is outside the valid range}}86}87 88void test_vcmla_rot180_lane_f16(float16x4_t a, float16x4_t b, float16x4_t c){89  vcmla_rot180_lane_f16(a, b, c, 0);90  vcmla_rot180_lane_f16(a, b, c, 1);91 92  vcmla_rot180_lane_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}93  vcmla_rot180_lane_f16(a, b, c, 2); // expected-error-re +{{argument value {{.*}} is outside the valid range}}94}95 96void test_vcmla_rot180_laneq_f16(float16x4_t a, float16x4_t b, float16x8_t c){97  vcmla_rot180_laneq_f16(a, b, c, 0);98  vcmla_rot180_laneq_f16(a, b, c, 3);99 100  vcmla_rot180_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}101  vcmla_rot180_laneq_f16(a, b, c, 4); // expected-error-re +{{argument value {{.*}} is outside the valid range}}102}103 104void test_vcmlaq_rot180_laneq_f16(float16x8_t a, float16x8_t b, float16x8_t c){105  vcmlaq_rot180_laneq_f16(a, b, c, 0);106  vcmlaq_rot180_laneq_f16(a, b, c, 3);107 108  vcmlaq_rot180_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}109  vcmlaq_rot180_laneq_f16(a, b, c, 4); // expected-error-re +{{argument value {{.*}} is outside the valid range}}110}111 112void test_vcmla_rot270_lane_f16(float16x4_t a, float16x4_t b, float16x4_t c){113  vcmla_rot270_lane_f16(a, b, c, 0);114  vcmla_rot270_lane_f16(a, b, c, 1);115 116  vcmla_rot270_lane_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}117  vcmla_rot270_lane_f16(a, b, c, 2); // expected-error-re +{{argument value {{.*}} is outside the valid range}}118}119 120void test_vcmla_rot270_laneq_f16(float16x4_t a, float16x4_t b, float16x8_t c){121  vcmla_rot270_laneq_f16(a, b, c, 0);122  vcmla_rot270_laneq_f16(a, b, c, 3);123 124  vcmla_rot270_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}125  vcmla_rot270_laneq_f16(a, b, c, 4); // expected-error-re +{{argument value {{.*}} is outside the valid range}}126}127 128void test_vcmlaq_rot270_laneq_f16(float16x8_t a, float16x8_t b, float16x8_t c){129  vcmlaq_rot270_laneq_f16(a, b, c, 0);130  vcmlaq_rot270_laneq_f16(a, b, c, 3);131 132  vcmlaq_rot270_laneq_f16(a, b, c, -1); // expected-error-re +{{argument value {{.*}} is outside the valid range}}133  vcmlaq_rot270_laneq_f16(a, b, c, 4); // expected-error-re +{{argument value {{.*}} is outside the valid range}}134}135 136void test_vcmla_rot90_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c){137  vcmla_rot90_lane_f32(a, b, c, 0);138 139  vcmla_rot90_lane_f32(a, b, c, 1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}140  vcmla_rot90_lane_f32(a, b, c, -1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}141}142 143void test_vcmla_rot90_laneq_f32(float32x2_t a, float32x2_t b, float32x4_t c){144  vcmla_rot90_laneq_f32(a, b, c, 0);145  vcmla_rot90_laneq_f32(a, b, c, 1);146 147  vcmla_rot90_laneq_f32(a, b, c, 2);  // expected-error-re {{argument value {{.*}} is outside the valid range}}148  vcmla_rot90_laneq_f32(a, b, c, -1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}149}150 151void test_vcmlaq_rot90_laneq_f32(float32x4_t a, float32x4_t b, float32x4_t c){152  vcmlaq_rot90_laneq_f32(a, b, c, 0);153  vcmlaq_rot90_laneq_f32(a, b, c, 1);154 155  vcmlaq_rot90_laneq_f32(a, b, c, 2);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}156  vcmlaq_rot90_laneq_f32(a, b, c, -1);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}157}158 159void test_vcmla_rot180_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c){160  vcmla_rot180_lane_f32(a, b, c, 0);161 162  vcmla_rot180_lane_f32(a, b, c, 1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}163  vcmla_rot180_lane_f32(a, b, c, -1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}164}165 166void test_vcmla_rot180_laneq_f32(float32x2_t a, float32x2_t b, float32x4_t c){167  vcmla_rot180_laneq_f32(a, b, c, 0);168  vcmla_rot180_laneq_f32(a, b, c, 1);169 170  vcmla_rot180_laneq_f32(a, b, c, 2);  // expected-error-re {{argument value {{.*}} is outside the valid range}}171  vcmla_rot180_laneq_f32(a, b, c, -1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}172}173 174void test_vcmlaq_rot180_laneq_f32(float32x4_t a, float32x4_t b, float32x4_t c){175  vcmlaq_rot90_laneq_f32(a, b, c, 0);176  vcmlaq_rot90_laneq_f32(a, b, c, 1);177 178  vcmlaq_rot90_laneq_f32(a, b, c, 2);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}179  vcmlaq_rot90_laneq_f32(a, b, c, -1);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}180}181 182void test_vcmla_rot270_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c){183  vcmla_rot270_lane_f32(a, b, c, 0);184 185  vcmla_rot270_lane_f32(a, b, c, 1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}186  vcmla_rot270_lane_f32(a, b, c, -1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}187}188 189void test_vcmla_rot270_laneq_f32(float32x2_t a, float32x2_t b, float32x4_t c){190  vcmla_rot270_laneq_f32(a, b, c, 0);191  vcmla_rot270_laneq_f32(a, b, c, 1);192 193  vcmla_rot270_laneq_f32(a, b, c, 2);  // expected-error-re {{argument value {{.*}} is outside the valid range}}194  vcmla_rot270_laneq_f32(a, b, c, -1);  // expected-error-re {{argument value {{.*}} is outside the valid range}}195}196 197void test_vcmlaq_rot270_laneq_f32(float32x4_t a, float32x4_t b, float32x4_t c){198  vcmlaq_rot270_laneq_f32(a, b, c, 0);199  vcmlaq_rot270_laneq_f32(a, b, c, 1);200 201  vcmlaq_rot270_laneq_f32(a, b, c, 2);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}202  vcmlaq_rot270_laneq_f32(a, b, c, -1);  // expected-error-re +{{argument value {{.*}} is outside the valid range}}203}