From e312d5c7dfde80941d96e522079a5d70f7d00649 Mon Sep 17 00:00:00 2001 From: Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> Date: Tue, 31 Jan 2023 03:26:59 -0500 Subject: Patched support for multi-return and fallthrough if-else with break stmts (#2617) --- source/slang/slang-ir-autodiff-transcriber-base.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-ir-autodiff-transcriber-base.cpp') diff --git a/source/slang/slang-ir-autodiff-transcriber-base.cpp b/source/slang/slang-ir-autodiff-transcriber-base.cpp index 91374e006..520c6d276 100644 --- a/source/slang/slang-ir-autodiff-transcriber-base.cpp +++ b/source/slang/slang-ir-autodiff-transcriber-base.cpp @@ -911,12 +911,14 @@ IRInst* AutoDiffTranscriberBase::transcribe(IRBuilder* builder, IRInst* origInst // Tag the differential inst using a decoration (if it doesn't have one) if (!pair.differential->findDecoration() && - !pair.differential->findDecoration()) + !pair.differential->findDecoration() && + !as(pair.differential)) { // TODO: If the type is a 'relevant' pair type, need to mark it as mixed differential // instead. // - builder->markInstAsDifferential(pair.differential, as(pair.primal->getDataType())); + auto primalType = as(pair.primal->getDataType()); + builder->markInstAsDifferential(pair.differential, primalType); } break; -- cgit v1.2.3