brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.3 KiB · 9be83f4 Raw
216 lines · cpp
1// REQUIRES: aarch64-registered-target2 3// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sve2 -fsyntax-only -verify %s4// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sve2 -fsyntax-only -verify %s5 6#ifdef SVE_OVERLOADED_FORMS7// A simple used,unused... macro, long enough to represent any SVE builtin.8#define SVE_ACLE_FUNC(A1, A2_UNUSED) A19#else10#define SVE_ACLE_FUNC(A1,A2) A1##A211#endif12 13#include <arm_sve.h>14 15void test_range_0_7()16{17  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}18  SVE_ACLE_FUNC(svmla_lane,_s16)(svundef_s16(), svundef_s16(), svundef_s16(), 8);19  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}20  SVE_ACLE_FUNC(svmla_lane,_u16)(svundef_u16(), svundef_u16(), svundef_u16(), -1);21  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}22  SVE_ACLE_FUNC(svmlalb_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);23  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}24  SVE_ACLE_FUNC(svmlalb_lane,_u32)(svundef_u32(), svundef_u16(), svundef_u16(), 8);25  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}26  SVE_ACLE_FUNC(svmlalb_lane,_f32)(svundef_f32(), svundef_f16(), svundef_f16(), -1);27  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}28  SVE_ACLE_FUNC(svmlalt_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);29  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}30  SVE_ACLE_FUNC(svmlalt_lane,_u32)(svundef_u32(), svundef_u16(), svundef_u16(), 8);31  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}32  SVE_ACLE_FUNC(svmlalt_lane,_f32)(svundef_f32(), svundef_f16(), svundef_f16(), -1);33  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}34  SVE_ACLE_FUNC(svmls_lane,_s16)(svundef_s16(), svundef_s16(), svundef_s16(), -1);35  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}36  SVE_ACLE_FUNC(svmls_lane,_u16)(svundef_u16(), svundef_u16(), svundef_u16(), 8);37  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}38  SVE_ACLE_FUNC(svmlslb_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(),  -1);39  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}40  SVE_ACLE_FUNC(svmlslb_lane,_u32)(svundef_u32(), svundef_u16(), svundef_u16(), 8);41  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}42  SVE_ACLE_FUNC(svmlslb_lane,_f32)(svundef_f32(), svundef_f16(), svundef_f16(), -1);43  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}44  SVE_ACLE_FUNC(svmlslt_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);45  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}46  SVE_ACLE_FUNC(svmlslt_lane,_u32)(svundef_u32(), svundef_u16(), svundef_u16(), 8);47  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}48  SVE_ACLE_FUNC(svmlslt_lane,_f32)(svundef_f32(), svundef_f16(), svundef_f16(), -1);49  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}50  SVE_ACLE_FUNC(svmul_lane,_s16)(svundef_s16(), svundef_s16(), 8);51  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}52  SVE_ACLE_FUNC(svmul_lane,_u16)(svundef_u16(), svundef_u16(), -1);53  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}54  SVE_ACLE_FUNC(svmullb_lane,_s32)(svundef_s16(), svundef_s16(), -1);55  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}56  SVE_ACLE_FUNC(svmullb_lane,_u32)(svundef_u16(), svundef_u16(), 8);57  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}58  SVE_ACLE_FUNC(svmullt_lane,_s32)(svundef_s16(), svundef_s16(), 8);59  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}60  SVE_ACLE_FUNC(svmullt_lane,_u32)(svundef_u16(), svundef_u16(), -1);61  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}62  SVE_ACLE_FUNC(svqdmlalb_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);63  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}64  SVE_ACLE_FUNC(svqdmlalt_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);65  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}66  SVE_ACLE_FUNC(svqdmulh_lane,_s16)(svundef_s16(), svundef_s16(), -1);67  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}68  SVE_ACLE_FUNC(svqdmlslb_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);69  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}70  SVE_ACLE_FUNC(svqdmlslt_lane,_s32)(svundef_s32(), svundef_s16(), svundef_s16(), -1);71  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}72  SVE_ACLE_FUNC(svqdmullb_lane,_s32)(svundef_s16(), svundef_s16(), -1);73  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}74  SVE_ACLE_FUNC(svqdmullt_lane,_s32)(svundef_s16(), svundef_s16(), -1);75  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}76  SVE_ACLE_FUNC(svqrdmlah_lane,_s16)(svundef_s16(), svundef_s16(), svundef_s16(), -1);77  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}78  SVE_ACLE_FUNC(svqrdmlsh_lane,_s16)(svundef_s16(), svundef_s16(), svundef_s16(), -1);79  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}80  SVE_ACLE_FUNC(svqrdmulh_lane,_s16)(svundef_s16(), svundef_s16(), -1);81  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}82  SVE_ACLE_FUNC(svluti2_lane,_s16)(svundef_s16(), svundef_u8(), -1);83  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}84  SVE_ACLE_FUNC(svluti2_lane,_u16)(svundef_u16(), svundef_u8(), -1);85  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}86  SVE_ACLE_FUNC(svluti2_lane,_f16)(svundef_f16(), svundef_u8(), -1);87  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}88  SVE_ACLE_FUNC(svluti2_lane,_bf16)(svundef_bf16(), svundef_u8(), -1);89}90 91void test_range_0_3()92{93  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}94  SVE_ACLE_FUNC(svcdot_lane,_s32)(svundef_s32(), svundef_s8(), svundef_s8(), -1, 0);95  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}96  SVE_ACLE_FUNC(svcmla_lane,_s16)(svundef_s16(), svundef_s16(), svundef_s16(), -1, 0);97  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}98  SVE_ACLE_FUNC(svcmla_lane,_u16)(svundef_u16(), svundef_u16(), svundef_u16(), -1, 0);99  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}100  SVE_ACLE_FUNC(svmla_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), -1);101  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}102  SVE_ACLE_FUNC(svmla_lane,_u32)(svundef_u32(), svundef_u32(), svundef_u32(), 4);103  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}104  SVE_ACLE_FUNC(svmlalb_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), -1);105  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}106  SVE_ACLE_FUNC(svmlalb_lane,_u64)(svundef_u64(), svundef_u32(), svundef_u32(), 4);107  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}108  SVE_ACLE_FUNC(svmlalt_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), -1);109  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}110  SVE_ACLE_FUNC(svmlalt_lane,_u64)(svundef_u64(), svundef_u32(), svundef_u32(), 4);111  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}112  SVE_ACLE_FUNC(svmls_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), 4);113  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}114  SVE_ACLE_FUNC(svmls_lane,_u32)(svundef_u32(), svundef_u32(), svundef_u32(), -1);115  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}116  SVE_ACLE_FUNC(svmlslb_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), -1);117  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}118  SVE_ACLE_FUNC(svmlslb_lane,_u64)(svundef_u64(), svundef_u32(), svundef_u32(), 4);119  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}120  SVE_ACLE_FUNC(svmlslt_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), -1);121  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}122  SVE_ACLE_FUNC(svmlslt_lane,_u64)(svundef_u64(), svundef_u32(), svundef_u32(), 4);123  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}124  SVE_ACLE_FUNC(svmul_lane,_s32)(svundef_s32(), svundef_s32(), -1);125  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}126  SVE_ACLE_FUNC(svmul_lane,_u32)(svundef_u32(), svundef_u32(), 4);127  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}128  SVE_ACLE_FUNC(svmullb_lane,_s64)(svundef_s32(), svundef_s32(), 4);129  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}130  SVE_ACLE_FUNC(svmullb_lane,_u64)(svundef_u32(), svundef_u32(), -1);131  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}132  SVE_ACLE_FUNC(svmullt_lane,_s64)(svundef_s32(), svundef_s32(), -1);133  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}134  SVE_ACLE_FUNC(svmullt_lane,_u64)(svundef_u32(), svundef_u32(), 4);135  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}136  SVE_ACLE_FUNC(svqdmulh_lane,_s32)(svundef_s32(), svundef_s32(), 4);137  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}138  SVE_ACLE_FUNC(svqrdcmlah_lane,_s16)(svundef_s16(), svundef_s16(), svundef_s16(), -1, 0);139  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}140  SVE_ACLE_FUNC(svqrdmlah_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), 4);141  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}142  SVE_ACLE_FUNC(svqdmlalb_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), 4);143  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}144  SVE_ACLE_FUNC(svqdmlalt_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), 4);145  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}146  SVE_ACLE_FUNC(svqrdmlsh_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), 4);147  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}148  SVE_ACLE_FUNC(svqdmlslb_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), 4);149  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}150  SVE_ACLE_FUNC(svqdmlslt_lane,_s64)(svundef_s64(), svundef_s32(), svundef_s32(), 4);151  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}152  SVE_ACLE_FUNC(svqrdmulh_lane,_s32)(svundef_s32(), svundef_s32(), 4);153  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}154  SVE_ACLE_FUNC(svqdmullb_lane,_s64)(svundef_s32(), svundef_s32(), 4);155  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}156  SVE_ACLE_FUNC(svqdmullt_lane,_s64)(svundef_s32(), svundef_s32(), -1);157  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}158  SVE_ACLE_FUNC(svluti2_lane,_s8)(svundef_s8(), svundef_u8(), -1);159  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}160  SVE_ACLE_FUNC(svluti2_lane,_u8)(svundef_u8(), svundef_u8(), -1);161  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}162  SVE_ACLE_FUNC(svluti4_lane,_s16)(svundef_s16(), svundef_u8(), -1);163  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}164  SVE_ACLE_FUNC(svluti4_lane,_u16)(svundef_u16(), svundef_u8(), -1);165  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}166  SVE_ACLE_FUNC(svluti4_lane,_f16)(svundef_f16(), svundef_u8(), -1);167  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}168  SVE_ACLE_FUNC(svluti4_lane,_bf16)(svundef_bf16(), svundef_u8(), -1);169  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}170  SVE_ACLE_FUNC(svluti4_lane,_s16_x2)(svcreate2_s16(svundef_s16(),svundef_s16()), svundef_u8(), -1);171  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}172  SVE_ACLE_FUNC(svluti4_lane,_u16_x2)(svcreate2_u16(svundef_u16(),svundef_u16()), svundef_u8(), -1);173  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}174  SVE_ACLE_FUNC(svluti4_lane,_f16_x2)(svcreate2_f16(svundef_f16(),svundef_f16()), svundef_u8(), -1);175  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}176  SVE_ACLE_FUNC(svluti4_lane,_bf16_x2)(svcreate2_bf16(svundef_bf16(),svundef_bf16()), svundef_u8(), -1);177}178 179void test_range_0_1()180{181  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}182  SVE_ACLE_FUNC(svcdot_lane,_s64)(svundef_s64(), svundef_s16(), svundef_s16(), -1, 0);183  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}184  SVE_ACLE_FUNC(svcmla_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), -1, 0);185  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}186  SVE_ACLE_FUNC(svcmla_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), 2, 0);187  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}188  SVE_ACLE_FUNC(svcmla_lane,_u32)(svundef_u32(), svundef_u32(), svundef_u32(), -1, 0);189  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}190  SVE_ACLE_FUNC(svmla_lane,_s64)(svundef_s64(), svundef_s64(), svundef_s64(), 2);191  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}192  SVE_ACLE_FUNC(svmla_lane,_u64)(svundef_u64(), svundef_u64(), svundef_u64(), -1);193  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}194  SVE_ACLE_FUNC(svmls_lane,_s64)(svundef_s64(), svundef_s64(), svundef_s64(), -1);195  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}196  SVE_ACLE_FUNC(svmls_lane,_u64)(svundef_u64(), svundef_u64(), svundef_u64(), 2);197  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}198  SVE_ACLE_FUNC(svmul_lane,_s64)(svundef_s64(), svundef_s64(), 2);199  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}200  SVE_ACLE_FUNC(svmul_lane,_u64)(svundef_u64(), svundef_u64(), -1);201  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}202  SVE_ACLE_FUNC(svqdmulh_lane,_s64)(svundef_s64(), svundef_s64(), 2);203  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}204  SVE_ACLE_FUNC(svqrdcmlah_lane,_s32)(svundef_s32(), svundef_s32(), svundef_s32(), 2, 0);205  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}206  SVE_ACLE_FUNC(svqrdmlah_lane,_s64)(svundef_s64(), svundef_s64(), svundef_s64(), 2);207  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}208  SVE_ACLE_FUNC(svqrdmlsh_lane,_s64)(svundef_s64(), svundef_s64(), svundef_s64(), 2);209  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}210  SVE_ACLE_FUNC(svqrdmulh_lane,_s64)(svundef_s64(), svundef_s64(), 2);211  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}212  SVE_ACLE_FUNC(svluti4_lane,_s8)(svundef_s8(), svundef_u8(), -1);213  // expected-error-re@+1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}214  SVE_ACLE_FUNC(svluti4_lane,_u8)(svundef_u8(), svundef_u8(), -1);215}216