SPIRV: Add the support of missing image functions #72

This commit is contained in:
Rex Xu
2015-09-09 16:42:49 +08:00
parent d4782c10d4
commit fc6189197d
4 changed files with 154 additions and 15 deletions

View File

@@ -137,6 +137,11 @@ public:
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
bool isSignedType(Id typeId) const
{
assert(getTypeClass(typeId) == OpTypeInt);
return module.getInstruction(typeId)->getImmediateOperand(1) == 0u;
}
int getTypeNumColumns(Id typeId) const
{
@@ -241,6 +246,7 @@ public:
void createNoResultOp(Op);
void createNoResultOp(Op, Id operand);
void createNoResultOp(Op, const std::vector<Id>& operands);
void createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask);
void createMemoryBarrier(unsigned executionScope, unsigned memorySemantics);
Id createUnaryOp(Op, Id typeId, Id operand);