[all-commits] [llvm/llvm-project] 0a443f: [SPIR-V] Add implementation of G_SPLAT_VECTOR opco...
Vyacheslav Levytskyy via All-commits
all-commits at lists.llvm.org
Wed Mar 13 00:32:23 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0a443f13b49b3f392461a0bb60b0146cfc4607c7
https://github.com/llvm/llvm-project/commit/0a443f13b49b3f392461a0bb60b0146cfc4607c7
Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
Date: 2024-03-13 (Wed, 13 Mar 2024)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
M llvm/test/CodeGen/SPIRV/ComparePointers.ll
M llvm/test/CodeGen/SPIRV/capability-kernel.ll
M llvm/test/CodeGen/SPIRV/pointers/getelementptr-addressspace.ll
M llvm/test/CodeGen/SPIRV/pointers/getelementptr-base-type.ll
M llvm/test/CodeGen/SPIRV/pointers/kernel-argument-pointer-addressspace.ll
M llvm/test/CodeGen/SPIRV/pointers/kernel-argument-pointer-type-deduction-no-bitcast-to-generic.ll
M llvm/test/CodeGen/SPIRV/pointers/kernel-argument-pointer-type.ll
M llvm/test/CodeGen/SPIRV/pointers/load-addressspace.ll
M llvm/test/CodeGen/SPIRV/pointers/store-operand-ptr-to-struct.ll
M llvm/test/CodeGen/SPIRV/pointers/struct-opaque-pointers.ll
M llvm/test/CodeGen/SPIRV/pointers/two-bitcast-or-param-users.ll
M llvm/test/CodeGen/SPIRV/pointers/two-subsequent-bitcasts.ll
A llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call-rev.ll
A llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call.ll
A llvm/test/CodeGen/SPIRV/pointers/typeof-ptr-int.ll
M llvm/test/CodeGen/SPIRV/relationals.ll
M llvm/test/CodeGen/SPIRV/simple.ll
M llvm/test/CodeGen/SPIRV/transcoding/AtomicCompareExchangeExplicit_cl20.ll
M llvm/test/CodeGen/SPIRV/transcoding/BitReversePref.ll
M llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange.ll
M llvm/test/CodeGen/SPIRV/transcoding/BuildNDRange_2.ll
M llvm/test/CodeGen/SPIRV/transcoding/ConvertPtr.ll
M llvm/test/CodeGen/SPIRV/transcoding/DecorationAlignment.ll
M llvm/test/CodeGen/SPIRV/transcoding/DecorationMaxByteOffset.ll
M llvm/test/CodeGen/SPIRV/transcoding/DivRem.ll
M llvm/test/CodeGen/SPIRV/transcoding/ExecutionMode_SPIR_to_SPIRV.ll
M llvm/test/CodeGen/SPIRV/transcoding/GlobalFunAnnotate.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/atomic_cmpxchg.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/atomic_legacy.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/atomic_work_item_fence.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/barrier.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/sub_group_mask.ll
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/work_group_barrier.ll
M llvm/test/CodeGen/SPIRV/transcoding/atomic_flag.ll
M llvm/test/CodeGen/SPIRV/transcoding/atomic_load_store.ll
M llvm/test/CodeGen/SPIRV/transcoding/bitcast.ll
M llvm/test/CodeGen/SPIRV/transcoding/block_w_struct_return.ll
M llvm/test/CodeGen/SPIRV/transcoding/builtin_calls.ll
M llvm/test/CodeGen/SPIRV/transcoding/builtin_vars.ll
M llvm/test/CodeGen/SPIRV/transcoding/builtin_vars_arithmetics.ll
M llvm/test/CodeGen/SPIRV/transcoding/builtin_vars_opt.ll
M llvm/test/CodeGen/SPIRV/transcoding/check_ro_qualifier.ll
M llvm/test/CodeGen/SPIRV/transcoding/cl-types.ll
M llvm/test/CodeGen/SPIRV/transcoding/clk_event_t.ll
M llvm/test/CodeGen/SPIRV/transcoding/enqueue_kernel.ll
M llvm/test/CodeGen/SPIRV/transcoding/explicit-conversions.ll
M llvm/test/CodeGen/SPIRV/transcoding/extract_insert_value.ll
M llvm/test/CodeGen/SPIRV/transcoding/fadd.ll
M llvm/test/CodeGen/SPIRV/transcoding/fclamp.ll
M llvm/test/CodeGen/SPIRV/transcoding/fcmp.ll
M llvm/test/CodeGen/SPIRV/transcoding/fdiv.ll
M llvm/test/CodeGen/SPIRV/transcoding/fmod.ll
M llvm/test/CodeGen/SPIRV/transcoding/fmul.ll
M llvm/test/CodeGen/SPIRV/transcoding/fneg.ll
M llvm/test/CodeGen/SPIRV/transcoding/fp_contract_reassoc_fast_mode.ll
M llvm/test/CodeGen/SPIRV/transcoding/frem.ll
M llvm/test/CodeGen/SPIRV/transcoding/fsub.ll
M llvm/test/CodeGen/SPIRV/transcoding/get_image_num_mip_levels.ll
M llvm/test/CodeGen/SPIRV/transcoding/global_block.ll
M llvm/test/CodeGen/SPIRV/transcoding/group_ops.ll
M llvm/test/CodeGen/SPIRV/transcoding/isequal.ll
M llvm/test/CodeGen/SPIRV/transcoding/relationals_double.ll
M llvm/test/CodeGen/SPIRV/transcoding/relationals_float.ll
M llvm/test/CodeGen/SPIRV/transcoding/relationals_half.ll
Log Message:
-----------
[SPIR-V] Add implementation of G_SPLAT_VECTOR opcode and fix invalid types processing (#84766)
This PR:
* adds support for G_SPLAT_VECTOR generic opcode that may be legally
generated instead of G_BUILD_VECTOR by previous passes of the translator
(see https://github.com/llvm/llvm-project/pull/80378 for the source of
breaking changes);
* improves deduction of types for opaque pointers.
This PR also fixes the following issues:
* if a function has ptr argument(s), two functions that have different
SPIR-V type definitions may get identical LLVM function types and break
agreements of global register and duplicate checker;
* checks for pointer types do not account for TypedPointerType.
Update of tests:
* A test case is added to cover the issue with function ptr parameters.
* The first case, that is support for G_SPLAT_VECTOR generic opcode, is
covered by existing test cases.
* Multiple additional checks by `spirv-val` is added to cover more
possibilities of generation of invalid code.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list