File: acle_sve2_aes_bitperm_sha3_sm4.cpp

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (129 lines) | stat: -rw-r--r-- 7,971 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// REQUIRES: aarch64-registered-target

// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fsyntax-only -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s
// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fsyntax-only -verify=overload -verify-ignore-unexpected=error,note -emit-llvm -o - %s

#ifdef SVE_OVERLOADED_FORMS
// A simple used,unused... macro, long enough to represent any SVE builtin.
#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
#else
#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
#endif

#include <arm_sve.h>

void test(uint8_t u8, uint16_t u16, uint32_t u32, uint64_t u64)
{
  // expected-error@+2 {{'svaesd_u8' needs target feature sve2-aes}}
  // overload-error@+1 {{'svaesd' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svaesd,_u8,,)(svundef_u8(), svundef_u8());
  // expected-error@+2 {{'svaese_u8' needs target feature sve2-aes}}
  // overload-error@+1 {{'svaese' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svaese,_u8,,)(svundef_u8(), svundef_u8());
  // expected-error@+2 {{'svaesimc_u8' needs target feature sve2-aes}}
  // overload-error@+1 {{'svaesimc' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svaesimc,_u8,,)(svundef_u8());
  // expected-error@+2 {{'svaesmc_u8' needs target feature sve2-aes}}
  // overload-error@+1 {{'svaesmc' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svaesmc,_u8,,)(svundef_u8());
  // expected-error@+2 {{'svbdep_u8' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_u8,,)(svundef_u8(), svundef_u8());
  // expected-error@+2 {{'svbdep_n_u8' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_n_u8,,)(svundef_u8(), u8);
  // expected-error@+2 {{'svbext_u8' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_u8,,)(svundef_u8(), svundef_u8());
  // expected-error@+2 {{'svbext_n_u8' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_n_u8,,)(svundef_u8(), u8);
  // expected-error@+2 {{'svbgrp_u8' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_u8,,)(svundef_u8(), svundef_u8());
  // expected-error@+2 {{'svbgrp_n_u8' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_n_u8,,)(svundef_u8(), u8);
  
  // expected-error@+2 {{'svbdep_u16' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_u16,,)(svundef_u16(), svundef_u16());
  // expected-error@+2 {{'svbdep_n_u16' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_n_u16,,)(svundef_u16(), u16);
  // expected-error@+2 {{'svbext_u16' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_u16,,)(svundef_u16(), svundef_u16());
  // expected-error@+2 {{'svbext_n_u16' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_n_u16,,)(svundef_u16(), u16);
  // expected-error@+2 {{'svbgrp_u16' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_u16,,)(svundef_u16(), svundef_u16());
  // expected-error@+2 {{'svbgrp_n_u16' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_n_u16,,)(svundef_u16(), u16);
  
  // expected-error@+2 {{'svbdep_u32' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_u32,,)(svundef_u32(), svundef_u32());
  // expected-error@+2 {{'svbdep_n_u32' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_n_u32,,)(svundef_u32(), u32);
  // expected-error@+2 {{'svbext_u32' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_u32,,)(svundef_u32(), svundef_u32());
  // expected-error@+2 {{'svbext_n_u32' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_n_u32,,)(svundef_u32(), u32);
  // expected-error@+2 {{'svbgrp_u32' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_u32,,)(svundef_u32(), svundef_u32());
  // expected-error@+2 {{'svbgrp_n_u32' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_n_u32,,)(svundef_u32(), u32);
  // expected-error@+2 {{'svsm4e_u32' needs target feature sve2-sm4}}
  // overload-error@+1 {{'svsm4e' needs target feature sve2-sm4}}
  SVE_ACLE_FUNC(svsm4e,_u32,,)(svundef_u32(), svundef_u32());
  // expected-error@+2 {{'svsm4ekey_u32' needs target feature sve2-sm4}}
  // overload-error@+1 {{'svsm4ekey' needs target feature sve2-sm4}}
  SVE_ACLE_FUNC(svsm4ekey,_u32,,)(svundef_u32(), svundef_u32());
  
  // expected-error@+2 {{'svbdep_u64' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_u64,,)(svundef_u64(), svundef_u64());
  // expected-error@+2 {{'svbdep_n_u64' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbdep' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbdep,_n_u64,,)(svundef_u64(), u64);
  // expected-error@+2 {{'svbext_u64' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_u64,,)(svundef_u64(), svundef_u64());
  // expected-error@+2 {{'svbext_n_u64' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbext' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbext,_n_u64,,)(svundef_u64(), u64);
  // expected-error@+2 {{'svbgrp_u64' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_u64,,)(svundef_u64(), svundef_u64());
  // expected-error@+2 {{'svbgrp_n_u64' needs target feature sve2-bitperm}}
  // overload-error@+1 {{'svbgrp' needs target feature sve2-bitperm}}
  SVE_ACLE_FUNC(svbgrp,_n_u64,,)(svundef_u64(), u64);
  // expected-error@+2 {{'svpmullb_pair_u64' needs target feature sve2-aes}}
  // overload-error@+1 {{'svpmullb_pair' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svpmullb_pair,_u64,,)(svundef_u64(), svundef_u64());
  // expected-error@+2 {{'svpmullb_pair_n_u64' needs target feature sve2-aes}}
  // overload-error@+1 {{'svpmullb_pair' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svpmullb_pair,_n_u64,,)(svundef_u64(), u64);
  // expected-error@+2 {{'svpmullt_pair_u64' needs target feature sve2-aes}}
  // overload-error@+1 {{'svpmullt_pair' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svpmullt_pair,_u64,,)(svundef_u64(), svundef_u64());
  // expected-error@+2 {{'svpmullt_pair_n_u64' needs target feature sve2-aes}}
  // overload-error@+1 {{'svpmullt_pair' needs target feature sve2-aes}}
  SVE_ACLE_FUNC(svpmullt_pair,_n_u64,,)(svundef_u64(), u64);
  // expected-error@+2 {{'svrax1_u64' needs target feature sve2-sha3}}
  // overload-error@+1 {{'svrax1' needs target feature sve2-sha3}}
  SVE_ACLE_FUNC(svrax1,_u64,,)(svundef_u64(), svundef_u64());

  // expected-error@+2 {{'svrax1_s64' needs target feature sve2-sha3}}
  // overload-error@+1 {{'svrax1' needs target feature sve2-sha3}}
  SVE_ACLE_FUNC(svrax1,_s64,,)(svundef_s64(), svundef_s64());
}