1 // check -msoft-float option for ppc32 2 // RUN: %clang -target powerpc-unknown-linux-gnu %s -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTFLOAT %s 3 // CHECK-SOFTFLOAT: "-target-feature" "-hard-float" 4 5 // check -mfloat-abi=soft option for ppc32 6 // RUN: %clang -target powerpc-unknown-linux-gnu %s -mfloat-abi=soft -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABISOFT %s 7 // CHECK-FLOATABISOFT: "-target-feature" "-hard-float" 8 9 // check -mhard-float option for ppc32 10 // RUN: %clang -target powerpc-unknown-linux-gnu %s -mhard-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-HARDFLOAT %s 11 // CHECK-HARDFLOAT-NOT: "-target-feature" "-hard-float" 12 13 // check -mfloat-abi=hard option for ppc32 14 // RUN: %clang -target powerpc-unknown-linux-gnu %s -mfloat-abi=hard -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABIHARD %s 15 // CHECK-FLOATABIHARD-NOT: "-target-feature" "-hard-float" 16 17 // check combine -mhard-float -msoft-float option for ppc32 18 // RUN: %clang -target powerpc-unknown-linux-gnu %s -mhard-float -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-HARDSOFT %s 19 // CHECK-HARDSOFT: "-target-feature" "-hard-float" 20 21 // check combine -msoft-float -mhard-float option for ppc32 22 // RUN: %clang -target powerpc-unknown-linux-gnu %s -msoft-float -mhard-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTHARD %s 23 // CHECK-SOFTHARD-NOT: "-target-feature" "-hard-float" 24 25 // check -msecure-plt option for ppc32 26 // RUN: %clang -target powerpc-unknown-linux-gnu -msecure-plt %s -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SECUREPLT %s 27 // CHECK-SECUREPLT: "-target-feature" "+secure-plt" 28 29 // check -mfloat-abi=x option 30 // RUN: %clang -target powerpc-unknown-linux-gnu %s -mfloat-abi=x -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-ERRMSG %s 31 // CHECK-ERRMSG: error: invalid float ABI '-mfloat-abi=x' 32 33 // check -msoft-float option for ppc64 34 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTFLOAT64 %s 35 // CHECK-SOFTFLOAT64: "-target-feature" "-hard-float" 36 37 // check -mfloat-abi=soft option for ppc64 38 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mfloat-abi=soft -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABISOFT64 %s 39 // CHECK-FLOATABISOFT64: "-target-feature" "-hard-float" 40 41 // check -msoft-float option for ppc64 42 // RUN: %clang -target powerpc64le-unknown-linux-gnu %s -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTFLOAT64le %s 43 // CHECK-SOFTFLOAT64le: "-target-feature" "-hard-float" 44 45 // check -mfloat-abi=soft option for ppc64 46 // RUN: %clang -target powerpc64le-unknown-linux-gnu %s -mfloat-abi=soft -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABISOFT64le %s 47 // CHECK-FLOATABISOFT64le: "-target-feature" "-hard-float" 48 49 // Check that -mno-altivec correctly disables the altivec target feature on powerpc. 50 51 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-1 %s 52 // CHECK-1: "-target-feature" "-altivec" 53 54 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-2 %s 55 // CHECK-2: "-target-feature" "-altivec" 56 57 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -maltivec -mno-altivec -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-3 %s 58 // CHECK-3: "-target-feature" "-altivec" 59 60 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -maltivec -mno-altivec -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-4 %s 61 // CHECK-4: "-target-feature" "-altivec" 62 63 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -maltivec -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-5 %s 64 // CHECK-5-NOT: "-target-feature" "-altivec" 65 66 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -maltivec -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-6 %s 67 // CHECK-6-NOT: "-target-feature" "-altivec" 68 69 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=7400 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-7 %s 70 // CHECK-7: "-target-feature" "-altivec" 71 72 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=g4 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-8 %s 73 // CHECK-8: "-target-feature" "-altivec" 74 75 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=7450 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-9 %s 76 // CHECK-9: "-target-feature" "-altivec" 77 78 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=g4+ -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-10 %s 79 // CHECK-10: "-target-feature" "-altivec" 80 81 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=970 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-11 %s 82 // CHECK-11: "-target-feature" "-altivec" 83 84 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=g5 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-12 %s 85 // CHECK-12: "-target-feature" "-altivec" 86 87 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=pwr6 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-13 %s 88 // CHECK-13: "-target-feature" "-altivec" 89 90 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=pwr7 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-14 %s 91 // CHECK-14: "-target-feature" "-altivec" 92 93 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=pwr8 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-15 %s 94 // CHECK-15: "-target-feature" "-altivec" 95 96 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-altivec -mcpu=ppc64 -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-16 %s 97 // CHECK-16: "-target-feature" "-altivec" 98 99 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-qpx -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOQPX %s 100 // CHECK-NOQPX: "-target-feature" "-qpx" 101 102 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-qpx -mqpx -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-QPX %s 103 // CHECK-QPX-NOT: "-target-feature" "-qpx" 104 105 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-mfcrf -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOMFCRF %s 106 // CHECK-NOMFCRF: "-target-feature" "-mfocrf" 107 108 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-mfcrf -mmfcrf -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-MFCRF %s 109 // CHECK-MFCRF: "-target-feature" "+mfocrf" 110 111 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-isel -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOISEL %s 112 // CHECK-NOISEL: "-target-feature" "-isel" 113 114 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-isel -misel -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-ISEL %s 115 // CHECK-ISEL: "-target-feature" "+isel" 116 117 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-popcntd -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOPOPCNTD %s 118 // CHECK-NOPOPCNTD: "-target-feature" "-popcntd" 119 120 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-popcntd -mpopcntd -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-POPCNTD %s 121 // CHECK-POPCNTD: "-target-feature" "+popcntd" 122 123 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-fprnd -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOFPRND %s 124 // CHECK-NOFPRND: "-target-feature" "-fprnd" 125 126 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-fprnd -mfprnd -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-FPRND %s 127 // CHECK-FPRND: "-target-feature" "+fprnd" 128 129 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-cmpb -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCMPB %s 130 // CHECK-NOCMPB: "-target-feature" "-cmpb" 131 132 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-cmpb -mcmpb -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CMPB %s 133 // CHECK-CMPB: "-target-feature" "+cmpb" 134 135 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-vsx -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOVSX %s 136 // CHECK-NOVSX: "-target-feature" "-vsx" 137 138 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-vsx -mvsx -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-VSX %s 139 // CHECK-VSX: "-target-feature" "+vsx" 140 141 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-htm -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOHTM %s 142 // CHECK-NOHTM: "-target-feature" "-htm" 143 144 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-htm -mhtm -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-HTM %s 145 // CHECK-HTM: "-target-feature" "+htm" 146 147 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-power8-vector -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOP8VECTOR %s 148 // CHECK-NOP8VECTOR: "-target-feature" "-power8-vector" 149 150 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-power8-vector -mpower8-vector -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-P8VECTOR %s 151 // CHECK-P8VECTOR: "-target-feature" "+power8-vector" 152 153 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-power10-vector -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOP10VECTOR %s 154 // CHECK-NOP10VECTOR: "-target-feature" "-power10-vector" 155 156 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-power10-vector -mpower10-vector -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-P10VECTOR %s 157 // CHECK-P10VECTOR: "-target-feature" "+power10-vector" 158 159 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-crbits -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s 160 // CHECK-NOCRBITS: "-target-feature" "-crbits" 161 162 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-crbits -mcrbits -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s 163 // CHECK-CRBITS: "-target-feature" "+crbits" 164 165 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-longcall -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOLONGCALL %s 166 // CHECK-NOLONGCALL: "-target-feature" "-longcall" 167 168 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-longcall -mlongcall -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-LONGCALL %s 169 // CHECK-LONGCALL: "-target-feature" "+longcall" 170 171 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-invariant-function-descriptors -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOINVFUNCDESC %s 172 // CHECK-NOINVFUNCDESC: "-target-feature" "-invariant-function-descriptors" 173 174 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-invariant-function-descriptors -minvariant-function-descriptors -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-INVFUNCDESC %s 175 // CHECK-INVFUNCDESC: "-target-feature" "+invariant-function-descriptors" 176 177 // RUN: %clang -target powerpc %s -mno-spe -mspe -c -### 2>&1 | FileCheck -check-prefix=CHECK-SPE %s 178 // RUN: %clang -target powerpcspe %s -c -### 2>&1 | FileCheck -check-prefix=CHECK-SPE %s 179 // RUN: %clang -target powerpcspe %s -mno-spe -c -### 2>&1 | FileCheck -check-prefix=CHECK-NOSPE %s 180 // CHECK-SPE: "-target-feature" "+spe" 181 // CHECK-NOSPE: "-target-feature" "-spe" 182 183 // Assembler features 184 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -o %t.o -no-integrated-as 2>&1 | FileCheck -check-prefix=CHECK_BE_AS_ARGS %s 185 // CHECK_BE_AS_ARGS: "-mppc64" 186 // CHECK_BE_AS_ARGS: "-many" 187 188 // RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o -no-integrated-as 2>&1 | FileCheck -check-prefix=CHECK_LE_AS_ARGS %s 189 // CHECK_LE_AS_ARGS: "-mppc64" 190 // CHECK_LE_AS_ARGS: "-mlittle-endian" 191 // CHECK_LE_AS_ARGS: "-mpower8" 192 193 // linker features 194 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_BE_LD_ARGS %s 195 // CHECK_BE_LD_ARGS: "elf64ppc" 196 197 // RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_LE_LD_ARGS %s 198 // CHECK_LE_LD_ARGS: "elf64lppc" 199 200 // OpenMP features 201 // RUN: %clang -target powerpc-unknown-linux-gnu %s -### -fopenmp=libomp -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_OPENMP_TLS %s 202 // RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -fopenmp=libomp -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_OPENMP_TLS %s 203 // RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -fopenmp=libomp -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_OPENMP_TLS %s 204 // CHECK_OPENMP_TLS-NOT: "-fnoopenmp-use-tls" 205