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