@@ -133,17 +133,18 @@ bool CountDxilOp_atomic(unsigned op) {
133133 return op == 70 || (78 <= op && op <= 79 );
134134}
135135bool CountDxilOp_barrier (unsigned op) {
136- // Instructions: Barrier=80
137- return op == 80 ;
136+ // Instructions: Barrier=80, BarrierByMemoryType=244,
137+ // BarrierByMemoryHandle=245, BarrierByNodeRecordHandle=246
138+ return op == 80 || (244 <= op && op <= 246 );
138139}
139140bool CountDxilOp_floats (unsigned op) {
140141 // Instructions: FAbs=6, Saturate=7, IsNaN=8, IsInf=9, IsFinite=10,
141142 // IsNormal=11, Cos=12, Sin=13, Tan=14, Acos=15, Asin=16, Atan=17, Hcos=18,
142143 // Hsin=19, Htan=20, Exp=21, Frc=22, Log=23, Sqrt=24, Rsqrt=25, Round_ne=26,
143144 // Round_ni=27, Round_pi=28, Round_z=29, FMax=35, FMin=36, Fma=47, Dot2=54,
144- // Dot3=55, Dot4=56, Dot2AddHalf=162
145+ // Dot3=55, Dot4=56, Dot2AddHalf=162, FDot=311
145146 return (6 <= op && op <= 29 ) || (35 <= op && op <= 36 ) || op == 47 ||
146- (54 <= op && op <= 56 ) || op == 162 ;
147+ (54 <= op && op <= 56 ) || op == 162 || op == 311 ;
147148}
148149bool CountDxilOp_gs_cut (unsigned op) {
149150 // Instructions: CutStream=98, EmitThenCutStream=99
@@ -155,9 +156,9 @@ bool CountDxilOp_gs_emit(unsigned op) {
155156}
156157bool CountDxilOp_ints (unsigned op) {
157158 // Instructions: IMax=37, IMin=38, IMul=41, IMad=48, Ibfe=51,
158- // Dot4AddI8Packed=163
159+ // Dot4AddI8Packed=163, VectorReduceAnd=309, VectorReduceOr=310
159160 return (37 <= op && op <= 38 ) || op == 41 || op == 48 || op == 51 ||
160- op == 163 ;
161+ op == 163 || ( 309 <= op && op <= 310 ) ;
161162}
162163bool CountDxilOp_sig_ld (unsigned op) {
163164 // Instructions: LoadInput=4, LoadOutputControlPoint=103,
@@ -175,16 +176,18 @@ bool CountDxilOp_tex_bias(unsigned op) {
175176}
176177bool CountDxilOp_tex_cmp (unsigned op) {
177178 // Instructions: SampleCmp=64, SampleCmpLevelZero=65, TextureGatherCmp=74,
178- // SampleCmpLevel=224
179- return (64 <= op && op <= 65 ) || op == 74 || op == 224 ;
179+ // SampleCmpLevel=224, SampleCmpGrad=254, SampleCmpBias=255
180+ return (64 <= op && op <= 65 ) || op == 74 || op == 224 ||
181+ (254 <= op && op <= 255 );
180182}
181183bool CountDxilOp_tex_grad (unsigned op) {
182184 // Instructions: SampleGrad=63
183185 return op == 63 ;
184186}
185187bool CountDxilOp_tex_load (unsigned op) {
186- // Instructions: TextureLoad=66, BufferLoad=68, RawBufferLoad=139
187- return op == 66 || op == 68 || op == 139 ;
188+ // Instructions: TextureLoad=66, BufferLoad=68, RawBufferLoad=139,
189+ // RawBufferVectorLoad=303
190+ return op == 66 || op == 68 || op == 139 || op == 303 ;
188191}
189192bool CountDxilOp_tex_norm (unsigned op) {
190193 // Instructions: Sample=60, SampleLevel=62, TextureGather=73,
@@ -195,17 +198,18 @@ bool CountDxilOp_tex_store(unsigned op) {
195198 // Instructions: TextureStore=67, BufferStore=69, RawBufferStore=140,
196199 // WriteSamplerFeedback=174, WriteSamplerFeedbackBias=175,
197200 // WriteSamplerFeedbackLevel=176, WriteSamplerFeedbackGrad=177,
198- // TextureStoreSample=225
201+ // TextureStoreSample=225, RawBufferVectorStore=304
199202 return op == 67 || op == 69 || op == 140 || (174 <= op && op <= 177 ) ||
200- op == 225 ;
203+ op == 225 || op == 304 ;
201204}
202205bool CountDxilOp_uints (unsigned op) {
203206 // Instructions: Bfrev=30, Countbits=31, FirstbitLo=32, FirstbitHi=33,
204207 // FirstbitSHi=34, UMax=39, UMin=40, UMul=42, UDiv=43, UAddc=44, USubb=45,
205- // UMad=49, Msad=50, Ubfe=52, Bfi=53, Dot4AddU8Packed=164
208+ // UMad=49, Msad=50, Ubfe=52, Bfi=53, Dot4AddU8Packed=164,
209+ // VectorReduceAnd=309, VectorReduceOr=310
206210 return (30 <= op && op <= 34 ) || (39 <= op && op <= 40 ) ||
207211 (42 <= op && op <= 45 ) || (49 <= op && op <= 50 ) ||
208- (52 <= op && op <= 53 ) || op == 164 ;
212+ (52 <= op && op <= 53 ) || op == 164 || ( 309 <= op && op <= 310 ) ;
209213}
210214// Counter functions for llvm ops:
211215bool CountLlvmOp_atomic (unsigned op) {
0 commit comments