@@ -770,6 +770,15 @@ def CheckAccessFullyMapped : DXILOp<71, checkAccessFullyMapped> {
770770 let stages = [Stages<DXIL1_0, [all_stages]>];
771771}
772772
773+ def Discard : DXILOp<82, discard> {
774+ let Doc = "discard the current pixel";
775+ let LLVMIntrinsic = int_dx_clip;
776+ let arguments = [Int1Ty];
777+ let result = VoidTy;
778+ let stages = [Stages<DXIL1_0, [pixel]>];
779+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
780+ }
781+
773782def ThreadId : DXILOp<93, threadId> {
774783 let Doc = "Reads the thread ID";
775784 let LLVMIntrinsic = int_dx_thread_id;
@@ -862,6 +871,15 @@ def WaveIsFirstLane : DXILOp<110, waveIsFirstLane> {
862871 let attributes = [Attributes<DXIL1_0, [ReadNone]>];
863872}
864873
874+ def WaveGetLaneIndex : DXILOp<111, waveGetLaneIndex> {
875+ let Doc = "returns the index of the current lane in the wave";
876+ let LLVMIntrinsic = int_dx_wave_getlaneindex;
877+ let arguments = [];
878+ let result = Int32Ty;
879+ let stages = [Stages<DXIL1_0, [all_stages]>];
880+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
881+ }
882+
865883def WaveReadLaneAt: DXILOp<117, waveReadLaneAt> {
866884 let Doc = "returns the value from the specified lane";
867885 let LLVMIntrinsic = int_dx_wave_readlane;
@@ -872,10 +890,24 @@ def WaveReadLaneAt: DXILOp<117, waveReadLaneAt> {
872890 let attributes = [Attributes<DXIL1_0, [ReadNone]>];
873891}
874892
875- def WaveGetLaneIndex : DXILOp<111, waveGetLaneIndex> {
876- let Doc = "returns the index of the current lane in the wave";
877- let LLVMIntrinsic = int_dx_wave_getlaneindex;
878- let arguments = [];
893+ def AnnotateHandle : DXILOp<217, annotateHandle> {
894+ let Doc = "annotate handle with resource properties";
895+ let arguments = [HandleTy, ResPropsTy];
896+ let result = HandleTy;
897+ let stages = [Stages<DXIL1_6, [all_stages]>];
898+ }
899+
900+ def CreateHandleFromBinding : DXILOp<218, createHandleFromBinding> {
901+ let Doc = "create resource handle from binding";
902+ let arguments = [ResBindTy, Int32Ty, Int1Ty];
903+ let result = HandleTy;
904+ let stages = [Stages<DXIL1_6, [all_stages]>];
905+ }
906+
907+ def WaveAllBitCount : DXILOp<135, waveAllOp> {
908+ let Doc = "returns the count of bits set to 1 across the wave";
909+ let LLVMIntrinsic = int_dx_wave_active_countbits;
910+ let arguments = [Int1Ty];
879911 let result = Int32Ty;
880912 let stages = [Stages<DXIL1_0, [all_stages]>];
881913 let attributes = [Attributes<DXIL1_0, [ReadNone]>];
0 commit comments