| // REQUIRES: x86-registered-target |
| // REQUIRES: amdgpu-registered-target |
| |
| // Output bundled code objects for combined compilation. |
| // RUN: %clang -### -c --target=x86_64-linux-gnu -fgpu-rdc --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck %s |
| |
| // CHECK: {{.*}}clang-offload-bundler{{.*}}"-output=hip-output-file-name.o" |
| |
| // Check -E default output is "-" (stdout). |
| // If there are multiple preprocessor expansion outputs clang-offload-bundler |
| // is used to bundle the final output. |
| |
| // Output bundled PPE for one GPU for mixed compliation. |
| // RUN: %clang -### -E --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=DASH %s |
| |
| // Output unbundled PPE for one GPU for device only compilation. |
| // RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu \ |
| // RUN: --no-offload-new-driver -nogpulib -nogpuinc --offload-arch=gfx803 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s |
| |
| // Output bundled PPE for two GPUs for mixed compilation. |
| // RUN: %clang -### -E --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=DASH %s |
| |
| // Output bundled PPE for two GPUs for mixed compilation with -save-temps. |
| // RUN: %clang -### -E -save-temps --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=DASH %s |
| |
| // Output unbundled PPE for two GPUs for device only compilation. |
| // RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s |
| |
| // Output bundled PPE for two GPUs for device only compilation with --gpu-bundle-output. |
| // RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s --gpu-bundle-output \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=DASH %s |
| |
| // Output unbundled PPE for two GPUs for device only compilation with --no-gpu-bundle-output. |
| // RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s --no-gpu-bundle-output \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s |
| |
| // Output unbundled PPE for host only compilation. |
| // RUN: %clang -### -E --offload-host-only --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s |
| |
| // DASH-NOT: {{.*}}clang{{.*}}"-o" "-" |
| // DASH: {{.*}}clang-offload-bundler{{.*}}"-output=-" |
| // CLANG-DASH: {{.*}}clang{{.*}}"-o" "-" |
| // CLANG-DASH-NOT: {{.*}}clang-offload-bundler{{.*}}"-output=-" |
| |
| // Check -E with -o. |
| |
| // Output bundled PPE for two GPUs for mixed compilation. |
| // RUN: %clang -### -E -o test.cui --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=OUT %s |
| |
| // Output bundled PPE for two GPUs for mixed compilation. |
| // RUN: %clang -### -E -o test.cui -save-temps --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=OUT %s |
| |
| // Output bundled PPE for two GPUs for device only compilation with --gpu-bundle-output. |
| // RUN: %clang -### -E -o test.cui --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 --gpu-bundle-output %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=OUT %s |
| |
| // Output unbundled PPE for two GPUs for device only compilation. |
| // RUN: %clang -### -E -o test.cui --offload-host-only --target=x86_64-linux-gnu --no-offload-new-driver \ |
| // RUN: -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \ |
| // RUN: 2>&1 | FileCheck -check-prefixes=CLANG-OUT %s |
| |
| // OUT-NOT: {{.*}}clang{{.*}}"-o" "test.cui" |
| // OUT: {{.*}}clang-offload-bundler{{.*}}"-output=test.cui" |
| // CLANG-OUT: {{.*}}clang{{.*}}"-o" "test.cui" |
| // CLANG-OUT-NOT: {{.*}}clang-offload-bundler{{.*}}"-output=test.cui" |