Remove gen9 targets
This commit is contained in:
committed by
aneshlya
parent
d055a4fad5
commit
057d51aa94
@@ -102,7 +102,7 @@ Defined in `tests/lit-tests/lit.cfg`:
|
||||
Use `--debug-phase` to capture output of specific optimization passes:
|
||||
|
||||
```ispc
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text \
|
||||
// RUN: %{ispc} %s --target=avx2 --emit-llvm-text \
|
||||
// RUN: --debug-phase=325:325 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_325_LoadStoreVectorizerPass.ll %s
|
||||
```
|
||||
|
||||
+1
-1
@@ -396,7 +396,7 @@ endif()
|
||||
list(APPEND ARM_TARGETS neon-i8x16 neon-i16x8 neon-i32x4 neon-i32x8 neon-i8x32 neon-i16x16)
|
||||
list(APPEND RISCV_TARGETS rvv-x4)
|
||||
list(APPEND WASM_TARGETS wasm-i32x4)
|
||||
list(APPEND XE_TARGETS gen9-x16 gen9-x8 xelp-x16 xelp-x8 xehpg-x16 xehpg-x8 xehpc-x16 xehpc-x32 xelpg-x16 xelpg-x8
|
||||
list(APPEND XE_TARGETS xelp-x16 xelp-x8 xehpg-x16 xehpg-x8 xehpc-x16 xehpc-x32 xelpg-x16 xelpg-x8
|
||||
xe2hpg-x16 xe2hpg-x32 xe2lpg-x16 xe2lpg-x32)
|
||||
|
||||
if (X86_ENABLED)
|
||||
|
||||
@@ -56,7 +56,7 @@ and optimization and is [hosted on github](http://github.com/ispc/ispc). It
|
||||
supports Windows, macOS, and Linux as a host operating system and also capable
|
||||
to target Android, iOS, and PS4/PS5. It currently supports multiple flavours
|
||||
of x86 (SSE2, SSE4, AVX, AVX2, and AVX512), ARM (NEON), and Intel® GPU
|
||||
architectures (Gen9 and Xe family).
|
||||
architectures (Xe family).
|
||||
|
||||
## Features
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ function(determine_arch_and_os target bit os out_arch out_os)
|
||||
else()
|
||||
set(arch "error")
|
||||
endif()
|
||||
elseif ("${target}" MATCHES "gen9|xe")
|
||||
elseif ("${target}" MATCHES "xe")
|
||||
set(arch "xe64")
|
||||
endif()
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ syn keyword ispcDefine ISPC ISPC_POINTER_SIZE ISPC_MAJOR_VERSION ISPC_MINOR_VER
|
||||
\ F16_MIN FLT_MIN DBL_MIN F16_MAX FLT_MAX DBL_MAX
|
||||
\ ISPC_TARGET_NEON ISPC_TARGET_SSE2 ISPC_TARGET_SSE4 ISPC_TARGET_AVX ISPC_TARGET_AVX2 ISPC_TARGET_AVX512KNL ISPC_TARGET_AVX512SKX
|
||||
\ ISPC_TARGET_AVX512SPR ISPC_TARGET_AVX10_2
|
||||
\ ISPC_TARGET_GEN9 ISPC_TARGET_XELP ISPC_TARGET_XEHPG ISPC_TARGET_XEHPC ISPC_TARGET_XELPG ISPC_TARGET_XE2HPG ISPC_TARGET_XE2LPG
|
||||
\ ISPC_TARGET_XELP ISPC_TARGET_XEHPG ISPC_TARGET_XEHPC ISPC_TARGET_XELPG ISPC_TARGET_XE2HPG ISPC_TARGET_XE2LPG
|
||||
|
||||
|
||||
" LLVM intrinsics are ISPC intrinsics
|
||||
|
||||
@@ -21,7 +21,7 @@ Overview
|
||||
The ``invoke_sycl`` adds support for an execution model in which SPMD functions are called from SIMD context. In
|
||||
particular, below we will consider calling SYCL functions from ISPC. A similar approach may be applied to call between
|
||||
other languages like call SYCL from ESIMD or call OpenCL from ISPC. ISPC execution model defines an execution width,
|
||||
which is mapped to subgroup size in SYCL execution model. For example, ``gen9-x16`` target has an execution width 16,
|
||||
which is mapped to subgroup size in SYCL execution model. For example, ``xehpg-x16`` target has an execution width 16,
|
||||
so SYCL subgroup size will be 16 to match it. The invocation may be in both convergent and non-convergent contexts.
|
||||
|
||||
Defining SYCL function
|
||||
@@ -96,7 +96,7 @@ Here is an example of calling SYCL function used in the examples above:
|
||||
|
||||
.. code-block:: cpp
|
||||
|
||||
// ispc --target=gen9-x16 simple.ispc
|
||||
// ispc --target=xehpg-x16 simple.ispc
|
||||
struct Parameters {
|
||||
float *vin;
|
||||
float *vout;
|
||||
|
||||
+7
-4
@@ -940,8 +940,12 @@ functions from ISPC code will result in a **compilation error**.
|
||||
Note: The compiler can only detect calls to exported functions within the same
|
||||
compilation unit. Cross-module calls to exported functions cannot be detected.
|
||||
|
||||
``sse2-i32x4`` and ``sse2-i32x8`` targets are deprecated and will be removed in
|
||||
future releases.
|
||||
ISPC Targets:
|
||||
|
||||
* ``sse2-i32x4`` and ``sse2-i32x8`` targets are deprecated and will be removed in
|
||||
future releases.
|
||||
* ``gen9-x8``, and ``gen9-x16`` targets have been removed.
|
||||
|
||||
|
||||
Getting Started with ISPC
|
||||
=========================
|
||||
@@ -1272,7 +1276,6 @@ The following GPU targets are supported:
|
||||
============= ========================= ===========================================================
|
||||
GPU target GPU microarchitecture First-GPU codename to support the target
|
||||
============= ========================= ===========================================================
|
||||
gen9 Intel Gen9 Intel Skylake iGPU (2015)
|
||||
xelp Intel XeLP Intel Tiger Lake LP iGPU (2020)
|
||||
xehpg Intel XeHPG Intel Arc Alchemist GPU (2022)
|
||||
xehpc Intel XeHPC Intel Ponte Vecchio GPU (2022)
|
||||
@@ -1348,7 +1351,7 @@ to ARMv8 (32-bit) when ``--arch=arm`` is used.
|
||||
|
||||
Xe targets:
|
||||
|
||||
``gen9-x8``, ``gen9-x16``, ``xelp-x8``, ``xelp-x16``, ``xehpg-x8``, ``xehpg-x16``, ``xehpc-x16``, ``xehpc-x32``.
|
||||
``xelp-x8``, ``xelp-x16``, ``xehpg-x8``, ``xehpg-x16``, ``xehpc-x16``, ``xehpc-x32``.
|
||||
|
||||
Note that ``sse4.1`` and ``sse4.2`` targets may not be used together in
|
||||
multi-target compilation. While the auto-dispatch code will correctly detect
|
||||
|
||||
@@ -45,11 +45,11 @@ Using The ISPC Compiler
|
||||
=======================
|
||||
|
||||
The output from ``ispc`` for Xe targets is SPIR-V file by default. It is used
|
||||
when either ``gen9`` or ``xe`` target is selected:
|
||||
when ``xe`` target is selected:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
ispc foo.ispc --target=gen9-x8 -o foo.spv
|
||||
ispc foo.ispc --target=xehpg-x8 -o foo.spv
|
||||
|
||||
The SPIR-V file is consumed by the runtime for further compilation and execution
|
||||
on GPU.
|
||||
@@ -82,16 +82,15 @@ installation of TBB runtime instructions.
|
||||
Basic Command-line Options
|
||||
--------------------------
|
||||
|
||||
A bunch of new targets were introduced for GPU support: ``gen9-x8``,
|
||||
``gen9-x16``, ``xelp-x8``, ``xelp-x16``, ``xehpg-x8``, ``xehpg-x16``,
|
||||
``xehpc-x16`` and ``xehpc-x32``.
|
||||
A bunch of new targets were introduced for GPU support: ``xelp-x8``, ``xelp-x16``,
|
||||
``xehpg-x8``, ``xehpg-x16``, ``xehpc-x16`` and ``xehpc-x32``.
|
||||
|
||||
If the ``-o`` flag is given, ``ispc`` will generate a SPIR-V output file.
|
||||
Optionally you can use ``--emit-spirv`` flag:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
ispc --target=gen9-x8 --emit-spirv foo.ispc -o foo.spv
|
||||
ispc --target=xehpg-x8 --emit-spirv foo.ispc -o foo.spv
|
||||
|
||||
To generate L0 binary, use ``--emit-zebin`` flag. When you use L0 binary you may
|
||||
want to pass some additional options to the vector backend. You can do this
|
||||
@@ -495,7 +494,7 @@ are example commands for Linux:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
ispc -I /home/ispc_package/include/ispcrt -DISPC_GPU --target=gen9-x8 --woff
|
||||
ispc -I /home/ispc_package/include/ispcrt -DISPC_GPU --target=xehpg-x8 --woff
|
||||
-o /home/ispc_package/examples/xpu/simple/xe_simple.spv
|
||||
/home/ispc_package/examples/xpu/simple/simple.ispc
|
||||
|
||||
@@ -657,7 +656,7 @@ To reduce number of local variables you can follow these simple rules:
|
||||
|
||||
* Use SIMD-8 where it is impossible to fit in the available register number. If
|
||||
you see the warning message below during runtime, consider compiling your code
|
||||
for SIMD-8 target (``--target=gen9-x8``).
|
||||
for SIMD-8 target (``--target=xehpg-x8``).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020-2023, Intel Corporation
|
||||
# Copyright (c) 2020-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "aobench")
|
||||
set(ISPC_SRC_NAME "aobench.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(ISPC_TARGET_CPU "sse2-i32x8;sse4-i32x8;avx1-i32x8;avx2-i32x8;avx512skx-x8")
|
||||
set(HOST_SOURCES ao.cpp ao_serial.cpp)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020-2024, Intel Corporation
|
||||
# Copyright (c) 2020-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "mandelbrot")
|
||||
set(ISPC_SRC_NAME "mandelbrot.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x16")
|
||||
set(ISPC_TARGET_XE "xehpg-x16")
|
||||
set(ISPC_TARGET_CPU "sse4-i8x16;avx1-i32x16;avx2-i32x16;avx512skx-x16")
|
||||
set(HOST_SOURCES mandelbrot.cpp mandelbrot_serial.cpp)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2019-2023, Intel Corporation
|
||||
# Copyright (c) 2019-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "noise")
|
||||
set(ISPC_SRC_NAME "noise.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(HOST_SOURCES noise.cpp noise_serial.cpp)
|
||||
|
||||
add_perf_example(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020-2023, Intel Corporation
|
||||
# Copyright (c) 2020-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "pipeline-dpcpp")
|
||||
set(ISPC_SRC_NAME "pipeline-dpcpp.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(DPCPP_HOST_SOURCES pipeline-dpcpp.cpp)
|
||||
|
||||
if(UNIX)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2019-2023, Intel Corporation
|
||||
# Copyright (c) 2019-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "sgemm")
|
||||
set(ISPC_SRC_NAME "naive_sgemm.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x16")
|
||||
set(ISPC_TARGET_XE "xehpg-x16")
|
||||
set(HOST_SOURCES sgemm.cpp main.cpp)
|
||||
|
||||
add_perf_example(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020-2023, Intel Corporation
|
||||
# Copyright (c) 2020-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "simple-dpcpp-l0")
|
||||
set(ISPC_SRC_NAME "simple-dpcpp-l0.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(DPCPP_HOST_SOURCES simple-dpcpp-l0.cpp)
|
||||
|
||||
if(UNIX)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2021-2023, Intel Corporation
|
||||
# Copyright (c) 2021-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "simple-dpcpp")
|
||||
set(ISPC_SRC_NAME "simple-dpcpp.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(DPCPP_HOST_SOURCES simple-dpcpp.cpp)
|
||||
|
||||
if(UNIX)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2023, Intel Corporation
|
||||
# Copyright (c) 2023-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "simple-fence")
|
||||
set(ISPC_SRC_NAME "simple-fence.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(HOST_SOURCES simple-fence.cpp)
|
||||
|
||||
add_perf_example(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020-2023, Intel Corporation
|
||||
# Copyright (c) 2020-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "simple-usm")
|
||||
set(ISPC_SRC_NAME "simple-usm.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(HOST_SOURCES simple-usm.cpp)
|
||||
|
||||
add_perf_example(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2020-2023, Intel Corporation
|
||||
# Copyright (c) 2020-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "simple")
|
||||
set(ISPC_SRC_NAME "simple.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(HOST_SOURCES simple.cpp)
|
||||
|
||||
add_perf_example(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2022-2023, Intel Corporation
|
||||
# Copyright (c) 2022-2025, Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
@@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
set(TEST_NAME "usm-mem")
|
||||
set(ISPC_SRC_NAME "usm-mem.ispc")
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
set(HOST_SOURCES usm-mem.cpp)
|
||||
|
||||
add_perf_example(
|
||||
|
||||
@@ -273,14 +273,14 @@ endmacro()
|
||||
## GPU specific macros/options ################################################
|
||||
###############################################################################
|
||||
|
||||
define_ispc_isa_options(XE gen9-x8 gen9-x16 xelp-x8 xelp-x16 xehpc-x16 xehpc-x32 xehpg-x8 xehpg-x16)
|
||||
define_ispc_isa_options(XE xelp-x8 xelp-x16 xehpc-x16 xehpc-x32 xehpg-x8 xehpg-x16)
|
||||
|
||||
set(ISPC_XE_ADDITIONAL_ARGS "" CACHE STRING "extra arguments to pass to ISPC for Xe targets")
|
||||
|
||||
function(ispc_gpu_target_add_sources TARGET_NAME PARENT_TARGET_NAME)
|
||||
# Check If GPU target is passed externally
|
||||
if (NOT ISPC_TARGET_XE)
|
||||
set(ISPC_TARGET_XE "gen9-x8")
|
||||
set(ISPC_TARGET_XE "xehpg-x8")
|
||||
endif()
|
||||
|
||||
if (NOT ISPC_TARGET_DIR)
|
||||
@@ -288,7 +288,7 @@ function(ispc_gpu_target_add_sources TARGET_NAME PARENT_TARGET_NAME)
|
||||
endif()
|
||||
|
||||
set(ISPC_PROGRAM_COUNT 16)
|
||||
if ("${ISPC_TARGET_XE}" STREQUAL "gen9-x8" OR
|
||||
if ("${ISPC_TARGET_XE}" STREQUAL "xehpg-x8" OR
|
||||
"${ISPC_TARGET_XE}" STREQUAL "xelp-x8")
|
||||
set(ISPC_PROGRAM_COUNT 8)
|
||||
endif()
|
||||
|
||||
@@ -151,7 +151,7 @@ with NamedTemporaryFile(mode='w', dir=dirname(output), delete=False) as outfile:
|
||||
arch = "riscv64"
|
||||
elif "wasm" in target and not "generic" in target:
|
||||
arch = "wasm32" if args[0].runtime == "32" else "wasm64" if args[0].runtime == "64" else "error"
|
||||
elif ("gen9" in target) or ("xe" in target):
|
||||
elif "xe" in target:
|
||||
arch = "xe64"
|
||||
elif ("generic" in target):
|
||||
arch = args[0].arch
|
||||
|
||||
@@ -88,7 +88,7 @@ class TargetConfig(object):
|
||||
else:
|
||||
self.arch = arch
|
||||
self.target = target
|
||||
self.xe = target.find("gen9") != -1 or target.find("xe") != -1
|
||||
self.xe = target.find("xe") != -1
|
||||
self.set_cpu(cpu)
|
||||
self.set_target()
|
||||
|
||||
|
||||
@@ -1266,11 +1266,6 @@ ArgsParseResult ispc::ParseCommandLineArgs(int argc, char *argv[], std::string &
|
||||
output.type = Module::SPIRV;
|
||||
}
|
||||
}
|
||||
|
||||
if (target == ISPCTarget::gen9_x8 || target == ISPCTarget::gen9_x16) {
|
||||
Warning(SourcePos(), "The target %s is deprecated and will be removed in the future.",
|
||||
ISPCTargetToString(target).c_str());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+1
-3
@@ -547,9 +547,7 @@ std::unordered_map<ISPCTarget, ISPCTarget> targetParentMap = {
|
||||
|
||||
{ISPCTarget::wasm_i32x4, ISPCTarget::generic_i32x4}
|
||||
|
||||
/*{ISPCTarget::gen9_x8, ISPCTarget::generic_i1x8},
|
||||
{ISPCTarget::gen9_x16, ISPCTarget::generic_i1x16},
|
||||
{ISPCTarget::xelp_x8, ISPCTarget::generic_i1x8},
|
||||
/*{ISPCTarget::xelp_x8, ISPCTarget::generic_i1x8},
|
||||
{ISPCTarget::xelp_x16, ISPCTarget::generic_i1x16},
|
||||
{ISPCTarget::xehpg_x8, ISPCTarget::generic_i1x8},
|
||||
{ISPCTarget::xehpg_x16, ISPCTarget::generic_i1x16},
|
||||
|
||||
+11
-61
@@ -398,7 +398,6 @@ typedef enum {
|
||||
#endif // ISPC_LLVM_VERSION
|
||||
#endif // ISPC_RISCV_ENABLED
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
GPU_SKL,
|
||||
GPU_TGLLP,
|
||||
GPU_ACM_G10,
|
||||
GPU_ACM_G11,
|
||||
@@ -505,7 +504,6 @@ std::map<DeviceType, std::set<std::string>> CPUFeatures = {
|
||||
#endif // ISPC_LLVM_VERSION
|
||||
#endif // ISPC_RISCV_ENABLED
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
{GPU_SKL, {}},
|
||||
{GPU_TGLLP, {}},
|
||||
{GPU_ACM_G10, {}},
|
||||
{GPU_ACM_G11, {}},
|
||||
@@ -636,7 +634,6 @@ class AllCPUs {
|
||||
#endif // ISPC_RISCV_ENABLED
|
||||
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
names[GPU_SKL].push_back("skl");
|
||||
names[GPU_TGLLP].push_back("tgllp");
|
||||
names[GPU_TGLLP].push_back("dg1");
|
||||
// ACM 512EU version
|
||||
@@ -756,20 +753,19 @@ class AllCPUs {
|
||||
#endif // ISPC_RISCV_ENABLED
|
||||
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
compat[GPU_SKL] = Set(GPU_SKL, CPU_None);
|
||||
compat[GPU_TGLLP] = Set(GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
compat[GPU_ACM_G10] = Set(GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
compat[GPU_ACM_G11] = Set(GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
compat[GPU_ACM_G12] = Set(GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
compat[GPU_PVC] = Set(GPU_PVC, GPU_SKL, CPU_None);
|
||||
compat[GPU_TGLLP] = Set(GPU_TGLLP, CPU_None);
|
||||
compat[GPU_ACM_G10] = Set(GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, CPU_None);
|
||||
compat[GPU_ACM_G11] = Set(GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, CPU_None);
|
||||
compat[GPU_ACM_G12] = Set(GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, CPU_None);
|
||||
compat[GPU_PVC] = Set(GPU_PVC, CPU_None);
|
||||
compat[GPU_MTL_U] =
|
||||
Set(GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_ACM_G11, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
Set(GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_ACM_G11, GPU_TGLLP, CPU_None);
|
||||
compat[GPU_MTL_H] =
|
||||
Set(GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_ACM_G11, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
Set(GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_ACM_G11, GPU_TGLLP, CPU_None);
|
||||
compat[GPU_BMG_G21] =
|
||||
Set(GPU_BMG_G21, GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
Set(GPU_BMG_G21, GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, CPU_None);
|
||||
compat[GPU_LNL_M] =
|
||||
Set(GPU_LNL_M, GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, GPU_SKL, CPU_None);
|
||||
Set(GPU_LNL_M, GPU_MTL_U, GPU_MTL_H, GPU_ACM_G10, GPU_ACM_G11, GPU_ACM_G12, GPU_TGLLP, CPU_None);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1005,9 +1001,6 @@ Target::Target(Arch arch, const char *cpu, ISPCTarget ispc_target, PICLevel picL
|
||||
#endif // ISPC_RISCV_ENABLED
|
||||
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
case GPU_SKL:
|
||||
m_ispc_target = ISPCTarget::gen9_x16;
|
||||
break;
|
||||
case GPU_TGLLP:
|
||||
m_ispc_target = ISPCTarget::xelp_x16;
|
||||
break;
|
||||
@@ -1873,20 +1866,6 @@ Target::Target(Arch arch, const char *cpu, ISPCTarget ispc_target, PICLevel picL
|
||||
break;
|
||||
#endif
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
case ISPCTarget::gen9_x8:
|
||||
this->m_isa = Target::GEN9;
|
||||
this->m_nativeVectorWidth = 8;
|
||||
this->m_nativeVectorAlignment = 64;
|
||||
this->m_vectorWidth = 8;
|
||||
this->m_dataTypeWidth = 32;
|
||||
this->m_hasGather = this->m_hasScatter = true;
|
||||
this->m_maskingIsFree = true;
|
||||
this->m_maskBitCount = 1;
|
||||
setCapabilities({TargetCapability::HalfConverts, TargetCapability::HalfFullSupport,
|
||||
TargetCapability::SaturatingArithmetic, TargetCapability::Transcendentals,
|
||||
TargetCapability::Trigonometry});
|
||||
CPUfromISA = GPU_SKL;
|
||||
break;
|
||||
case ISPCTarget::xelp_x8:
|
||||
this->m_isa = Target::XELP;
|
||||
this->m_nativeVectorWidth = 8;
|
||||
@@ -1901,20 +1880,6 @@ Target::Target(Arch arch, const char *cpu, ISPCTarget ispc_target, PICLevel picL
|
||||
TargetCapability::Trigonometry});
|
||||
CPUfromISA = GPU_TGLLP;
|
||||
break;
|
||||
case ISPCTarget::gen9_x16:
|
||||
this->m_isa = Target::GEN9;
|
||||
this->m_nativeVectorWidth = 16;
|
||||
this->m_nativeVectorAlignment = 64;
|
||||
this->m_vectorWidth = 16;
|
||||
this->m_dataTypeWidth = 32;
|
||||
this->m_hasGather = this->m_hasScatter = true;
|
||||
this->m_maskingIsFree = true;
|
||||
this->m_maskBitCount = 1;
|
||||
setCapabilities({TargetCapability::HalfConverts, TargetCapability::HalfFullSupport,
|
||||
TargetCapability::SaturatingArithmetic, TargetCapability::Transcendentals,
|
||||
TargetCapability::Trigonometry});
|
||||
CPUfromISA = GPU_SKL;
|
||||
break;
|
||||
case ISPCTarget::xelp_x16:
|
||||
this->m_isa = Target::XELP;
|
||||
this->m_nativeVectorWidth = 16;
|
||||
@@ -2070,8 +2035,6 @@ Target::Target(Arch arch, const char *cpu, ISPCTarget ispc_target, PICLevel picL
|
||||
CPUfromISA = GPU_LNL_M;
|
||||
break;
|
||||
#else
|
||||
case ISPCTarget::gen9_x8:
|
||||
case ISPCTarget::gen9_x16:
|
||||
case ISPCTarget::xelp_x8:
|
||||
case ISPCTarget::xelp_x16:
|
||||
case ISPCTarget::xehpg_x8:
|
||||
@@ -2668,8 +2631,6 @@ const char *Target::ISAToString(ISA isa) {
|
||||
return "avx10.2";
|
||||
#endif
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
case Target::GEN9:
|
||||
return "gen9";
|
||||
case Target::XELP:
|
||||
return "xelp";
|
||||
case Target::XEHPG:
|
||||
@@ -2705,8 +2666,6 @@ const char *Target::ISAToTargetString(ISA isa) {
|
||||
return "wasm-i32x4";
|
||||
#endif
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
case Target::GEN9:
|
||||
return "gen9-x16";
|
||||
case Target::XELP:
|
||||
return "xelp-x16";
|
||||
case Target::XEHPG:
|
||||
@@ -2837,9 +2796,6 @@ Target::ISA Target::TargetToISA(ISPCTarget target) {
|
||||
return Target::ISA::NUM_ISAS;
|
||||
#endif // ISPC_WASM_ENABLED
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
case ISPCTarget::gen9_x8:
|
||||
case ISPCTarget::gen9_x16:
|
||||
return Target::ISA::GEN9;
|
||||
case ISPCTarget::xelp_x8:
|
||||
case ISPCTarget::xelp_x16:
|
||||
return Target::ISA::XELP;
|
||||
@@ -2859,8 +2815,6 @@ Target::ISA Target::TargetToISA(ISPCTarget target) {
|
||||
case ISPCTarget::xe2lpg_x32:
|
||||
return Target::ISA::XE2LPG;
|
||||
#else // ISPC_XE_ENABLED
|
||||
case ISPCTarget::gen9_x8:
|
||||
case ISPCTarget::gen9_x16:
|
||||
case ISPCTarget::xelp_x8:
|
||||
case ISPCTarget::xelp_x16:
|
||||
case ISPCTarget::xehpg_x8:
|
||||
@@ -3004,8 +2958,6 @@ void Target::markFuncWithCallingConv(llvm::Function *func) {
|
||||
Target::XePlatform Target::getXePlatform() const {
|
||||
AllCPUs a;
|
||||
switch (a.GetTypeFromName(m_cpu)) {
|
||||
case GPU_SKL:
|
||||
return XePlatform::gen9;
|
||||
case GPU_TGLLP:
|
||||
return XePlatform::xe_lp;
|
||||
case GPU_ACM_G10:
|
||||
@@ -3022,14 +2974,13 @@ Target::XePlatform Target::getXePlatform() const {
|
||||
case GPU_LNL_M:
|
||||
return XePlatform::xe2_lpg;
|
||||
default:
|
||||
return XePlatform::gen9;
|
||||
return XePlatform::xe_hpg;
|
||||
}
|
||||
return XePlatform::gen9;
|
||||
return XePlatform::xe_hpg;
|
||||
}
|
||||
|
||||
uint32_t Target::getXeGrfSize() const {
|
||||
switch (getXePlatform()) {
|
||||
case XePlatform::gen9:
|
||||
case XePlatform::xe_lp:
|
||||
case XePlatform::xe_hpg:
|
||||
return 32;
|
||||
@@ -3047,7 +2998,6 @@ uint32_t Target::getXeGrfSize() const {
|
||||
|
||||
bool Target::hasXePrefetch() const {
|
||||
switch (getXePlatform()) {
|
||||
case XePlatform::gen9:
|
||||
case XePlatform::xe_lp:
|
||||
return false;
|
||||
default:
|
||||
|
||||
+2
-4
@@ -266,7 +266,6 @@ class Target {
|
||||
WASM,
|
||||
#endif
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
GEN9,
|
||||
XELP,
|
||||
XEHPG,
|
||||
XEHPC,
|
||||
@@ -279,7 +278,6 @@ class Target {
|
||||
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
enum class XePlatform {
|
||||
gen9,
|
||||
xe_lp,
|
||||
xe_hpg,
|
||||
xe_lpg,
|
||||
@@ -374,8 +372,8 @@ class Target {
|
||||
|
||||
bool isXeTarget() {
|
||||
#ifdef ISPC_XE_ENABLED
|
||||
return m_isa == Target::GEN9 || m_isa == Target::XELP || m_isa == Target::XEHPG || m_isa == Target::XEHPC ||
|
||||
m_isa == Target::XELPG || m_isa == Target::XE2HPG || m_isa == Target::XE2LPG;
|
||||
return m_isa == Target::XELP || m_isa == Target::XEHPG || m_isa == Target::XEHPC || m_isa == Target::XELPG ||
|
||||
m_isa == Target::XE2HPG || m_isa == Target::XE2LPG;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
||||
+1
-15
@@ -225,11 +225,7 @@ ISPCTarget operator++(ISPCTarget &target, int dummy) {
|
||||
"Enum ISPCTarget is not sequential");
|
||||
static_assert(static_cast<underlying>(ISPCTarget::wasm_i32x4) == static_cast<underlying>(ISPCTarget::rvv_x4) + 1,
|
||||
"Enum ISPCTarget is not sequential");
|
||||
static_assert(static_cast<underlying>(ISPCTarget::gen9_x8) == static_cast<underlying>(ISPCTarget::wasm_i32x4) + 1,
|
||||
"Enum ISPCTarget is not sequential");
|
||||
static_assert(static_cast<underlying>(ISPCTarget::gen9_x16) == static_cast<underlying>(ISPCTarget::gen9_x8) + 1,
|
||||
"Enum ISPCTarget is not sequential");
|
||||
static_assert(static_cast<underlying>(ISPCTarget::xelp_x8) == static_cast<underlying>(ISPCTarget::gen9_x16) + 1,
|
||||
static_assert(static_cast<underlying>(ISPCTarget::xelp_x8) == static_cast<underlying>(ISPCTarget::wasm_i32x4) + 1,
|
||||
"Enum ISPCTarget is not sequential");
|
||||
static_assert(static_cast<underlying>(ISPCTarget::xelp_x16) == static_cast<underlying>(ISPCTarget::xelp_x8) + 1,
|
||||
"Enum ISPCTarget is not sequential");
|
||||
@@ -466,10 +462,6 @@ ISPCTarget ParseISPCTarget(std::string target) {
|
||||
return ISPCTarget::rvv_x4;
|
||||
} else if (target == "wasm-i32x4") {
|
||||
return ISPCTarget::wasm_i32x4;
|
||||
} else if (target == "gen9-x8") {
|
||||
return ISPCTarget::gen9_x8;
|
||||
} else if (target == "gen9-x16" || target == "gen9") {
|
||||
return ISPCTarget::gen9_x16;
|
||||
} else if (target == "xelp-x8") {
|
||||
return ISPCTarget::xelp_x8;
|
||||
} else if (target == "xelp-x16" || target == "xelp") {
|
||||
@@ -663,10 +655,6 @@ std::string ISPCTargetToString(ISPCTarget target) {
|
||||
return "rvv-x4";
|
||||
case ISPCTarget::wasm_i32x4:
|
||||
return "wasm-i32x4";
|
||||
case ISPCTarget::gen9_x8:
|
||||
return "gen9-x8";
|
||||
case ISPCTarget::gen9_x16:
|
||||
return "gen9-x16";
|
||||
case ISPCTarget::xelp_x8:
|
||||
return "xelp-x8";
|
||||
case ISPCTarget::xelp_x16:
|
||||
@@ -814,8 +802,6 @@ bool ISPCTargetIsWasm(ISPCTarget target) {
|
||||
|
||||
bool ISPCTargetIsGen(ISPCTarget target) {
|
||||
switch (target) {
|
||||
case ISPCTarget::gen9_x8:
|
||||
case ISPCTarget::gen9_x16:
|
||||
case ISPCTarget::xelp_x8:
|
||||
case ISPCTarget::xelp_x16:
|
||||
case ISPCTarget::xehpg_x8:
|
||||
|
||||
@@ -88,8 +88,6 @@ enum class ISPCTarget {
|
||||
neon_i32x8,
|
||||
rvv_x4,
|
||||
wasm_i32x4,
|
||||
gen9_x8,
|
||||
gen9_x16,
|
||||
xelp_x8,
|
||||
xelp_x16,
|
||||
xehpg_x8,
|
||||
|
||||
@@ -27,9 +27,8 @@
|
||||
// This lets the user know __attribute__ is part of language.
|
||||
#define ISPC_ATTRIBUTE_SUPPORTED 1
|
||||
|
||||
#if defined(ISPC_TARGET_GEN9) || defined(ISPC_TARGET_XELP) || defined(ISPC_TARGET_XEHPG) || \
|
||||
defined(ISPC_TARGET_XEHPC) || defined(ISPC_TARGET_XELPG) || defined(ISPC_TARGET_XE2HPG) || \
|
||||
defined(ISPC_TARGET_XE2LPG)
|
||||
#if defined(ISPC_TARGET_XELP) || defined(ISPC_TARGET_XEHPG) || defined(ISPC_TARGET_XEHPC) || \
|
||||
defined(ISPC_TARGET_XELPG) || defined(ISPC_TARGET_XE2HPG) || defined(ISPC_TARGET_XE2LPG)
|
||||
#define ISPC_TARGET_XE
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Test to check 'alloca()' implementation.
|
||||
// RUN: %{ispc} %s --target=host --nowrap -O0 --emit-llvm-text -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --nowrap -O0 --emit-llvm-text -o - | FileCheck %s -check-prefix=CHECK-XE
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --nowrap -O0 --emit-llvm-text -o - | FileCheck %s -check-prefix=CHECK-XE
|
||||
|
||||
// REQUIRES: X86_ENABLED
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// This test checks that ISPC_TARGET_HAS_FP16_SUPPORT macro is ON for XE and ARM platforms only.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text -o - | FileCheck %s --check-prefixes=CHECK_FP_16,CHECK
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text -o - | FileCheck %s --check-prefixes=CHECK_FP_16,CHECK
|
||||
// RUN: %{ispc} %s --target=neon-i8x16 --arch=arm --emit-llvm-text -o - | FileCheck %s --check-prefixes=CHECK_FP_16,CHECK
|
||||
// RUN: %{ispc} %s --target=neon-i32x4 --arch=aarch64 --emit-llvm-text -o - | FileCheck %s --check-prefixes=CHECK_FP_16,CHECK
|
||||
// RUN: %{ispc} %s --target=avx2-i32x8 --arch=x86 --emit-llvm-text -o - | FileCheck %s --check-prefixes=CHECK_FP_NO_16,CHECK
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --device=skl -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpc-x16 --device=pvc -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_FP64_SUPPORTED %s
|
||||
// RUN: %{ispc} %s --target=xelp-x16 --device=tgllp -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_FP64_NOT_SUPPORTED %s
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --enable-llvm-intrinsics -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --enable-llvm-intrinsics -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
// for resulting vector and "poison" starting from LLVM 14.0 (llvm/llvm-project@cf284f6)
|
||||
// It's safe transformation since poison values will be always overwriten with a different value.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=325:325 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=325:325 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_325_LoadStoreVectorizerPass.ll %s --check-prefixes CHECK_ALL,CHECK
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=325:325 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=325:325 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_325_LoadStoreVectorizerPass.ll %s --check-prefixes CHECK_ALL,CHECK
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// This test checks that compiler does not crash and produces correct error output
|
||||
// for different print arguments for Xe.
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_1 --emit-spirv --nowrap --target=gen9-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_1
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_1 --emit-spirv --nowrap --target=xehpg-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_1
|
||||
|
||||
// RUN: %{ispc} %s -o %t.spv -DPRINT_2 --emit-spirv --nowrap --target=gen9-x8
|
||||
// RUN: %{ispc} %s -o %t.spv -DPRINT_2 --emit-spirv --nowrap --target=xehpg-x8
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_3 --emit-spirv --nowrap --target=gen9-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_3
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_3 --emit-spirv --nowrap --target=xehpg-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_3
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_4 --emit-spirv --nowrap --target=gen9-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_4
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_4 --emit-spirv --nowrap --target=xehpg-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_4
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_5 --emit-spirv --nowrap --target=gen9-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_5
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_5 --emit-spirv --nowrap --target=xehpg-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_5
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_6 --emit-spirv --nowrap --target=gen9-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_6
|
||||
// RUN: not %{ispc} %s -o %t.spv -DPRINT_6 --emit-spirv --nowrap --target=xehpg-x8 2>&1 | FileCheck %s -check-prefix=CHECK_ERROR_6
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
// RUN: %{ispc} --nowrap --target=gen9-x8 --emit-spirv -o %t.spv %s 2>&1 | FileCheck %s --check-prefix=CHECK_GEN9-X8
|
||||
// RUN: %{ispc} --nowrap --target=gen9-x16 --emit-spirv -o %t.spv %s 2>&1 | FileCheck %s --check-prefix=CHECK_GEN9-X16
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
// CHECK_GEN9-X8: Warning: The target gen9-x8 is deprecated and will be removed in the future.
|
||||
// CHECK_GEN9-X16: Warning: The target gen9-x16 is deprecated and will be removed in the future.
|
||||
|
||||
void foo() {}
|
||||
@@ -7,13 +7,13 @@
|
||||
// be the same for CPU and Xe targets.
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.o --nowrap -DEXPORT_FUNC 2>&1 | FileCheck %s -check-prefix=CHECK-EXPORT_EXTERN_FUNC
|
||||
// RUN: not %{ispc} %s -o %t.o --target=gen9-x8 --nowrap -DEXPORT_FUNC 2>&1 | FileCheck %s -check-prefix=CHECK-EXPORT_EXTERN_FUNC
|
||||
// RUN: not %{ispc} %s -o %t.o --target=xehpg-x8 --nowrap -DEXPORT_FUNC 2>&1 | FileCheck %s -check-prefix=CHECK-EXPORT_EXTERN_FUNC
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.o --nowrap -DTASK_FUNC 2>&1 | FileCheck %s -check-prefix=CHECK-TASK_FUNC
|
||||
// RUN: not %{ispc} %s -o %t.o --target=gen9-x8 --nowrap -DTASK_FUNC 2>&1 | FileCheck %s -check-prefix=CHECK-TASK_FUNC
|
||||
// RUN: not %{ispc} %s -o %t.o --target=xehpg-x8 --nowrap -DTASK_FUNC 2>&1 | FileCheck %s -check-prefix=CHECK-TASK_FUNC
|
||||
|
||||
// RUN: not %{ispc} %s -o %t.o --nowrap 2>&1 | FileCheck %s -check-prefix=CHECK-EXPORT_EXTERN_FUNC
|
||||
// RUN: not %{ispc} %s -o %t.o --target=gen9-x8 --nowrap 2>&1 | FileCheck %s -check-prefix=CHECK-EXPORT_EXTERN_FUNC
|
||||
// RUN: not %{ispc} %s -o %t.o --target=xehpg-x8 --nowrap 2>&1 | FileCheck %s -check-prefix=CHECK-EXPORT_EXTERN_FUNC
|
||||
|
||||
// CHECK-EXPORT_EXTERN_FUNC: Error: Undeclared symbol "taskIndex0".
|
||||
// CHECK-EXPORT_EXTERN_FUNC: Error: Undeclared symbol "taskIndex1".
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// This test checks correct LLVM IR generation when assert is used on Xe target.
|
||||
// TODO: add test case with assert inside exported function when support is added to VC backend.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
//CHECK: @lz_format_str = internal unnamed_addr addrspace(2) constant [{{.*}} x i8] c"{{.*}}xe_assert.ispc:13:3: Assertion failed: a > 0 \0A\00", align 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// This test checks correct LLVM IR generation when memory_barrier is used on Xe target.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
task void barrier() {
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
// The test checks that GPU device/target definitions (including all synonyms) are successfully consumed by compiler.
|
||||
|
||||
// XeLP
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x8 --device=skl
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x8 --device=tgllp
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x8 --device=dg1
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x8 --device=acm-g10
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x8 --device=acm-g11
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x8 --device=acm-g12
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x16 --device=skl
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x16 --device=tgllp
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x16 --device=dg1
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x16 --device=acm-g10
|
||||
@@ -15,13 +13,11 @@
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelp-x16 --device=acm-g12
|
||||
|
||||
// XeHPG
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x8 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x8 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x8 --device=dg1
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x8 --device=acm-g10
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x8 --device=acm-g11
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x8 --device=acm-g12
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x16 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x16 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x16 --device=dg1
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x16 --device=acm-g10
|
||||
@@ -29,7 +25,6 @@
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpg-x16 --device=acm-g12
|
||||
|
||||
// XeHPC
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpc-x16 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpc-x16 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpc-x16 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpc-x16 --device=acm-g10
|
||||
@@ -38,7 +33,6 @@
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xehpc-x16 --device=pvc
|
||||
|
||||
// XeLPG
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=acm-g10
|
||||
@@ -46,7 +40,6 @@
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=acm-g12
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=mtl-u
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x8 --device=mtl-h
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x16 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x16 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x16 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x16 --device=acm-g10
|
||||
@@ -56,7 +49,6 @@
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xelpg-x16 --device=mtl-h
|
||||
|
||||
// Xe2HPG
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=acm-g10
|
||||
@@ -65,7 +57,6 @@
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=mtl-u
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=mtl-h
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x16 --device=bmg-g21
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x32 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x32 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x32 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x32 --device=acm-g10
|
||||
@@ -76,7 +67,6 @@
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2hpg-x32 --device=bmg-g21
|
||||
|
||||
// Xe2LPG
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=acm-g10
|
||||
@@ -86,7 +76,6 @@
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=mtl-h
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=bmg-g21
|
||||
// RUN: %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x16 --device=lnl-m
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x32 --device=skl
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x32 --device=tgllp
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x32 --device=dg1
|
||||
// RUN: not %{ispc} %s -o %t.bin --emit-zebin --nostdlib --target=xe2lpg-x32 --device=acm-g10
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-spirv --nowrap -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --device=skl --emit-spirv --nowrap -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpc-x16 --arch=xe64 --emit-spirv --nowrap -o %t.spv
|
||||
// RUN: not %{ispc} %s --target=xelp-x16 --arch=xe64 --device=tgllp --emit-spirv --nowrap -o %t.spv 2>&1 | FileCheck %s -check-prefix=CHECK_DOUBLE_ERROR
|
||||
// RUN: not %{ispc} %s --target=xelp-x16 --arch=xe64 --device=dg1 --emit-spirv --nowrap -o %t.spv 2>&1 | FileCheck %s -check-prefix=CHECK_DOUBLE_ERROR
|
||||
// RUN: not %{ispc} %s --target=xehpg-x16 --arch=xe64 --device=acm-g11 --emit-spirv --nowrap -o %t.spv 2>&1 | FileCheck %s -check-prefix=CHECK_DOUBLE_ERROR
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// This test checks that dwarfAddressSpace attribute is present in DIDerivedType metadata for Xe targets.
|
||||
// RUN: %{ispc} %s --target=gen9-x8 -g --emit-llvm-text -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 -g --emit-llvm-text -o - | FileCheck %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// The test checks code generation for extern "C" function definitions on GPU.
|
||||
|
||||
// Check GPU:
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --emit-llvm-text --nowrap -o - | FileCheck %s -check-prefix=CHECK_GPU
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --emit-llvm-text --nowrap -o - | FileCheck %s -check-prefix=CHECK_GPU
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// This tests checks that EEI is used (instead of GEP) to get unique value in foreach_unique statement for Xe target.
|
||||
// RUN: %{ispc} %s --target=gen9-x8 -O0 --emit-llvm-text --no-discard-value-names --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 -O0 --emit-llvm-text --no-discard-value-names --nowrap -o - | FileCheck %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
// are split into separate tests.
|
||||
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD_INLINE4,CHECK_LOAD_INLINE16
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD_INLINE4,CHECK_LOAD_INLINE16
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
// for the XeGatherCoalescing pass to perform.
|
||||
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
// no optimization.
|
||||
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD_PRAGMA4,CHECK_LOAD_INLINE4,CHECK_LOAD_INLINE8
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD_PRAGMA4,CHECK_LOAD_INLINE4,CHECK_LOAD_INLINE8
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
// %vectorized_extr_elem222 = extractelement <3 x float> %vectorized_ld, i64 2
|
||||
// %vectorized_extr_elem221 = extractelement <3 x float> %vectorized_ld, i64 3
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll %s
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 --emit-llvm-text -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 --emit-llvm-text -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
// %vectorized_extr_elem222 = extractelement <3 x float> %vectorized_ld, i64 2
|
||||
// %vectorized_extr_elem221 = extractelement <3 x float> %vectorized_ld, i64 3
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
// %vectorized_extr_elem222 = extractelement <3 x float> %vectorized_ld, i64 2
|
||||
// %vectorized_extr_elem221 = extractelement <3 x float> %vectorized_ld, i64 3
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD,CHECK_VARYING
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK_LOAD,CHECK_VARYING
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
// memory level parallelism.
|
||||
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -h %t.h --emit-llvm-text --debug-phase=321:321 --dump-file=%t -o /dev/null
|
||||
// RUN: FileCheck --input-file %t/ir_321_ispcMemoryCoalescing.ll %s --check-prefixes CHECK_ALL,CHECK
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --no-discard-value-names --arch=xe64 -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --no-discard-value-names --arch=xe64 -h %t.h --emit-llvm-text -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// COM: Xe Gather Coalescing is disabled to not perform redundant optimizations on gathers.
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll --opt=disable-xe-gather-coalescing
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll --opt=disable-xe-gather-coalescing
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_XE_16 %s
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll --opt=disable-xe-gather-coalescing
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll --opt=disable-xe-gather-coalescing
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_XE_8 %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
// RUN: FileCheck %s -check-prefix=CHECK_MULTI_CPU2 --input-file=%t_avx2.ll
|
||||
|
||||
// Check GPU:
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --emit-llvm-text --nowrap -o - | FileCheck %s -check-prefix=CHECK_GPU
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --emit-llvm-text --nowrap -o - | FileCheck %s -check-prefix=CHECK_GPU
|
||||
|
||||
// Check errors
|
||||
// RUN: not %{ispc} %s --target=avx2-i32x8 -DINVOKE_SYCL_NOT_EXTERN --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=CHECK_INVOKE_SYCL_NOT_EXTERN_SYCL
|
||||
@@ -17,10 +17,10 @@
|
||||
// RUN: not %{ispc} %s --target=avx2-i32x8 -DSYCL_NO_INVOKE --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=SYCL_NO_INVOKE
|
||||
// RUN: not %{ispc} %s --target=avx2-i32x8 -DINVOKE_SYCL_NO_REGCALL --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=INVOKE_SYCL_NO_REGCALL
|
||||
|
||||
// RUN: not %{ispc} %s --target=gen9-x8 -DINVOKE_SYCL_NOT_EXTERN --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=CHECK_INVOKE_SYCL_NOT_EXTERN_SYCL
|
||||
// RUN: not %{ispc} %s --target=gen9-x8 -DCHECK_EXTERN_SYCL_DEF --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=CHECK_EXTERN_SYCL_DEF
|
||||
// RUN: not %{ispc} %s --target=gen9-x8 -DSYCL_NO_INVOKE --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=SYCL_NO_INVOKE
|
||||
// RUN: not %{ispc} %s --target=gen9-x8 -DINVOKE_SYCL_NO_REGCALL --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=INVOKE_SYCL_NO_REGCALL
|
||||
// RUN: not %{ispc} %s --target=xehpg-x8 -DINVOKE_SYCL_NOT_EXTERN --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=CHECK_INVOKE_SYCL_NOT_EXTERN_SYCL
|
||||
// RUN: not %{ispc} %s --target=xehpg-x8 -DCHECK_EXTERN_SYCL_DEF --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=CHECK_EXTERN_SYCL_DEF
|
||||
// RUN: not %{ispc} %s --target=xehpg-x8 -DSYCL_NO_INVOKE --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=SYCL_NO_INVOKE
|
||||
// RUN: not %{ispc} %s --target=xehpg-x8 -DINVOKE_SYCL_NO_REGCALL --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefix=INVOKE_SYCL_NO_REGCALL
|
||||
|
||||
// CHECK_INVOKE_SYCL_NOT_EXTERN_SYCL-COUNT-2: "invoke_sycl" expression illegal with non-'extern "SYCL"'-qualified function.
|
||||
// CHECK_EXTERN_SYCL_DEF: 'extern "SYCL"' function "extern_sycl_func_def" cannot be defined in ISPC
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// This test checks correct emitting of LLVM IR functions definitions for Xe tasks, export and extern "C" functions.
|
||||
// It also checks datalayout and metadata.
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --emit-llvm-text --no-discard-value-names -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --emit-llvm-text --no-discard-value-names -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_EXPORT_F1_GPU %s
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_TASK_F1_GPU %s
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_EXPORT_F2_GPU %s
|
||||
@@ -18,9 +18,9 @@
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_DATALAYOUT %s
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_FUNC_GPU %s
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK_METADATA %s
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --emit-llvm-text -g --nowrap --no-discard-value-names -o - | FileCheck -check-prefix=CHECK_METADATA_DEBUG %s
|
||||
// RUN: %{ispc} %s --target=gen9-x16 -DCHECK_DIAG --nowrap --emit-spirv -o %t.spv 2>&1
|
||||
// RUN: not %{ispc} %s --target=gen9-x16 -DCHECK_DIAG_TASK --nowrap --emit-spirv -o %t.spv 2>&1 | FileCheck %s -check-prefix=CHECK_RET_VAL_TASK_ERROR
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --emit-llvm-text -g --nowrap --no-discard-value-names -o - | FileCheck -check-prefix=CHECK_METADATA_DEBUG %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 -DCHECK_DIAG --nowrap --emit-spirv -o %t.spv 2>&1
|
||||
// RUN: not %{ispc} %s --target=xehpg-x16 -DCHECK_DIAG_TASK --nowrap --emit-spirv -o %t.spv 2>&1 | FileCheck %s -check-prefix=CHECK_RET_VAL_TASK_ERROR
|
||||
|
||||
// CPU run to avoid regressions
|
||||
// RUN: %{ispc} %s --target=avx2-i32x16 --emit-llvm-text --no-discard-value-names -o %t.ll
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// This test checks calls of export and extern "C" functions on CPU and GPU based on close to real-life example.
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --emit-llvm-text --nowrap --no-discard-value-names -O0 -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --emit-llvm-text --nowrap --no-discard-value-names -O0 -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefix=CHECK-XE %s
|
||||
|
||||
// RUN: %{ispc} %s --target=avx2 --emit-llvm-text --nowrap --no-discard-value-names -O0 -o %t.ll
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xe2hpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xe2lpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck -check-prefix=CHECK_NO_PREFETCH %s
|
||||
// RUN: %{ispc} %s --target=xelp-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck -check-prefix=CHECK_NO_PREFETCH %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Xe platforms do not support write prefetch.
|
||||
// Check that prefetch/prefetchw instructions are not generated.
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck -check-prefix=CHECK_NO_PREFETCH %s
|
||||
// RUN: %{ispc} %s --target=xelp-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck -check-prefix=CHECK_NO_PREFETCH %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck -check-prefix=CHECK_NO_PREFETCH %s
|
||||
// RUN: %{ispc} %s --target=xehpc-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck -check-prefix=CHECK_NO_PREFETCH %s
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// in most cases. ISPC follows this convention by default so the same code
|
||||
// generation will happen for the functions not marked with __regcall keyword as well.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --emit-llvm-text --no-discard-value-names --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --emit-llvm-text --no-discard-value-names --nowrap -o - | FileCheck %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// The test checks code generation for __regcall extern "C" function definitions on GPU.
|
||||
|
||||
// Check CPU one-target compilation:
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --emit-llvm-text --nowrap -o - | FileCheck %s -check-prefix=CHECK_GPU
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --emit-llvm-text --nowrap -o - | FileCheck %s -check-prefix=CHECK_GPU
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll %s
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// This test checks that ISPC correctly mangles SPIR-V builtins.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// RUN: %{ispc} %s --target=xehpc-x16 --arch=xe64 --emit-llvm-text --nowrap -o - | FileCheck %s
|
||||
// REQUIRES: XE_ENABLED && !WINDOWS_HOST
|
||||
|
||||
// CHECK-LABEL: @kernel_double
|
||||
|
||||
@@ -1,62 +1,62 @@
|
||||
// This test is checking correct svm.ld/st svm.gather/scatter generation for different types and SIMD width.
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_UNIFORM %s
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DVARYING --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DVARYING --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_VARYING
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DMASKED_ST --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DMASKED_ST --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DMASKED_ST --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DMASKED_ST --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_UNSAFE
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DUNIFORM --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_UNIFORM %s
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DVARYING --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DVARYING --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_VARYING
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DMASKED_ST --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DMASKED_ST --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DMASKED_ST --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DMASKED_ST --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_UNSAFE
|
||||
|
||||
// Now process special cases
|
||||
// i8 simd16
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DUNIFORM -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DUNIFORM -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_UNIFORM %s
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DVARYING -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DVARYING -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_VARYING_I8_SIMD16
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_I8_SIMD16
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_UNSAFE_I8_SIMD16
|
||||
|
||||
// for i8 we always generate gathers/scatters since i8x8 is too small for svm ld/st
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DUNIFORM -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DUNIFORM -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_UNIFORM %s
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DVARYING -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DVARYING -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_VARYING_I8_SIMD8
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_I8_SIMD8
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DMASKED_ST -DTEST_I8 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_UNSAFE_I8_SIMD8
|
||||
|
||||
// i16 simd16
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DUNIFORM -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DUNIFORM -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_UNIFORM %s
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DVARYING -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DVARYING -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_VARYING_I16_SIMD16
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_I16_SIMD16
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_UNSAFE_I16_SIMD16
|
||||
|
||||
// i16 simd8
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DUNIFORM -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DUNIFORM -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll
|
||||
// RUN: FileCheck --input-file=%t.ll -check-prefixes=CHECK_ALL,CHECK_UNIFORM %s
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DVARYING -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DVARYING -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_VARYING_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_VARYING_I16_SIMD8
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_I16_SIMD8
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 -DMASKED_ST -DTEST_I16 --emit-llvm-text --opt=enable-xe-unsafe-masked-load --nowrap -o %t.ll 2>&1 | FileCheck %s -check-prefixes=CHECK_MASKED_ST_WARN
|
||||
// RUN: FileCheck --input-file=%t.ll %s -check-prefixes=CHECK_ALL,CHECK_MASKED_ST_UNSAFE_I16_SIMD8
|
||||
|
||||
// CHECK_ALL-LABEL: @vadd(
|
||||
|
||||
@@ -5,10 +5,10 @@ Seed: 3330730858
|
||||
Invocation: ../../build/yarpgen --std=ispc
|
||||
*/
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Seed: 4096674170
|
||||
Invocation: ../../build/yarpgen --std=ispc
|
||||
*/
|
||||
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x8 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
// RUN: %{ispc} %s --target=gen9-x16 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-spirv -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x8 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
// RUN: %{ispc} %s --target=xehpg-x16 --arch=xe64 --emit-spirv --opt=disable-xe-gather-coalescing -o %t.spv
|
||||
|
||||
// REQUIRES: XE_ENABLED
|
||||
|
||||
|
||||
Reference in New Issue
Block a user