1 // REQUIRES: x86-registered-target
2 // REQUIRES: amdgpu-registered-target
4 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
5 // RUN: --cuda-gpu-arch=gfx906:xnack+ --cuda-gpu-arch=gfx900:xnack+ %s \
6 // RUN: 2>&1 | FileCheck %s -check-prefix=XNACK
7 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
8 // RUN: --cuda-gpu-arch=gfx906:xnack- --cuda-gpu-arch=gfx900:xnack- %s \
9 // RUN: 2>&1 | FileCheck %s -check-prefix=NOXNACK
11 // XNACK: {{.*}}clang{{.*}}"-target-feature" "+xnack"
12 // NOXNACK: {{.*}}clang{{.*}}"-target-feature" "-xnack"
13 // XNACK: {{.*}}lld{{.*}} "-plugin-opt=-mattr=+xnack"
14 // NOXNACK: {{.*}}lld{{.*}} "-plugin-opt=-mattr=-xnack"
16 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
17 // RUN: --cuda-gpu-arch=gfx908:sramecc+ %s \
18 // RUN: 2>&1 | FileCheck %s -check-prefix=SRAM
19 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
20 // RUN: --cuda-gpu-arch=gfx908:sramecc- %s \
21 // RUN: 2>&1 | FileCheck %s -check-prefix=NOSRAM
23 // SRAM: {{.*}}clang{{.*}}"-target-feature" "+sramecc"
24 // NOSRAM: {{.*}}clang{{.*}}"-target-feature" "-sramecc"
25 // SRAM: {{.*}}lld{{.*}} "-plugin-opt=-mattr=+sramecc"
26 // NOTSRAM: {{.*}}lld{{.*}} "-plugin-opt=-mattr=-sramecc"
28 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
29 // RUN: --cuda-gpu-arch=gfx1010 %s \
30 // RUN: -mcumode 2>&1 | FileCheck %s -check-prefix=CUMODE
31 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
32 // RUN: --cuda-gpu-arch=gfx1010 %s \
33 // RUN: -mno-cumode 2>&1 | FileCheck %s -check-prefix=NOTCUMODE
35 // CUMODE: {{.*}}clang{{.*}}"-target-feature" "+cumode"
36 // NOTCUMODE: {{.*}}clang{{.*}}"-target-feature" "-cumode"
37 // CUMODE: {{.*}}lld{{.*}} "-plugin-opt=-mattr=+cumode"
38 // NOTCUMODE: {{.*}}lld{{.*}} "-plugin-opt=-mattr=-cumode"
40 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
41 // RUN: --cuda-gpu-arch=gfx908:xnack+:sramecc+ %s \
42 // RUN: 2>&1 | FileCheck %s -check-prefix=ALL3
43 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
44 // RUN: --cuda-gpu-arch=gfx908:xnack-:sramecc- %s \
45 // RUN: 2>&1 | FileCheck %s -check-prefix=NOALL3
47 // ALL3: {{.*}}clang{{.*}}"-target-feature" "+sramecc" "-target-feature" "+xnack"
48 // NOALL3: {{.*}}clang{{.*}}"-target-feature" "-sramecc" "-target-feature" "-xnack"
50 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
51 // RUN: --cuda-gpu-arch=gfx1010 %s \
52 // RUN: -mtgsplit 2>&1 | FileCheck %s -check-prefix=TGSPLIT
53 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
54 // RUN: --cuda-gpu-arch=gfx1010 %s \
55 // RUN: -mno-tgsplit 2>&1 | FileCheck %s -check-prefix=NOTTGSPLIT
57 // TGSPLIT: {{.*}}clang{{.*}}"-target-feature" "+tgsplit"
58 // NOTTGSPLIT: {{.*}}clang{{.*}}"-target-feature" "-tgsplit"
59 // TGSPLIT: {{.*}}lld{{.*}} "-plugin-opt=-mattr=+tgsplit"
60 // NOTTGSPLIT: {{.*}}lld{{.*}} "-plugin-opt=-mattr=-tgsplit"
62 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
63 // RUN: --cuda-gpu-arch=gfx1010 %s \
64 // RUN: -mcumode -mcumode -mno-cumode -mwavefrontsize64 -mcumode \
65 // RUN: -mwavefrontsize64 -mno-wavefrontsize64 2>&1 \
66 // RUN: | FileCheck %s -check-prefix=DUP
67 // DUP: {{.*}}clang{{.*}} "-target-feature" "+cumode"
68 // DUP-NOT: "-target-feature" "{{.*}}wavefrontsize16"
69 // DUP-NOT: "-target-feature" "{{.*}}wavefrontsize32"
70 // DUP-NOT: "-target-feature" "{{.*}}wavefrontsize64"
71 // DUP: {{.*}}lld{{.*}} "-plugin-opt=-mattr=+cumode"
73 // RUN: %clang -### -target x86_64-linux-gnu -fgpu-rdc -nogpulib \
74 // RUN: --cuda-gpu-arch=gfx1010 %s \
75 // RUN: -mno-wavefrontsize64 -mwavefrontsize64 2>&1 \
76 // RUN: | FileCheck %s -check-prefix=WAVE64
77 // WAVE64: {{.*}}clang{{.*}} "-target-feature" "+wavefrontsize64"
78 // WAVE64-NOT: "-target-feature" "{{.*}}wavefrontsize16"
79 // WAVE64-NOT: "-target-feature" "{{.*}}wavefrontsize32"
80 // WAVE64: {{.*}}lld{{.*}} "-plugin-opt=-mattr=+wavefrontsize64"