brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.3 KiB · 014e7d4 Raw
129 lines · cpp
1// REQUIRES: aarch64-registered-target2 3// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s4// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -verify=overload -verify-ignore-unexpected=error,note -emit-llvm -o - %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,A3,A4_UNUSED) A1##A39#else10#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A411#endif12 13#include <arm_sve.h>14 15void test(uint8_t u8, uint16_t u16, uint32_t u32, uint64_t u64)16{17  // expected-error@+2 {{'svaesd_u8' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}18  // overload-error@+1 {{'svaesd' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}19  SVE_ACLE_FUNC(svaesd,_u8,,)(svundef_u8(), svundef_u8());20  // expected-error@+2 {{'svaese_u8' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}21  // overload-error@+1 {{'svaese' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}22  SVE_ACLE_FUNC(svaese,_u8,,)(svundef_u8(), svundef_u8());23  // expected-error@+2 {{'svaesimc_u8' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}24  // overload-error@+1 {{'svaesimc' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}25  SVE_ACLE_FUNC(svaesimc,_u8,,)(svundef_u8());26  // expected-error@+2 {{'svaesmc_u8' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}27  // overload-error@+1 {{'svaesmc' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}28  SVE_ACLE_FUNC(svaesmc,_u8,,)(svundef_u8());29  // expected-error@+2 {{'svbdep_u8' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}30  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}31  SVE_ACLE_FUNC(svbdep,_u8,,)(svundef_u8(), svundef_u8());32  // expected-error@+2 {{'svbdep_n_u8' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}33  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}34  SVE_ACLE_FUNC(svbdep,_n_u8,,)(svundef_u8(), u8);35  // expected-error@+2 {{'svbext_u8' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}36  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}37  SVE_ACLE_FUNC(svbext,_u8,,)(svundef_u8(), svundef_u8());38  // expected-error@+2 {{'svbext_n_u8' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}39  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}40  SVE_ACLE_FUNC(svbext,_n_u8,,)(svundef_u8(), u8);41  // expected-error@+2 {{'svbgrp_u8' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}42  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}43  SVE_ACLE_FUNC(svbgrp,_u8,,)(svundef_u8(), svundef_u8());44  // expected-error@+2 {{'svbgrp_n_u8' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}45  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}46  SVE_ACLE_FUNC(svbgrp,_n_u8,,)(svundef_u8(), u8);47  48  // expected-error@+2 {{'svbdep_u16' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}49  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}50  SVE_ACLE_FUNC(svbdep,_u16,,)(svundef_u16(), svundef_u16());51  // expected-error@+2 {{'svbdep_n_u16' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}52  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}53  SVE_ACLE_FUNC(svbdep,_n_u16,,)(svundef_u16(), u16);54  // expected-error@+2 {{'svbext_u16' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}55  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}56  SVE_ACLE_FUNC(svbext,_u16,,)(svundef_u16(), svundef_u16());57  // expected-error@+2 {{'svbext_n_u16' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}58  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}59  SVE_ACLE_FUNC(svbext,_n_u16,,)(svundef_u16(), u16);60  // expected-error@+2 {{'svbgrp_u16' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}61  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}62  SVE_ACLE_FUNC(svbgrp,_u16,,)(svundef_u16(), svundef_u16());63  // expected-error@+2 {{'svbgrp_n_u16' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}64  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}65  SVE_ACLE_FUNC(svbgrp,_n_u16,,)(svundef_u16(), u16);66  67  // expected-error@+2 {{'svbdep_u32' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}68  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}69  SVE_ACLE_FUNC(svbdep,_u32,,)(svundef_u32(), svundef_u32());70  // expected-error@+2 {{'svbdep_n_u32' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}71  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}72  SVE_ACLE_FUNC(svbdep,_n_u32,,)(svundef_u32(), u32);73  // expected-error@+2 {{'svbext_u32' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}74  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}75  SVE_ACLE_FUNC(svbext,_u32,,)(svundef_u32(), svundef_u32());76  // expected-error@+2 {{'svbext_n_u32' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}77  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}78  SVE_ACLE_FUNC(svbext,_n_u32,,)(svundef_u32(), u32);79  // expected-error@+2 {{'svbgrp_u32' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}80  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}81  SVE_ACLE_FUNC(svbgrp,_u32,,)(svundef_u32(), svundef_u32());82  // expected-error@+2 {{'svbgrp_n_u32' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}83  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}84  SVE_ACLE_FUNC(svbgrp,_n_u32,,)(svundef_u32(), u32);85  // expected-error@+2 {{'svsm4e_u32' needs target feature sve,sve-sm4}}86  // overload-error@+1 {{'svsm4e' needs target feature sve,sve-sm4}}87  SVE_ACLE_FUNC(svsm4e,_u32,,)(svundef_u32(), svundef_u32());88  // expected-error@+2 {{'svsm4ekey_u32' needs target feature sve,sve-sm4}}89  // overload-error@+1 {{'svsm4ekey' needs target feature sve,sve-sm4}}90  SVE_ACLE_FUNC(svsm4ekey,_u32,,)(svundef_u32(), svundef_u32());91  92  // expected-error@+2 {{'svbdep_u64' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}93  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}94  SVE_ACLE_FUNC(svbdep,_u64,,)(svundef_u64(), svundef_u64());95  // expected-error@+2 {{'svbdep_n_u64' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}96  // overload-error@+1 {{'svbdep' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}97  SVE_ACLE_FUNC(svbdep,_n_u64,,)(svundef_u64(), u64);98  // expected-error@+2 {{'svbext_u64' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}99  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}100  SVE_ACLE_FUNC(svbext,_u64,,)(svundef_u64(), svundef_u64());101  // expected-error@+2 {{'svbext_n_u64' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}102  // overload-error@+1 {{'svbext' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}103  SVE_ACLE_FUNC(svbext,_n_u64,,)(svundef_u64(), u64);104  // expected-error@+2 {{'svbgrp_u64' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}105  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}106  SVE_ACLE_FUNC(svbgrp,_u64,,)(svundef_u64(), svundef_u64());107  // expected-error@+2 {{'svbgrp_n_u64' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}108  // overload-error@+1 {{'svbgrp' needs target feature (sve,sve-bitperm)|(sme,ssve-bitperm)}}109  SVE_ACLE_FUNC(svbgrp,_n_u64,,)(svundef_u64(), u64);110  // expected-error@+2 {{'svpmullb_pair_u64' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}111  // overload-error@+1 {{'svpmullb_pair' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}112  SVE_ACLE_FUNC(svpmullb_pair,_u64,,)(svundef_u64(), svundef_u64());113  // expected-error@+2 {{'svpmullb_pair_n_u64' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}114  // overload-error@+1 {{'svpmullb_pair' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}115  SVE_ACLE_FUNC(svpmullb_pair,_n_u64,,)(svundef_u64(), u64);116  // expected-error@+2 {{'svpmullt_pair_u64' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}117  // overload-error@+1 {{'svpmullt_pair' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}118  SVE_ACLE_FUNC(svpmullt_pair,_u64,,)(svundef_u64(), svundef_u64());119  // expected-error@+2 {{'svpmullt_pair_n_u64' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}120  // overload-error@+1 {{'svpmullt_pair' needs target feature (sve,sve-aes)|(sme,ssve-aes)}}}121  SVE_ACLE_FUNC(svpmullt_pair,_n_u64,,)(svundef_u64(), u64);122  // expected-error@+2 {{'svrax1_u64' needs target feature (sve,sve-sha3)|(sme,sme2p1,sve-sha3)}}123  // overload-error@+1 {{'svrax1' needs target feature (sve,sve-sha3)|(sme,sme2p1,sve-sha3)}}124  SVE_ACLE_FUNC(svrax1,_u64,,)(svundef_u64(), svundef_u64());125  // expected-error@+2 {{'svrax1_s64' needs target feature (sve,sve-sha3)|(sme,sme2p1,sve-sha3)}}126  // overload-error@+1 {{'svrax1' needs target feature (sve,sve-sha3)|(sme,sme2p1,sve-sha3)}}127  SVE_ACLE_FUNC(svrax1,_s64,,)(svundef_s64(), svundef_s64());128}129