annotate gcc/testsuite/g++.target/i386/mv24.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // Test case to check if Multiversioning works for AES
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 // { dg-do run }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 // { dg-require-ifunc "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 // { dg-options "-O2" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 #include <assert.h>
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 // Check if AES feature selection works
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 int foo () __attribute__((target("default")));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 int foo () __attribute__((target("aes")));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 int main ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 int val = foo ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 if (__builtin_cpu_supports ("aes"))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 assert (val == 1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 assert (val == 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 int __attribute__ ((target("default")))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 foo ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 int __attribute__ ((target("aes")))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 foo ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 return 1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 }