| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| #!/bin/sh | ||
| exit 1 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| #!/bin/sh | ||
| echo sm_70 | ||
| exit 0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| // REQUIRES: system-linux | ||
| // REQUIRES: x86-registered-target | ||
| // REQUIRES: amdgpu-registered-target | ||
| // REQUIRES: shell | ||
|
|
||
| // RUN: mkdir -p %t | ||
| // RUN: cp %S/Inputs/amdgpu-arch/amdgpu_arch_fail %t/ | ||
| // RUN: cp %S/Inputs/amdgpu-arch/amdgpu_arch_gfx906 %t/ | ||
| // RUN: echo '#!/bin/sh' > %t/amdgpu_arch_empty | ||
| // RUN: chmod +x %t/amdgpu_arch_fail | ||
| // RUN: chmod +x %t/amdgpu_arch_gfx906 | ||
| // RUN: chmod +x %t/amdgpu_arch_empty | ||
|
|
||
| // case when amdgpu-arch returns nothing or fails | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_fail -x hip %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-new-driver --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_fail -x hip %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // NO-OUTPUT-ERROR: error: cannot determine amdgcn architecture{{.*}}; consider passing it via '--offload-arch' | ||
|
|
||
| // case when amdgpu-arch does not return anything with successful execution | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_empty -x hip %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=EMPTY-OUTPUT | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-new-driver --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_empty -x hip %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=EMPTY-OUTPUT | ||
| // EMPTY-OUTPUT: error: cannot determine amdgcn architecture: No AMD GPU detected in the system; consider passing it via '--offload-arch' | ||
|
|
||
| // case when amdgpu-arch returns a gfx906 GPU. | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 -x hip %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-GFX906 | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-new-driver --offload-arch=native --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 -x hip %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-GFX906 | ||
| // ARCH-GFX906: "-cc1" "-triple" "amdgcn-amd-amdhsa"{{.*}}"-target-cpu" "gfx906" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| // REQUIRES: system-linux | ||
| // REQUIRES: x86-registered-target | ||
| // REQUIRES: nvptx-registered-target | ||
| // REQUIRES: shell | ||
|
|
||
| // RUN: mkdir -p %t | ||
| // RUN: cp %S/Inputs/nvptx-arch/nvptx_arch_fail %t/ | ||
| // RUN: cp %S/Inputs/nvptx-arch/nvptx_arch_sm_70 %t/ | ||
| // RUN: echo '#!/bin/sh' > %t/nvptx_arch_empty | ||
| // RUN: chmod +x %t/nvptx_arch_fail | ||
| // RUN: chmod +x %t/nvptx_arch_sm_70 | ||
| // RUN: chmod +x %t/nvptx_arch_empty | ||
|
|
||
| // case when nvptx-arch returns nothing or fails | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --nvptx-arch-tool=%t/nvptx_arch_fail -x cuda %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-new-driver --offload-arch=native --nvptx-arch-tool=%t/nvptx_arch_fail -x cuda %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // NO-OUTPUT-ERROR: error: cannot determine nvptx64 architecture{{.*}}; consider passing it via '--offload-arch' | ||
|
|
||
| // case when nvptx-arch does not return anything with successful execution | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --nvptx-arch-tool=%t/nvptx_arch_empty -x cuda %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=EMPTY-OUTPUT | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-new-driver --offload-arch=native --nvptx-arch-tool=%t/nvptx_arch_empty -x cuda %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=EMPTY-OUTPUT | ||
| // EMPTY-OUTPUT: error: cannot determine nvptx64 architecture: No NVIDIA GPU detected in the system; consider passing it via '--offload-arch' | ||
|
|
||
| // case when nvptx-arch does not return anything with successful execution | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --nvptx-arch-tool=%t/nvptx_arch_sm_70 -x cuda %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-sm_70 | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib --offload-arch=native --offload-new-driver --nvptx-arch-tool=%t/nvptx_arch_sm_70 -x cuda %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-sm_70 | ||
| // ARCH-sm_70: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| // RUN: mkdir -p %t | ||
| // RUN: cp %S/Inputs/amdgpu-arch/amdgpu_arch_fail %t/ | ||
| // RUN: cp %S/Inputs/amdgpu-arch/amdgpu_arch_gfx906 %t/ | ||
| // RUN: cp %S/Inputs/nvptx-arch/nvptx_arch_fail %t/ | ||
| // RUN: cp %S/Inputs/nvptx-arch/nvptx_arch_sm_70 %t/ | ||
| // RUN: echo '#!/bin/sh' > %t/amdgpu_arch_empty | ||
| // RUN: chmod +x %t/amdgpu_arch_fail | ||
| // RUN: chmod +x %t/amdgpu_arch_gfx906 | ||
| // RUN: chmod +x %t/amdgpu_arch_empty | ||
| // RUN: echo '#!/bin/sh' > %t/nvptx_arch_empty | ||
| // RUN: chmod +x %t/nvptx_arch_fail | ||
| // RUN: chmod +x %t/nvptx_arch_sm_70 | ||
| // RUN: chmod +x %t/nvptx_arch_empty | ||
|
|
||
| // case when nvptx-arch and amdgpu-arch return nothing or fails | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch=native \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_fail --amdgpu-arch-tool=%t/amdgpu_arch_fail %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch=native \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_empty --amdgpu-arch-tool=%t/amdgpu_arch_empty %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch= \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_fail --amdgpu-arch-tool=%t/amdgpu_arch_fail %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch= \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_empty --amdgpu-arch-tool=%t/amdgpu_arch_empty %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR | ||
| // NO-OUTPUT-ERROR: error: failed to deduce triple for target architecture 'native'; specify the triple using '-fopenmp-targets' and '-Xopenmp-target' instead. | ||
|
|
||
| // case when amdgpu-arch succeeds. | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch=native \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_fail --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-GFX906 | ||
| // ARCH-GFX906: "-cc1" "-triple" "amdgcn-amd-amdhsa"{{.*}}"-target-cpu" "gfx906" | ||
|
|
||
| // case when nvptx-arch succeeds. | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch=native \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_sm_70 --amdgpu-arch-tool=%t/amdgpu_arch_fail %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-SM_70 | ||
| // ARCH-SM_70: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70" | ||
|
|
||
| // case when both nvptx-arch and amdgpu-arch succeed. | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch=native \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_sm_70 --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-SM_70-GFX906 | ||
| // ARCH-SM_70-GFX906: "-cc1" "-triple" "amdgcn-amd-amdhsa"{{.*}}"-target-cpu" "gfx906" | ||
| // ARCH-SM_70-GFX906: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70" | ||
|
|
||
| // case when both nvptx-arch and amdgpu-arch succeed with other archs. | ||
| // RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -fopenmp --offload-arch=native,sm_75,gfx1030 \ | ||
| // RUN: --nvptx-arch-tool=%t/nvptx_arch_sm_70 --amdgpu-arch-tool=%t/amdgpu_arch_gfx906 %s 2>&1 \ | ||
| // RUN: | FileCheck %s --check-prefix=ARCH-MULTIPLE | ||
| // ARCH-MULTIPLE: "-cc1" "-triple" "amdgcn-amd-amdhsa"{{.*}}"-target-cpu" "gfx1030" | ||
| // ARCH-MULTIPLE: "-cc1" "-triple" "amdgcn-amd-amdhsa"{{.*}}"-target-cpu" "gfx906" | ||
| // ARCH-MULTIPLE: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_70" | ||
| // ARCH-MULTIPLE: "-cc1" "-triple" "nvptx64-nvidia-cuda"{{.*}}"-target-cpu" "sm_75" |