annotate clang/test/Driver/hip-toolchain-rdc.hip @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 79ff65ed7e25
children 1f2b6ac9f198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // REQUIRES: x86-registered-target
anatofuz
parents:
diff changeset
2 // REQUIRES: amdgpu-registered-target
anatofuz
parents:
diff changeset
3
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
4 // RUN: %clang -### --target=x86_64-linux-gnu \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
5 // RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
6 // RUN: --hip-device-lib=lib1.bc --hip-device-lib=lib2.bc \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
7 // RUN: --hip-device-lib-path=%S/Inputs/hip_multiple_inputs/lib1 \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
8 // RUN: --hip-device-lib-path=%S/Inputs/hip_multiple_inputs/lib2 \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
9 // RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
10 // RUN: -fhip-dump-offload-linker-script \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
11 // RUN: %S/Inputs/hip_multiple_inputs/a.cu \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
12 // RUN: %S/Inputs/hip_multiple_inputs/b.hip \
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
13 // RUN: 2>&1 | FileCheck -check-prefixes=CHECK,LNX %s
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
14
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
15 // RUN: %clang -### --target=x86_64-pc-windows-msvc \
150
anatofuz
parents:
diff changeset
16 // RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \
anatofuz
parents:
diff changeset
17 // RUN: --hip-device-lib=lib1.bc --hip-device-lib=lib2.bc \
anatofuz
parents:
diff changeset
18 // RUN: --hip-device-lib-path=%S/Inputs/hip_multiple_inputs/lib1 \
anatofuz
parents:
diff changeset
19 // RUN: --hip-device-lib-path=%S/Inputs/hip_multiple_inputs/lib2 \
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
20 // RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
21 // RUN: -fhip-dump-offload-linker-script \
150
anatofuz
parents:
diff changeset
22 // RUN: %S/Inputs/hip_multiple_inputs/a.cu \
anatofuz
parents:
diff changeset
23 // RUN: %S/Inputs/hip_multiple_inputs/b.hip \
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
24 // RUN: 2>&1 | FileCheck -check-prefixes=CHECK,MSVC %s
150
anatofuz
parents:
diff changeset
25
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
26 // check code object alignment in dumped llvm-mc input
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
27 // LNX: .protected __hip_fatbin
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
28 // LNX: .type __hip_fatbin,@object
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
29 // LNX: .section .hip_fatbin,"a",@progbits
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
30 // MSVC: .section .hip_fatbin, "dw"
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
31 // CHECK: .globl __hip_fatbin
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
32 // CHECK: .p2align 12
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
33 // CHECK: __hip_fatbin:
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
34 // CHECK: .incbin "[[BUNDLE:.*hipfb]]"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
35
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
36 // emit objects for host side path
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
37 // CHECK: [[CLANG:".*clang.*"]] "-cc1" "-triple" [[HOST:"x86_64-[^"]+"]]
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
38 // CHECK-SAME: "-aux-triple" "amdgcn-amd-amdhsa"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
39 // CHECK-SAME: "-emit-obj"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
40 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
41 // CHECK-SAME: "-fgpu-rdc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
42 // CHECK-SAME: {{.*}} "-o" [[A_OBJ_HOST:".*o"]] "-x" "hip"
150
anatofuz
parents:
diff changeset
43 // CHECK-SAME: {{.*}} [[A_SRC:".*a.cu"]]
anatofuz
parents:
diff changeset
44
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
45 // CHECK: [[CLANG]] "-cc1" "-triple" [[HOST]]
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
46 // CHECK-SAME: "-aux-triple" "amdgcn-amd-amdhsa"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
47 // CHECK-SAME: "-emit-obj"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
48 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
49 // CHECK-SAME: "-fgpu-rdc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
50 // CHECK-SAME: {{.*}} "-o" [[B_OBJ_HOST:".*o"]] "-x" "hip"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
51 // CHECK-SAME: {{.*}} [[B_SRC:".*b.hip"]]
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
52
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
53 // generate image for device side path on gfx803
150
anatofuz
parents:
diff changeset
54 // CHECK: [[CLANG]] "-cc1" "-triple" "amdgcn-amd-amdhsa"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
55 // CHECK-SAME: "-aux-triple" [[HOST:"x86_64-[^"]+"]]
150
anatofuz
parents:
diff changeset
56 // CHECK-SAME: "-emit-llvm-bc"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
57 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
58 // CHECK-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden"
150
anatofuz
parents:
diff changeset
59 // CHECK-SAME: "-fapply-global-visibility-to-externs"
anatofuz
parents:
diff changeset
60 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
61 // CHECK-SAME: "-target-cpu" "gfx803"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
62 // CHECK-SAME: "-fgpu-rdc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
63 // CHECK-SAME: {{.*}} "-o" [[A_BC1:".*bc"]] "-x" "hip"
150
anatofuz
parents:
diff changeset
64 // CHECK-SAME: {{.*}} [[A_SRC]]
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 // CHECK: [[CLANG]] "-cc1" "-triple" "amdgcn-amd-amdhsa"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
67 // CHECK-SAME: "-aux-triple" [[HOST]]
150
anatofuz
parents:
diff changeset
68 // CHECK-SAME: "-emit-llvm-bc"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
69 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
70 // CHECK-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
71 // CHECK-SAME: "-fapply-global-visibility-to-externs"
150
anatofuz
parents:
diff changeset
72 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
73 // CHECK-SAME: "-target-cpu" "gfx803"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
74 // CHECK-SAME: "-fgpu-rdc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
75 // CHECK-SAME: {{.*}} "-o" [[B_BC1:".*bc"]] "-x" "hip"
150
anatofuz
parents:
diff changeset
76 // CHECK-SAME: {{.*}} [[B_SRC]]
anatofuz
parents:
diff changeset
77
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
78 // CHECK-NOT: "*.llvm-link"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
79 // CHECK-NOT: ".*opt"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
80 // CHECK-NOT: ".*llc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
81 // CHECK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
82 // CHECK-SAME: "-plugin-opt=mcpu=gfx803"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
83 // CHECK-SAME: "-o" "[[IMG_DEV1:.*.out]]" [[A_BC1]] [[B_BC1]]
150
anatofuz
parents:
diff changeset
84
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
85 // generate image for device side path on gfx900
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
86 // CHECK: [[CLANG]] "-cc1" "-triple" "amdgcn-amd-amdhsa"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
87 // CHECK-SAME: "-aux-triple" [[HOST]]
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
88 // CHECK-SAME: "-emit-llvm-bc"
150
anatofuz
parents:
diff changeset
89 // CHECK-SAME: {{.*}} "-main-file-name" "a.cu"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
90 // CHECK-SAME: "-fcuda-is-device"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
91 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
92 // CHECK-SAME: "-target-cpu" "gfx900"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
93 // CHECK-SAME: {{.*}} "-o" [[A_BC2:".*bc"]] "-x" "hip"
150
anatofuz
parents:
diff changeset
94 // CHECK-SAME: {{.*}} [[A_SRC]]
anatofuz
parents:
diff changeset
95
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
96 // CHECK: [[CLANG]] "-cc1" "-triple" "amdgcn-amd-amdhsa"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
97 // CHECK-SAME: "-aux-triple" [[HOST]]
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
98 // CHECK-SAME: "-emit-llvm-bc"
150
anatofuz
parents:
diff changeset
99 // CHECK-SAME: {{.*}} "-main-file-name" "b.hip"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
100 // CHECK-SAME: "-fcuda-is-device"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
101 // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
102 // CHECK-SAME: "-target-cpu" "gfx900"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
103 // CHECK-SAME: "-fgpu-rdc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
104 // CHECK-SAME: {{.*}} "-o" [[B_BC2:".*bc"]] "-x" "hip"
150
anatofuz
parents:
diff changeset
105 // CHECK-SAME: {{.*}} [[B_SRC]]
anatofuz
parents:
diff changeset
106
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
107 // CHECK-NOT: "*.llvm-link"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
108 // CHECK-NOT: ".*opt"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
109 // CHECK-NOT: ".*llc"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
110 // CHECK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
111 // CHECK-SAME: "-plugin-opt=mcpu=gfx900"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
112 // CHECK-SAME: "-o" "[[IMG_DEV2:.*.out]]" [[A_BC2]] [[B_BC2]]
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
113
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
114 // combine images generated into hip fat binary object
150
anatofuz
parents:
diff changeset
115 // CHECK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
116 // CHECK-SAME: "-bundle-align=4096"
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
117 // CHECK-SAME: "-targets={{.*}},hipv4-amdgcn-amd-amdhsa--gfx803,hipv4-amdgcn-amd-amdhsa--gfx900"
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
118 // CHECK-SAME: "-input={{.*}}" "-input=[[IMG_DEV1]]" "-input=[[IMG_DEV2]]" "-output=[[BUNDLE]]"
150
anatofuz
parents:
diff changeset
119
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
120 // CHECK: [[MC:".*llvm-mc.*"]] "-triple" [[HOST]] "-o" [[OBJBUNDLE:".*o"]] "{{.*}}.mcin" "--filetype=obj"
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
121
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
122 // output the executable
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
123 // LNX: [[LD:".*ld.*"]] {{.*}}"-o" "a.out" {{.*}} [[A_OBJ_HOST]] [[B_OBJ_HOST]] [[OBJBUNDLE]]
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
124 // MSVC: [[LD:".*lld-link.*"]] {{.*}}"-out:a.exe" {{.*}} [[A_OBJ_HOST]] [[B_OBJ_HOST]] [[OBJBUNDLE]]