summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-metal.cpp
diff options
context:
space:
mode:
authorvenkataram-nv <vedavamadath@nvidia.com>2025-08-09 00:46:09 -0700
committerGitHub <noreply@github.com>2025-08-09 07:46:09 +0000
commitb7df3c7aa27301f88e31ed0a7bbf230688adab6a (patch)
treec8a123c32d8a54ed49728c9cf504e42f0eec1d74 /source/slang/slang-emit-metal.cpp
parent06b8e69740a40e5cc9fdaac472a9242534876e5b (diff)
Fix atomics error diagnostics (#8117)
Fixes #8116 --------- Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang-emit-metal.cpp')
-rw-r--r--source/slang/slang-emit-metal.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/source/slang/slang-emit-metal.cpp b/source/slang/slang-emit-metal.cpp
index 7dd0c19ad..1915be58b 100644
--- a/source/slang/slang-emit-metal.cpp
+++ b/source/slang/slang-emit-metal.cpp
@@ -400,12 +400,12 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
else
m_writer->emit(");\n");
};
- auto diagnoseFloatAtommic = [&]()
+ auto diagnoseFloatAtomic = [&]()
{
getSink()->diagnose(
inst,
Diagnostics::unsupportedTargetIntrinsic,
- "floating point atomic operation");
+ "Unsupported floating point atomic operation");
};
switch (inst->getOp())
{
@@ -433,7 +433,7 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
case kIROp_AtomicLoad:
{
if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
+ diagnoseFloatAtomic();
emitInstResultDecl(inst);
bool isImageOp = false;
@@ -488,7 +488,7 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
case kIROp_AtomicExchange:
{
if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
+ diagnoseFloatAtomic();
emitAtomicOp("atomic_exchange", "atomic_exchange_explicit");
return true;
@@ -496,7 +496,7 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
case kIROp_AtomicCompareExchange:
{
if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
+ diagnoseFloatAtomic();
bool isImageOp = false;
auto imageSubscript = isTextureAccess(inst);
@@ -543,17 +543,11 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
}
case kIROp_AtomicAdd:
{
- if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
-
emitAtomicOp("atomic_fetch_add", "atomic_fetch_add_explicit");
return true;
}
case kIROp_AtomicSub:
{
- if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
-
emitAtomicOp("atomic_fetch_sub", "atomic_fetch_sub_explicit");
return true;
}
@@ -575,7 +569,7 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
case kIROp_AtomicMin:
{
if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
+ diagnoseFloatAtomic();
emitAtomicOp("atomic_fetch_min", "atomic_fetch_min_explicit");
return true;
@@ -583,7 +577,7 @@ bool MetalSourceEmitter::tryEmitInstStmtImpl(IRInst* inst)
case kIROp_AtomicMax:
{
if (isFloatingType(inst->getDataType()))
- diagnoseFloatAtommic();
+ diagnoseFloatAtomic();
emitAtomicOp("atomic_fetch_max", "atomic_fetch_max_explicit");
return true;