annotate clang/test/Driver/aarch64-sve-vector-bits.c @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 // -----------------------------------------------------------------------------
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 // Tests for the -msve-vector-bits flag
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 // -----------------------------------------------------------------------------
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 // RUN: -msve-vector-bits=128 2>&1 | FileCheck --check-prefix=CHECK-128 %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 // RUN: -msve-vector-bits=256 2>&1 | FileCheck --check-prefix=CHECK-256 %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 // RUN: -msve-vector-bits=512 2>&1 | FileCheck --check-prefix=CHECK-512 %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 // RUN: -msve-vector-bits=1024 2>&1 | FileCheck --check-prefix=CHECK-1024 %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 // RUN: -msve-vector-bits=2048 2>&1 | FileCheck --check-prefix=CHECK-2048 %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 // RUN: -msve-vector-bits=scalable 2>&1 | FileCheck --check-prefix=CHECK-SCALABLE %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 // CHECK-128: "-msve-vector-bits=128"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 // CHECK-256: "-msve-vector-bits=256"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 // CHECK-512: "-msve-vector-bits=512"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 // CHECK-1024: "-msve-vector-bits=1024"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 // CHECK-2048: "-msve-vector-bits=2048"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 // CHECK-SCALABLE-NOT: "-msve-vector-bits=
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 // Error out if an unsupported value is passed to -msve-vector-bits.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 // -----------------------------------------------------------------------------
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 // RUN: -msve-vector-bits=64 2>&1 | FileCheck --check-prefix=CHECK-BAD-VALUE-ERROR %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 // RUN: %clang -c %s -### -target aarch64-none-linux-gnu -march=armv8-a+sve \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 // RUN: -msve-vector-bits=A 2>&1 | FileCheck --check-prefix=CHECK-BAD-VALUE-ERROR %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 // CHECK-BAD-VALUE-ERROR: error: unsupported argument '{{.*}}' to option 'msve-vector-bits='
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 // Error if using attribute without -msve-vector-bits
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 // -----------------------------------------------------------------------------
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 // RUN: not %clang -c %s -o /dev/null -target aarch64-none-linux-gnu \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 // RUN: -march=armv8-a+sve 2>&1 | FileCheck --check-prefix=CHECK-NO-FLAG-ERROR %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 // RUN: not %clang -c %s -o /dev/null -target aarch64-none-linux-gnu \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 // RUN: -march=armv8-a+sve -msve-vector-bits=scalable 2>&1 | FileCheck --check-prefix=CHECK-NO-FLAG-ERROR %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 typedef __SVInt32_t svint32_t;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 typedef svint32_t noflag __attribute__((arm_sve_vector_bits(256)));
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 // CHECK-NO-FLAG-ERROR: error: 'arm_sve_vector_bits' is only supported when '-msve-vector-bits=<bits>' is specified with a value of 128, 256, 512, 1024 or 2048
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 // Error if attribute vector size != -msve-vector-bits
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 // -----------------------------------------------------------------------------
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 // RUN: not %clang -c %s -o /dev/null -target aarch64-none-linux-gnu \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 // RUN: -march=armv8-a+sve -msve-vector-bits=128 2>&1 | FileCheck --check-prefix=CHECK-BAD-VECTOR-SIZE-ERROR %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 typedef svint32_t bad_vector_size __attribute__((arm_sve_vector_bits(256)));
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 // CHECK-BAD-VECTOR-SIZE-ERROR: error: invalid SVE vector size '256', must match value set by '-msve-vector-bits' ('128')