Skip to content

Remove experimental Cooperative Vector feature#8291

Open
damyanp wants to merge 19 commits intomicrosoft:mainfrom
damyanp:byebyecoopvec
Open

Remove experimental Cooperative Vector feature#8291
damyanp wants to merge 19 commits intomicrosoft:mainfrom
damyanp:byebyecoopvec

Conversation

@damyanp
Copy link
Member

@damyanp damyanp commented Mar 23, 2026

The experimental Cooperative Vector feature has been superseded by LinAlg. This change removes the code supporting the old feature.

Fixes #8147
Assisted-By: copilot

damyanp added 7 commits March 23, 2026 12:44
…ative vector operations

- Deleted invalid and valid test cases for outer product accumulation.
- Removed tests for matrix-vector multiplication and accumulation errors.
- Cleaned up configuration files related to cooperative vector tests.
- Updated the HCT database to remove references to obsolete operations.
…lass

This commit eliminates several validation rules related to Linalg operations that are no longer necessary. The removed rules include checks for constant flags, valid interpretation values, matrix layout constraints, and other related validations. This cleanup helps streamline the validation process and maintain code clarity.
Copilot AI added a commit to damyanp/DirectXShaderCompiler that referenced this pull request Mar 26, 2026
Apply changes from microsoft#8291 which removes
deprecated CoopVec (MatVecMul, MatVecMulAdd, OuterProductAccumulate,
VectorAccumulate) operations in favor of new LinAlg matrix operations.

Fix two build issues introduced by the PR:

1. Remove CheckLinalgInterpretation from DxilValidation.cpp which
   was left as an unused static function after PR microsoft#8291 removed all
   its callers (ValidateImmOperandsForMatVecOps and
   ValidateImmOperandsForOuterProdAcc). On Linux/macOS with
   -DLLVM_ENABLE_WERROR=On, this causes a warning-as-error for
   unused static functions.

2. Fix LinAlgTests.cpp to use a locally-defined MatrixLayout enum
   instead of hlsl::DXIL::LinalgMatrixLayout which was removed from
   DxilConstants.h by PR microsoft#8291.
damyanp and others added 4 commits March 25, 2026 18:07
Fix Linux/macOS build failures caused by removal of CoopVec ops (PR microsoft#8291)
…icrosoft#8291

Resolve two modify/delete conflicts:
- tools/clang/lib/Headers/hlsl/dx/coopvec.h: kept deletion (PR removes CoopVec)
- tools/clang/test/CodeGenDXIL/hlsl/coopvec/mat-vec-mul.hlsl: kept deletion (PR removes CoopVec)

microsoft/main changed the DATA_TYPE_UINT8/DATA_TYPE_SINT8 enum ordering in
coopvec.h and updated corresponding test expectations. Since PR microsoft#8291 removes
these files entirely as part of replacing deprecated CoopVec operations with
LinAlg, the files should remain deleted.
Resolve merge conflicts for microsoft/DirectXShaderCompiler PR microsoft#8291
Copy link
Collaborator

@V-FEXrt V-FEXrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related to the one comment I left, I'd expect at least a small change to gen_intrin_main.txt as part of this change

damyanp added 2 commits March 26, 2026 11:01
- Updated intrinsic operation codes in `hlsl_intrinsic_opcodes.json` to reflect the correct values, reducing the total number of intrinsics from 426 to 422.
- Adjusted various HLSL test files to match the new intrinsic operation codes, including `debugbreak.hlsl`, `isdebuggerpresent.hlsl`, and `group-wave-index.hlsl`.
- Modified LLVM IR files in the DXC test suite to ensure consistency with the updated intrinsic values, specifically in `clusterid_dxilgen.ll`, `debugbreak.ll`, `group-wave-index.ll`, `isdebuggerpresent.ll`, and `triangle_positions_dxilgen.ll`.
- Corrected the expected output in AST checks for matrix built-in functions in `matrix-builtins-ast.hlsl`, `matrixaccumulatetomemory/ast.hlsl`, `matrixloadfrommemory/ast.hlsl`, and `matrixstoretomemory/ast.hlsl`.
Copy link
Collaborator

@V-FEXrt V-FEXrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great thanks for the cleanup!

Does the PR description need an Assisted-By: tag?

@damyanp
Copy link
Member Author

damyanp commented Mar 26, 2026

Does the PR description need an Assisted-By: tag?

It will when #8300 merges :)

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.

[SM6.10] Remove experimental CoopVec

6 participants