tint: Add unit test for HasSideEffects for builtins

Change-Id: I7f2546c36a06cd9646ddf39601636954b9da0459
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/98541
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
This commit is contained in:
Antonio Maiorano
2022-08-09 18:18:22 +00:00
committed by Dawn LUCI CQ
parent f7e2de7971
commit 50bc60359e
2 changed files with 238 additions and 5 deletions

View File

@@ -153,11 +153,21 @@ bool Builtin::IsDP4a() const {
}
bool Builtin::HasSideEffects() const {
if (IsAtomic() && type_ != sem::BuiltinType::kAtomicLoad) {
return true;
}
if (type_ == sem::BuiltinType::kTextureStore) {
return true;
switch (type_) {
case sem::BuiltinType::kAtomicAdd:
case sem::BuiltinType::kAtomicAnd:
case sem::BuiltinType::kAtomicCompareExchangeWeak:
case sem::BuiltinType::kAtomicExchange:
case sem::BuiltinType::kAtomicMax:
case sem::BuiltinType::kAtomicMin:
case sem::BuiltinType::kAtomicOr:
case sem::BuiltinType::kAtomicStore:
case sem::BuiltinType::kAtomicSub:
case sem::BuiltinType::kAtomicXor:
case sem::BuiltinType::kTextureStore:
return true;
default:
break;
}
return false;
}