@@ -783,6 +783,7 @@ def CreateHandle : DXILOp<57, createHandle> {
783783 let arguments = [Int8Ty, Int32Ty, Int32Ty, Int1Ty];
784784 let result = HandleTy;
785785 let stages = [Stages<DXIL1_0, [all_stages]>, Stages<DXIL1_6, [removed]>];
786+ let attributes = [Attributes<DXIL1_0, [ReadOnly]>];
786787}
787788
788789def BufferLoad : DXILOp<68, bufferLoad> {
@@ -794,6 +795,7 @@ def BufferLoad : DXILOp<68, bufferLoad> {
794795 [Overloads<DXIL1_0,
795796 [ResRetHalfTy, ResRetFloatTy, ResRetInt16Ty, ResRetInt32Ty]>];
796797 let stages = [Stages<DXIL1_0, [all_stages]>];
798+ let attributes = [Attributes<DXIL1_0, [ReadOnly]>];
797799}
798800
799801def BufferStore : DXILOp<69, bufferStore> {
@@ -822,6 +824,7 @@ def CheckAccessFullyMapped : DXILOp<71, checkAccessFullyMapped> {
822824 let result = Int1Ty;
823825 let overloads = [Overloads<DXIL1_0, [Int32Ty]>];
824826 let stages = [Stages<DXIL1_0, [all_stages]>];
827+ let attributes = [Attributes<DXIL1_0, [ReadOnly]>];
825828}
826829
827830def Discard : DXILOp<82, discard> {
@@ -896,8 +899,8 @@ def Dot4AddI8Packed : DXILOp<163, dot4AddPacked> {
896899 let intrinsics = [ IntrinSelect<int_dx_dot4add_i8packed> ];
897900 let arguments = [Int32Ty, Int32Ty, Int32Ty];
898901 let result = Int32Ty;
899- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
900902 let stages = [Stages<DXIL1_0, [all_stages]>];
903+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
901904}
902905
903906def Dot4AddU8Packed : DXILOp<164, dot4AddPacked> {
@@ -906,22 +909,24 @@ def Dot4AddU8Packed : DXILOp<164, dot4AddPacked> {
906909 let intrinsics = [ IntrinSelect<int_dx_dot4add_u8packed> ];
907910 let arguments = [Int32Ty, Int32Ty, Int32Ty];
908911 let result = Int32Ty;
909- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
910912 let stages = [Stages<DXIL1_0, [all_stages]>];
913+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
911914}
912915
913916def AnnotateHandle : DXILOp<216, annotateHandle> {
914917 let Doc = "annotate handle with resource properties";
915918 let arguments = [HandleTy, ResPropsTy];
916919 let result = HandleTy;
917920 let stages = [Stages<DXIL1_6, [all_stages]>];
921+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
918922}
919923
920924def CreateHandleFromBinding : DXILOp<217, createHandleFromBinding> {
921925 let Doc = "create resource handle from binding";
922926 let arguments = [ResBindTy, Int32Ty, Int1Ty];
923927 let result = HandleTy;
924928 let stages = [Stages<DXIL1_6, [all_stages]>];
929+ let attributes = [Attributes<DXIL1_0, [ReadNone]>];
925930}
926931
927932def WaveActiveAnyTrue : DXILOp<113, waveAnyTrue> {
@@ -938,7 +943,6 @@ def WaveIsFirstLane : DXILOp<110, waveIsFirstLane> {
938943 let arguments = [];
939944 let result = Int1Ty;
940945 let stages = [Stages<DXIL1_0, [all_stages]>];
941- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
942946}
943947
944948def WaveReadLaneAt: DXILOp<117, waveReadLaneAt> {
@@ -948,7 +952,6 @@ def WaveReadLaneAt: DXILOp<117, waveReadLaneAt> {
948952 let result = OverloadTy;
949953 let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy, Int1Ty, Int16Ty, Int32Ty, Int64Ty]>];
950954 let stages = [Stages<DXIL1_0, [all_stages]>];
951- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
952955}
953956
954957def WaveGetLaneIndex : DXILOp<111, waveGetLaneIndex> {
@@ -957,7 +960,7 @@ def WaveGetLaneIndex : DXILOp<111, waveGetLaneIndex> {
957960 let arguments = [];
958961 let result = Int32Ty;
959962 let stages = [Stages<DXIL1_0, [all_stages]>];
960- let attributes = [Attributes<DXIL1_0, [ReadNone ]>];
963+ let attributes = [Attributes<DXIL1_0, [ReadOnly ]>];
961964}
962965
963966def WaveAllBitCount : DXILOp<135, waveAllOp> {
@@ -966,7 +969,6 @@ def WaveAllBitCount : DXILOp<135, waveAllOp> {
966969 let arguments = [Int1Ty];
967970 let result = Int32Ty;
968971 let stages = [Stages<DXIL1_0, [all_stages]>];
969- let attributes = [Attributes<DXIL1_0, [ReadNone]>];
970972}
971973
972974def Barrier : DXILOp<80, barrier> {
0 commit comments