1 //// 2 //// Verify that valid options for the -mrecip flag are passed through and invalid options cause an error. 3 //// 4 5 //// If there are no options, convert to 'all'. 6 7 // RUN: %clang -### -S %s -mrecip 2>&1 | FileCheck --check-prefix=RECIP0 %s 8 // RECIP0: "-mrecip=all" 9 10 //// Check options that cover all types. 11 12 // RUN: %clang -### -S %s -mrecip=all 2>&1 | FileCheck --check-prefix=RECIP1 %s 13 // RECIP1: "-mrecip=all" 14 15 // RUN: %clang -### -S %s -mrecip=default 2>&1 | FileCheck --check-prefix=RECIP2 %s 16 // RECIP2: "-mrecip=default" 17 18 // RUN: %clang -### -S %s -mrecip=none 2>&1 | FileCheck --check-prefix=RECIP3 %s 19 // RECIP3: "-mrecip=none" 20 21 //// Check options that do not specify float or double. 22 23 // RUN: %clang -### -S %s -mrecip=vec-sqrt 2>&1 | FileCheck --check-prefix=RECIP4 %s 24 // RECIP4: "-mrecip=vec-sqrt" 25 26 // RUN: %clang -### -S %s -mrecip=!div,vec-div 2>&1 | FileCheck --check-prefix=RECIP5 %s 27 // RECIP5: "-mrecip=!div,vec-div" 28 29 //// Check individual option types. 30 31 // RUN: %clang -### -S %s -mrecip=vec-sqrtd 2>&1 | FileCheck --check-prefix=RECIP6 %s 32 // RECIP6: "-mrecip=vec-sqrtd" 33 34 // RUN: %clang -### -S %s -mrecip=!divf 2>&1 | FileCheck --check-prefix=RECIP7 %s 35 // RECIP7: "-mrecip=!divf" 36 37 // RUN: %clang -### -S %s -mrecip=divf,sqrtd,vec-divd,vec-sqrtf 2>&1 | FileCheck --check-prefix=RECIP8 %s 38 // RECIP8: "-mrecip=divf,sqrtd,vec-divd,vec-sqrtf" 39 40 //// Check optional refinement step specifiers. 41 42 // RUN: %clang -### -S %s -mrecip=all:1 2>&1 | FileCheck --check-prefix=RECIP9 %s 43 // RECIP9: "-mrecip=all:1" 44 45 // RUN: %clang -### -S %s -mrecip=sqrtf:3 2>&1 | FileCheck --check-prefix=RECIP10 %s 46 // RECIP10: "-mrecip=sqrtf:3" 47 48 // RUN: %clang -### -S %s -mrecip=div:5 2>&1 | FileCheck --check-prefix=RECIP11 %s 49 // RECIP11: "-mrecip=div:5" 50 51 // RUN: %clang -### -S %s -mrecip=divd:1,!sqrtf:2,vec-divf:9,vec-sqrtd:0 2>&1 | FileCheck --check-prefix=RECIP12 %s 52 // RECIP12: "-mrecip=divd:1,!sqrtf:2,vec-divf:9,vec-sqrtd:0" 53 54 //// Check invalid parameters. 55 56 // RUN: %clang -### -S %s -mrecip=bogus 2>&1 | FileCheck --check-prefix=RECIP13 %s 57 // RECIP13: error: unknown argument 58 59 // RUN: %clang -### -S %s -mrecip=divd:1,divd 2>&1 | FileCheck --check-prefix=RECIP14 %s 60 // RECIP14: error: invalid value 61 62 // RUN: %clang -### -S %s -mrecip=sqrt,sqrtf 2>&1 | FileCheck --check-prefix=RECIP15 %s 63 // RECIP15: error: invalid value 64 65 // RUN: %clang -### -S %s -mrecip=+default:10 2>&1 | FileCheck --check-prefix=RECIP16 %s 66 // RECIP16: error: invalid value 67 68 // RUN: %clang -### -S %s -mrecip=!vec-divd: 2>&1 | FileCheck --check-prefix=RECIP17 %s 69 // RECIP17: error: invalid value 70 71