|
1 | 1 | ! Test that -mrecip[=<list>] works as expected. |
2 | 2 |
|
3 | | -! RUN: %flang_fc1 -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-OMIT |
4 | | -! RUN: %flang_fc1 -mrecip -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-NOARG |
5 | | -! RUN: %flang_fc1 -mrecip=all -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-ALL |
6 | | -! RUN: %flang_fc1 -mrecip=none -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-NONE |
7 | | -! RUN: %flang_fc1 -mrecip=default -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-DEF |
8 | | -! RUN: %flang_fc1 -mrecip=divd,divf,divh,vec-divd,vec-divf,vec-divh,sqrtd,sqrtf,sqrth,vec-sqrtd,vec-sqrtf,vec-sqrth -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-POS |
| 3 | +! RUN: %flang -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-OMIT |
| 4 | +! RUN: %flang -mrecip -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-NOARG |
| 5 | +! RUN: %flang -mrecip=all -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-ALL |
| 6 | +! RUN: %flang -mrecip=none -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-NONE |
| 7 | +! RUN: %flang -mrecip=default -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-DEF |
| 8 | +! RUN: %flang -mrecip=divd,divf,divh,vec-divd,vec-divf,vec-divh,sqrtd,sqrtf,sqrth,vec-sqrtd,vec-sqrtf,vec-sqrth -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-POS |
| 9 | +! RUN: %flang -mrecip=!divd,!divf,!divh,!vec-divd,!vec-divf,!vec-divh,!sqrtd,!sqrtf,!sqrth,!vec-sqrtd,!vec-sqrtf,!vec-sqrth -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-NEG |
| 10 | +! RUN: %flang -mrecip=!divd,divf,!divh,sqrtd,!sqrtf,sqrth -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG,CHECK-FLANG-MIX |
| 11 | +! RUN: not %flang -mrecip=xxx -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG-INV |
| 12 | +! RUN: not %flang -mrecip=divd,divd -### -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FLANG-DUP |
| 13 | + |
| 14 | +! RUN: %flang_fc1 -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-FC1-OMIT |
| 15 | +! RUN: %flang_fc1 -mrecip -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-NOARG |
| 16 | +! RUN: %flang_fc1 -mrecip=all -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-ALL |
| 17 | +! RUN: %flang_fc1 -mrecip=none -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-NONE |
| 18 | +! RUN: %flang_fc1 -mrecip=default -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-DEF |
| 19 | +! RUN: %flang_fc1 -mrecip=divd,divf,divh,vec-divd,vec-divf,vec-divh,sqrtd,sqrtf,sqrth,vec-sqrtd,vec-sqrtf,vec-sqrth -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-POS |
9 | 20 | ! RUN: %flang_fc1 -mrecip=!divd,!divf,!divh,!vec-divd,!vec-divf,!vec-divh,!sqrtd,!sqrtf,!sqrth,!vec-sqrtd,!vec-sqrtf,!vec-sqrth |
10 | | -! -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-NEG |
11 | | -! RUN: %flang_fc1 -mrecip=!divd,divf,!divh,sqrtd,!sqrtf,sqrth -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-MIX |
12 | | -! RUN: not %flang_fc1 -mrecip=xxx -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-INV |
13 | | -! RUN: not %flang_fc1 -mrecip=divd,divd -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefix=CHECK-DUP |
| 21 | +! -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-NEG |
| 22 | +! RUN: %flang_fc1 -mrecip=!divd,divf,!divh,sqrtd,!sqrtf,sqrth -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1,CHECK-FC1-MIX |
| 23 | +! RUN: not %flang_fc1 -mrecip=xxx -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1-INV |
| 24 | +! RUN: not %flang_fc1 -mrecip=divd,divd -emit-llvm -o - %s 2>&1| FileCheck %s --check-prefixes=CHECK-FC1-DUP |
14 | 25 |
|
15 | 26 | subroutine func |
16 | 27 | end subroutine func |
17 | 28 |
|
18 | | -! CHECK-OMIT-NOT: attributes #0 = { "reciprocal-estimates"={{.*}} } |
19 | | -! CHECK-NOARG: attributes #0 = { "reciprocal-estimates"="all" } |
20 | | -! CHECK-ALL: attributes #0 = { "reciprocal-estimates"="all" } |
21 | | -! CHECK-NONE: attributes #0 = { "reciprocal-estimates"="none" } |
22 | | -! CHECK-DEF: attributes #0 = { "reciprocal-estimates"="default" } |
23 | | -! CHECK-POS: attributes #0 = { "reciprocal-estimates"="divd,divf,divh,vec-divd,vec-divf,vec-divh,sqrtd,sqrtf,sqrth,vec-sqrtd,vec-sqrtf,vec-sqrth" } |
24 | | -! CHECK-NEG: attributes #0 = { "reciprocal-estimates"="!divd,!divf,!divh,!vec-divd,!vec-divf,!vec-divh,!sqrtd,!sqrtf,!sqrth,!vec-sqrtd,!vec-sqrtf,!vec-sqrth" } |
25 | | -! CHECK-MIX: attributes #0 = { "reciprocal-estimates"="!divd,divf,!divh,sqrtd,!sqrtf,sqrth" } |
26 | | -! CHECK-INV: error: unknown argument: 'xxx' |
27 | | -! CHECK-DUP: error: invalid value 'divd' in 'mrecip=' |
| 29 | +! CHECK-FLANG: "-fc1" |
| 30 | +! CHECK-FLANG-OMIT-NOT: "-mrecip=" |
| 31 | +! CHECK-FLANG-NOARG-SAME: "-mrecip=all" |
| 32 | +! CHECK-FLANG-ALL-SAME: "-mrecip=all" |
| 33 | +! CHECK-FLANG-NONE-SAME: "-mrecip=none" |
| 34 | +! CHECK-FLANG-DEF-SAME: "-mrecip=default" |
| 35 | +! CHECK-FLANG-POS-SAME: "-mrecip=divd,divf,divh,vec-divd,vec-divf,vec-divh,sqrtd,sqrtf,sqrth,vec-sqrtd,vec-sqrtf,vec-sqrth" |
| 36 | +! CHECK-FLANG-NEG-SAME: "-mrecip=!divd,!divf,!divh,!vec-divd,!vec-divf,!vec-divh,!sqrtd,!sqrtf,!sqrth,!vec-sqrtd,!vec-sqrtf,!vec-sqrth" |
| 37 | +! CHECK-FLANG-MIX-SAME: "-mrecip=!divd,divf,!divh,sqrtd,!sqrtf,sqrth" |
| 38 | +! CHECK-FLANG-INV: error: unknown argument: 'xxx' |
| 39 | +! CHECK-FLANG-DUP: error: invalid value 'divd' in 'mrecip=' |
| 40 | + |
| 41 | +! CHECK-FC1: define {{.+}} @func{{.*}} #[[ATTRS:[0-9]+]] |
| 42 | +! CHECK-FC1: attributes #[[ATTRS]] = |
| 43 | +! CHECK-FC1-OMIT-NOT: "reciprocal-estimates" |
| 44 | +! CHECK-FC1-NOARG-SAME: "reciprocal-estimates"="all" |
| 45 | +! CHECK-FC1-ALL-SAME: "reciprocal-estimates"="all" |
| 46 | +! CHECK-FC1-NONE-SAME: "reciprocal-estimates"="none" |
| 47 | +! CHECK-FC1-DEF-SAME: "reciprocal-estimates"="default" |
| 48 | +! CHECK-FC1-POS-SAME: "reciprocal-estimates"="divd,divf,divh,vec-divd,vec-divf,vec-divh,sqrtd,sqrtf,sqrth,vec-sqrtd,vec-sqrtf,vec-sqrth" |
| 49 | +! CHECK-FC1-NEG-SAME: "reciprocal-estimates"="!divd,!divf,!divh,!vec-divd,!vec-divf,!vec-divh,!sqrtd,!sqrtf,!sqrth,!vec-sqrtd,!vec-sqrtf,!vec-sqrth" |
| 50 | +! CHECK-FC1-MIX-SAME: "reciprocal-estimates"="!divd,divf,!divh,sqrtd,!sqrtf,sqrth" |
| 51 | +! CHECK-FC1-INV: error: unknown argument: 'xxx' |
| 52 | +! CHECK-FC1-DUP: error: invalid value 'divd' in 'mrecip=' |
0 commit comments