@@ -729,6 +729,7 @@ def CreateHandle : DXILOp<57, createHandle> {
729729 let arguments = [Int8Ty, Int32Ty, Int32Ty, Int1Ty];
730730 let result = HandleTy;
731731 let stages = [Stages<DXIL1_0, [all_stages]>, Stages<DXIL1_6, [removed]>];
732+ let attributes = [Attributes<DXIL1_0, [ReadOnly]>];
732733}
733734
734735def BufferLoad : DXILOp<68, bufferLoad> {
@@ -740,6 +741,7 @@ def BufferLoad : DXILOp<68, bufferLoad> {
740741 [Overloads<DXIL1_0,
741742 [ResRetHalfTy, ResRetFloatTy, ResRetInt16Ty, ResRetInt32Ty]>];
742743 let stages = [Stages<DXIL1_0, [all_stages]>];
744+ let attributes = [Attributes<DXIL1_0, [ReadOnly]>];
743745}
744746
745747def BufferStore : DXILOp<69, bufferStore> {
@@ -768,6 +770,7 @@ def CheckAccessFullyMapped : DXILOp<71, checkAccessFullyMapped> {
768770 let result = Int1Ty;
769771 let overloads = [Overloads<DXIL1_0, [Int32Ty]>];
770772 let stages = [Stages<DXIL1_0, [all_stages]>];
773+ let attributes = [Attributes<DXIL1_0, [ReadOnly]>];
771774}
772775
773776def Discard : DXILOp<82, discard> {
@@ -833,8 +836,8 @@ def Dot4AddI8Packed : DXILOp<163, dot4AddPacked> {
833836 let LLVMIntrinsic = int_dx_dot4add_i8packed;
834837 let arguments = [Int32Ty, Int32Ty, Int32Ty];
835838 let result = Int32Ty;
836- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
837839 let stages = [Stages<DXIL1_0, [all_stages]>];
840+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
838841}
839842
840843def Dot4AddU8Packed : DXILOp<164, dot4AddPacked> {
@@ -843,22 +846,24 @@ def Dot4AddU8Packed : DXILOp<164, dot4AddPacked> {
843846 let LLVMIntrinsic = int_dx_dot4add_u8packed;
844847 let arguments = [Int32Ty, Int32Ty, Int32Ty];
845848 let result = Int32Ty;
846- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
847849 let stages = [Stages<DXIL1_0, [all_stages]>];
850+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
848851}
849852
850853def AnnotateHandle : DXILOp<216, annotateHandle> {
851854 let Doc = "annotate handle with resource properties";
852855 let arguments = [HandleTy, ResPropsTy];
853856 let result = HandleTy;
854857 let stages = [Stages<DXIL1_6, [all_stages]>];
858+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
855859}
856860
857861def CreateHandleFromBinding : DXILOp<217, createHandleFromBinding> {
858862 let Doc = "create resource handle from binding";
859863 let arguments = [ResBindTy, Int32Ty, Int1Ty];
860864 let result = HandleTy;
861865 let stages = [Stages<DXIL1_6, [all_stages]>];
866+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
862867}
863868
864869def WaveActiveAnyTrue : DXILOp<113, waveAnyTrue> {
@@ -875,7 +880,6 @@ def WaveIsFirstLane : DXILOp<110, waveIsFirstLane> {
875880 let arguments = [];
876881 let result = Int1Ty;
877882 let stages = [Stages<DXIL1_0, [all_stages]>];
878- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
879883}
880884
881885def WaveReadLaneAt: DXILOp<117, waveReadLaneAt> {
@@ -885,7 +889,6 @@ def WaveReadLaneAt: DXILOp<117, waveReadLaneAt> {
885889 let result = OverloadTy;
886890 let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy, Int1Ty, Int16Ty, Int32Ty, Int64Ty]>];
887891 let stages = [Stages<DXIL1_0, [all_stages]>];
888- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
889892}
890893
891894def WaveGetLaneIndex : DXILOp<111, waveGetLaneIndex> {
@@ -894,7 +897,7 @@ def WaveGetLaneIndex : DXILOp<111, waveGetLaneIndex> {
894897 let arguments = [];
895898 let result = Int32Ty;
896899 let stages = [Stages<DXIL1_0, [all_stages]>];
897- let attributes = [Attributes<DXIL1_0, [ReadNone ]>];
900+ let attributes = [Attributes<DXIL1_0, [ReadOnly ]>];
898901}
899902
900903def WaveAllBitCount : DXILOp<135, waveAllOp> {
@@ -903,5 +906,4 @@ def WaveAllBitCount : DXILOp<135, waveAllOp> {
903906 let arguments = [Int1Ty];
904907 let result = Int32Ty;
905908 let stages = [Stages<DXIL1_0, [all_stages]>];
906- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
907909}
0 commit comments