xref: /aosp_15_r20/external/clang/test/Driver/ppc-dependent-options.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // REQUIRES: powerpc-registered-target
2*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
3*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 %s 2>&1 | FileCheck %s \
4*67e74705SXin Li // RUN: -check-prefix=CHECK-DEFAULT
5*67e74705SXin Li 
6*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
7*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mno-vsx -mpower8-vector %s 2>&1 | \
8*67e74705SXin Li // RUN: FileCheck %s -check-prefix=CHECK-NVSX-P8V
9*67e74705SXin Li 
10*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
11*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mno-vsx -mdirect-move %s 2>&1 | FileCheck %s \
12*67e74705SXin Li // RUN: -check-prefix=CHECK-NVSX-DMV
13*67e74705SXin Li 
14*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
15*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mno-vsx -mpower8-vector -mvsx %s 2>&1 | \
16*67e74705SXin Li // RUN: FileCheck %s -check-prefix=CHECK-DEFAULT
17*67e74705SXin Li 
18*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
19*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mno-vsx -mdirect-move -mvsx %s 2>&1 | \
20*67e74705SXin Li // RUN: FileCheck %s -check-prefix=CHECK-DEFAULT
21*67e74705SXin Li 
22*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
23*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mpower8-vector -mno-vsx %s 2>&1 | \
24*67e74705SXin Li // RUN: FileCheck %s -check-prefix=CHECK-NVSX-P8V
25*67e74705SXin Li 
26*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
27*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mdirect-move -mno-vsx %s 2>&1 | FileCheck %s \
28*67e74705SXin Li // RUN: -check-prefix=CHECK-NVSX-DMV
29*67e74705SXin Li 
30*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
31*67e74705SXin Li // RUN: -mcpu=power8 -std=c++11 -mno-vsx %s 2>&1 | FileCheck %s \
32*67e74705SXin Li // RUN: -check-prefix=CHECK-NVSX
33*67e74705SXin Li 
34*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
35*67e74705SXin Li // RUN: -mcpu=power6 -std=c++11 %s 2>&1 | FileCheck %s -check-prefix=CHECK-NVSX
36*67e74705SXin Li 
37*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
38*67e74705SXin Li // RUN: -mcpu=power6 -std=c++11 -mpower8-vector %s 2>&1 | FileCheck %s \
39*67e74705SXin Li // RUN: -check-prefix=CHECK-DEFAULT
40*67e74705SXin Li 
41*67e74705SXin Li // RUN: not %clang -target powerpc64le-unknown-unknown -fsyntax-only \
42*67e74705SXin Li // RUN: -mcpu=power6 -std=c++11 -mdirect-move %s 2>&1 | FileCheck %s \
43*67e74705SXin Li // RUN: -check-prefix=CHECK-VSX
44*67e74705SXin Li 
45*67e74705SXin Li #ifdef __VSX__
46*67e74705SXin Li static_assert(false, "VSX enabled");
47*67e74705SXin Li #endif
48*67e74705SXin Li 
49*67e74705SXin Li #ifdef __POWER8_VECTOR__
50*67e74705SXin Li static_assert(false, "P8V enabled");
51*67e74705SXin Li #endif
52*67e74705SXin Li 
53*67e74705SXin Li #if !defined(__VSX__) && !defined(__POWER8_VECTOR__)
54*67e74705SXin Li static_assert(false, "Neither enabled");
55*67e74705SXin Li #endif
56*67e74705SXin Li 
57*67e74705SXin Li // CHECK-DEFAULT: VSX enabled
58*67e74705SXin Li // CHECK-DEFAULT: P8V enabled
59*67e74705SXin Li // CHECK-NVSX-P8V: error: option '-mpower8-vector' cannot be specified with '-mno-vsx'
60*67e74705SXin Li // CHECK-NVSX-DMV: error: option '-mdirect-move' cannot be specified with '-mno-vsx'
61*67e74705SXin Li // CHECK-NVSX: Neither enabled
62*67e74705SXin Li // CHECK-VSX: VSX enabled
63