xref: /llvm-project/clang/test/Driver/hip-output-file-name.hip (revision 12949c952c4fbad776a860c003ccf176973278a0)
1// Output bundled code objects for combined compilation.
2// RUN: %clang -### -c --target=x86_64-linux-gnu -fgpu-rdc --no-offload-new-driver \
3// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
4// RUN: 2>&1 | FileCheck %s
5
6// CHECK: {{.*}}clang-offload-bundler{{.*}}"-output=hip-output-file-name.o"
7
8// Check -E default output is "-" (stdout).
9// If there are multiple preprocessor expansion outputs clang-offload-bundler
10// is used to bundle the final output.
11
12// Output bundled PPE for one GPU for mixed compliation.
13// RUN: %clang -### -E --target=x86_64-linux-gnu --no-offload-new-driver \
14// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 %s \
15// RUN: 2>&1 | FileCheck -check-prefixes=DASH %s
16
17// Output unbundled PPE for one GPU for device only compilation.
18// RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu \
19// RUN:   --no-offload-new-driver -nogpulib -nogpuinc --offload-arch=gfx803 %s \
20// RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s
21
22// Output bundled PPE for two GPUs for mixed compilation.
23// RUN: %clang -### -E --target=x86_64-linux-gnu --no-offload-new-driver \
24// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
25// RUN: 2>&1 | FileCheck -check-prefixes=DASH %s
26
27// Output bundled PPE for two GPUs for mixed compilation with -save-temps.
28// RUN: %clang -### -E -save-temps --target=x86_64-linux-gnu --no-offload-new-driver \
29// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
30// RUN: 2>&1 | FileCheck -check-prefixes=DASH %s
31
32// Output unbundled PPE for two GPUs for device only compilation.
33// RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \
34// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
35// RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s
36
37// Output bundled PPE for two GPUs for device only compilation with --gpu-bundle-output.
38// RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \
39// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s --gpu-bundle-output \
40// RUN: 2>&1 | FileCheck -check-prefixes=DASH %s
41
42// Output unbundled PPE for two GPUs for device only compilation with --no-gpu-bundle-output.
43// RUN: %clang -### -E --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \
44// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s --no-gpu-bundle-output \
45// RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s
46
47// Output unbundled PPE for host only compilation.
48// RUN: %clang -### -E --offload-host-only --target=x86_64-linux-gnu --no-offload-new-driver \
49// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
50// RUN: 2>&1 | FileCheck -check-prefixes=CLANG-DASH %s
51
52// DASH-NOT: {{.*}}clang{{.*}}"-o" "-"
53// DASH: {{.*}}clang-offload-bundler{{.*}}"-output=-"
54// CLANG-DASH: {{.*}}clang{{.*}}"-o" "-"
55// CLANG-DASH-NOT: {{.*}}clang-offload-bundler{{.*}}"-output=-"
56
57// Check -E with -o.
58
59// Output bundled PPE for two GPUs for mixed compilation.
60// RUN: %clang -### -E -o test.cui --target=x86_64-linux-gnu --no-offload-new-driver \
61// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
62// RUN: 2>&1 | FileCheck -check-prefixes=OUT %s
63
64// Output bundled PPE for two GPUs for mixed compilation.
65// RUN: %clang -### -E -o test.cui -save-temps --target=x86_64-linux-gnu --no-offload-new-driver \
66// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
67// RUN: 2>&1 | FileCheck -check-prefixes=OUT %s
68
69// Output bundled PPE for two GPUs for device only compilation with --gpu-bundle-output.
70// RUN: %clang -### -E -o test.cui --offload-device-only --target=x86_64-linux-gnu --no-offload-new-driver \
71// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 --gpu-bundle-output %s \
72// RUN: 2>&1 | FileCheck -check-prefixes=OUT %s
73
74// Output unbundled PPE for two GPUs for device only compilation.
75// RUN: %clang -### -E -o test.cui --offload-host-only --target=x86_64-linux-gnu --no-offload-new-driver \
76// RUN:   -nogpulib -nogpuinc --offload-arch=gfx803 --offload-arch=gfx900 %s \
77// RUN: 2>&1 | FileCheck -check-prefixes=CLANG-OUT %s
78
79// OUT-NOT: {{.*}}clang{{.*}}"-o" "test.cui"
80// OUT: {{.*}}clang-offload-bundler{{.*}}"-output=test.cui"
81// CLANG-OUT: {{.*}}clang{{.*}}"-o" "test.cui"
82// CLANG-OUT-NOT: {{.*}}clang-offload-bundler{{.*}}"-output=test.cui"
83