diff options
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv_instructions.h')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_instructions.h | 579 |
1 files changed, 579 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h b/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h new file mode 100644 index 000000000..f99c02848 --- /dev/null +++ b/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h | |||
| @@ -0,0 +1,579 @@ | |||
| 1 | // Copyright 2021 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <sirit/sirit.h> | ||
| 6 | |||
| 7 | #include "common/common_types.h" | ||
| 8 | |||
| 9 | namespace Shader::IR { | ||
| 10 | enum class Attribute : u64; | ||
| 11 | enum class Patch : u64; | ||
| 12 | class Inst; | ||
| 13 | class Value; | ||
| 14 | } // namespace Shader::IR | ||
| 15 | |||
| 16 | namespace Shader::Backend::SPIRV { | ||
| 17 | |||
| 18 | using Sirit::Id; | ||
| 19 | |||
| 20 | class EmitContext; | ||
| 21 | |||
| 22 | // Microinstruction emitters | ||
| 23 | Id EmitPhi(EmitContext& ctx, IR::Inst* inst); | ||
| 24 | void EmitVoid(EmitContext& ctx); | ||
| 25 | Id EmitIdentity(EmitContext& ctx, const IR::Value& value); | ||
| 26 | Id EmitConditionRef(EmitContext& ctx, const IR::Value& value); | ||
| 27 | void EmitReference(EmitContext&); | ||
| 28 | void EmitPhiMove(EmitContext&); | ||
| 29 | void EmitJoin(EmitContext& ctx); | ||
| 30 | void EmitDemoteToHelperInvocation(EmitContext& ctx); | ||
| 31 | void EmitBarrier(EmitContext& ctx); | ||
| 32 | void EmitWorkgroupMemoryBarrier(EmitContext& ctx); | ||
| 33 | void EmitDeviceMemoryBarrier(EmitContext& ctx); | ||
| 34 | void EmitPrologue(EmitContext& ctx); | ||
| 35 | void EmitEpilogue(EmitContext& ctx); | ||
| 36 | void EmitEmitVertex(EmitContext& ctx, const IR::Value& stream); | ||
| 37 | void EmitEndPrimitive(EmitContext& ctx, const IR::Value& stream); | ||
| 38 | void EmitGetRegister(EmitContext& ctx); | ||
| 39 | void EmitSetRegister(EmitContext& ctx); | ||
| 40 | void EmitGetPred(EmitContext& ctx); | ||
| 41 | void EmitSetPred(EmitContext& ctx); | ||
| 42 | void EmitSetGotoVariable(EmitContext& ctx); | ||
| 43 | void EmitGetGotoVariable(EmitContext& ctx); | ||
| 44 | void EmitSetIndirectBranchVariable(EmitContext& ctx); | ||
| 45 | void EmitGetIndirectBranchVariable(EmitContext& ctx); | ||
| 46 | Id EmitGetCbufU8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 47 | Id EmitGetCbufS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 48 | Id EmitGetCbufU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 49 | Id EmitGetCbufS16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 50 | Id EmitGetCbufU32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 51 | Id EmitGetCbufF32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 52 | Id EmitGetCbufU32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 53 | Id EmitGetAttribute(EmitContext& ctx, IR::Attribute attr, Id vertex); | ||
| 54 | void EmitSetAttribute(EmitContext& ctx, IR::Attribute attr, Id value, Id vertex); | ||
| 55 | Id EmitGetAttributeIndexed(EmitContext& ctx, Id offset, Id vertex); | ||
| 56 | void EmitSetAttributeIndexed(EmitContext& ctx, Id offset, Id value, Id vertex); | ||
| 57 | Id EmitGetPatch(EmitContext& ctx, IR::Patch patch); | ||
| 58 | void EmitSetPatch(EmitContext& ctx, IR::Patch patch, Id value); | ||
| 59 | void EmitSetFragColor(EmitContext& ctx, u32 index, u32 component, Id value); | ||
| 60 | void EmitSetSampleMask(EmitContext& ctx, Id value); | ||
| 61 | void EmitSetFragDepth(EmitContext& ctx, Id value); | ||
| 62 | void EmitGetZFlag(EmitContext& ctx); | ||
| 63 | void EmitGetSFlag(EmitContext& ctx); | ||
| 64 | void EmitGetCFlag(EmitContext& ctx); | ||
| 65 | void EmitGetOFlag(EmitContext& ctx); | ||
| 66 | void EmitSetZFlag(EmitContext& ctx); | ||
| 67 | void EmitSetSFlag(EmitContext& ctx); | ||
| 68 | void EmitSetCFlag(EmitContext& ctx); | ||
| 69 | void EmitSetOFlag(EmitContext& ctx); | ||
| 70 | Id EmitWorkgroupId(EmitContext& ctx); | ||
| 71 | Id EmitLocalInvocationId(EmitContext& ctx); | ||
| 72 | Id EmitInvocationId(EmitContext& ctx); | ||
| 73 | Id EmitSampleId(EmitContext& ctx); | ||
| 74 | Id EmitIsHelperInvocation(EmitContext& ctx); | ||
| 75 | Id EmitYDirection(EmitContext& ctx); | ||
| 76 | Id EmitLoadLocal(EmitContext& ctx, Id word_offset); | ||
| 77 | void EmitWriteLocal(EmitContext& ctx, Id word_offset, Id value); | ||
| 78 | Id EmitUndefU1(EmitContext& ctx); | ||
| 79 | Id EmitUndefU8(EmitContext& ctx); | ||
| 80 | Id EmitUndefU16(EmitContext& ctx); | ||
| 81 | Id EmitUndefU32(EmitContext& ctx); | ||
| 82 | Id EmitUndefU64(EmitContext& ctx); | ||
| 83 | void EmitLoadGlobalU8(EmitContext& ctx); | ||
| 84 | void EmitLoadGlobalS8(EmitContext& ctx); | ||
| 85 | void EmitLoadGlobalU16(EmitContext& ctx); | ||
| 86 | void EmitLoadGlobalS16(EmitContext& ctx); | ||
| 87 | Id EmitLoadGlobal32(EmitContext& ctx, Id address); | ||
| 88 | Id EmitLoadGlobal64(EmitContext& ctx, Id address); | ||
| 89 | Id EmitLoadGlobal128(EmitContext& ctx, Id address); | ||
| 90 | void EmitWriteGlobalU8(EmitContext& ctx); | ||
| 91 | void EmitWriteGlobalS8(EmitContext& ctx); | ||
| 92 | void EmitWriteGlobalU16(EmitContext& ctx); | ||
| 93 | void EmitWriteGlobalS16(EmitContext& ctx); | ||
| 94 | void EmitWriteGlobal32(EmitContext& ctx, Id address, Id value); | ||
| 95 | void EmitWriteGlobal64(EmitContext& ctx, Id address, Id value); | ||
| 96 | void EmitWriteGlobal128(EmitContext& ctx, Id address, Id value); | ||
| 97 | Id EmitLoadStorageU8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 98 | Id EmitLoadStorageS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 99 | Id EmitLoadStorageU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 100 | Id EmitLoadStorageS16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 101 | Id EmitLoadStorage32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 102 | Id EmitLoadStorage64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 103 | Id EmitLoadStorage128(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset); | ||
| 104 | void EmitWriteStorageU8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 105 | Id value); | ||
| 106 | void EmitWriteStorageS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 107 | Id value); | ||
| 108 | void EmitWriteStorageU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 109 | Id value); | ||
| 110 | void EmitWriteStorageS16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 111 | Id value); | ||
| 112 | void EmitWriteStorage32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 113 | Id value); | ||
| 114 | void EmitWriteStorage64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 115 | Id value); | ||
| 116 | void EmitWriteStorage128(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 117 | Id value); | ||
| 118 | Id EmitLoadSharedU8(EmitContext& ctx, Id offset); | ||
| 119 | Id EmitLoadSharedS8(EmitContext& ctx, Id offset); | ||
| 120 | Id EmitLoadSharedU16(EmitContext& ctx, Id offset); | ||
| 121 | Id EmitLoadSharedS16(EmitContext& ctx, Id offset); | ||
| 122 | Id EmitLoadSharedU32(EmitContext& ctx, Id offset); | ||
| 123 | Id EmitLoadSharedU64(EmitContext& ctx, Id offset); | ||
| 124 | Id EmitLoadSharedU128(EmitContext& ctx, Id offset); | ||
| 125 | void EmitWriteSharedU8(EmitContext& ctx, Id offset, Id value); | ||
| 126 | void EmitWriteSharedU16(EmitContext& ctx, Id offset, Id value); | ||
| 127 | void EmitWriteSharedU32(EmitContext& ctx, Id offset, Id value); | ||
| 128 | void EmitWriteSharedU64(EmitContext& ctx, Id offset, Id value); | ||
| 129 | void EmitWriteSharedU128(EmitContext& ctx, Id offset, Id value); | ||
| 130 | Id EmitCompositeConstructU32x2(EmitContext& ctx, Id e1, Id e2); | ||
| 131 | Id EmitCompositeConstructU32x3(EmitContext& ctx, Id e1, Id e2, Id e3); | ||
| 132 | Id EmitCompositeConstructU32x4(EmitContext& ctx, Id e1, Id e2, Id e3, Id e4); | ||
| 133 | Id EmitCompositeExtractU32x2(EmitContext& ctx, Id composite, u32 index); | ||
| 134 | Id EmitCompositeExtractU32x3(EmitContext& ctx, Id composite, u32 index); | ||
| 135 | Id EmitCompositeExtractU32x4(EmitContext& ctx, Id composite, u32 index); | ||
| 136 | Id EmitCompositeInsertU32x2(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 137 | Id EmitCompositeInsertU32x3(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 138 | Id EmitCompositeInsertU32x4(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 139 | Id EmitCompositeConstructF16x2(EmitContext& ctx, Id e1, Id e2); | ||
| 140 | Id EmitCompositeConstructF16x3(EmitContext& ctx, Id e1, Id e2, Id e3); | ||
| 141 | Id EmitCompositeConstructF16x4(EmitContext& ctx, Id e1, Id e2, Id e3, Id e4); | ||
| 142 | Id EmitCompositeExtractF16x2(EmitContext& ctx, Id composite, u32 index); | ||
| 143 | Id EmitCompositeExtractF16x3(EmitContext& ctx, Id composite, u32 index); | ||
| 144 | Id EmitCompositeExtractF16x4(EmitContext& ctx, Id composite, u32 index); | ||
| 145 | Id EmitCompositeInsertF16x2(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 146 | Id EmitCompositeInsertF16x3(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 147 | Id EmitCompositeInsertF16x4(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 148 | Id EmitCompositeConstructF32x2(EmitContext& ctx, Id e1, Id e2); | ||
| 149 | Id EmitCompositeConstructF32x3(EmitContext& ctx, Id e1, Id e2, Id e3); | ||
| 150 | Id EmitCompositeConstructF32x4(EmitContext& ctx, Id e1, Id e2, Id e3, Id e4); | ||
| 151 | Id EmitCompositeExtractF32x2(EmitContext& ctx, Id composite, u32 index); | ||
| 152 | Id EmitCompositeExtractF32x3(EmitContext& ctx, Id composite, u32 index); | ||
| 153 | Id EmitCompositeExtractF32x4(EmitContext& ctx, Id composite, u32 index); | ||
| 154 | Id EmitCompositeInsertF32x2(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 155 | Id EmitCompositeInsertF32x3(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 156 | Id EmitCompositeInsertF32x4(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 157 | void EmitCompositeConstructF64x2(EmitContext& ctx); | ||
| 158 | void EmitCompositeConstructF64x3(EmitContext& ctx); | ||
| 159 | void EmitCompositeConstructF64x4(EmitContext& ctx); | ||
| 160 | void EmitCompositeExtractF64x2(EmitContext& ctx); | ||
| 161 | void EmitCompositeExtractF64x3(EmitContext& ctx); | ||
| 162 | void EmitCompositeExtractF64x4(EmitContext& ctx); | ||
| 163 | Id EmitCompositeInsertF64x2(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 164 | Id EmitCompositeInsertF64x3(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 165 | Id EmitCompositeInsertF64x4(EmitContext& ctx, Id composite, Id object, u32 index); | ||
| 166 | Id EmitSelectU1(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 167 | Id EmitSelectU8(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 168 | Id EmitSelectU16(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 169 | Id EmitSelectU32(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 170 | Id EmitSelectU64(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 171 | Id EmitSelectF16(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 172 | Id EmitSelectF32(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 173 | Id EmitSelectF64(EmitContext& ctx, Id cond, Id true_value, Id false_value); | ||
| 174 | void EmitBitCastU16F16(EmitContext& ctx); | ||
| 175 | Id EmitBitCastU32F32(EmitContext& ctx, Id value); | ||
| 176 | void EmitBitCastU64F64(EmitContext& ctx); | ||
| 177 | void EmitBitCastF16U16(EmitContext& ctx); | ||
| 178 | Id EmitBitCastF32U32(EmitContext& ctx, Id value); | ||
| 179 | void EmitBitCastF64U64(EmitContext& ctx); | ||
| 180 | Id EmitPackUint2x32(EmitContext& ctx, Id value); | ||
| 181 | Id EmitUnpackUint2x32(EmitContext& ctx, Id value); | ||
| 182 | Id EmitPackFloat2x16(EmitContext& ctx, Id value); | ||
| 183 | Id EmitUnpackFloat2x16(EmitContext& ctx, Id value); | ||
| 184 | Id EmitPackHalf2x16(EmitContext& ctx, Id value); | ||
| 185 | Id EmitUnpackHalf2x16(EmitContext& ctx, Id value); | ||
| 186 | Id EmitPackDouble2x32(EmitContext& ctx, Id value); | ||
| 187 | Id EmitUnpackDouble2x32(EmitContext& ctx, Id value); | ||
| 188 | void EmitGetZeroFromOp(EmitContext& ctx); | ||
| 189 | void EmitGetSignFromOp(EmitContext& ctx); | ||
| 190 | void EmitGetCarryFromOp(EmitContext& ctx); | ||
| 191 | void EmitGetOverflowFromOp(EmitContext& ctx); | ||
| 192 | void EmitGetSparseFromOp(EmitContext& ctx); | ||
| 193 | void EmitGetInBoundsFromOp(EmitContext& ctx); | ||
| 194 | Id EmitFPAbs16(EmitContext& ctx, Id value); | ||
| 195 | Id EmitFPAbs32(EmitContext& ctx, Id value); | ||
| 196 | Id EmitFPAbs64(EmitContext& ctx, Id value); | ||
| 197 | Id EmitFPAdd16(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 198 | Id EmitFPAdd32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 199 | Id EmitFPAdd64(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 200 | Id EmitFPFma16(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); | ||
| 201 | Id EmitFPFma32(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); | ||
| 202 | Id EmitFPFma64(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); | ||
| 203 | Id EmitFPMax32(EmitContext& ctx, Id a, Id b); | ||
| 204 | Id EmitFPMax64(EmitContext& ctx, Id a, Id b); | ||
| 205 | Id EmitFPMin32(EmitContext& ctx, Id a, Id b); | ||
| 206 | Id EmitFPMin64(EmitContext& ctx, Id a, Id b); | ||
| 207 | Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 208 | Id EmitFPMul32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 209 | Id EmitFPMul64(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 210 | Id EmitFPNeg16(EmitContext& ctx, Id value); | ||
| 211 | Id EmitFPNeg32(EmitContext& ctx, Id value); | ||
| 212 | Id EmitFPNeg64(EmitContext& ctx, Id value); | ||
| 213 | Id EmitFPSin(EmitContext& ctx, Id value); | ||
| 214 | Id EmitFPCos(EmitContext& ctx, Id value); | ||
| 215 | Id EmitFPExp2(EmitContext& ctx, Id value); | ||
| 216 | Id EmitFPLog2(EmitContext& ctx, Id value); | ||
| 217 | Id EmitFPRecip32(EmitContext& ctx, Id value); | ||
| 218 | Id EmitFPRecip64(EmitContext& ctx, Id value); | ||
| 219 | Id EmitFPRecipSqrt32(EmitContext& ctx, Id value); | ||
| 220 | Id EmitFPRecipSqrt64(EmitContext& ctx, Id value); | ||
| 221 | Id EmitFPSqrt(EmitContext& ctx, Id value); | ||
| 222 | Id EmitFPSaturate16(EmitContext& ctx, Id value); | ||
| 223 | Id EmitFPSaturate32(EmitContext& ctx, Id value); | ||
| 224 | Id EmitFPSaturate64(EmitContext& ctx, Id value); | ||
| 225 | Id EmitFPClamp16(EmitContext& ctx, Id value, Id min_value, Id max_value); | ||
| 226 | Id EmitFPClamp32(EmitContext& ctx, Id value, Id min_value, Id max_value); | ||
| 227 | Id EmitFPClamp64(EmitContext& ctx, Id value, Id min_value, Id max_value); | ||
| 228 | Id EmitFPRoundEven16(EmitContext& ctx, Id value); | ||
| 229 | Id EmitFPRoundEven32(EmitContext& ctx, Id value); | ||
| 230 | Id EmitFPRoundEven64(EmitContext& ctx, Id value); | ||
| 231 | Id EmitFPFloor16(EmitContext& ctx, Id value); | ||
| 232 | Id EmitFPFloor32(EmitContext& ctx, Id value); | ||
| 233 | Id EmitFPFloor64(EmitContext& ctx, Id value); | ||
| 234 | Id EmitFPCeil16(EmitContext& ctx, Id value); | ||
| 235 | Id EmitFPCeil32(EmitContext& ctx, Id value); | ||
| 236 | Id EmitFPCeil64(EmitContext& ctx, Id value); | ||
| 237 | Id EmitFPTrunc16(EmitContext& ctx, Id value); | ||
| 238 | Id EmitFPTrunc32(EmitContext& ctx, Id value); | ||
| 239 | Id EmitFPTrunc64(EmitContext& ctx, Id value); | ||
| 240 | Id EmitFPOrdEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 241 | Id EmitFPOrdEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 242 | Id EmitFPOrdEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 243 | Id EmitFPUnordEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 244 | Id EmitFPUnordEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 245 | Id EmitFPUnordEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 246 | Id EmitFPOrdNotEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 247 | Id EmitFPOrdNotEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 248 | Id EmitFPOrdNotEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 249 | Id EmitFPUnordNotEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 250 | Id EmitFPUnordNotEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 251 | Id EmitFPUnordNotEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 252 | Id EmitFPOrdLessThan16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 253 | Id EmitFPOrdLessThan32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 254 | Id EmitFPOrdLessThan64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 255 | Id EmitFPUnordLessThan16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 256 | Id EmitFPUnordLessThan32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 257 | Id EmitFPUnordLessThan64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 258 | Id EmitFPOrdGreaterThan16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 259 | Id EmitFPOrdGreaterThan32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 260 | Id EmitFPOrdGreaterThan64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 261 | Id EmitFPUnordGreaterThan16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 262 | Id EmitFPUnordGreaterThan32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 263 | Id EmitFPUnordGreaterThan64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 264 | Id EmitFPOrdLessThanEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 265 | Id EmitFPOrdLessThanEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 266 | Id EmitFPOrdLessThanEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 267 | Id EmitFPUnordLessThanEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 268 | Id EmitFPUnordLessThanEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 269 | Id EmitFPUnordLessThanEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 270 | Id EmitFPOrdGreaterThanEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 271 | Id EmitFPOrdGreaterThanEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 272 | Id EmitFPOrdGreaterThanEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 273 | Id EmitFPUnordGreaterThanEqual16(EmitContext& ctx, Id lhs, Id rhs); | ||
| 274 | Id EmitFPUnordGreaterThanEqual32(EmitContext& ctx, Id lhs, Id rhs); | ||
| 275 | Id EmitFPUnordGreaterThanEqual64(EmitContext& ctx, Id lhs, Id rhs); | ||
| 276 | Id EmitFPIsNan16(EmitContext& ctx, Id value); | ||
| 277 | Id EmitFPIsNan32(EmitContext& ctx, Id value); | ||
| 278 | Id EmitFPIsNan64(EmitContext& ctx, Id value); | ||
| 279 | Id EmitIAdd32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 280 | Id EmitIAdd64(EmitContext& ctx, Id a, Id b); | ||
| 281 | Id EmitISub32(EmitContext& ctx, Id a, Id b); | ||
| 282 | Id EmitISub64(EmitContext& ctx, Id a, Id b); | ||
| 283 | Id EmitIMul32(EmitContext& ctx, Id a, Id b); | ||
| 284 | Id EmitINeg32(EmitContext& ctx, Id value); | ||
| 285 | Id EmitINeg64(EmitContext& ctx, Id value); | ||
| 286 | Id EmitIAbs32(EmitContext& ctx, Id value); | ||
| 287 | Id EmitShiftLeftLogical32(EmitContext& ctx, Id base, Id shift); | ||
| 288 | Id EmitShiftLeftLogical64(EmitContext& ctx, Id base, Id shift); | ||
| 289 | Id EmitShiftRightLogical32(EmitContext& ctx, Id base, Id shift); | ||
| 290 | Id EmitShiftRightLogical64(EmitContext& ctx, Id base, Id shift); | ||
| 291 | Id EmitShiftRightArithmetic32(EmitContext& ctx, Id base, Id shift); | ||
| 292 | Id EmitShiftRightArithmetic64(EmitContext& ctx, Id base, Id shift); | ||
| 293 | Id EmitBitwiseAnd32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 294 | Id EmitBitwiseOr32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 295 | Id EmitBitwiseXor32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | ||
| 296 | Id EmitBitFieldInsert(EmitContext& ctx, Id base, Id insert, Id offset, Id count); | ||
| 297 | Id EmitBitFieldSExtract(EmitContext& ctx, IR::Inst* inst, Id base, Id offset, Id count); | ||
| 298 | Id EmitBitFieldUExtract(EmitContext& ctx, IR::Inst* inst, Id base, Id offset, Id count); | ||
| 299 | Id EmitBitReverse32(EmitContext& ctx, Id value); | ||
| 300 | Id EmitBitCount32(EmitContext& ctx, Id value); | ||
| 301 | Id EmitBitwiseNot32(EmitContext& ctx, Id value); | ||
| 302 | Id EmitFindSMsb32(EmitContext& ctx, Id value); | ||
| 303 | Id EmitFindUMsb32(EmitContext& ctx, Id value); | ||
| 304 | Id EmitSMin32(EmitContext& ctx, Id a, Id b); | ||
| 305 | Id EmitUMin32(EmitContext& ctx, Id a, Id b); | ||
| 306 | Id EmitSMax32(EmitContext& ctx, Id a, Id b); | ||
| 307 | Id EmitUMax32(EmitContext& ctx, Id a, Id b); | ||
| 308 | Id EmitSClamp32(EmitContext& ctx, IR::Inst* inst, Id value, Id min, Id max); | ||
| 309 | Id EmitUClamp32(EmitContext& ctx, IR::Inst* inst, Id value, Id min, Id max); | ||
| 310 | Id EmitSLessThan(EmitContext& ctx, Id lhs, Id rhs); | ||
| 311 | Id EmitULessThan(EmitContext& ctx, Id lhs, Id rhs); | ||
| 312 | Id EmitIEqual(EmitContext& ctx, Id lhs, Id rhs); | ||
| 313 | Id EmitSLessThanEqual(EmitContext& ctx, Id lhs, Id rhs); | ||
| 314 | Id EmitULessThanEqual(EmitContext& ctx, Id lhs, Id rhs); | ||
| 315 | Id EmitSGreaterThan(EmitContext& ctx, Id lhs, Id rhs); | ||
| 316 | Id EmitUGreaterThan(EmitContext& ctx, Id lhs, Id rhs); | ||
| 317 | Id EmitINotEqual(EmitContext& ctx, Id lhs, Id rhs); | ||
| 318 | Id EmitSGreaterThanEqual(EmitContext& ctx, Id lhs, Id rhs); | ||
| 319 | Id EmitUGreaterThanEqual(EmitContext& ctx, Id lhs, Id rhs); | ||
| 320 | Id EmitSharedAtomicIAdd32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 321 | Id EmitSharedAtomicSMin32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 322 | Id EmitSharedAtomicUMin32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 323 | Id EmitSharedAtomicSMax32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 324 | Id EmitSharedAtomicUMax32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 325 | Id EmitSharedAtomicInc32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 326 | Id EmitSharedAtomicDec32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 327 | Id EmitSharedAtomicAnd32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 328 | Id EmitSharedAtomicOr32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 329 | Id EmitSharedAtomicXor32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 330 | Id EmitSharedAtomicExchange32(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 331 | Id EmitSharedAtomicExchange64(EmitContext& ctx, Id pointer_offset, Id value); | ||
| 332 | Id EmitStorageAtomicIAdd32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 333 | Id value); | ||
| 334 | Id EmitStorageAtomicSMin32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 335 | Id value); | ||
| 336 | Id EmitStorageAtomicUMin32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 337 | Id value); | ||
| 338 | Id EmitStorageAtomicSMax32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 339 | Id value); | ||
| 340 | Id EmitStorageAtomicUMax32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 341 | Id value); | ||
| 342 | Id EmitStorageAtomicInc32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 343 | Id value); | ||
| 344 | Id EmitStorageAtomicDec32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 345 | Id value); | ||
| 346 | Id EmitStorageAtomicAnd32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 347 | Id value); | ||
| 348 | Id EmitStorageAtomicOr32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 349 | Id value); | ||
| 350 | Id EmitStorageAtomicXor32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 351 | Id value); | ||
| 352 | Id EmitStorageAtomicExchange32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 353 | Id value); | ||
| 354 | Id EmitStorageAtomicIAdd64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 355 | Id value); | ||
| 356 | Id EmitStorageAtomicSMin64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 357 | Id value); | ||
| 358 | Id EmitStorageAtomicUMin64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 359 | Id value); | ||
| 360 | Id EmitStorageAtomicSMax64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 361 | Id value); | ||
| 362 | Id EmitStorageAtomicUMax64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 363 | Id value); | ||
| 364 | Id EmitStorageAtomicAnd64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 365 | Id value); | ||
| 366 | Id EmitStorageAtomicOr64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 367 | Id value); | ||
| 368 | Id EmitStorageAtomicXor64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 369 | Id value); | ||
| 370 | Id EmitStorageAtomicExchange64(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 371 | Id value); | ||
| 372 | Id EmitStorageAtomicAddF32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 373 | Id value); | ||
| 374 | Id EmitStorageAtomicAddF16x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 375 | Id value); | ||
| 376 | Id EmitStorageAtomicAddF32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 377 | Id value); | ||
| 378 | Id EmitStorageAtomicMinF16x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 379 | Id value); | ||
| 380 | Id EmitStorageAtomicMinF32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 381 | Id value); | ||
| 382 | Id EmitStorageAtomicMaxF16x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 383 | Id value); | ||
| 384 | Id EmitStorageAtomicMaxF32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset, | ||
| 385 | Id value); | ||
| 386 | Id EmitGlobalAtomicIAdd32(EmitContext& ctx); | ||
| 387 | Id EmitGlobalAtomicSMin32(EmitContext& ctx); | ||
| 388 | Id EmitGlobalAtomicUMin32(EmitContext& ctx); | ||
| 389 | Id EmitGlobalAtomicSMax32(EmitContext& ctx); | ||
| 390 | Id EmitGlobalAtomicUMax32(EmitContext& ctx); | ||
| 391 | Id EmitGlobalAtomicInc32(EmitContext& ctx); | ||
| 392 | Id EmitGlobalAtomicDec32(EmitContext& ctx); | ||
| 393 | Id EmitGlobalAtomicAnd32(EmitContext& ctx); | ||
| 394 | Id EmitGlobalAtomicOr32(EmitContext& ctx); | ||
| 395 | Id EmitGlobalAtomicXor32(EmitContext& ctx); | ||
| 396 | Id EmitGlobalAtomicExchange32(EmitContext& ctx); | ||
| 397 | Id EmitGlobalAtomicIAdd64(EmitContext& ctx); | ||
| 398 | Id EmitGlobalAtomicSMin64(EmitContext& ctx); | ||
| 399 | Id EmitGlobalAtomicUMin64(EmitContext& ctx); | ||
| 400 | Id EmitGlobalAtomicSMax64(EmitContext& ctx); | ||
| 401 | Id EmitGlobalAtomicUMax64(EmitContext& ctx); | ||
| 402 | Id EmitGlobalAtomicInc64(EmitContext& ctx); | ||
| 403 | Id EmitGlobalAtomicDec64(EmitContext& ctx); | ||
| 404 | Id EmitGlobalAtomicAnd64(EmitContext& ctx); | ||
| 405 | Id EmitGlobalAtomicOr64(EmitContext& ctx); | ||
| 406 | Id EmitGlobalAtomicXor64(EmitContext& ctx); | ||
| 407 | Id EmitGlobalAtomicExchange64(EmitContext& ctx); | ||
| 408 | Id EmitGlobalAtomicAddF32(EmitContext& ctx); | ||
| 409 | Id EmitGlobalAtomicAddF16x2(EmitContext& ctx); | ||
| 410 | Id EmitGlobalAtomicAddF32x2(EmitContext& ctx); | ||
| 411 | Id EmitGlobalAtomicMinF16x2(EmitContext& ctx); | ||
| 412 | Id EmitGlobalAtomicMinF32x2(EmitContext& ctx); | ||
| 413 | Id EmitGlobalAtomicMaxF16x2(EmitContext& ctx); | ||
| 414 | Id EmitGlobalAtomicMaxF32x2(EmitContext& ctx); | ||
| 415 | Id EmitLogicalOr(EmitContext& ctx, Id a, Id b); | ||
| 416 | Id EmitLogicalAnd(EmitContext& ctx, Id a, Id b); | ||
| 417 | Id EmitLogicalXor(EmitContext& ctx, Id a, Id b); | ||
| 418 | Id EmitLogicalNot(EmitContext& ctx, Id value); | ||
| 419 | Id EmitConvertS16F16(EmitContext& ctx, Id value); | ||
| 420 | Id EmitConvertS16F32(EmitContext& ctx, Id value); | ||
| 421 | Id EmitConvertS16F64(EmitContext& ctx, Id value); | ||
| 422 | Id EmitConvertS32F16(EmitContext& ctx, Id value); | ||
| 423 | Id EmitConvertS32F32(EmitContext& ctx, Id value); | ||
| 424 | Id EmitConvertS32F64(EmitContext& ctx, Id value); | ||
| 425 | Id EmitConvertS64F16(EmitContext& ctx, Id value); | ||
| 426 | Id EmitConvertS64F32(EmitContext& ctx, Id value); | ||
| 427 | Id EmitConvertS64F64(EmitContext& ctx, Id value); | ||
| 428 | Id EmitConvertU16F16(EmitContext& ctx, Id value); | ||
| 429 | Id EmitConvertU16F32(EmitContext& ctx, Id value); | ||
| 430 | Id EmitConvertU16F64(EmitContext& ctx, Id value); | ||
| 431 | Id EmitConvertU32F16(EmitContext& ctx, Id value); | ||
| 432 | Id EmitConvertU32F32(EmitContext& ctx, Id value); | ||
| 433 | Id EmitConvertU32F64(EmitContext& ctx, Id value); | ||
| 434 | Id EmitConvertU64F16(EmitContext& ctx, Id value); | ||
| 435 | Id EmitConvertU64F32(EmitContext& ctx, Id value); | ||
| 436 | Id EmitConvertU64F64(EmitContext& ctx, Id value); | ||
| 437 | Id EmitConvertU64U32(EmitContext& ctx, Id value); | ||
| 438 | Id EmitConvertU32U64(EmitContext& ctx, Id value); | ||
| 439 | Id EmitConvertF16F32(EmitContext& ctx, Id value); | ||
| 440 | Id EmitConvertF32F16(EmitContext& ctx, Id value); | ||
| 441 | Id EmitConvertF32F64(EmitContext& ctx, Id value); | ||
| 442 | Id EmitConvertF64F32(EmitContext& ctx, Id value); | ||
| 443 | Id EmitConvertF16S8(EmitContext& ctx, Id value); | ||
| 444 | Id EmitConvertF16S16(EmitContext& ctx, Id value); | ||
| 445 | Id EmitConvertF16S32(EmitContext& ctx, Id value); | ||
| 446 | Id EmitConvertF16S64(EmitContext& ctx, Id value); | ||
| 447 | Id EmitConvertF16U8(EmitContext& ctx, Id value); | ||
| 448 | Id EmitConvertF16U16(EmitContext& ctx, Id value); | ||
| 449 | Id EmitConvertF16U32(EmitContext& ctx, Id value); | ||
| 450 | Id EmitConvertF16U64(EmitContext& ctx, Id value); | ||
| 451 | Id EmitConvertF32S8(EmitContext& ctx, Id value); | ||
| 452 | Id EmitConvertF32S16(EmitContext& ctx, Id value); | ||
| 453 | Id EmitConvertF32S32(EmitContext& ctx, Id value); | ||
| 454 | Id EmitConvertF32S64(EmitContext& ctx, Id value); | ||
| 455 | Id EmitConvertF32U8(EmitContext& ctx, Id value); | ||
| 456 | Id EmitConvertF32U16(EmitContext& ctx, Id value); | ||
| 457 | Id EmitConvertF32U32(EmitContext& ctx, Id value); | ||
| 458 | Id EmitConvertF32U64(EmitContext& ctx, Id value); | ||
| 459 | Id EmitConvertF64S8(EmitContext& ctx, Id value); | ||
| 460 | Id EmitConvertF64S16(EmitContext& ctx, Id value); | ||
| 461 | Id EmitConvertF64S32(EmitContext& ctx, Id value); | ||
| 462 | Id EmitConvertF64S64(EmitContext& ctx, Id value); | ||
| 463 | Id EmitConvertF64U8(EmitContext& ctx, Id value); | ||
| 464 | Id EmitConvertF64U16(EmitContext& ctx, Id value); | ||
| 465 | Id EmitConvertF64U32(EmitContext& ctx, Id value); | ||
| 466 | Id EmitConvertF64U64(EmitContext& ctx, Id value); | ||
| 467 | Id EmitBindlessImageSampleImplicitLod(EmitContext&); | ||
| 468 | Id EmitBindlessImageSampleExplicitLod(EmitContext&); | ||
| 469 | Id EmitBindlessImageSampleDrefImplicitLod(EmitContext&); | ||
| 470 | Id EmitBindlessImageSampleDrefExplicitLod(EmitContext&); | ||
| 471 | Id EmitBindlessImageGather(EmitContext&); | ||
| 472 | Id EmitBindlessImageGatherDref(EmitContext&); | ||
| 473 | Id EmitBindlessImageFetch(EmitContext&); | ||
| 474 | Id EmitBindlessImageQueryDimensions(EmitContext&); | ||
| 475 | Id EmitBindlessImageQueryLod(EmitContext&); | ||
| 476 | Id EmitBindlessImageGradient(EmitContext&); | ||
| 477 | Id EmitBindlessImageRead(EmitContext&); | ||
| 478 | Id EmitBindlessImageWrite(EmitContext&); | ||
| 479 | Id EmitBoundImageSampleImplicitLod(EmitContext&); | ||
| 480 | Id EmitBoundImageSampleExplicitLod(EmitContext&); | ||
| 481 | Id EmitBoundImageSampleDrefImplicitLod(EmitContext&); | ||
| 482 | Id EmitBoundImageSampleDrefExplicitLod(EmitContext&); | ||
| 483 | Id EmitBoundImageGather(EmitContext&); | ||
| 484 | Id EmitBoundImageGatherDref(EmitContext&); | ||
| 485 | Id EmitBoundImageFetch(EmitContext&); | ||
| 486 | Id EmitBoundImageQueryDimensions(EmitContext&); | ||
| 487 | Id EmitBoundImageQueryLod(EmitContext&); | ||
| 488 | Id EmitBoundImageGradient(EmitContext&); | ||
| 489 | Id EmitBoundImageRead(EmitContext&); | ||
| 490 | Id EmitBoundImageWrite(EmitContext&); | ||
| 491 | Id EmitImageSampleImplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 492 | Id bias_lc, const IR::Value& offset); | ||
| 493 | Id EmitImageSampleExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 494 | Id lod, const IR::Value& offset); | ||
| 495 | Id EmitImageSampleDrefImplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, | ||
| 496 | Id coords, Id dref, Id bias_lc, const IR::Value& offset); | ||
| 497 | Id EmitImageSampleDrefExplicitLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, | ||
| 498 | Id coords, Id dref, Id lod, const IR::Value& offset); | ||
| 499 | Id EmitImageGather(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 500 | const IR::Value& offset, const IR::Value& offset2); | ||
| 501 | Id EmitImageGatherDref(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 502 | const IR::Value& offset, const IR::Value& offset2, Id dref); | ||
| 503 | Id EmitImageFetch(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, Id offset, | ||
| 504 | Id lod, Id ms); | ||
| 505 | Id EmitImageQueryDimensions(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id lod); | ||
| 506 | Id EmitImageQueryLod(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords); | ||
| 507 | Id EmitImageGradient(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 508 | Id derivates, Id offset, Id lod_clamp); | ||
| 509 | Id EmitImageRead(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords); | ||
| 510 | void EmitImageWrite(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, Id color); | ||
| 511 | Id EmitBindlessImageAtomicIAdd32(EmitContext&); | ||
| 512 | Id EmitBindlessImageAtomicSMin32(EmitContext&); | ||
| 513 | Id EmitBindlessImageAtomicUMin32(EmitContext&); | ||
| 514 | Id EmitBindlessImageAtomicSMax32(EmitContext&); | ||
| 515 | Id EmitBindlessImageAtomicUMax32(EmitContext&); | ||
| 516 | Id EmitBindlessImageAtomicInc32(EmitContext&); | ||
| 517 | Id EmitBindlessImageAtomicDec32(EmitContext&); | ||
| 518 | Id EmitBindlessImageAtomicAnd32(EmitContext&); | ||
| 519 | Id EmitBindlessImageAtomicOr32(EmitContext&); | ||
| 520 | Id EmitBindlessImageAtomicXor32(EmitContext&); | ||
| 521 | Id EmitBindlessImageAtomicExchange32(EmitContext&); | ||
| 522 | Id EmitBoundImageAtomicIAdd32(EmitContext&); | ||
| 523 | Id EmitBoundImageAtomicSMin32(EmitContext&); | ||
| 524 | Id EmitBoundImageAtomicUMin32(EmitContext&); | ||
| 525 | Id EmitBoundImageAtomicSMax32(EmitContext&); | ||
| 526 | Id EmitBoundImageAtomicUMax32(EmitContext&); | ||
| 527 | Id EmitBoundImageAtomicInc32(EmitContext&); | ||
| 528 | Id EmitBoundImageAtomicDec32(EmitContext&); | ||
| 529 | Id EmitBoundImageAtomicAnd32(EmitContext&); | ||
| 530 | Id EmitBoundImageAtomicOr32(EmitContext&); | ||
| 531 | Id EmitBoundImageAtomicXor32(EmitContext&); | ||
| 532 | Id EmitBoundImageAtomicExchange32(EmitContext&); | ||
| 533 | Id EmitImageAtomicIAdd32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 534 | Id value); | ||
| 535 | Id EmitImageAtomicSMin32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 536 | Id value); | ||
| 537 | Id EmitImageAtomicUMin32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 538 | Id value); | ||
| 539 | Id EmitImageAtomicSMax32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 540 | Id value); | ||
| 541 | Id EmitImageAtomicUMax32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 542 | Id value); | ||
| 543 | Id EmitImageAtomicInc32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 544 | Id value); | ||
| 545 | Id EmitImageAtomicDec32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 546 | Id value); | ||
| 547 | Id EmitImageAtomicAnd32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 548 | Id value); | ||
| 549 | Id EmitImageAtomicOr32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 550 | Id value); | ||
| 551 | Id EmitImageAtomicXor32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 552 | Id value); | ||
| 553 | Id EmitImageAtomicExchange32(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id coords, | ||
| 554 | Id value); | ||
| 555 | Id EmitLaneId(EmitContext& ctx); | ||
| 556 | Id EmitVoteAll(EmitContext& ctx, Id pred); | ||
| 557 | Id EmitVoteAny(EmitContext& ctx, Id pred); | ||
| 558 | Id EmitVoteEqual(EmitContext& ctx, Id pred); | ||
| 559 | Id EmitSubgroupBallot(EmitContext& ctx, Id pred); | ||
| 560 | Id EmitSubgroupEqMask(EmitContext& ctx); | ||
| 561 | Id EmitSubgroupLtMask(EmitContext& ctx); | ||
| 562 | Id EmitSubgroupLeMask(EmitContext& ctx); | ||
| 563 | Id EmitSubgroupGtMask(EmitContext& ctx); | ||
| 564 | Id EmitSubgroupGeMask(EmitContext& ctx); | ||
| 565 | Id EmitShuffleIndex(EmitContext& ctx, IR::Inst* inst, Id value, Id index, Id clamp, | ||
| 566 | Id segmentation_mask); | ||
| 567 | Id EmitShuffleUp(EmitContext& ctx, IR::Inst* inst, Id value, Id index, Id clamp, | ||
| 568 | Id segmentation_mask); | ||
| 569 | Id EmitShuffleDown(EmitContext& ctx, IR::Inst* inst, Id value, Id index, Id clamp, | ||
| 570 | Id segmentation_mask); | ||
| 571 | Id EmitShuffleButterfly(EmitContext& ctx, IR::Inst* inst, Id value, Id index, Id clamp, | ||
| 572 | Id segmentation_mask); | ||
| 573 | Id EmitFSwizzleAdd(EmitContext& ctx, Id op_a, Id op_b, Id swizzle); | ||
| 574 | Id EmitDPdxFine(EmitContext& ctx, Id op_a); | ||
| 575 | Id EmitDPdyFine(EmitContext& ctx, Id op_a); | ||
| 576 | Id EmitDPdxCoarse(EmitContext& ctx, Id op_a); | ||
| 577 | Id EmitDPdyCoarse(EmitContext& ctx, Id op_a); | ||
| 578 | |||
| 579 | } // namespace Shader::Backend::SPIRV | ||