annotate clang/test/Driver/cuda-bindings.cu @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900 (2023-10-14)
parents 1f2b6ac9f198
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // Tests the bindings generated for a CUDA offloading target for different
anatofuz
parents:
diff changeset
2 // combinations of:
anatofuz
parents:
diff changeset
3 // - Number of gpu architectures;
anatofuz
parents:
diff changeset
4 // - Host/device-only compilation;
anatofuz
parents:
diff changeset
5 // - User-requested final phase - binary or assembly.
anatofuz
parents:
diff changeset
6 // It parallels cuda-phases.cu test, but verifies whether output file is temporary or not.
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 // It's hard to check whether file name is temporary in a portable
anatofuz
parents:
diff changeset
9 // way. Instead we check whether we've generated a permanent name on
anatofuz
parents:
diff changeset
10 // device side, which appends '-device-cuda-<triple>' suffix.
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 // REQUIRES: powerpc-registered-target
anatofuz
parents:
diff changeset
13 // REQUIRES: nvptx-registered-target
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 //
anatofuz
parents:
diff changeset
16 // Test single gpu architecture with complete compilation.
anatofuz
parents:
diff changeset
17 // No intermediary device files should have "-device-cuda..." in the name.
anatofuz
parents:
diff changeset
18 //
anatofuz
parents:
diff changeset
19 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings --cuda-gpu-arch=sm_30 %s 2>&1 \
anatofuz
parents:
diff changeset
20 // RUN: | FileCheck -check-prefix=BIN %s
anatofuz
parents:
diff changeset
21 // BIN: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
22 // BIN-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
23 // BIN: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler",{{.*}} output:
anatofuz
parents:
diff changeset
24 // BIN-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
25 // BIN: # "nvptx64-nvidia-cuda" - "NVPTX::Linker",{{.*}} output:
anatofuz
parents:
diff changeset
26 // BIN-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
27 // BIN: # "powerpc64le-ibm-linux-gnu" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
28 // BIN-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
29 // BIN: # "powerpc64le-ibm-linux-gnu" - "GNU::Linker", inputs:{{.*}}, output: "a.out"
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 //
anatofuz
parents:
diff changeset
32 // Test single gpu architecture up to the assemble phase.
anatofuz
parents:
diff changeset
33 //
anatofuz
parents:
diff changeset
34 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings --cuda-gpu-arch=sm_30 %s -S 2>&1 \
anatofuz
parents:
diff changeset
35 // RUN: | FileCheck -check-prefix=ASM %s
anatofuz
parents:
diff changeset
36 // ASM-DAG: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_30.s"
anatofuz
parents:
diff changeset
37 // ASM-DAG: # "powerpc64le-ibm-linux-gnu" - "clang",{{.*}} output: "cuda-bindings.s"
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 //
anatofuz
parents:
diff changeset
40 // Test two gpu architectures with complete compilation.
anatofuz
parents:
diff changeset
41 //
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
42 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
43 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
44 // RUN: | FileCheck -check-prefixes=BIN2,AOUT %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
45 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
46 // RUN: --offload-arch=sm_30,sm_35 %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
47 // RUN: | FileCheck -check-prefixes=BIN2,AOUT %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
48 // .. same, but with explicitly specified output.
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
49 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
50 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s -o %t/out 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
51 // RUN: | FileCheck -check-prefixes=BIN2,TOUT %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
52 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
53 // RUN: --offload-arch=sm_30,sm_35 %s -o %t/out 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
54 // RUN: | FileCheck -check-prefixes=BIN2,TOUT %s
150
anatofuz
parents:
diff changeset
55 // BIN2: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
56 // BIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
57 // BIN2: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler",{{.*}} output:
anatofuz
parents:
diff changeset
58 // BIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
59 // BIN2: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
60 // BIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
61 // BIN2: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler",{{.*}} output:
anatofuz
parents:
diff changeset
62 // BIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
63 // BIN2: # "nvptx64-nvidia-cuda" - "NVPTX::Linker",{{.*}} output:
anatofuz
parents:
diff changeset
64 // BIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
65 // BIN2: # "powerpc64le-ibm-linux-gnu" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
66 // BIN2-NOT: cuda-bindings-device-cuda-nvptx64
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
67 // AOUT: # "powerpc64le-ibm-linux-gnu" - "GNU::Linker", inputs:{{.*}}, output: "a.out"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
68 // TOUT: # "powerpc64le-ibm-linux-gnu" - "GNU::Linker", inputs:{{.*}}, output: "{{.*}}/out"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
69
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
70 // .. same, but with -fsyntax-only
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
71 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
72 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
73 // RUN: | FileCheck -check-prefix=SYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
74 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
75 // RUN: --offload-arch=sm_30,sm_35 %s -o %t/out 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
76 // RUN: | FileCheck -check-prefix=SYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
77 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
78 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
79 // RUN: | FileCheck -check-prefix=SYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
80 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
81 // RUN: --offload-arch=sm_30,sm_35 %s -o %t/out 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
82 // RUN: | FileCheck -check-prefix=SYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
83 // SYN-NOT: inputs:
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
84 // SYN: # "powerpc64le-ibm-linux-gnu" - "clang", inputs: [{{.*}}], output: (nothing)
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
85 // SYN-NEXT: # "nvptx64-nvidia-cuda" - "clang", inputs: [{{.*}}], output: (nothing)
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
86 // SYN-NEXT: # "nvptx64-nvidia-cuda" - "clang", inputs: [{{.*}}], output: (nothing)
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
87 // SYN-NOT: inputs
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
88
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
89 // .. and with --offload-new-driver
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
90 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
91 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 --offload-new-driver %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
92 // RUN: | FileCheck -check-prefix=NDSYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
93 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
94 // RUN: --offload-arch=sm_30,sm_35 %s --offload-new-driver -o %t/out 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
95 // RUN: | FileCheck -check-prefix=NDSYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
96 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
97 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s --offload-new-driver 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
98 // RUN: | FileCheck -check-prefix=NDSYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
99 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings -fsyntax-only \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
100 // RUN: --offload-arch=sm_30,sm_35 %s --offload-new-driver -o %t/out 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
101 // RUN: | FileCheck -check-prefix=NDSYN %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
102 // NDSYN-NOT: inputs:
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
103 // NDSYN: # "nvptx64-nvidia-cuda" - "clang", inputs: [{{.*}}], output: (nothing)
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
104 // NDSYN-NEXT: # "nvptx64-nvidia-cuda" - "clang", inputs: [{{.*}}], output: (nothing)
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
105 // NDSYN-NEXT: # "powerpc64le-ibm-linux-gnu" - "clang", inputs: [{{.*}}], output: (nothing)
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
106 // NDSYN-NOT: inputs:
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
107
150
anatofuz
parents:
diff changeset
108
anatofuz
parents:
diff changeset
109 //
anatofuz
parents:
diff changeset
110 // Test two gpu architectures up to the assemble phase.
anatofuz
parents:
diff changeset
111 //
anatofuz
parents:
diff changeset
112 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
113 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s -S 2>&1 \
anatofuz
parents:
diff changeset
114 // RUN: | FileCheck -check-prefix=ASM2 %s
anatofuz
parents:
diff changeset
115 // ASM2-DAG: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_30.s"
anatofuz
parents:
diff changeset
116 // ASM2-DAG: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_35.s"
anatofuz
parents:
diff changeset
117 // ASM2-DAG: # "powerpc64le-ibm-linux-gnu" - "clang",{{.*}} output: "cuda-bindings.s"
anatofuz
parents:
diff changeset
118
anatofuz
parents:
diff changeset
119 //
anatofuz
parents:
diff changeset
120 // Test one or more gpu architecture with complete compilation in host-only
anatofuz
parents:
diff changeset
121 // compilation mode.
anatofuz
parents:
diff changeset
122 //
anatofuz
parents:
diff changeset
123 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
124 // RUN: --cuda-gpu-arch=sm_30 %s --cuda-host-only 2>&1 \
anatofuz
parents:
diff changeset
125 // RUN: | FileCheck -check-prefix=HBIN %s
anatofuz
parents:
diff changeset
126 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
127 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s --cuda-host-only 2>&1 \
anatofuz
parents:
diff changeset
128 // RUN: | FileCheck -check-prefix=HBIN %s
anatofuz
parents:
diff changeset
129 // HBIN: # "powerpc64le-ibm-linux-gnu" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
130 // HBIN-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
131 // HBIN: # "powerpc64le-ibm-linux-gnu" - "GNU::Linker", inputs:{{.*}}, output: "a.out"
anatofuz
parents:
diff changeset
132
anatofuz
parents:
diff changeset
133 //
anatofuz
parents:
diff changeset
134 // Test one or more gpu architecture up to the assemble phase in host-only
anatofuz
parents:
diff changeset
135 // compilation mode.
anatofuz
parents:
diff changeset
136 //
anatofuz
parents:
diff changeset
137 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
138 // RUN: --cuda-gpu-arch=sm_30 %s --cuda-host-only -S 2>&1 \
anatofuz
parents:
diff changeset
139 // RUN: | FileCheck -check-prefix=HASM %s
anatofuz
parents:
diff changeset
140 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
141 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s --cuda-host-only -S 2>&1 \
anatofuz
parents:
diff changeset
142 // RUN: | FileCheck -check-prefix=HASM %s
anatofuz
parents:
diff changeset
143 // HASM: # "powerpc64le-ibm-linux-gnu" - "clang",{{.*}} output: "cuda-bindings.s"
anatofuz
parents:
diff changeset
144
anatofuz
parents:
diff changeset
145 //
anatofuz
parents:
diff changeset
146 // Test single gpu architecture with complete compilation in device-only
anatofuz
parents:
diff changeset
147 // compilation mode.
anatofuz
parents:
diff changeset
148 //
anatofuz
parents:
diff changeset
149 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
150 // RUN: --cuda-gpu-arch=sm_30 %s --cuda-device-only 2>&1 \
anatofuz
parents:
diff changeset
151 // RUN: | FileCheck -check-prefix=DBIN %s
anatofuz
parents:
diff changeset
152 // DBIN: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
153 // DBIN-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
154 // DBIN: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_30.o"
anatofuz
parents:
diff changeset
155
anatofuz
parents:
diff changeset
156 //
anatofuz
parents:
diff changeset
157 // Test single gpu architecture up to the assemble phase in device-only
anatofuz
parents:
diff changeset
158 // compilation mode.
anatofuz
parents:
diff changeset
159 //
anatofuz
parents:
diff changeset
160 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
161 // RUN: --cuda-gpu-arch=sm_30 %s --cuda-device-only -S 2>&1 \
anatofuz
parents:
diff changeset
162 // RUN: | FileCheck -check-prefix=DASM %s
anatofuz
parents:
diff changeset
163 // DASM: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_30.s"
anatofuz
parents:
diff changeset
164
anatofuz
parents:
diff changeset
165 //
anatofuz
parents:
diff changeset
166 // Test two gpu architectures with complete compilation in device-only
anatofuz
parents:
diff changeset
167 // compilation mode.
anatofuz
parents:
diff changeset
168 //
anatofuz
parents:
diff changeset
169 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
170 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s --cuda-device-only 2>&1 \
anatofuz
parents:
diff changeset
171 // RUN: | FileCheck -check-prefix=DBIN2 %s
anatofuz
parents:
diff changeset
172 // DBIN2: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
173 // DBIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
174 // DBIN2: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_30.o"
anatofuz
parents:
diff changeset
175 // DBIN2: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output:
anatofuz
parents:
diff changeset
176 // DBIN2-NOT: cuda-bindings-device-cuda-nvptx64
anatofuz
parents:
diff changeset
177 // DBIN2: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_35.o"
anatofuz
parents:
diff changeset
178
anatofuz
parents:
diff changeset
179 //
anatofuz
parents:
diff changeset
180 // Test two gpu architectures up to the assemble phase in device-only
anatofuz
parents:
diff changeset
181 // compilation mode.
anatofuz
parents:
diff changeset
182 //
anatofuz
parents:
diff changeset
183 // RUN: %clang -target powerpc64le-ibm-linux-gnu -ccc-print-bindings \
anatofuz
parents:
diff changeset
184 // RUN: --cuda-gpu-arch=sm_30 --cuda-gpu-arch=sm_35 %s --cuda-device-only -S 2>&1 \
anatofuz
parents:
diff changeset
185 // RUN: | FileCheck -check-prefix=DASM2 %s
anatofuz
parents:
diff changeset
186 // DASM2: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_30.s"
anatofuz
parents:
diff changeset
187 // DASM2: # "nvptx64-nvidia-cuda" - "clang",{{.*}} output: "cuda-bindings-cuda-nvptx64-nvidia-cuda-sm_35.s"
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
188
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
189 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
190 // Ensure we output the user's specified name in device-only mode.
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
191 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
192 // RUN: %clang -target powerpc64le-ibm-linux-gnu -### \
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
193 // RUN: --cuda-gpu-arch=sm_52 --cuda-device-only -c -o foo.o --cuda-path=%S/Inputs/CUDA_80/usr/local/cuda %s 2>&1 \
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
194 // RUN: | FileCheck -check-prefix=D_ONLY %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
195 // RUN: %clang -target powerpc64le-ibm-linux-gnu -### --offload-new-driver \
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
196 // RUN: --cuda-gpu-arch=sm_52 --cuda-device-only -c -o foo.o --cuda-path=%S/Inputs/CUDA_80/usr/local/cuda %s 2>&1 \
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
197 // RUN: | FileCheck -check-prefix=D_ONLY %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
198 // D_ONLY: "foo.o"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
199
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
200 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
201 // Check to make sure we can generate multiple outputs for device-only
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
202 // compilation and fail with '-o'.
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
203 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
204 // RUN: %clang -### -target powerpc64le-ibm-linux-gnu --offload-new-driver -ccc-print-bindings \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
205 // RUN: --offload-arch=sm_70 --offload-arch=sm_52 --offload-device-only -c %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
206 // RUN: | FileCheck -check-prefix=MULTI-D-ONLY %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
207 // MULTI-D-ONLY: # "nvptx64-nvidia-cuda" - "clang", inputs: ["[[INPUT:.+]]"], output: "[[PTX_70:.+]]"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
208 // MULTI-D-ONLY-NEXT: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler", inputs: ["[[PTX_70]]"], output: "[[CUBIN_70:.+]]"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
209 // MULTI-D-ONLY-NEXT: # "nvptx64-nvidia-cuda" - "clang", inputs: ["[[INPUT]]"], output: "[[PTX_52:.+]]"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
210 // MULTI-D-ONLY-NEXT: # "nvptx64-nvidia-cuda" - "NVPTX::Assembler", inputs: ["[[PTX_52]]"], output: "[[CUBIN_52:.+]]"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
211 //
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
212 // RUN: not %clang -### --target=powerpc64le-ibm-linux-gnu --offload-new-driver -ccc-print-bindings \
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
213 // RUN: --offload-arch=sm_70 --offload-arch=sm_52 --offload-device-only -c -o %t %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
214 // RUN: | FileCheck -check-prefix=MULTI-D-ONLY-O %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
215 // MULTI-D-ONLY-O: error: cannot specify -o when generating multiple output files
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
216
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
217 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
218 // Check to ensure that we can use '-fsyntax-only' for CUDA output with the new
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
219 // driver.
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
220 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
221 // RUN: %clang -### -target powerpc64le-ibm-linux-gnu --offload-new-driver \
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
222 // RUN: -fsyntax-only --offload-arch=sm_70 --offload-arch=sm_52 -c --cuda-path=%S/Inputs/CUDA_111/usr/local/cuda %s 2>&1 \
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
223 // RUN: | FileCheck -check-prefix=SYNTAX-ONLY %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
224 // SYNTAX-ONLY: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-fsyntax-only"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
225 // SYNTAX-ONLY: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-fsyntax-only"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
226 // SYNTAX-ONLY: "-cc1" "-triple" "powerpc64le-ibm-linux-gnu"{{.*}}"-fsyntax-only"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
227
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
228 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
229 // Check to ensure that we can use '-save-temps' when operating in RDC-mode.
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
230 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
231 // RUN: %clang -### -target powerpc64le-ibm-linux-gnu -save-temps --offload-new-driver \
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
232 // RUN: -fgpu-rdc --offload-arch=sm_70 --offload-arch=sm_52 -c --cuda-path=%S/Inputs/CUDA_111/usr/local/cuda %s 2>&1 \
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
233 // RUN: | FileCheck -check-prefix=SAVE-TEMPS %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
234 // SAVE-TEMPS: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_52"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
235 // SAVE-TEMPS: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
236 // SAVE-TEMPS: "-cc1" "-triple" "powerpc64le-ibm-linux-gnu"
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
237
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
238 //
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
239 // Check to ensure that we cannot use '-foffload' when not operating in RDC-mode.
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
240 //
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
241 // RUN: not %clang -### --target=powerpc64le-ibm-linux-gnu -fno-gpu-rdc --offload-new-driver \
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
242 // RUN: -foffload-lto --offload-arch=sm_70 --offload-arch=sm_52 -c %s 2>&1 \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
243 // RUN: | FileCheck -check-prefix=LTO-NO-RDC %s
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
244 // LTO-NO-RDC: error: unsupported option '-foffload-lto' for language mode '-fno-gpu-rdc'