Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IAddCarry and ISubBorrow builtins #2392

Merged
merged 8 commits into from
Mar 7, 2024

Conversation

bwlodarcz
Copy link
Contributor

@bwlodarcz bwlodarcz commented Mar 1, 2024

The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance
of uadd/sub_with_overflow intrinsics.
SPIRVUtils changes are needed to support situations
where builtin don't have coresponding store instruction.
lib/SPIRV/SPIRVWriter.cpp Outdated Show resolved Hide resolved
test/iaddcarry_builtin.ll Outdated Show resolved Hide resolved
lib/SPIRV/SPIRVReader.cpp Show resolved Hide resolved
lib/SPIRV/SPIRVUtil.cpp Outdated Show resolved Hide resolved
test/isubborrow_builtin.ll Outdated Show resolved Hide resolved
lib/SPIRV/SPIRVWriter.cpp Outdated Show resolved Hide resolved
@MrSidims MrSidims requested review from svenvh and vmaksimo March 6, 2024 13:08
@MrSidims MrSidims self-requested a review March 6, 2024 13:19
lib/SPIRV/SPIRVUtil.cpp Show resolved Hide resolved
@MrSidims MrSidims merged commit 63fd351 into KhronosGroup:main Mar 7, 2024
9 checks passed
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 19, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 19, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 20, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 20, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 20, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 20, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 20, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
igorban-intel pushed a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 20, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.
MrSidims pushed a commit that referenced this pull request Mar 21, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
MrSidims pushed a commit that referenced this pull request Mar 21, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
MrSidims pushed a commit that referenced this pull request Mar 21, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
MrSidims pushed a commit that referenced this pull request Mar 21, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
MrSidims pushed a commit that referenced this pull request Mar 21, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
MrSidims pushed a commit that referenced this pull request Mar 22, 2024
The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
igorban-intel added a commit to igorban-intel/SPIRV-LLVM-Translator that referenced this pull request Mar 28, 2024
…up#2442)

The fix adds support for IR builtin calls
__spirv_IAddCarry and __spirv_ISubBorrow.
It's also first part of fix which removes noncompliance of uadd/sub_with_overflow intrinsics.
SPIRVUtil changes are needed to support situations where builtin don't have corresponding store instruction.

Co-authored-by: bwlodarcz <bertrand.wlodarczyk@intel.com>
vmaksimo added a commit to vmaksimo/SPIRV-LLVM-Translator that referenced this pull request Jun 26, 2024
They can be used as SPIR-V friendly calls as there is no obvious mapping
to any existing LLVM instruction.

The tests are basically copying the ones added in KhronosGroup#2392

This change will address the second part of KhronosGroup#2302 issue
MrSidims pushed a commit that referenced this pull request Jun 27, 2024
They can be used as SPIR-V friendly calls as there is no obvious mapping
to any existing LLVM instruction.

The tests are basically copying the ones added in #2392

This change will address the second part of #2302 issue
InstToRemove.push_back(ST);
SmallVector<User *> CIUsers(CI->users());
for (auto *CIUser : CIUsers) {
CIUser->replaceUsesOfWith(CI, A);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this line introduced the following issue: #2721

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants