llvm / llvm/llvm-project

[Matrix] Implement matrix support for the `any` HLSL Function

Open
#184,494 0 comments 0 reactions 0 assignees View on GitHub
bot:HLSL HLSL
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

> Note: This issue tracks matrix support for `any`. The original implementation issue is [here](https://github.com/llvm/llvm-project/issues/70076).

Matrix requirements:
- [ ] https://github.com/llvm/wg-hlsl/issues/387

## HLSL:
Determines if any components of the specified value are non-zero.

## Parameters

| Item | Description |
|--------------------------------------------------------|----------------------------------------|
| *x*
| \[in\] The specified value.
|

## Return Value

**True** if any components of the *x* parameter are non-zero; otherwise, **false**.

## Remarks

This function is similar to the [**all**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-all.md) HLSL intrinsic function. The **any** function determines if any components of the specified value are non-zero, while the **all** function determines if all components of the specified value are non-zero.

## Type Description

| Name | [**Template Type**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md) | [**Component Type**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md) | Size |
|-------|----------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|------|
| *x* | [**scalar**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md), **vector**, or **matrix** | [**float**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md), [**int**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md), [**bool**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md) | any |
| *ret* | [**scalar**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md) | [**bool**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md) | 1 |

## Minimum Shader Model

This function is supported in the following shader models.

| Shader Model | Supported |
|------------------------------------------------------------------------------------|-----------------------|
| [Shader Model 2 (DirectX HLSL)](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-sm2.md) and higher shader models | yes |
| [Shader Model 1 (DirectX HLSL)](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-sm1.md) | vs\_1\_1 and ps\_1\_4 |

## See also

[**Intrinsic Functions (DirectX HLSL)**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md)

Contributor guide

Open the contributing guide

Research direction

The issue names no source files or tests. Start by reading the linked original implementation issue (#70076) and the matrix requirement (#387), then identify the relevant HLSL `any` implementation and its existing coverage; done means matrix inputs follow the documented non-zero-component behavior.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.