|
142 | 142 | // RUN: -c %s 2>&1 \
|
143 | 143 | // RUN: | FileCheck -check-prefix ARCHALLERROR %s
|
144 | 144 |
|
| 145 | + |
| 146 | +// Verify that --[no-]cuda-include-ptx arguments are handled correctly. |
| 147 | +// a) by default we're including PTX for all GPUs. |
| 148 | +// RUN: %clang -### -target x86_64-linux-gnu \ |
| 149 | +// RUN: --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_30 \ |
| 150 | +// RUN: -c %s 2>&1 \ |
| 151 | +// RUN: | FileCheck -check-prefixes FATBIN-COMMON,PTX-SM35,PTX-SM30 %s |
| 152 | + |
| 153 | +// b) --no-cuda-include-ptx=all disables PTX inclusion for all GPUs |
| 154 | +// RUN: %clang -### -target x86_64-linux-gnu \ |
| 155 | +// RUN: --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_30 \ |
| 156 | +// RUN: --no-cuda-include-ptx=all \ |
| 157 | +// RUN: -c %s 2>&1 \ |
| 158 | +// RUN: | FileCheck -check-prefixes FATBIN-COMMON,NOPTX-SM35,NOPTX-SM30 %s |
| 159 | + |
| 160 | +// c) --no-cuda-include-ptx=sm_XX disables PTX inclusion for that GPU only. |
| 161 | +// RUN: %clang -### -target x86_64-linux-gnu \ |
| 162 | +// RUN: --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_30 \ |
| 163 | +// RUN: --no-cuda-include-ptx=sm_35 \ |
| 164 | +// RUN: -c %s 2>&1 \ |
| 165 | +// RUN: | FileCheck -check-prefixes FATBIN-COMMON,NOPTX-SM35,PTX-SM30 %s |
| 166 | +// RUN: %clang -### -target x86_64-linux-gnu \ |
| 167 | +// RUN: --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_30 \ |
| 168 | +// RUN: --no-cuda-include-ptx=sm_30 \ |
| 169 | +// RUN: -c %s 2>&1 \ |
| 170 | +// RUN: | FileCheck -check-prefixes FATBIN-COMMON,PTX-SM35,NOPTX-SM30 %s |
| 171 | + |
| 172 | +// d) --cuda-include-ptx=all overrides preceding --no-cuda-include-ptx=all |
| 173 | +// RUN: %clang -### -target x86_64-linux-gnu \ |
| 174 | +// RUN: --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_30 \ |
| 175 | +// RUN: --no-cuda-include-ptx=all --cuda-include-ptx=all \ |
| 176 | +// RUN: -c %s 2>&1 \ |
| 177 | +// RUN: | FileCheck -check-prefixes FATBIN-COMMON,PTX-SM35,PTX-SM30 %s |
| 178 | + |
| 179 | +// e) --cuda-include-ptx=all overrides preceding --no-cuda-include-ptx=sm_XX |
| 180 | +// RUN: %clang -### -target x86_64-linux-gnu \ |
| 181 | +// RUN: --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_30 \ |
| 182 | +// RUN: --no-cuda-include-ptx=sm_30 --cuda-include-ptx=all \ |
| 183 | +// RUN: -c %s 2>&1 \ |
| 184 | +// RUN: | FileCheck -check-prefixes FATBIN-COMMON,PTX-SM35,PTX-SM30 %s |
| 185 | + |
| 186 | + |
145 | 187 | // ARCH-SM20: "-cc1"{{.*}}"-target-cpu" "sm_20"
|
146 | 188 | // NOARCH-SM20-NOT: "-cc1"{{.*}}"-target-cpu" "sm_20"
|
147 | 189 | // ARCH-SM30: "-cc1"{{.*}}"-target-cpu" "sm_30"
|
|
236 | 278 |
|
237 | 279 | // Match no linker.
|
238 | 280 | // NOLINK-NOT: "{{.*}}{{ld|link}}{{(.exe)?}}"
|
| 281 | + |
| 282 | +// FATBIN-COMMON:fatbinary |
| 283 | +// FATBIN-COMMON: "--create" "[[FATBINARY:[^"]*]]" |
| 284 | +// FATBIN-COMMON: "--image=profile=sm_30,file= |
| 285 | +// PTX-SM30: "--image=profile=compute_30,file= |
| 286 | +// NOPTX-SM30-NOT: "--image=profile=compute_30,file= |
| 287 | +// FATBIN-COMMON: "--image=profile=sm_35,file= |
| 288 | +// PTX-SM35: "--image=profile=compute_35,file= |
| 289 | +// NOPTX-SM35-NOT: "--image=profile=compute_35,file= |
0 commit comments