1*67e74705SXin Li // Check handling MIPS specific features options. 2*67e74705SXin Li // 3*67e74705SXin Li // -mabicalls 4*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mabicalls 2>&1 \ 5*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MABICALLS %s 6*67e74705SXin Li // CHECK-MABICALLS: "-target-feature" "-noabicalls" 7*67e74705SXin Li // 8*67e74705SXin Li // -mno-abicalls 9*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -mabicalls -mno-abicalls 2>&1 \ 10*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MNOABICALLS %s 11*67e74705SXin Li // CHECK-MNOABICALLS: "-target-feature" "+noabicalls" 12*67e74705SXin Li // 13*67e74705SXin Li // -mips16 14*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 15*67e74705SXin Li // RUN: -mno-mips16 -mips16 2>&1 \ 16*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS16 %s 17*67e74705SXin Li // CHECK-MIPS16: "-target-feature" "+mips16" 18*67e74705SXin Li // 19*67e74705SXin Li // -mno-mips16 20*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 21*67e74705SXin Li // RUN: -mips16 -mno-mips16 2>&1 \ 22*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMIPS16 %s 23*67e74705SXin Li // CHECK-NOMIPS16: "-target-feature" "-mips16" 24*67e74705SXin Li // 25*67e74705SXin Li // -mmicromips 26*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 27*67e74705SXin Li // RUN: -mno-micromips -mmicromips 2>&1 \ 28*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MICROMIPS %s 29*67e74705SXin Li // CHECK-MICROMIPS: "-target-feature" "+micromips" 30*67e74705SXin Li // 31*67e74705SXin Li // -mno-micromips 32*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 33*67e74705SXin Li // RUN: -mmicromips -mno-micromips 2>&1 \ 34*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMICROMIPS %s 35*67e74705SXin Li // CHECK-NOMICROMIPS: "-target-feature" "-micromips" 36*67e74705SXin Li // 37*67e74705SXin Li // -mdsp 38*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 39*67e74705SXin Li // RUN: -mno-dsp -mdsp 2>&1 \ 40*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MDSP %s 41*67e74705SXin Li // CHECK-MDSP: "-target-feature" "+dsp" 42*67e74705SXin Li // 43*67e74705SXin Li // -mno-dsp 44*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 45*67e74705SXin Li // RUN: -mdsp -mno-dsp 2>&1 \ 46*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMDSP %s 47*67e74705SXin Li // CHECK-NOMDSP: "-target-feature" "-dsp" 48*67e74705SXin Li // 49*67e74705SXin Li // -mdspr2 50*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 51*67e74705SXin Li // RUN: -mno-dspr2 -mdspr2 2>&1 \ 52*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MDSPR2 %s 53*67e74705SXin Li // CHECK-MDSPR2: "-target-feature" "+dspr2" 54*67e74705SXin Li // 55*67e74705SXin Li // -mno-dspr2 56*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 57*67e74705SXin Li // RUN: -mdspr2 -mno-dspr2 2>&1 \ 58*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMDSPR2 %s 59*67e74705SXin Li // CHECK-NOMDSPR2: "-target-feature" "-dspr2" 60*67e74705SXin Li // 61*67e74705SXin Li // -mmsa 62*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 63*67e74705SXin Li // RUN: -mno-msa -mmsa 2>&1 \ 64*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MMSA %s 65*67e74705SXin Li // CHECK-MMSA: "-target-feature" "+msa" 66*67e74705SXin Li // 67*67e74705SXin Li // -mno-msa 68*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 69*67e74705SXin Li // RUN: -mmsa -mno-msa 2>&1 \ 70*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMMSA %s 71*67e74705SXin Li // CHECK-NOMMSA: "-target-feature" "-msa" 72*67e74705SXin Li // 73*67e74705SXin Li // -modd-spreg 74*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -mno-odd-spreg -modd-spreg 2>&1 \ 75*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MODDSPREG %s 76*67e74705SXin Li // CHECK-MODDSPREG: "-target-feature" "-nooddspreg" 77*67e74705SXin Li // 78*67e74705SXin Li // -mno-odd-spreg 79*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -modd-spreg -mno-odd-spreg 2>&1 \ 80*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMODDSPREG %s 81*67e74705SXin Li // CHECK-NOMODDSPREG: "-target-feature" "+nooddspreg" 82*67e74705SXin Li // 83*67e74705SXin Li // -mfpxx 84*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -mfpxx 2>&1 \ 85*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MFPXX %s 86*67e74705SXin Li // CHECK-MFPXX: "-target-feature" "+fpxx" 87*67e74705SXin Li // CHECK-MFPXX: "-target-feature" "+nooddspreg" 88*67e74705SXin Li // 89*67e74705SXin Li // -mfpxx -modd-spreg 90*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -mfpxx -modd-spreg 2>&1 \ 91*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MFPXX-ODDSPREG %s 92*67e74705SXin Li // CHECK-MFPXX-ODDSPREG: "-target-feature" "+fpxx" 93*67e74705SXin Li // CHECK-MFPXX-ODDSPREG: "-target-feature" "-nooddspreg" 94*67e74705SXin Li // 95*67e74705SXin Li // -mfp64 96*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 97*67e74705SXin Li // RUN: -mfp32 -mfp64 2>&1 \ 98*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MFP64 %s 99*67e74705SXin Li // CHECK-MFP64: "-target-feature" "+fp64" 100*67e74705SXin Li // 101*67e74705SXin Li // -mfp32 102*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 103*67e74705SXin Li // RUN: -mfp64 -mfp32 2>&1 \ 104*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOMFP64 %s 105*67e74705SXin Li // CHECK-NOMFP64: "-target-feature" "-fp64" 106*67e74705SXin Li // 107*67e74705SXin Li // -mnan=2008 108*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -march=mips32r3 -### -c %s \ 109*67e74705SXin Li // RUN: -mnan=legacy -mnan=2008 2>&1 \ 110*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NAN2008 %s 111*67e74705SXin Li // CHECK-NAN2008: "-target-feature" "+nan2008" 112*67e74705SXin Li // 113*67e74705SXin Li // -mnan=legacy 114*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -march=mips32r3 -### -c %s \ 115*67e74705SXin Li // RUN: -mnan=2008 -mnan=legacy 2>&1 \ 116*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NANLEGACY %s 117*67e74705SXin Li // CHECK-NANLEGACY: "-target-feature" "-nan2008" 118*67e74705SXin Li // 119*67e74705SXin Li // -mcompact-branches=never 120*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ 121*67e74705SXin Li // RUN: -mcompact-branches=never 2>&1 \ 122*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CBNEVER %s 123*67e74705SXin Li // CHECK-CBNEVER: "-mllvm" "-mips-compact-branches=never" 124*67e74705SXin Li // 125*67e74705SXin Li // -mcompact-branches=optimal 126*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ 127*67e74705SXin Li // RUN: -mcompact-branches=optimal 2>&1 \ 128*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CBOPTIMAL %s 129*67e74705SXin Li // CHECK-CBOPTIMAL: "-mllvm" "-mips-compact-branches=optimal" 130*67e74705SXin Li // 131*67e74705SXin Li // -mcompact-branches=always 132*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -march=mips32r6 -### -c %s \ 133*67e74705SXin Li // RUN: -mcompact-branches=always 2>&1 \ 134*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CBALWAYS %s 135*67e74705SXin Li // CHECK-CBALWAYS: "-mllvm" "-mips-compact-branches=always" 136*67e74705SXin Li // 137*67e74705SXin Li // -mxgot 138*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 139*67e74705SXin Li // RUN: -mno-xgot -mxgot 2>&1 \ 140*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-XGOT %s 141*67e74705SXin Li // CHECK-XGOT: "-mllvm" "-mxgot" 142*67e74705SXin Li // 143*67e74705SXin Li // -mno-xgot 144*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 145*67e74705SXin Li // RUN: -mxgot -mno-xgot 2>&1 \ 146*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOXGOT %s 147*67e74705SXin Li // CHECK-NOXGOT-NOT: "-mllvm" "-mxgot" 148*67e74705SXin Li // 149*67e74705SXin Li // -mldc1-sdc1 150*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 151*67e74705SXin Li // RUN: -mno-ldc1-sdc1 -mldc1-sdc1 2>&1 \ 152*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LDC1SDC1 %s 153*67e74705SXin Li // CHECK-LDC1SDC1-NOT: "-mllvm" "-mno-ldc1-sdc1" 154*67e74705SXin Li // 155*67e74705SXin Li // -mno-ldc1-sdc1 156*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 157*67e74705SXin Li // RUN: -mldc1-sdc1 -mno-ldc1-sdc1 2>&1 \ 158*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOLDC1SDC1 %s 159*67e74705SXin Li // CHECK-NOLDC1SDC1: "-mllvm" "-mno-ldc1-sdc1" 160*67e74705SXin Li // 161*67e74705SXin Li // -mcheck-zero-division 162*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 163*67e74705SXin Li // RUN: -mno-check-zero-division -mcheck-zero-division 2>&1 \ 164*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ZERODIV %s 165*67e74705SXin Li // CHECK-ZERODIV-NOT: "-mllvm" "-mno-check-zero-division" 166*67e74705SXin Li // 167*67e74705SXin Li // -mno-check-zero-division 168*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 169*67e74705SXin Li // RUN: -mcheck-zero-division -mno-check-zero-division 2>&1 \ 170*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOZERODIV %s 171*67e74705SXin Li // CHECK-NOZERODIV: "-mllvm" "-mno-check-zero-division" 172*67e74705SXin Li // 173*67e74705SXin Li // -G 174*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s \ 175*67e74705SXin Li // RUN: -G 16 2>&1 \ 176*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS-G %s 177*67e74705SXin Li // CHECK-MIPS-G: "-mllvm" "-mips-ssection-threshold=16" 178*67e74705SXin Li // 179*67e74705SXin Li // -msoft-float (unknown vendor) 180*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -msoft-float 2>&1 \ 181*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SOFTFLOAT %s 182*67e74705SXin Li // CHECK-SOFTFLOAT: "-target-feature" "+soft-float" 183*67e74705SXin Li // CHECK-SOFTFLOAT-NOT: "-target-feature" "+fpxx" 184*67e74705SXin Li // 185*67e74705SXin Li // -msoft-float -mfpxx (unknown vendor) 186*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -msoft-float -mfpxx 2>&1 \ 187*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SOFTFLOAT-FPXX %s 188*67e74705SXin Li // CHECK-SOFTFLOAT-FPXX: "-target-feature" "+soft-float" 189*67e74705SXin Li // CHECK-SOFTFLOAT-FPXX: "-target-feature" "+fpxx" 190*67e74705SXin Li // 191*67e74705SXin Li // -msoft-float (MTI) 192*67e74705SXin Li // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msoft-float 2>&1 \ 193*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MTI-SOFTFLOAT %s 194*67e74705SXin Li // CHECK-MTI-SOFTFLOAT: "-target-feature" "+soft-float" 195*67e74705SXin Li // CHECK-MTI-SOFTFLOAT-NOT: "-target-feature" "+fpxx" 196*67e74705SXin Li // 197*67e74705SXin Li // -msoft-float -mfpxx (MTI) 198*67e74705SXin Li // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msoft-float -mfpxx 2>&1 \ 199*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MTI-SOFTFLOAT-FPXX %s 200*67e74705SXin Li // CHECK-MTI-SOFTFLOAT-FPXX: "-target-feature" "+soft-float" 201*67e74705SXin Li // CHECK-MTI-SOFTFLOAT-FPXX: "-target-feature" "+fpxx" 202*67e74705SXin Li // 203*67e74705SXin Li // -msoft-float (IMG) 204*67e74705SXin Li // RUN: %clang -target mips-img-linux-gnu -### -c %s -msoft-float 2>&1 \ 205*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-IMG-SOFTFLOAT %s 206*67e74705SXin Li // CHECK-IMG-SOFTFLOAT: "-target-feature" "+soft-float" 207*67e74705SXin Li // CHECK-IMG-SOFTFLOAT-NOT: "-target-feature" "+fpxx" 208*67e74705SXin Li // 209*67e74705SXin Li // -msoft-float -mfpxx (IMG) 210*67e74705SXin Li // RUN: %clang -target mips-img-linux-gnu -### -c %s -msoft-float -mfpxx 2>&1 \ 211*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-IMG-SOFTFLOAT-FPXX %s 212*67e74705SXin Li // CHECK-IMG-SOFTFLOAT-FPXX: "-target-feature" "+soft-float" 213*67e74705SXin Li // CHECK-IMG-SOFTFLOAT-FPXX: "-target-feature" "+fpxx" 214*67e74705SXin Li // 215*67e74705SXin Li // -msingle-float (unknown vendor) 216*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -msingle-float 2>&1 \ 217*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SINGLEFLOAT %s 218*67e74705SXin Li // CHECK-SINGLEFLOAT: "-target-feature" "+single-float" 219*67e74705SXin Li // CHECK-SINGLEFLOAT-NOT: "-target-feature" "+fpxx" 220*67e74705SXin Li // 221*67e74705SXin Li // -msingle-float -mfpxx (unknown vendor) 222*67e74705SXin Li // RUN: %clang -target mips-linux-gnu -### -c %s -msingle-float -mfpxx 2>&1 \ 223*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SINGLEFLOAT-FPXX %s 224*67e74705SXin Li // CHECK-SINGLEFLOAT-FPXX: "-target-feature" "+single-float" 225*67e74705SXin Li // CHECK-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx" 226*67e74705SXin Li // 227*67e74705SXin Li // -msingle-float (MTI) 228*67e74705SXin Li // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msingle-float 2>&1 \ 229*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MTI-SINGLEFLOAT %s 230*67e74705SXin Li // CHECK-MTI-SINGLEFLOAT: "-target-feature" "+single-float" 231*67e74705SXin Li // CHECK-MTI-SINGLEFLOAT-NOT: "-target-feature" "+fpxx" 232*67e74705SXin Li // 233*67e74705SXin Li // -msingle-float -mfpxx (MTI) 234*67e74705SXin Li // RUN: %clang -target mips-mti-linux-gnu -### -c %s -msingle-float -mfpxx 2>&1 \ 235*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MTI-SINGLEFLOAT-FPXX %s 236*67e74705SXin Li // CHECK-MTI-SINGLEFLOAT-FPXX: "-target-feature" "+single-float" 237*67e74705SXin Li // CHECK-MTI-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx" 238*67e74705SXin Li // 239*67e74705SXin Li // -msingle-float (IMG) 240*67e74705SXin Li // RUN: %clang -target mips-img-linux-gnu -### -c %s -msingle-float 2>&1 \ 241*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-IMG-SINGLEFLOAT %s 242*67e74705SXin Li // CHECK-IMG-SINGLEFLOAT: "-target-feature" "+single-float" 243*67e74705SXin Li // CHECK-IMG-SINGLEFLOAT-NOT: "-target-feature" "+fpxx" 244*67e74705SXin Li // 245*67e74705SXin Li // -msingle-float -mfpxx (IMG) 246*67e74705SXin Li // RUN: %clang -target mips-img-linux-gnu -### -c %s -msingle-float -mfpxx 2>&1 \ 247*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-IMG-SINGLEFLOAT-FPXX %s 248*67e74705SXin Li // CHECK-IMG-SINGLEFLOAT-FPXX: "-target-feature" "+single-float" 249*67e74705SXin Li // CHECK-IMG-SINGLEFLOAT-FPXX: "-target-feature" "+fpxx" 250