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