shader_ir/warp: Implement SHFL
This commit is contained in:
parent
393cc3ef2f
commit
0526bf1895
6 changed files with 182 additions and 9 deletions
|
@ -1127,6 +1127,46 @@ private:
|
|||
return {};
|
||||
}
|
||||
|
||||
Id ShuffleIndexed(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id ShuffleUp(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id ShuffleDown(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id ShuffleButterfly(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id InRangeShuffleIndexed(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id InRangeShuffleUp(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id InRangeShuffleDown(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id InRangeShuffleButterfly(Operation) {
|
||||
UNIMPLEMENTED();
|
||||
return {};
|
||||
}
|
||||
|
||||
Id DeclareBuiltIn(spv::BuiltIn builtin, spv::StorageClass storage, Id type,
|
||||
const std::string& name) {
|
||||
const Id id = OpVariable(type, storage);
|
||||
|
@ -1431,6 +1471,16 @@ private:
|
|||
&SPIRVDecompiler::VoteAll,
|
||||
&SPIRVDecompiler::VoteAny,
|
||||
&SPIRVDecompiler::VoteEqual,
|
||||
|
||||
&SPIRVDecompiler::ShuffleIndexed,
|
||||
&SPIRVDecompiler::ShuffleUp,
|
||||
&SPIRVDecompiler::ShuffleDown,
|
||||
&SPIRVDecompiler::ShuffleButterfly,
|
||||
|
||||
&SPIRVDecompiler::InRangeShuffleIndexed,
|
||||
&SPIRVDecompiler::InRangeShuffleUp,
|
||||
&SPIRVDecompiler::InRangeShuffleDown,
|
||||
&SPIRVDecompiler::InRangeShuffleButterfly,
|
||||
};
|
||||
static_assert(operation_decompilers.size() == static_cast<std::size_t>(OperationCode::Amount));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue