@@ -204,79 +204,86 @@ Intrinsic Intrinsics[] = {
204204 {L" test_fn" ,
205205 DEFAULT_NAME,
206206 " r" ,
207- {1 , false , true , false , -1 , countof (TestFnArgs), TestFnArgs}},
207+ {1 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnArgs), TestFnArgs}},
208208 {L" test_proc" ,
209209 DEFAULT_NAME,
210210 " r" ,
211- {2 , false , false , false , -1 , countof (TestProcArgs), TestProcArgs}},
211+ {2 , 0 , 0 , -1 , countof (TestProcArgs), TestProcArgs}},
212212 {L" test_poly" ,
213213 " test_poly.$o" ,
214214 " r" ,
215- {3 , false , true , false , -1 , countof (TestFnCustomArgs), TestFnCustomArgs}},
215+ {3 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnCustomArgs),
216+ TestFnCustomArgs}},
216217 {L" test_int" ,
217218 " test_int" ,
218219 " r" ,
219- {4 , false , true , false , -1 , countof (TestFnIntArgs), TestFnIntArgs}},
220+ {4 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnIntArgs), TestFnIntArgs}},
220221 {L" test_nolower" ,
221222 " test_nolower.$o" ,
222223 " n" ,
223- {5 , false , true , false , -1 , countof (TestFnNoLowerArgs),
224+ {5 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnNoLowerArgs),
224225 TestFnNoLowerArgs}},
225226 {L" test_pack_0" ,
226227 " test_pack_0.$o" ,
227228 " p" ,
228- {6 , false , false , false , -1 , countof (TestFnPack0), TestFnPack0}},
229+ {6 , 0 , 0 , -1 , countof (TestFnPack0), TestFnPack0}},
229230 {L" test_pack_1" ,
230231 " test_pack_1.$o" ,
231232 " p" ,
232- {7 , false , true , false , -1 , countof (TestFnPack1), TestFnPack1}},
233+ {7 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnPack1), TestFnPack1}},
233234 {L" test_pack_2" ,
234235 " test_pack_2.$o" ,
235236 " p" ,
236- {8 , false , true , false , -1 , countof (TestFnPack2), TestFnPack2}},
237+ {8 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnPack2), TestFnPack2}},
237238 {L" test_pack_3" ,
238239 " test_pack_3.$o" ,
239240 " p" ,
240- {9 , false , true , false , -1 , countof (TestFnPack3), TestFnPack3}},
241+ {9 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestFnPack3), TestFnPack3}},
241242 {L" test_pack_4" ,
242243 " test_pack_4.$o" ,
243244 " p" ,
244- {10 , false , false , false , -1 , countof (TestFnPack4), TestFnPack4}},
245+ {10 , 0 , 0 , -1 , countof (TestFnPack4), TestFnPack4}},
245246 {L" test_rand" ,
246247 " test_rand" ,
247248 " r" ,
248- {11 , false , false , false , -1 , countof (TestRand), TestRand}},
249+ {11 , 0 , 0 , -1 , countof (TestRand), TestRand}},
249250 {L" test_isinf" ,
250251 " test_isinf" ,
251252 " d" ,
252- {13 , true , true , false , -1 , countof (TestIsInf), TestIsInf}},
253+ {13 , INTRIN_FLAG_READ_ONLY | INTRIN_FLAG_READ_NONE, 0 , -1 ,
254+ countof (TestIsInf), TestIsInf}},
253255 {L" test_ibfe" ,
254256 " test_ibfe" ,
255257 " d" ,
256- {14 , true , true , false , -1 , countof (TestIBFE), TestIBFE}},
258+ {14 , INTRIN_FLAG_READ_ONLY | INTRIN_FLAG_READ_NONE, 0 , -1 ,
259+ countof (TestIBFE), TestIBFE}},
257260 // Make this intrinsic have the same opcode as an hlsl intrinsic with an
258261 // unsigned counterpart for testing purposes.
259262 {L" test_unsigned" ,
260263 " test_unsigned" ,
261264 " n" ,
262- {static_cast <unsigned >(hlsl::IntrinsicOp::IOP_min), false , true , false , - 1 ,
263- countof (TestUnsigned), TestUnsigned}},
265+ {static_cast <unsigned >(hlsl::IntrinsicOp::IOP_min), INTRIN_FLAG_READ_NONE ,
266+ 0 , - 1 , countof (TestUnsigned), TestUnsigned}},
264267 {L" wave_proc" ,
265268 DEFAULT_NAME,
266269 " r" ,
267- {16 , false , true , true , -1 , countof (WaveProcArgs), WaveProcArgs}},
270+ {16 , INTRIN_FLAG_READ_NONE | INTRIN_FLAG_IS_WAVE, 0 , -1 ,
271+ countof (WaveProcArgs), WaveProcArgs}},
268272 {L" test_o_1" ,
269273 " test_o_1.$o:1" ,
270274 " r" ,
271- {18 , false , true , true , -1 , countof (TestOverloadArgs), TestOverloadArgs}},
275+ {18 , INTRIN_FLAG_READ_NONE | INTRIN_FLAG_IS_WAVE, 0 , -1 ,
276+ countof (TestOverloadArgs), TestOverloadArgs}},
272277 {L" test_o_2" ,
273278 " test_o_2.$o:2" ,
274279 " r" ,
275- {19 , false , true , true , -1 , countof (TestOverloadArgs), TestOverloadArgs}},
280+ {19 , INTRIN_FLAG_READ_NONE | INTRIN_FLAG_IS_WAVE, 0 , -1 ,
281+ countof (TestOverloadArgs), TestOverloadArgs}},
276282 {L" test_o_3" ,
277283 " test_o_3.$o:3" ,
278284 " r" ,
279- {20 , false , true , true , -1 , countof (TestOverloadArgs), TestOverloadArgs}},
285+ {20 , INTRIN_FLAG_READ_NONE | INTRIN_FLAG_IS_WAVE, 0 , -1 ,
286+ countof (TestOverloadArgs), TestOverloadArgs}},
280287 // custom lowering with both optional arguments and vector exploding.
281288 // Arg 0 = Opcode
282289 // Arg 1 = Pass as is
@@ -286,24 +293,26 @@ Intrinsic Intrinsics[] = {
286293 {L" CustomLoadOp" ,
287294 " CustomLoadOp" ,
288295 " c:{\" default\" : \" 0,1,2:?i1,3.0:?i32,3.1:?i32\" }" ,
289- {21 , true , false , false , -1 , countof (TestCustomLoadOp), TestCustomLoadOp}},
296+ {21 , INTRIN_FLAG_READ_ONLY, 0 , -1 , countof (TestCustomLoadOp),
297+ TestCustomLoadOp}},
290298 {L" CustomLoadOp" ,
291299 " CustomLoadOp" ,
292300 " c:{\" default\" : \" 0,1,2:?i1,3.0:?i32,3.1:?i32\" }" ,
293- {21 , true , false , false , -1 , countof (TestCustomLoadOpBool),
301+ {21 , INTRIN_FLAG_READ_ONLY, 0 , -1 , countof (TestCustomLoadOpBool),
294302 TestCustomLoadOpBool}},
295303 {L" CustomLoadOp" ,
296304 " CustomLoadOp" ,
297305 " c:{\" default\" : \" 0,1,2:?i1,3.0:?i32,3.1:?i32\" }" ,
298- {21 , true , false , false , -1 , countof (TestCustomLoadOpSubscript),
306+ {21 , INTRIN_FLAG_READ_ONLY, 0 , -1 , countof (TestCustomLoadOpSubscript),
299307 TestCustomLoadOpSubscript}},
300308};
301309
302310Intrinsic BufferIntrinsics[] = {
303311 {L" MyBufferOp" ,
304312 " MyBufferOp" ,
305313 " m" ,
306- {12 , false , true , false , -1 , countof (TestMyBufferOp), TestMyBufferOp}},
314+ {12 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestMyBufferOp),
315+ TestMyBufferOp}},
307316};
308317
309318// Test adding a method to an object that normally has no methods (SamplerState
@@ -312,7 +321,8 @@ Intrinsic SamplerIntrinsics[] = {
312321 {L" MySamplerOp" ,
313322 " MySamplerOp" ,
314323 " m" ,
315- {15 , false , true , false , -1 , countof (TestMySamplerOp), TestMySamplerOp}},
324+ {15 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestMySamplerOp),
325+ TestMySamplerOp}},
316326};
317327
318328// Define a lowering string to target a common dxil extension operation defined
@@ -345,20 +355,20 @@ Intrinsic Texture1DIntrinsics[] = {
345355 {L" MyTextureOp" ,
346356 " MyTextureOp" ,
347357 MyTextureOp_LoweringInfo,
348- {17 , false , true , false , -1 , countof (TestMyTexture1DOp_0),
358+ {17 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestMyTexture1DOp_0),
349359 TestMyTexture1DOp_0}},
350360 {L" MyTextureOp" ,
351361 " MyTextureOp" ,
352362 MyTextureOp_LoweringInfo,
353- {17 , false , true , false , -1 , countof (TestMyTexture1DOp_1),
363+ {17 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestMyTexture1DOp_1),
354364 TestMyTexture1DOp_1}},
355365};
356366
357367Intrinsic Texture2DIntrinsics[] = {
358368 {L" MyTextureOp" ,
359369 " MyTextureOp" ,
360370 MyTextureOp_LoweringInfo,
361- {17 , false , true , false , -1 , countof (TestMyTexture2DOp),
371+ {17 , INTRIN_FLAG_READ_NONE, 0 , -1 , countof (TestMyTexture2DOp),
362372 TestMyTexture2DOp}},
363373};
364374
@@ -1497,8 +1507,8 @@ TEST_F(ExtensionTest, EvalAttributeCollision) {
14971507 Intrinsic Intrinsic = {L" collide_proc" ,
14981508 " collide_proc" ,
14991509 " r" ,
1500- {static_cast <unsigned >(op), true , false , false , - 1 ,
1501- countof (Args), Args}};
1510+ {static_cast <unsigned >(op), INTRIN_FLAG_READ_ONLY, 0 ,
1511+ - 1 , countof (Args), Args}};
15021512 Compiler c (m_dllSupport);
15031513 c.RegisterIntrinsicTable (new TestIntrinsicTable (&Intrinsic, 1 ));
15041514 c.Compile (R"(
@@ -1532,10 +1542,8 @@ TEST_F(ExtensionTest, NoUnwind) {
15321542 IA_C},
15331543 {" value" , AR_QUAL_IN, 1 , LITEMPLATE_ANY, 1 , LICOMPTYPE_NUMERIC, 1 , IA_C}};
15341544
1535- Intrinsic Intrinsic = {L" test_proc" ,
1536- " test_proc" ,
1537- " r" ,
1538- {1 , false , false , false , -1 , countof (Args), Args}};
1545+ Intrinsic Intrinsic = {
1546+ L" test_proc" , " test_proc" , " r" , {1 , 0 , 0 , -1 , countof (Args), Args}};
15391547 Compiler c (m_dllSupport);
15401548 c.RegisterIntrinsicTable (new TestIntrinsicTable (&Intrinsic, 1 ));
15411549 c.Compile (R"(
@@ -1572,7 +1580,8 @@ TEST_F(ExtensionTest, DCE) {
15721580 Intrinsic Intrinsic = {L" test_proc" ,
15731581 " test_proc" ,
15741582 " r" ,
1575- {1 , true , true , false , -1 , countof (Args), Args}};
1583+ {1 , INTRIN_FLAG_READ_ONLY | INTRIN_FLAG_READ_NONE, 0 ,
1584+ -1 , countof (Args), Args}};
15761585 Compiler c (m_dllSupport);
15771586 c.RegisterIntrinsicTable (new TestIntrinsicTable (&Intrinsic, 1 ));
15781587 c.Compile (R"(
0 commit comments