[PATCH 83/85] Add support for IAddCarry SPIRV instruction (#2167)
authorbwlodarcz <bertrand.wlodarczyk@intel.com>
Thu, 12 Oct 2023 15:13:50 +0000 (17:13 +0200)
committerAndreas Beckmann <anbe@debian.org>
Thu, 14 Mar 2024 19:01:08 +0000 (20:01 +0100)
commit9bb780eb92fc5eaa0b6cc82b8a1c10b715a9339d
tree9263e9584fcce49979cf665eff3922aa5463b801
parent9bbf661c9529824ceabb44a1dc1c908f9afd4d76
[PATCH 83/85] Add support for IAddCarry SPIRV instruction (#2167)

This commit implements bidirectional translation of the llvm.uadd.with.overflow and the IAddCarry intrinsic.
Intrinsic llvm.uadd.with.overflow returns struct which second element have a type of i1.
The llvm type i1 is, in llvm-spirv, directly translated to BoolType.
SPIRV specification requires that the composite which returns from IAddCarry needs to have both elements of the same type.
In result, current implementation is not compliant and should be considered temporary.

Gbp-Pq: Name 0083-Add-support-for-IAddCarry-SPIRV-instruction-2167.patch
lib/SPIRV/SPIRVReader.cpp
lib/SPIRV/SPIRVWriter.cpp
lib/SPIRV/libSPIRV/SPIRVEntry.h
lib/SPIRV/libSPIRV/SPIRVInstruction.h
lib/SPIRV/libSPIRV/SPIRVOpCode.h
test/llvm-intrinsics/uadd.with.overflow.ll [new file with mode: 0644]