[libspirv] Move unsigned group collective and shuffle built-ins to generic #18328
+343
−152
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Unsigned variant has the same implementation as signed variant for following built-ins:
GroupBroadcast
GroupBitwiseAndKHR
GroupBitwiseOrKHR
GroupBitwiseXorKHR
GroupIAdd
GroupIMulKHR
GroupNonUniformBroadcast
GroupNonUniformIAdd
GroupNonUniformIMul
GroupNonUniformBitwiseAnd
GroupNonUniformBitwiseOr
GroupNonUniformBitwiseXor
GroupNonUniformShuffle
GroupNonUniformShuffleXor
GroupNonUniformShuffleUp
GroupNonUniformShuffleDown
SubgroupShuffleINTEL
SubgroupShuffleDownINTEL
SubgroupShuffleUpINTEL
SubgroupShuffleXorINTEL
This PR lets the unsigned function calls signed function and moves unsigned functions to generic since they can be shared by all targets.
This PR adds built-in declarations in header files since
-fdeclare-spirv-builtins isn't working when signed variant is not
defined but used in unsigned variant implementation in the generic file.
This PR also adds schar variants since __CLC_S_GENTYPE is schar for uchar.