Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Driver / hip-link-bundle-archive.hip
blobdd1d779fe19a87683cd269aef02d90532f21af04
1 // REQUIRES: x86-registered-target, amdgpu-registered-target
3 // Check clang unbundle the archive and link them by lld.
4 // If there is a directory which has the same name as the
5 // value of the '-l' option, it should not interfere with
6 // the discovery and unbundling of the archive.
8 // RUN: rm -rf %t hipBundled && mkdir %t hipBundled
9 // RUN: touch %t/dummy.bc
10 // RUN: llvm-ar cr %t/libhipBundled.a %t/dummy.bc
11 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
12 // RUN:   --target=x86_64-unknown-linux-gnu \
13 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t -lhipBundled \
14 // RUN:   2>&1 | FileCheck -check-prefixes=GNU,GNU1,GNU-L %s
16 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 -nogpuinc \
17 // RUN:   --target=x86_64-unknown-linux-gnu \
18 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t -l:libhipBundled.a \
19 // RUN:   2>&1 | FileCheck -check-prefixes=GNU,GNU1,GNU-LA %s
21 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
22 // RUN:   --target=x86_64-unknown-linux-gnu \
23 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc %t/libhipBundled.a \
24 // RUN:   2>&1 | FileCheck -check-prefixes=GNU,GNU1,GNU-A %s
26 // RUN: llvm-ar cr %t/libhipBundled.a.5.2 %t/dummy.bc
27 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
28 // RUN:   --target=x86_64-unknown-linux-gnu \
29 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc %t/libhipBundled.a.5.2 \
30 // RUN:   2>&1 | FileCheck -check-prefixes=GNU,GNU2,GNU-A %s
32 // Check if a file is not an archive, it is not unbundled.
34 // RUN: touch %t/libNonArchive.a
35 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
36 // RUN:   --target=x86_64-unknown-linux-gnu \
37 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t -lNonArchive \
38 // RUN:   2>&1 | FileCheck -check-prefixes=NONARCHIVE %s
39 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
40 // RUN:   --target=x86_64-unknown-linux-gnu \
41 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t -l:libNonArchive.a \
42 // RUN:   2>&1 | FileCheck -check-prefixes=NONARCHIVE %s
43 // RUN: not %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
44 // RUN:   --target=x86_64-unknown-linux-gnu \
45 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t libNonArchive.a \
46 // RUN:   2>&1 | FileCheck -check-prefixes=NONARCHIVE %s
48 // Check if a file does not exist, it is not unbundled.
50 // RUN: not %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
51 // RUN:   --target=x86_64-unknown-linux-gnu \
52 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc %t/NoneExist.a \
53 // RUN:   2>&1 | FileCheck -check-prefixes=NONE %s
55 // Check unbundling archive for MSVC.
57 // RUN: llvm-ar cr %t/hipBundled2.lib %t/dummy.bc
58 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
59 // RUN:   --target=x86_64-pc-windows-msvc -fuse-ld= \
60 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t -lhipBundled2 \
61 // RUN:   2>&1 | FileCheck -check-prefix=MSVC %s
63 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
64 // RUN:   --target=x86_64-pc-windows-msvc -fuse-ld= \
65 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc -L%t -l:hipBundled2.lib \
66 // RUN:   2>&1 | FileCheck -check-prefix=MSVC %s
68 // RUN: %clang -### --offload-arch=gfx906 --offload-arch=gfx1030 \
69 // RUN:   --target=x86_64-pc-windows-msvc -fuse-ld= \
70 // RUN:   -nogpuinc -nogpulib %s -fgpu-rdc %t/hipBundled2.lib \
71 // RUN:   2>&1 | FileCheck -check-prefix=MSVC %s
73 // GNU1: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*}}[[LIB:libhipBundled\.a]]" "-targets=hip-amdgcn-amd-amdhsa-gfx1030" "-output=[[A1030:.*\.a]]" "-allow-missing-bundles"
74 // GNU2: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*}}[[LIB:libhipBundled\.a\.5\.2]]" "-targets=hip-amdgcn-amd-amdhsa-gfx1030" "-output=[[A1030:.*\.a]]" "-allow-missing-bundles"
75 // GNU: "{{.*}}lld{{.*}}" {{.*}}"-plugin-opt=mcpu=gfx1030" {{.*}} "[[A1030]]"
76 // GNU: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*}}[[LIB]]" "-targets=hip-amdgcn-amd-amdhsa-gfx906" "-output=[[A906:.*\.a]]" "-allow-missing-bundles"
77 // GNU: "{{.*}}lld{{.*}}" {{.*}}"-plugin-opt=mcpu=gfx906" {{.*}} "[[A906]]"
78 // GNU-L: "{{.*}}ld{{.*}}" {{.*}}"-o" "a.out" {{.*}}"-lhipBundled"
79 // GNU-LA: "{{.*}}ld{{.*}}" {{.*}}"-o" "a.out" {{.*}}"-l:libhipBundled.a"
80 // GNU-A: "{{.*}}ld{{.*}}" {{.*}}"-o" "a.out" "{{.*}}[[LIB]]"
81 // NONARCHIVE-NOT: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*libNonArchive\.a}}"
82 // NONE-NOT: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*NoneExist\.a}}"
84 // MSVC: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*}}hipBundled2.lib" "-targets=hip-amdgcn-amd-amdhsa-gfx1030" "-output=[[A1030:.*\.a]]" "-allow-missing-bundles"
85 // MSVC: "{{.*}}lld{{.*}}" {{.*}}"-plugin-opt=mcpu=gfx1030" {{.*}} "[[A1030]]"
86 // MSVC: "{{.*}}clang-offload-bundler" "-unbundle" "-type=a" "-input={{.*}}hipBundled2.lib" "-targets=hip-amdgcn-amd-amdhsa-gfx906" "-output=[[A906:.*\.a]]" "-allow-missing-bundles"
87 // MSVC: "{{.*}}lld{{.*}}" {{.*}}"-plugin-opt=mcpu=gfx906" {{.*}} "[[A906]]"
88 // MSVC: "{{.*}}link{{.*}}" {{.*}}"-out:a.exe" {{.*}}hipBundled2.lib"