SPIR-V opcodes Constant latency Variable latency (* operand)
OpAtomicXor 254 0
OpAtomicOr 254 0
OpAtomicAnd 254 0
OpAtomicUMax 258 0
OpAtomicSMax 258 0
OpAtomicSMin 258 0
OpAtomicISub 254 0
OpFwidthCoarse 4 0
OpDPdyCoarse 4 0
OpDPdxCoarse 4 0
OpFwidthFine 4 0
OpDPdyFine 4 0
OpDPdxFine 4 0
OpFwidth 4 0
OpDPdy 4 0
OpDPdx 4 0
OpFUnordGreaterThanEqual 4 0
OpFOrdGreaterThanEqual 4 0
OpFUnordLessThanEqual 4 0
OpFOrdLessThanEqual 4 0
OpFUnordGreaterThan 4 0
OpFOrdGreaterThan 4 0
OpFUnordLessThan 4 0
OpFOrdLessThan 4 0
OpFUnordNotEqual 4 0
OpFOrdNotEqual 4 0
OpFUnordEqual 4 0
OpFOrdEqual 4 0
OpSLessThanEqual 4 0
OpULessThanEqual 4 0
OpSLessThan 4 0
OpULessThan 4 0
OpSGreaterThanEqual 4 0
OpUGreaterThanEqual 4 0
OpSGreaterThan 4 0
OpUGreaterThan 4 0
OpINotEqual 4 0
OpIEqual 4 0
OpSelect 2 0
OpLogicalNot 4 0
OpLogicalAnd 4 0
OpLogicalOr 4 0
OpLogicalNotEqual 4 0
OpLogicalEqual 4 0
OpUnordered 4 0
OpOrdered 4 0
OpLessOrGreater 4 0
OpSignBitSet 4 0
OpIsNormal 4 0
OpIsFinite 4 0
OpIsInf 4 0
OpIsNan 4 0
OpAll 4 0
OpAny 4 0
OpBitCount 4 0
OpBitReverse 4 0
OpBitFieldUExtract 4 0
OpBitFieldSExtract 4 0
OpBitFieldInsert 4 0
OpNot 4 0
OpBitwiseAnd 4 0
OpBitwiseXor 4 0
OpBitwiseOr 4 0
OpShiftLeftLogical 4 0
OpShiftRightArithmetic 4 0
OpShiftRightLogical 4 0
OpAtomicFlagClear 254 0
OpSMulExtended 4 0
OpAtomicFlagTestAndSet 254 0
OpUMulExtended 4 0
OpISubBorrow 4 0
OpMatrixTimesVector 16 0
OpVectorTimesMatrix 16 0
OpMatrixTimesScalar 16 0
OpVectorTimesScalar 4 0
OpUMod 4 0
OpFDiv 4 0
OpSDiv 4 0
OpUDiv 4 0
OpFMul 4 0
OpIMul 4 0
OpFSub 4 0
OpISub 4 0
OpFAdd 4 0
OpIAdd 4 0
OpFNegate 4 0
OpSNegate 4 0
OpCompositeExtract 3 0
OpCompositeConstruct 3 0
OpVectorShuffle 3 0
OpVectorInsertDynamic 3 0
OpVectorExtractDynamic 3 0
OpConvertUToPtr 4 0
OpSatConvertUToS 4 0
OpSatConvertSToU 4 0
OpConvertPtrToU 4 0
OpQuantizeToF16 4 0
OpFConvert 4 0
OpSConvert 4 0
OpUConvert 4 0
OpConvertUToF 4 0
OpConvertSToF 4 0
OpConvertFToS 4 0
OpConvertFToU 4 0
OpIAddCarry 4 0
OpImageSparseTexelsResident 4 0
OpImageQuerySamples 2 0
OpImageQueryLevels 2 0
OpImageQueryLod 8 0
OpImageQuerySize 2 0
OpImageQuerySizeLod 8 0
OpImageSparseRead 244 0
OpDot 16 0
OpImageSparseDrefGather 376 0
OpOuterProduct 64 0
OpImageSparseGather 372 0
OpMatrixTimesMatrix 80 0
OpImageSparseFetch 244 0
OpFMod 4 0
OpImageSparseSampleDrefExplicitLod 396 0
OpFRem 4 0
OpImageSparseSampleDrefImplicitLod 396 0
OpSMod 4 0
OpImageSparseSampleExplicitLod 392 0
OpSRem 4 0
OpImageSparseSampleImplicitLod 392 0
OpImageWrite 120 0
OpImageRead 120 0
OpImageDrefGather 252 0
OpImageGather 248 0
OpImageFetch 120 0
OpImageSampleProjDrefExplicitLod 272 0
OpImageSampleProjDrefImplicitLod 272 0
OpImageSampleProjExplicitLod 268 0
OpImageSampleProjImplicitLod 268 0
OpImageSampleDrefExplicitLod 268 0
OpImageSampleDrefImplicitLod 268 0
OpImageSampleExplicitLod 264 0
OpImageSampleImplicitLod 264 0
OpFunctionCall 2 0
OpKill 1 0
OpTranspose 32 0
OpSwitch 4 0
OpCopyObject 2 0
OpBranchConditional 4 0
OpCompositeInsert 3 0
OpBranch 2 0
OpAtomicUMin 258 0
OpInBoundsPtrAccessChain 12 0
OpAtomicIAdd 254 0
OpPtrAccessChain 16 0
OpAtomicIDecrement 254 0
OpInBoundsAccessChain 8 0
OpAtomicIIncrement 254 0
OpAccessChain 12 0
OpAtomicCompareExchangeWeak 253 0
OpCopyMemorySized 4 30
OpAtomicCompareExchange 258 0
OpCopyMemory 240 0
OpAtomicExchange 254 0
OpStore 120 0
OpAtomicStore 130 0
OpLoad 120 0
OpAtomicLoad 130 0
OpImageTexelPointer 8 0
GLSL extension opcodes Constant latency Variable latency (* operand)
GLSLstd450Round 8 0
GLSLstd450RoundEven 8 0
GLSLstd450Trunc 8 0
GLSLstd450FAbs 8 0
GLSLstd450SAbs 8 0
GLSLstd450FSign 8 0
GLSLstd450SSign 8 0
GLSLstd450Floor 8 0
GLSLstd450Ceil 8 0
GLSLstd450Fract 8 0
GLSLstd450Radians 8 0
GLSLstd450Degrees 8 0
GLSLstd450Sin 8 0
GLSLstd450Cos 8 0
GLSLstd450Tan 8 0
GLSLstd450Asin 8 0
GLSLstd450Acos 8 0
GLSLstd450Atan 8 0
GLSLstd450Sinh 8 0
GLSLstd450Cosh 8 0
GLSLstd450Tanh 8 0
GLSLstd450Asinh 8 0
GLSLstd450Acosh 8 0
GLSLstd450Atanh 8 0
GLSLstd450Atan2 8 0
GLSLstd450Pow 20 0
GLSLstd450Exp 20 0
GLSLstd450Log 20 0
GLSLstd450Exp2 8 0
GLSLstd450Log2 8 0
GLSLstd450Sqrt 8 0
GLSLstd450InverseSqrt 8 0
GLSLstd450Determinant 64 0
GLSLstd450MatrixInverse 112 0
GLSLstd450Modf 12 0
GLSLstd450ModfStruct 12 0
GLSLstd450FMin 8 0
GLSLstd450UMin 8 0
GLSLstd450SMin 8 0
GLSLstd450FMax 8 0
GLSLstd450UMax 8 0
GLSLstd450SMax 8 0
GLSLstd450FClamp 8 0
GLSLstd450UClamp 8 0
GLSLstd450SClamp 8 0
GLSLstd450FMix 16 0
GLSLstd450IMix 16 0
GLSLstd450Step 8 0
GLSLstd450SmoothStep 32 0
GLSLstd450Fma 8 0
GLSLstd450Frexp 12 0
GLSLstd450FrexpStruct 12 0
GLSLstd450Ldexp 8 0
GLSLstd450PackSnorm4x8 8 0
GLSLstd450PackUnorm4x8 8 0
GLSLstd450PackSnorm2x16 8 0
GLSLstd450PackUnorm2x16 8 0
GLSLstd450PackHalf2x16 8 0
GLSLstd450PackDouble2x32 8 0
GLSLstd450UnpackSnorm2x16 8 0
GLSLstd450UnpackUnorm2x16 8 0
GLSLstd450UnpackHalf2x16 8 0
GLSLstd450UnpackSnorm4x8 8 0
GLSLstd450UnpackUnorm4x8 8 0
GLSLstd450UnpackDouble2x32 8 0
GLSLstd450Length 24 0
GLSLstd450Distance 28 0
GLSLstd450Cross 100 0
GLSLstd450Normalize 28 0
GLSLstd450FaceForward 18 0
GLSLstd450Reflect 12 0
GLSLstd450Refract 28 0
GLSLstd450FindILsb 8 0
GLSLstd450FindSMsb 8 0
GLSLstd450FindUMsb 8 0
GLSLstd450InterpolateAtCentroid 8 0
GLSLstd450InterpolateAtSample 8 0
GLSLstd450InterpolateAtOffset 8 0
GLSLstd450NMin 8 0
GLSLstd450NMax 8 0
GLSLstd450NClamp 8 0