1 // Note: %s must be preceded by --, otherwise it may be interpreted as a
2 // command-line option, e.g. on Mac where %s is commonly under /Users.
4 // RUN: %clang -### -target i386 -fexcess-precision=fast -c %s 2>&1 \
5 // RUN: | FileCheck --check-prefix=CHECK-FAST %s
6 // RUN: %clang_cl -### -target i386 -fexcess-precision=fast -c -- %s 2>&1 \
7 // RUN: | FileCheck --check-prefix=CHECK-FAST %s
9 // RUN: %clang -### -target i386 -fexcess-precision=standard -c %s 2>&1 \
10 // RUN: | FileCheck --check-prefix=CHECK-STD %s
11 // RUN: %clang_cl -### -target i386 -fexcess-precision=standard -c -- %s 2>&1 \
12 // RUN: | FileCheck --check-prefix=CHECK-STD %s
14 // RUN: %clang -### -target i386 -fexcess-precision=16 -c %s 2>&1 \
15 // RUN: | FileCheck --check-prefix=CHECK-NONE %s
16 // RUN: %clang_cl -### -target i386 -fexcess-precision=16 -c -- %s 2>&1 \
17 // RUN: | FileCheck --check-prefix=CHECK-NONE %s
19 // RUN: %clang -### -target i386 -fexcess-precision=none -c %s 2>&1 \
20 // RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
21 // RUN: %clang_cl -### -target i386 -fexcess-precision=none -c -- %s 2>&1 \
22 // RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
24 // RUN: %clang -### -target x86_64 -fexcess-precision=fast -c %s 2>&1 \
25 // RUN: | FileCheck --check-prefix=CHECK-FAST %s
26 // RUN: %clang_cl -### -target x86_64 -fexcess-precision=fast -c -- %s 2>&1 \
27 // RUN: | FileCheck --check-prefix=CHECK-FAST %s
29 // RUN: %clang -### -target x86_64 -fexcess-precision=standard -c %s 2>&1 \
30 // RUN: | FileCheck --check-prefix=CHECK-STD %s
31 // RUN: %clang_cl -### -target x86_64 -fexcess-precision=standard -c \
32 // RUN: -- %s 2>&1 | FileCheck --check-prefix=CHECK-STD %s
34 // RUN: %clang -### -target x86_64 -fexcess-precision=16 -c %s 2>&1 \
35 // RUN: | FileCheck --check-prefix=CHECK-NONE %s
36 // RUN: %clang_cl -### -target x86_64 -fexcess-precision=16 -c -- %s 2>&1 \
37 // RUN: | FileCheck --check-prefix=CHECK-NONE %s
39 // RUN: %clang -### -target x86_64 -fexcess-precision=none -c %s 2>&1 \
40 // RUN: | FileCheck --check-prefixes=CHECK-ERR-NONE %s
41 // RUN: %clang_cl -### -target x86_64 -fexcess-precision=none -c -- %s 2>&1 \
42 // RUN: | FileCheck --check-prefixes=CHECK-ERR-NONE %s
44 // RUN: %clang -### -target aarch64 -fexcess-precision=fast -c %s 2>&1 \
45 // RUN: | FileCheck --check-prefix=CHECK %s
46 // RUN: %clang_cl -### -target aarch64 -fexcess-precision=fast -c -- %s 2>&1 \
47 // RUN: | FileCheck --check-prefix=CHECK %s
49 // RUN: %clang -### -target aarch64 -fexcess-precision=standard -c %s 2>&1 \
50 // RUN: | FileCheck --check-prefix=CHECK %s
51 // RUN: %clang_cl -### -target aarch64 -fexcess-precision=standard -c \
52 // RUN: -- %s 2>&1 | FileCheck --check-prefix=CHECK %s
54 // RUN: %clang -### -target aarch64 -fexcess-precision=16 -c %s 2>&1 \
55 // RUN: | FileCheck --check-prefix=CHECK-ERR-16 %s
56 // RUN: %clang_cl -### -target aarch64 -fexcess-precision=16 -c -- %s 2>&1 \
57 // RUN: | FileCheck --check-prefix=CHECK-ERR-16 %s
59 // RUN: %clang -### -target aarch64 -fexcess-precision=none -c %s 2>&1 \
60 // RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
61 // RUN: %clang_cl -### -target aarch64 -fexcess-precision=none -c -- %s 2>&1 \
62 // RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
64 // CHECK-FAST: "-ffloat16-excess-precision=fast"
65 // CHECK-STD: "-ffloat16-excess-precision=standard"
66 // CHECK-NONE: "-ffloat16-excess-precision=none"
67 // CHECK-ERR-NONE: unsupported argument 'none' to option '-fexcess-precision='
69 // CHECK-NOT: "-ffloat16-excess-precision=fast"
70 // CHECK-ERR-16: unsupported argument '16' to option '-fexcess-precision='