<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/99214>99214</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Implement the `QuadAny` HLSL Function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
metabug,
backend:DirectX,
HLSL,
bot:HLSL
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
farzonl
</td>
</tr>
</table>
<pre>
- [ ] Implement `QuadAny` clang builtin,
- [ ] Link `QuadAny` clang builtin with `hlsl_intrinsics.h`
- [ ] Add sema checks for `QuadAny` to `CheckHLSLBuiltinFunctionCall` in `SemaChecking.cpp`
- [ ] Add codegen for `QuadAny` to `EmitHLSLBuiltinExpr` in `CGBuiltin.cpp`
- [ ] Add codegen tests to `clang/test/CodeGenHLSL/builtins/QuadAny.hlsl`
- [ ] Add sema tests to `clang/test/SemaHLSL/BuiltIns/QuadAny-errors.hlsl`
- [ ] Create the `int_dx_QuadAny` intrinsic in `IntrinsicsDirectX.td`
- [ ] Create the `DXILOpMapping` of `int_dx_QuadAny` to `222` in `DXIL.td`
- [ ] Create the `QuadAny.ll` and `QuadAny_errors.ll` tests in `llvm/test/CodeGen/DirectX/`
## DirectX
| DXIL Opcode | DXIL OpName | Shader Model | Shader Stages |
| ----------- | ----------- | ------------ | ------------- |
| 222 | QuadVote | 6.7 | ('library', 'compute', 'amplification', 'mesh', 'pixel', 'node') |
## SPIR-V
There is no support for `QuadAny` when targeting SPIR-V.
## Test Case(s)
### Example 1
```hlsl
//dxc QuadAny_test.hlsl -T lib_6_8 -enable-16bit-types -O0
export bool fn(bool p1) {
return QuadAny(p1);
}
```
## HLSL:
## Syntax
```syntax
bool QuadAny(bool cond);
```
## Type Description
| Name | [**Template Type**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/../direct3dhlsl/dx-graphics-hlsl-data-types.md)| [**Component Type**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/../direct3dhlsl/dx-graphics-hlsl-data-types.md) | Size |
|-------|--------------------------------------------------------------------|----------------------------------------------------------------------|------|
| *ret* | [**scalar**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/../direct3dhlsl/dx-graphics-hlsl-scalar.md) | **bool** | 1 |
| *cond* | [**scalar**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/../direct3dhlsl/dx-graphics-hlsl-scalar.md) | **bool** | 1 |
## Minimum Shader Model
This function is supported in the following shader models.
|Shader Model | Supported|
|-------------|----------|
|[Shader Model 6.7](https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_7) and higher shader models | yes |
## Shader Stages
* **Library Shader**
* [**Compute Shader**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/../direct3d11/direct3d-11-advanced-stages-compute-shader.md)
* [**Amplification Shader**](https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html#amplification-shader-and-mesh-shader)
* [**Mesh Shader**](https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html)
* [**Pixel Shader**](../direct3dhlsl/dx-graphics-hlsl-writing-shaders-9.md#pixel-shader-basics)
* **Node Shader**
## See also
- [**Intrinsic Functions (DirectX HLSL)**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/../direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md)
- **See [QuadAny](https://microsoft.github.io/DirectX-Specs/d3d/HLSL_SM_6_7_QuadAny_QuadAll#quadany)**
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWN1u2zoSfhr6hpAgUbZsX_jCP3U3QNJ2N0HRO4OSxhY3FKkl6cbp0y_4I0tO3GQX28XpOYEDi0Pqm5mPM8OhqdbsIAAWaLJCk82IHk0t1WJP1Q8p-KiQ1fMiwmiywmiywTdNy6EBYTDKk78fabUUzyhPcMmpOODiyLhhApE1Spb9S7dMPL61Hj8xU9sFNdd8x4RRTGhW6rhGeXKBtKwqrKGhuKyhfNR4L9ULYCOtYG2n_3Z7f7vyGrZHURomxZpyblcxYVfdQ0PdSiYOcdm217SVsoIDiJ9q-tAwM1D04dSqXsH6YxC_h25AGx0QHTWIbK0Mke1aVvARhNWByDYwphHZBlNiS9pPeXoD2HofUJ2VN0PUCJSSSl8FXyugBrCpwaIyYXbVaTcg5ryBgYWb84ZumILSfItN9Tbm5tvN7ef2jrYtEwcLKffXVRmJ7QQhpCfdvvyuho48Hw5UVAPhLvju5zyDHprz782rnUFkG_xCZOu12g_JEMlwN-Nl0zW21uHPrd14PBh_oo0f39e0AoXvZAV8KLg39ADaSgJQ1P_hd8avBdEAiBDi5q33X6XxZuTx1H0jMkNkylmhqHpGZIqIlU1L2bRHA72ANi1ne1ZSm2W9uAFd96OWnYD3QyErjzDvrDnTdv_l5h_RVy96qEEBZhoLifWxbaUyV7LxqbZpRNUBDBOHABBfgD6ANnhNNSAy04jM_SR2_26FXfThZF0BnNrZPPEflwUWZ4vItjqVuIsUGwkuR3D0gDkrdvluhiMQtOAQpXnBTGSeW9A4-hziAk7OgUJKjvcCkZl7alPPwsoagzFWYI5KdGoQmbkFKFu5PdsMbev9c8mcLS-JfBaGnoJo8Jbu5E59r8cNSymqXt1Q0QWdzy3gDehSsdbt-jnGXTD78JmsEFkisnyApuU2_-xbXoQmG0RmtTGttlY7bg_M1MciLqVNsztWKqnl3mxkaUvTExMZsTWQy8Lug5dWoB-NbCOtyrA_LuWyym0a2cbxa1l1ig6KtjUrdWRFUUUN9TsVN871oe1r2bRS2DPvz2G8LxvsB_RJHrK-f_qf_n4RzACor0aILBUYRJaX8aNLyqn6_bj3dg149ybaNPJPTpjiCwd9fv01PTyXhzsmWHNsLg60rqAzjfehI7OFPVR1qOwxaw_oveRcPtk6rv3bjX1bx57Cl0ckSub3HcLLiL8SsOclaLK6gMrj6TXim47rOGwBk_2RH9234LnOKkS2tgTvPKjDzHfueLP9Rc0ONahLhxx1z_2x3pft4aHfzSwD9bf-NA6LQsSEBcOadTRwueYPiKo0HQyiNI1o9Z2KEqpIO9-i0ElEnpdQfV84sxw2F--69N_s1x3o2uPFtWk4ItlFIxOsiqioItvKhPEVEy3Q_9eyVyq_2G7qis7_KKufFLN9UnBIR3PHfOY6tM7rgtqefaDZKflkO9eXoXcRuwCYci3P8qi3-XwVwN2NTNsWM1DgOxgy__2K4PlKE3V1S59DNQrEWL_RZNX1Ur-kktzt8t20u_D4b26j9F9HWlHbsAWuRtUiq-bZnI5gkU5JmubJbJ6M6sVsmkOWZ2NIyj1Ns3QCs3GZ7wmdwmSc7mHEFiQh42Sa5iRJx5MkHlflBObzaVXkeZGQEo0TaCjjsb38xFIdRkzrIyzmc5KOR5wWwLX77YCQBgwtjgdECCJrREhBy0cQFcqW5wtSmPEb3S2TBmXLTjTZjNTC6oqK40GjccKZNrrXbpjhsOh_h7i80NmrgEU6x9foqPjijSAKVzqnsFXyn1Daq51z0W6G9_L7gvw7AAD__xXNGik">