summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend/glsl/emit_glsl_instructions.h')
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_instructions.h162
1 files changed, 81 insertions, 81 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h b/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
index 550193dc3..681e0bdb9 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_instructions.h
@@ -25,9 +25,9 @@ inline void EmitSetLoopSafetyVariable(EmitContext&) {}
25inline void EmitGetLoopSafetyVariable(EmitContext&) {} 25inline void EmitGetLoopSafetyVariable(EmitContext&) {}
26 26
27// Microinstruction emitters 27// Microinstruction emitters
28void EmitPhi(EmitContext& ctx, IR::Inst* inst); 28void EmitPhi(EmitContext& ctx, IR::Inst& inst);
29void EmitVoid(EmitContext& ctx); 29void EmitVoid(EmitContext& ctx);
30void EmitIdentity(EmitContext& ctx, IR::Inst* inst, const IR::Value& value); 30void EmitIdentity(EmitContext& ctx, IR::Inst& inst, const IR::Value& value);
31void EmitConditionRef(EmitContext& ctx, IR::Inst& inst, const IR::Value& value); 31void EmitConditionRef(EmitContext& ctx, IR::Inst& inst, const IR::Value& value);
32void EmitReference(EmitContext&); 32void EmitReference(EmitContext&);
33void EmitPhiMove(EmitContext& ctx, const IR::Value& phi, const IR::Value& value); 33void EmitPhiMove(EmitContext& ctx, const IR::Value& phi, const IR::Value& value);
@@ -59,7 +59,7 @@ void EmitGetCbufU8(EmitContext& ctx, const IR::Value& binding, const IR::Value&
59void EmitGetCbufS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); 59void EmitGetCbufS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset);
60void EmitGetCbufU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); 60void EmitGetCbufU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset);
61void EmitGetCbufS16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); 61void EmitGetCbufS16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset);
62void EmitGetCbufU32(EmitContext& ctx, IR::Inst* inst, const IR::Value& binding, 62void EmitGetCbufU32(EmitContext& ctx, IR::Inst& inst, const IR::Value& binding,
63 const IR::Value& offset); 63 const IR::Value& offset);
64void EmitGetCbufF32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); 64void EmitGetCbufF32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset);
65void EmitGetCbufU32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); 65void EmitGetCbufU32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset);
@@ -231,19 +231,19 @@ void EmitGetInBoundsFromOp(EmitContext& ctx);
231void EmitFPAbs16(EmitContext& ctx, std::string value); 231void EmitFPAbs16(EmitContext& ctx, std::string value);
232void EmitFPAbs32(EmitContext& ctx, std::string value); 232void EmitFPAbs32(EmitContext& ctx, std::string value);
233void EmitFPAbs64(EmitContext& ctx, std::string value); 233void EmitFPAbs64(EmitContext& ctx, std::string value);
234void EmitFPAdd16(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 234void EmitFPAdd16(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
235void EmitFPAdd32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 235void EmitFPAdd32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
236void EmitFPAdd64(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 236void EmitFPAdd64(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
237void EmitFPFma16(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b, std::string c); 237void EmitFPFma16(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b, std::string c);
238void EmitFPFma32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b, std::string c); 238void EmitFPFma32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b, std::string c);
239void EmitFPFma64(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b, std::string c); 239void EmitFPFma64(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b, std::string c);
240void EmitFPMax32(EmitContext& ctx, std::string a, std::string b); 240void EmitFPMax32(EmitContext& ctx, std::string a, std::string b);
241void EmitFPMax64(EmitContext& ctx, std::string a, std::string b); 241void EmitFPMax64(EmitContext& ctx, std::string a, std::string b);
242void EmitFPMin32(EmitContext& ctx, std::string a, std::string b); 242void EmitFPMin32(EmitContext& ctx, std::string a, std::string b);
243void EmitFPMin64(EmitContext& ctx, std::string a, std::string b); 243void EmitFPMin64(EmitContext& ctx, std::string a, std::string b);
244void EmitFPMul16(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 244void EmitFPMul16(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
245void EmitFPMul32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 245void EmitFPMul32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
246void EmitFPMul64(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 246void EmitFPMul64(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
247void EmitFPNeg16(EmitContext& ctx, std::string value); 247void EmitFPNeg16(EmitContext& ctx, std::string value);
248void EmitFPNeg32(EmitContext& ctx, std::string value); 248void EmitFPNeg32(EmitContext& ctx, std::string value);
249void EmitFPNeg64(EmitContext& ctx, std::string value); 249void EmitFPNeg64(EmitContext& ctx, std::string value);
@@ -316,55 +316,55 @@ void EmitFPUnordGreaterThanEqual64(EmitContext& ctx, std::string lhs, std::strin
316void EmitFPIsNan16(EmitContext& ctx, std::string value); 316void EmitFPIsNan16(EmitContext& ctx, std::string value);
317void EmitFPIsNan32(EmitContext& ctx, std::string value); 317void EmitFPIsNan32(EmitContext& ctx, std::string value);
318void EmitFPIsNan64(EmitContext& ctx, std::string value); 318void EmitFPIsNan64(EmitContext& ctx, std::string value);
319void EmitIAdd32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 319void EmitIAdd32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
320void EmitIAdd64(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 320void EmitIAdd64(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
321void EmitISub32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 321void EmitISub32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
322void EmitISub64(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 322void EmitISub64(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
323void EmitIMul32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 323void EmitIMul32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
324void EmitINeg32(EmitContext& ctx, IR::Inst* inst, std::string value); 324void EmitINeg32(EmitContext& ctx, IR::Inst& inst, std::string value);
325void EmitINeg64(EmitContext& ctx, IR::Inst* inst, std::string value); 325void EmitINeg64(EmitContext& ctx, IR::Inst& inst, std::string value);
326void EmitIAbs32(EmitContext& ctx, IR::Inst* inst, std::string value); 326void EmitIAbs32(EmitContext& ctx, IR::Inst& inst, std::string value);
327void EmitIAbs64(EmitContext& ctx, IR::Inst* inst, std::string value); 327void EmitIAbs64(EmitContext& ctx, IR::Inst& inst, std::string value);
328void EmitShiftLeftLogical32(EmitContext& ctx, IR::Inst* inst, std::string base, std::string shift); 328void EmitShiftLeftLogical32(EmitContext& ctx, IR::Inst& inst, std::string base, std::string shift);
329void EmitShiftLeftLogical64(EmitContext& ctx, IR::Inst* inst, std::string base, std::string shift); 329void EmitShiftLeftLogical64(EmitContext& ctx, IR::Inst& inst, std::string base, std::string shift);
330void EmitShiftRightLogical32(EmitContext& ctx, IR::Inst* inst, std::string base, std::string shift); 330void EmitShiftRightLogical32(EmitContext& ctx, IR::Inst& inst, std::string base, std::string shift);
331void EmitShiftRightLogical64(EmitContext& ctx, IR::Inst* inst, std::string base, std::string shift); 331void EmitShiftRightLogical64(EmitContext& ctx, IR::Inst& inst, std::string base, std::string shift);
332void EmitShiftRightArithmetic32(EmitContext& ctx, IR::Inst* inst, std::string base, 332void EmitShiftRightArithmetic32(EmitContext& ctx, IR::Inst& inst, std::string base,
333 std::string shift); 333 std::string shift);
334void EmitShiftRightArithmetic64(EmitContext& ctx, IR::Inst* inst, std::string base, 334void EmitShiftRightArithmetic64(EmitContext& ctx, IR::Inst& inst, std::string base,
335 std::string shift); 335 std::string shift);
336void EmitBitwiseAnd32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 336void EmitBitwiseAnd32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
337void EmitBitwiseOr32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 337void EmitBitwiseOr32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
338void EmitBitwiseXor32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 338void EmitBitwiseXor32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
339void EmitBitFieldInsert(EmitContext& ctx, IR::Inst* inst, std::string base, std::string insert, 339void EmitBitFieldInsert(EmitContext& ctx, IR::Inst& inst, std::string base, std::string insert,
340 std::string offset, std::string count); 340 std::string offset, std::string count);
341void EmitBitFieldSExtract(EmitContext& ctx, IR::Inst* inst, std::string base, std::string offset, 341void EmitBitFieldSExtract(EmitContext& ctx, IR::Inst& inst, std::string base, std::string offset,
342 std::string count); 342 std::string count);
343void EmitBitFieldUExtract(EmitContext& ctx, IR::Inst* inst, std::string base, std::string offset, 343void EmitBitFieldUExtract(EmitContext& ctx, IR::Inst& inst, std::string base, std::string offset,
344 std::string count); 344 std::string count);
345void EmitBitReverse32(EmitContext& ctx, IR::Inst* inst, std::string value); 345void EmitBitReverse32(EmitContext& ctx, IR::Inst& inst, std::string value);
346void EmitBitCount32(EmitContext& ctx, IR::Inst* inst, std::string value); 346void EmitBitCount32(EmitContext& ctx, IR::Inst& inst, std::string value);
347void EmitBitwiseNot32(EmitContext& ctx, IR::Inst* inst, std::string value); 347void EmitBitwiseNot32(EmitContext& ctx, IR::Inst& inst, std::string value);
348void EmitFindSMsb32(EmitContext& ctx, IR::Inst* inst, std::string value); 348void EmitFindSMsb32(EmitContext& ctx, IR::Inst& inst, std::string value);
349void EmitFindUMsb32(EmitContext& ctx, IR::Inst* inst, std::string value); 349void EmitFindUMsb32(EmitContext& ctx, IR::Inst& inst, std::string value);
350void EmitSMin32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 350void EmitSMin32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
351void EmitUMin32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 351void EmitUMin32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
352void EmitSMax32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 352void EmitSMax32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
353void EmitUMax32(EmitContext& ctx, IR::Inst* inst, std::string a, std::string b); 353void EmitUMax32(EmitContext& ctx, IR::Inst& inst, std::string a, std::string b);
354void EmitSClamp32(EmitContext& ctx, IR::Inst* inst, std::string value, std::string min, 354void EmitSClamp32(EmitContext& ctx, IR::Inst& inst, std::string value, std::string min,
355 std::string max); 355 std::string max);
356void EmitUClamp32(EmitContext& ctx, IR::Inst* inst, std::string value, std::string min, 356void EmitUClamp32(EmitContext& ctx, IR::Inst& inst, std::string value, std::string min,
357 std::string max); 357 std::string max);
358void EmitSLessThan(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 358void EmitSLessThan(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
359void EmitULessThan(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 359void EmitULessThan(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
360void EmitIEqual(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 360void EmitIEqual(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
361void EmitSLessThanEqual(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 361void EmitSLessThanEqual(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
362void EmitULessThanEqual(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 362void EmitULessThanEqual(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
363void EmitSGreaterThan(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 363void EmitSGreaterThan(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
364void EmitUGreaterThan(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 364void EmitUGreaterThan(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
365void EmitINotEqual(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 365void EmitINotEqual(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
366void EmitSGreaterThanEqual(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 366void EmitSGreaterThanEqual(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
367void EmitUGreaterThanEqual(EmitContext& ctx, IR::Inst* inst, std::string lhs, std::string rhs); 367void EmitUGreaterThanEqual(EmitContext& ctx, IR::Inst& inst, std::string lhs, std::string rhs);
368void EmitSharedAtomicIAdd32(EmitContext& ctx, std::string pointer_offset, std::string value); 368void EmitSharedAtomicIAdd32(EmitContext& ctx, std::string pointer_offset, std::string value);
369void EmitSharedAtomicSMin32(EmitContext& ctx, std::string pointer_offset, std::string value); 369void EmitSharedAtomicSMin32(EmitContext& ctx, std::string pointer_offset, std::string value);
370void EmitSharedAtomicUMin32(EmitContext& ctx, std::string pointer_offset, std::string value); 370void EmitSharedAtomicUMin32(EmitContext& ctx, std::string pointer_offset, std::string value);
@@ -536,31 +536,31 @@ void EmitBoundImageQueryLod(EmitContext&);
536void EmitBoundImageGradient(EmitContext&); 536void EmitBoundImageGradient(EmitContext&);
537void EmitBoundImageRead(EmitContext&); 537void EmitBoundImageRead(EmitContext&);
538void EmitBoundImageWrite(EmitContext&); 538void EmitBoundImageWrite(EmitContext&);
539void EmitImageSampleImplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 539void EmitImageSampleImplicitLod(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
540 std::string coords, std::string bias_lc, const IR::Value& offset); 540 std::string coords, std::string bias_lc, const IR::Value& offset);
541void EmitImageSampleExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 541void EmitImageSampleExplicitLod(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
542 std::string coords, std::string lod_lc, const IR::Value& offset); 542 std::string coords, std::string lod_lc, const IR::Value& offset);
543void EmitImageSampleDrefImplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 543void EmitImageSampleDrefImplicitLod(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
544 std::string coords, std::string dref, std::string bias_lc, 544 std::string coords, std::string dref, std::string bias_lc,
545 const IR::Value& offset); 545 const IR::Value& offset);
546void EmitImageSampleDrefExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 546void EmitImageSampleDrefExplicitLod(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
547 std::string coords, std::string dref, std::string lod_lc, 547 std::string coords, std::string dref, std::string lod_lc,
548 const IR::Value& offset); 548 const IR::Value& offset);
549void EmitImageGather(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, std::string coords, 549void EmitImageGather(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, std::string coords,
550 const IR::Value& offset, const IR::Value& offset2); 550 const IR::Value& offset, const IR::Value& offset2);
551void EmitImageGatherDref(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 551void EmitImageGatherDref(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
552 std::string coords, const IR::Value& offset, const IR::Value& offset2, 552 std::string coords, const IR::Value& offset, const IR::Value& offset2,
553 std::string dref); 553 std::string dref);
554void EmitImageFetch(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, std::string coords, 554void EmitImageFetch(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, std::string coords,
555 std::string offset, std::string lod, std::string ms); 555 std::string offset, std::string lod, std::string ms);
556void EmitImageQueryDimensions(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 556void EmitImageQueryDimensions(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
557 std::string lod); 557 std::string lod);
558void EmitImageQueryLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 558void EmitImageQueryLod(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
559 std::string coords); 559 std::string coords);
560void EmitImageGradient(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, std::string coords, 560void EmitImageGradient(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, std::string coords,
561 std::string derivates, std::string offset, std::string lod_clamp); 561 std::string derivates, std::string offset, std::string lod_clamp);
562void EmitImageRead(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, std::string coords); 562void EmitImageRead(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, std::string coords);
563void EmitImageWrite(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, std::string coords, 563void EmitImageWrite(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, std::string coords,
564 std::string color); 564 std::string color);
565void EmitBindlessImageAtomicIAdd32(EmitContext&); 565void EmitBindlessImageAtomicIAdd32(EmitContext&);
566void EmitBindlessImageAtomicSMin32(EmitContext&); 566void EmitBindlessImageAtomicSMin32(EmitContext&);
@@ -584,27 +584,27 @@ void EmitBoundImageAtomicAnd32(EmitContext&);
584void EmitBoundImageAtomicOr32(EmitContext&); 584void EmitBoundImageAtomicOr32(EmitContext&);
585void EmitBoundImageAtomicXor32(EmitContext&); 585void EmitBoundImageAtomicXor32(EmitContext&);
586void EmitBoundImageAtomicExchange32(EmitContext&); 586void EmitBoundImageAtomicExchange32(EmitContext&);
587void EmitImageAtomicIAdd32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 587void EmitImageAtomicIAdd32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
588 std::string coords, std::string value); 588 std::string coords, std::string value);
589void EmitImageAtomicSMin32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 589void EmitImageAtomicSMin32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
590 std::string coords, std::string value); 590 std::string coords, std::string value);
591void EmitImageAtomicUMin32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 591void EmitImageAtomicUMin32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
592 std::string coords, std::string value); 592 std::string coords, std::string value);
593void EmitImageAtomicSMax32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 593void EmitImageAtomicSMax32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
594 std::string coords, std::string value); 594 std::string coords, std::string value);
595void EmitImageAtomicUMax32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 595void EmitImageAtomicUMax32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
596 std::string coords, std::string value); 596 std::string coords, std::string value);
597void EmitImageAtomicInc32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 597void EmitImageAtomicInc32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
598 std::string coords, std::string value); 598 std::string coords, std::string value);
599void EmitImageAtomicDec32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 599void EmitImageAtomicDec32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
600 std::string coords, std::string value); 600 std::string coords, std::string value);
601void EmitImageAtomicAnd32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 601void EmitImageAtomicAnd32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
602 std::string coords, std::string value); 602 std::string coords, std::string value);
603void EmitImageAtomicOr32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 603void EmitImageAtomicOr32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
604 std::string coords, std::string value); 604 std::string coords, std::string value);
605void EmitImageAtomicXor32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 605void EmitImageAtomicXor32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
606 std::string coords, std::string value); 606 std::string coords, std::string value);
607void EmitImageAtomicExchange32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, 607void EmitImageAtomicExchange32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index,
608 std::string coords, std::string value); 608 std::string coords, std::string value);
609void EmitLaneId(EmitContext& ctx); 609void EmitLaneId(EmitContext& ctx);
610void EmitVoteAll(EmitContext& ctx, std::string pred); 610void EmitVoteAll(EmitContext& ctx, std::string pred);
@@ -616,13 +616,13 @@ void EmitSubgroupLtMask(EmitContext& ctx);
616void EmitSubgroupLeMask(EmitContext& ctx); 616void EmitSubgroupLeMask(EmitContext& ctx);
617void EmitSubgroupGtMask(EmitContext& ctx); 617void EmitSubgroupGtMask(EmitContext& ctx);
618void EmitSubgroupGeMask(EmitContext& ctx); 618void EmitSubgroupGeMask(EmitContext& ctx);
619void EmitShuffleIndex(EmitContext& ctx, IR::Inst* inst, std::string value, std::string index, 619void EmitShuffleIndex(EmitContext& ctx, IR::Inst& inst, std::string value, std::string index,
620 std::string clamp, std::string segmentation_mask); 620 std::string clamp, std::string segmentation_mask);
621void EmitShuffleUp(EmitContext& ctx, IR::Inst* inst, std::string value, std::string index, 621void EmitShuffleUp(EmitContext& ctx, IR::Inst& inst, std::string value, std::string index,
622 std::string clamp, std::string segmentation_mask); 622 std::string clamp, std::string segmentation_mask);
623void EmitShuffleDown(EmitContext& ctx, IR::Inst* inst, std::string value, std::string index, 623void EmitShuffleDown(EmitContext& ctx, IR::Inst& inst, std::string value, std::string index,
624 std::string clamp, std::string segmentation_mask); 624 std::string clamp, std::string segmentation_mask);
625void EmitShuffleButterfly(EmitContext& ctx, IR::Inst* inst, std::string value, std::string index, 625void EmitShuffleButterfly(EmitContext& ctx, IR::Inst& inst, std::string value, std::string index,
626 std::string clamp, std::string segmentation_mask); 626 std::string clamp, std::string segmentation_mask);
627void EmitFSwizzleAdd(EmitContext& ctx, std::string op_a, std::string op_b, std::string swizzle); 627void EmitFSwizzleAdd(EmitContext& ctx, std::string op_a, std::string op_b, std::string swizzle);
628void EmitDPdxFine(EmitContext& ctx, std::string op_a); 628void EmitDPdxFine(EmitContext& ctx, std::string op_a);