1 // Check passing options to the assembler for MIPS targets. 2 // 3 // RUN: %clang -target mips-linux-gnu -### \ 4 // RUN: -no-integrated-as -c %s 2>&1 \ 5 // RUN: | FileCheck -check-prefix=MIPS32R2-EB-AS %s 6 // MIPS32R2-EB-AS: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" 7 // MIPS32R2-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 8 // 9 // RUN: %clang -target mips-linux-gnu -### \ 10 // RUN: -no-integrated-as -fPIC -c %s 2>&1 \ 11 // RUN: | FileCheck -check-prefix=MIPS32R2-EB-PIC %s 12 // MIPS32R2-EB-PIC: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" 13 // MIPS32R2-EB-PIC: "-KPIC" 14 // 15 // RUN: %clang -target mipsel-linux-gnu -### \ 16 // RUN: -no-integrated-as -c %s 2>&1 \ 17 // RUN: | FileCheck -check-prefix=MIPS32R2-DEF-EL-AS %s 18 // MIPS32R2-DEF-EL-AS: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EL" 19 // 20 // RUN: %clang -target mips64-linux-gnu -### \ 21 // RUN: -no-integrated-as -c %s 2>&1 \ 22 // RUN: | FileCheck -check-prefix=MIPS64R2-EB-AS %s 23 // MIPS64R2-EB-AS: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EB" 24 // 25 // RUN: %clang -target mips64el-linux-gnu -### \ 26 // RUN: -no-integrated-as -c %s 2>&1 \ 27 // RUN: | FileCheck -check-prefix=MIPS64R2-DEF-EL-AS %s 28 // MIPS64R2-DEF-EL-AS: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EL" 29 // 30 // RUN: %clang -target mips-linux-gnu -mabi=eabi -### \ 31 // RUN: -no-integrated-as -c %s 2>&1 \ 32 // RUN: | FileCheck -check-prefix=MIPS-EABI %s 33 // MIPS-EABI: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "eabi" "-EB" 34 // 35 // RUN: %clang -target mips64-linux-gnu -mabi=n32 -### \ 36 // RUN: -no-integrated-as -c %s 2>&1 \ 37 // RUN: | FileCheck -check-prefix=MIPS-N32 %s 38 // MIPS-N32: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "n32" "-EB" 39 // 40 // RUN: %clang -target mipsel-linux-gnu -mabi=32 -### \ 41 // RUN: -no-integrated-as -c %s 2>&1 \ 42 // RUN: | FileCheck -check-prefix=MIPS32R2-EL-AS %s 43 // MIPS32R2-EL-AS: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EL" 44 // 45 // RUN: %clang -target mips64el-linux-gnu -mabi=64 -### \ 46 // RUN: -no-integrated-as -c %s 2>&1 \ 47 // RUN: | FileCheck -check-prefix=MIPS64R2-EL-AS %s 48 // MIPS64R2-EL-AS: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EL" 49 // 50 // RUN: %clang -target mips-linux-gnu -march=mips32r2 -### \ 51 // RUN: -no-integrated-as -c %s 2>&1 \ 52 // RUN: | FileCheck -check-prefix=MIPS-32R2 %s 53 // MIPS-32R2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" 54 // 55 // RUN: %clang -target mips64-linux-gnu -march=octeon -### \ 56 // RUN: -no-integrated-as -c %s 2>&1 \ 57 // RUN: | FileCheck -check-prefix=MIPS-OCTEON %s 58 // MIPS-OCTEON: as{{(.exe)?}}" "-march" "octeon" "-mabi" "64" "-EB" 59 // 60 // RUN: %clang -target mips-linux-gnu -mips1 -### \ 61 // RUN: -no-integrated-as -c %s 2>&1 \ 62 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-1 %s 63 // MIPS-ALIAS-1: as{{(.exe)?}}" "-march" "mips1" "-mabi" "32" "-EB" 64 // 65 // RUN: %clang -target mips-linux-gnu -mips2 -### \ 66 // RUN: -no-integrated-as -c %s 2>&1 \ 67 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-2 %s 68 // MIPS-ALIAS-2: as{{(.exe)?}}" "-march" "mips2" "-mabi" "32" "-EB" 69 // 70 // RUN: %clang -target mips-linux-gnu -mips3 -### \ 71 // RUN: -no-integrated-as -c %s 2>&1 \ 72 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-3 %s 73 // MIPS-ALIAS-3: as{{(.exe)?}}" "-march" "mips3" "-mabi" "32" "-EB" 74 // 75 // RUN: %clang -target mips-linux-gnu -mips4 -### \ 76 // RUN: -no-integrated-as -c %s 2>&1 \ 77 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-4 %s 78 // MIPS-ALIAS-4: as{{(.exe)?}}" "-march" "mips4" "-mabi" "32" "-EB" 79 // 80 // RUN: %clang -target mips-linux-gnu -mips5 -### \ 81 // RUN: -no-integrated-as -c %s 2>&1 \ 82 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-5 %s 83 // MIPS-ALIAS-5: as{{(.exe)?}}" "-march" "mips5" "-mabi" "32" "-EB" 84 // 85 // RUN: %clang -target mips-linux-gnu -mips32 -### \ 86 // RUN: -no-integrated-as -c %s 2>&1 \ 87 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-32 %s 88 // MIPS-ALIAS-32: as{{(.exe)?}}" "-march" "mips32" "-mabi" "32" "-EB" 89 // 90 // RUN: %clang -target mips-linux-gnu -mips32r2 -### \ 91 // RUN: -no-integrated-as -c %s 2>&1 \ 92 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-32R2 %s 93 // MIPS-ALIAS-32R2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" 94 // 95 // RUN: %clang -target mips-linux-gnu -mips32r6 -### \ 96 // RUN: -no-integrated-as -c %s 2>&1 \ 97 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-32R6 %s 98 // MIPS-ALIAS-32R6: as{{(.exe)?}}" "-march" "mips32r6" "-mabi" "32" "-EB" 99 // 100 // RUN: %clang -target mips64-linux-gnu -mips64 -### \ 101 // RUN: -no-integrated-as -c %s 2>&1 \ 102 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-64 %s 103 // MIPS-ALIAS-64: as{{(.exe)?}}" "-march" "mips64" "-mabi" "64" "-EB" 104 // 105 // RUN: %clang -target mips64-linux-gnu -mips64r2 -### \ 106 // RUN: -no-integrated-as -c %s 2>&1 \ 107 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-64R2 %s 108 // MIPS-ALIAS-64R2: as{{(.exe)?}}" "-march" "mips64r2" "-mabi" "64" "-EB" 109 // 110 // RUN: %clang -target mips64-linux-gnu -mips64r6 -### \ 111 // RUN: -no-integrated-as -c %s 2>&1 \ 112 // RUN: | FileCheck -check-prefix=MIPS-ALIAS-64R6 %s 113 // MIPS-ALIAS-64R6: as{{(.exe)?}}" "-march" "mips64r6" "-mabi" "64" "-EB" 114 // 115 // RUN: %clang -target mips-linux-gnu -mno-mips16 -mips16 -### \ 116 // RUN: -no-integrated-as -c %s 2>&1 \ 117 // RUN: | FileCheck -check-prefix=MIPS-16 %s 118 // MIPS-16: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mips16" 119 // 120 // RUN: %clang -target mips-linux-gnu -mips16 -mno-mips16 -### \ 121 // RUN: -no-integrated-as -c %s 2>&1 \ 122 // RUN: | FileCheck -check-prefix=MIPS-N16 %s 123 // MIPS-N16: as{{(.exe)?}}" 124 // MIPS-N16-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mips16" 125 // 126 // RUN: %clang -target mips-linux-gnu -mno-micromips -mmicromips -### \ 127 // RUN: -no-integrated-as -c %s 2>&1 \ 128 // RUN: | FileCheck -check-prefix=MIPS-MICRO %s 129 // MIPS-MICRO: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mmicromips" 130 // 131 // RUN: %clang -target mips-linux-gnu -mmicromips -mno-micromips -### \ 132 // RUN: -no-integrated-as -c %s 2>&1 \ 133 // RUN: | FileCheck -check-prefix=MIPS-NMICRO %s 134 // MIPS-NMICRO: as{{(.exe)?}}" 135 // MIPS-NMICRO-NOT: {{[A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mmicromips" 136 // 137 // RUN: %clang -target mips-linux-gnu -mno-dsp -mdsp -### \ 138 // RUN: -no-integrated-as -c %s 2>&1 \ 139 // RUN: | FileCheck -check-prefix=MIPS-DSP %s 140 // MIPS-DSP: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mdsp" 141 // 142 // RUN: %clang -target mips-linux-gnu -mdsp -mno-dsp -### \ 143 // RUN: -no-integrated-as -c %s 2>&1 \ 144 // RUN: | FileCheck -check-prefix=MIPS-NDSP %s 145 // MIPS-NDSP: as{{(.exe)?}}" 146 // MIPS-NDSP-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mdsp" 147 // 148 // RUN: %clang -target mips-linux-gnu -mno-dspr2 -mdspr2 -### \ 149 // RUN: -no-integrated-as -c %s 2>&1 \ 150 // RUN: | FileCheck -check-prefix=MIPS-DSPR2 %s 151 // MIPS-DSPR2: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mdspr2" 152 // 153 // RUN: %clang -target mips-linux-gnu -mdspr2 -mno-dspr2 -### \ 154 // RUN: -no-integrated-as -c %s 2>&1 \ 155 // RUN: | FileCheck -check-prefix=MIPS-NDSPR2 %s 156 // MIPS-NDSPR2: as{{(.exe)?}}" 157 // MIPS-NDSPR2-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mdspr2" 158 // 159 // RUN: %clang -target mips-linux-gnu -mnan=legacy -mnan=2008 -### \ 160 // RUN: -no-integrated-as -c %s 2>&1 \ 161 // RUN: | FileCheck -check-prefix=MIPS-NAN2008 %s 162 // MIPS-NAN2008: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mnan=2008" 163 // 164 // RUN: %clang -target mips-linux-gnu -mnan=2008 -mnan=legacy -### \ 165 // RUN: -no-integrated-as -c %s 2>&1 \ 166 // RUN: | FileCheck -check-prefix=MIPS-NAN-LEGACY %s 167 // MIPS-NAN-LEGACY: as{{(.exe)?}}" 168 // MIPS-NAN-LEGACY-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mnan={{.*}}" 169 // 170 // RUN: %clang -target mips-linux-gnu -mfp64 -mfp32 -### \ 171 // RUN: -no-integrated-as -c %s 2>&1 \ 172 // RUN: | FileCheck -check-prefix=MIPS-MFP32 %s 173 // MIPS-MFP32: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mfp32" 174 // 175 // RUN: %clang -target mips-linux-gnu -mfp32 -mfp64 -### \ 176 // RUN: -no-integrated-as -c %s 2>&1 \ 177 // RUN: | FileCheck -check-prefix=MIPS-MFP64 %s 178 // MIPS-MFP64: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mfp64" 179 // 180 // RUN: %clang -target mips-linux-gnu -mno-msa -mmsa -### \ 181 // RUN: -no-integrated-as -c %s 2>&1 \ 182 // RUN: | FileCheck -check-prefix=MIPS-MSA %s 183 // MIPS-MSA: as{{(.exe)?}}" "-march" "mips32r2" "-mabi" "32" "-EB" "-mmsa" 184 // 185 // RUN: %clang -target mips-linux-gnu -mmsa -mno-msa -### \ 186 // RUN: -no-integrated-as -c %s 2>&1 \ 187 // RUN: | FileCheck -check-prefix=MIPS-NMSA %s 188 // MIPS-NMSA: as{{(.exe)?}}" 189 // MIPS-NMSA-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-mmsa" 190 // 191 // We've already tested MIPS32r2 and MIPS64r2 thoroughly. Do minimal tests on 192 // the remaining CPU's since it was possible to pass on a -mabi with no value 193 // when the CPU name is absent from a StringSwitch in getMipsCPUAndABI() 194 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips1 \ 195 // RUN: 2>&1 | FileCheck -check-prefix=MIPS1-EB-AS %s 196 // MIPS1-EB-AS: as{{(.exe)?}}" "-march" "mips1" "-mabi" "32" "-EB" 197 // MIPS1-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 198 // 199 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips2 \ 200 // RUN: 2>&1 | FileCheck -check-prefix=MIPS2-EB-AS %s 201 // MIPS2-EB-AS: as{{(.exe)?}}" "-march" "mips2" "-mabi" "32" "-EB" 202 // MIPS2-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 203 // 204 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips3 \ 205 // RUN: 2>&1 | FileCheck -check-prefix=MIPS3-EB-AS %s 206 // MIPS3-EB-AS: as{{(.exe)?}}" "-march" "mips3" "-mabi" "64" "-EB" 207 // MIPS3-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 208 // 209 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips4 \ 210 // RUN: 2>&1 | FileCheck -check-prefix=MIPS4-EB-AS %s 211 // MIPS4-EB-AS: as{{(.exe)?}}" "-march" "mips4" "-mabi" "64" "-EB" 212 // MIPS4-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 213 // 214 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips5 \ 215 // RUN: 2>&1 | FileCheck -check-prefix=MIPS5-EB-AS %s 216 // MIPS5-EB-AS: as{{(.exe)?}}" "-march" "mips5" "-mabi" "64" "-EB" 217 // MIPS5-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 218 // 219 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips32 \ 220 // RUN: 2>&1 | FileCheck -check-prefix=MIPS32-EB-AS %s 221 // MIPS32-EB-AS: as{{(.exe)?}}" "-march" "mips32" "-mabi" "32" "-EB" 222 // MIPS32-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 223 // 224 // RUN: %clang -target mips-linux-gnu -### -no-integrated-as -c %s -mcpu=mips32r6 \ 225 // RUN: 2>&1 | FileCheck -check-prefix=MIPS32R6-EB-AS %s 226 // MIPS32R6-EB-AS: as{{(.exe)?}}" "-march" "mips32r6" "-mabi" "32" "-EB" 227 // MIPS32R6-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 228 // 229 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips64 \ 230 // RUN: 2>&1 | FileCheck -check-prefix=MIPS64-EB-AS %s 231 // MIPS64-EB-AS: as{{(.exe)?}}" "-march" "mips64" "-mabi" "64" "-EB" 232 // MIPS64-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 233 // 234 // RUN: %clang -target mips64-linux-gnu -### -no-integrated-as -c %s -mcpu=mips64r6 \ 235 // RUN: 2>&1 | FileCheck -check-prefix=MIPS64R6-EB-AS %s 236 // MIPS64R6-EB-AS: as{{(.exe)?}}" "-march" "mips64r6" "-mabi" "64" "-EB" 237 // MIPS64R6-EB-AS-NOT: "{{[ A-Za-z\\\/]*}}as{{(.exe)?}}{{.*}}"-KPIC" 238