Skip to content

Cherry Pick for release 1.10: [HLSLExec][LongVectors] Make derivative test literals explicitly typed#8531

Open
ericstone93 wants to merge 1 commit into
microsoft:release-preview-1.10.2605from
ericstone93:user/ruishi/cherryPickClangFix-1.10
Open

Cherry Pick for release 1.10: [HLSLExec][LongVectors] Make derivative test literals explicitly typed#8531
ericstone93 wants to merge 1 commit into
microsoft:release-preview-1.10.2605from
ericstone93:user/ruishi/cherryPickClangFix-1.10

Conversation

@ericstone93

@ericstone93 ericstone93 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Cherry pick 505629f from #8516

Wrap the bare integer literals in the DerivativeDdx/DerivativeDdy expected-result expressions in T(...) so the arithmetic resolves cleanly under clang's stricter overload resolution.

Previously: ((A + 2) - (A + 0))A is of template parameter type T (e.g. HLSLHalf_t, HLSLMin16Float_t). T + int has no unambiguous overload for those wrapper types and clang rejects it; MSVC accepted via implicit-conversion ranking.

Now: ((A + T(2.0f)) - (A + T(0.0f))) — the literal is constructed as T first, so operator+ resolves to the type's own implementation. The value is bit-identical to the previous code path on MSVC.

No behavior change. Affects only the 4 DEFAULT_OP_1(OpType::DerivativeDd[xy][Fine?], ...) rows around line 1352.

Wrap the bare integer literals in the DerivativeDdx/DerivativeDdy expected-result expressions in T(...) so the arithmetic resolves cleanly under clang's stricter overload resolution.

Previously: `((A + 2) - (A + 0))` — `A` is of template parameter type `T` (e.g. `HLSLHalf_t`, `HLSLMin16Float_t`). `T + int` has no unambiguous overload for those wrapper types and clang rejects it; MSVC accepted via implicit-conversion ranking.

Now: `((A + T(2.0f)) - (A + T(0.0f)))` — the literal is constructed as `T` first, so `operator+` resolves to the type's own implementation. The value is bit-identical to the previous code path on MSVC.

No behavior change. Affects only the 4 `DEFAULT_OP_1(OpType::DerivativeDd[xy][Fine?], ...)` rows around line 1352.
@ericstone93 ericstone93 changed the title Cherry Pick: [HLSLExec][LongVectors] Make derivative test literals explicitly typed Cherry Pick for release 1.10: [HLSLExec][LongVectors] Make derivative test literals explicitly typed Jun 10, 2026
@ericstone93 ericstone93 marked this pull request as ready for review June 10, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

1 participant