-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Closed
Labels
HLSLHLSL Language SupportHLSL Language Supportbackend:DirectXbackend:SPIR-Vbot:HLSLclang:codegenIR generation bugs: mangling, exceptions, etc.IR generation bugs: mangling, exceptions, etc.metaissueIssue to collect references to a group of similar or related issues.Issue to collect references to a group of similar or related issues.
Description
- Implement
WaveActiveAllTrueclang builtin, - Link
WaveActiveAllTrueclang builtin withhlsl_intrinsics.h - Add sema checks for
WaveActiveAllTruetoCheckHLSLBuiltinFunctionCallinSemaChecking.cpp - Add codegen for
WaveActiveAllTruetoEmitHLSLBuiltinExprinCGBuiltin.cpp - Add codegen tests to
clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl - Add sema tests to
clang/test/SemaHLSL/BuiltIns/WaveActiveAllTrue-errors.hlsl - Create the
int_dx_WaveActiveAllTrueintrinsic inIntrinsicsDirectX.td - Create the
DXILOpMappingofint_dx_WaveActiveAllTrueto114inDXIL.td - Create the
WaveActiveAllTrue.llandWaveActiveAllTrue_errors.lltests inllvm/test/CodeGen/DirectX/ - Create the
int_spv_WaveActiveAllTrueintrinsic inIntrinsicsSPIRV.td - In SPIRVInstructionSelector.cpp create the
WaveActiveAllTruelowering and map it toint_spv_WaveActiveAllTrueinSPIRVInstructionSelector::selectIntrinsic. - Create SPIR-V backend test case in
llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveAllTrue.ll
DirectX
| DXIL Opcode | DXIL OpName | Shader Model | Shader Stages |
|---|---|---|---|
| 114 | WaveAllTrue | 6.0 | ('library', 'compute', 'amplification', 'mesh', 'pixel', 'vertex', 'hull', 'domain', 'geometry', 'raygeneration', 'intersection', 'anyhit', 'closesthit', 'miss', 'callable', 'node') |
SPIR-V
OpGroupNonUniformAll:
Description:
Evaluates a predicate for all active invocations in the group,
resulting in true if predicate evaluates to true for all active
invocations in the group, otherwise the result is
false.
Result Type must be a Boolean type.
Execution is a Scope that identifies the group of
invocations affected by this command. It must be Subgroup.
Predicate must be a Boolean type.
Capability:
GroupNonUniformVote
Missing before version 1.3.
| Word Count | Opcode | Results | Operands | ||
|---|---|---|---|---|---|
5 |
334 |
<id> |
Scope <id> |
<id> |
Test Case(s)
Example 1
//dxc WaveActiveAllTrue_test.hlsl -T lib_6_8 -enable-16bit-types -O0
export bool fn(bool p1) {
return WaveActiveAllTrue(p1);
}HLSL:
Returns true if the expression is true in all active lanes in the current wave.
Syntax
bool WaveActiveAllTrue(
bool expr
);Parameters
-
expr
-
The boolean expression to evaluate.
Return value
True if the expression is true in all lanes.
Remarks
This function is supported from shader model 6.0 in all shader stages.
See also
Metadata
Metadata
Assignees
Labels
HLSLHLSL Language SupportHLSL Language Supportbackend:DirectXbackend:SPIR-Vbot:HLSLclang:codegenIR generation bugs: mangling, exceptions, etc.IR generation bugs: mangling, exceptions, etc.metaissueIssue to collect references to a group of similar or related issues.Issue to collect references to a group of similar or related issues.
Type
Projects
Status
Closed