// Central IR opcode catalog. Keep semantic categories here so enum identity, logging, // and generic analysis cannot drift apart. IR_OPCODE(ControlNop, General) IR_OPCODE(Waitcnt, General) IR_OPCODE(Barrier, General) IR_OPCODE(Sendmsg, General) IR_OPCODE(TtraceData, General) IR_OPCODE(InstPrefetch, General) IR_OPCODE(MoveU32, General) IR_OPCODE(MoveF32Bits, General) IR_OPCODE(MoveRelDestU32, General) IR_OPCODE(MoveRelSourceU32, General) IR_OPCODE(MoveU64, General) IR_OPCODE(WqmB64, General) IR_OPCODE(SaveexecB32, General) IR_OPCODE(SaveexecB64, General) IR_OPCODE(ReadFirstLaneU32, General) IR_OPCODE(ReadLaneU32, General) IR_OPCODE(WriteLaneU32, General) IR_OPCODE(Permlane16B32, General) IR_OPCODE(Permlanex16B32, General) IR_OPCODE(AbsI32, General) IR_OPCODE(IAddU32, General) IR_OPCODE(IAddCarryU32, General) IR_OPCODE(ISubBorrowU32, General) IR_OPCODE(ScalarAddCarryU32, General) IR_OPCODE(ScalarSubBorrowU32, General) IR_OPCODE(ScalarSubBorrowCarryU32, General) IR_OPCODE(ScalarSignedAddOverflowI32, General) IR_OPCODE(ScalarSignedSubOverflowI32, General) IR_OPCODE(ScalarShiftLeftAddCarryU32, General) IR_OPCODE(ISubU32, General) IR_OPCODE(IMulU32, General) IR_OPCODE(UMulHighU32, General) IR_OPCODE(SMulHighI32, General) IR_OPCODE(IMadI24U32, General) IR_OPCODE(UMadU24U32, General) IR_OPCODE(UMadU64U32, General) IR_OPCODE(SadU32, General) IR_OPCODE(IAdd3U32, General) IR_OPCODE(IMulI24U32, General) IR_OPCODE(UMulU24U32, General) IR_OPCODE(IMinI32, General) IR_OPCODE(IMaxI32, General) IR_OPCODE(IMin3I32, General) IR_OPCODE(IMax3I32, General) IR_OPCODE(IMed3I32, General) IR_OPCODE(UMinU32, General) IR_OPCODE(UMaxU32, General) IR_OPCODE(UMin3U32, General) IR_OPCODE(UMax3U32, General) IR_OPCODE(UMed3U32, General) IR_OPCODE(BitwiseAndU32, General) IR_OPCODE(BitwiseAndU64, General) IR_OPCODE(BitwiseAndNotU32, General) IR_OPCODE(BitwiseAndNotU64, General) IR_OPCODE(BitwiseOrU32, General) IR_OPCODE(BitwiseOrU64, General) IR_OPCODE(BitwiseOrNotU32, General) IR_OPCODE(BitwiseOrNotU64, General) IR_OPCODE(BitwiseAndOrU32, General) IR_OPCODE(BitwiseOr3U32, General) IR_OPCODE(BitwiseXorU32, General) IR_OPCODE(BitwiseXorU64, General) IR_OPCODE(BitwiseXor3U32, General) IR_OPCODE(BitwiseNandU32, General) IR_OPCODE(BitwiseNandU64, General) IR_OPCODE(BitwiseNorU32, General) IR_OPCODE(BitwiseNorU64, General) IR_OPCODE(BitwiseXnorU32, General) IR_OPCODE(BitwiseXnorU64, General) IR_OPCODE(BitwiseNotU32, General) IR_OPCODE(BitwiseNotU64, General) IR_OPCODE(BitClearU32, General) IR_OPCODE(BitSetU32, General) IR_OPCODE(BitReverseU32, General) IR_OPCODE(BitCountU32, General) IR_OPCODE(BitCountU64, General) IR_OPCODE(BitReplicateB64B32, General) IR_OPCODE(BitCountAddU32, General) IR_OPCODE(MaskedBitCountLowU32, General) IR_OPCODE(MaskedBitCountHighU32, General) IR_OPCODE(FindLsbU32, General) IR_OPCODE(FindMsbFromHighU32, General) IR_OPCODE(FindMsbFromHighU64, General) IR_OPCODE(BitFieldMaskU32, General) IR_OPCODE(BitFieldMaskU64, General) IR_OPCODE(BitFieldExtractU32, General) IR_OPCODE(BitFieldExtractU64, General) IR_OPCODE(BitFieldExtract3U32, General) IR_OPCODE(BitFieldExtract3I32, General) IR_OPCODE(BitFieldInsertSelectU32, General) IR_OPCODE(BitCompare0B32, General) IR_OPCODE(BitCompare1B32, General) IR_OPCODE(AlignBitU32, General) IR_OPCODE(ShiftLeftAddU32, General) IR_OPCODE(AddShiftLeftU32, General) IR_OPCODE(XorAddU32, General) IR_OPCODE(ShiftLeftOrU32, General) IR_OPCODE(ShiftLeftLogicalU32, General) IR_OPCODE(ShiftLeftLogicalU64, General) IR_OPCODE(ShiftLeftLogicalU16, General) IR_OPCODE(ShiftRightLogicalU32, General) IR_OPCODE(ShiftRightLogicalU64, General) IR_OPCODE(ShiftRightLogicalU16, General) IR_OPCODE(ShiftRightArithmeticI32, General) IR_OPCODE(ShiftRightArithmeticI16, General) IR_OPCODE(SelectU32, General) IR_OPCODE(SelectMaskU32, General) IR_OPCODE(SelectF32Bits, General) IR_OPCODE(SelectMaskF32Bits, General) IR_OPCODE(SelectU64, General) IR_OPCODE(PackLowLowU16, General) IR_OPCODE(PackLowHighU16, General) IR_OPCODE(PackHighHighU16, General) IR_OPCODE(CompareFalse, Compare) IR_OPCODE(CompareTrue, Compare) IR_OPCODE(CompareEqU32, Compare) IR_OPCODE(CompareNeU32, Compare) IR_OPCODE(CompareGtU32, Compare) IR_OPCODE(CompareGeU32, Compare) IR_OPCODE(CompareLtU32, Compare) IR_OPCODE(CompareLeU32, Compare) IR_OPCODE(CompareEqU64, Compare64) IR_OPCODE(CompareNeU64, Compare64) IR_OPCODE(CompareMaskEqU32, Compare) IR_OPCODE(CompareMaskNeU32, Compare) IR_OPCODE(CompareMaskGtU32, Compare) IR_OPCODE(CompareMaskGeU32, Compare) IR_OPCODE(CompareMaskLtU32, Compare) IR_OPCODE(CompareMaskLeU32, Compare) IR_OPCODE(CompareEqI32, Compare) IR_OPCODE(CompareNeI32, Compare) IR_OPCODE(CompareGtI32, Compare) IR_OPCODE(CompareGeI32, Compare) IR_OPCODE(CompareLtI32, Compare) IR_OPCODE(CompareLeI32, Compare) IR_OPCODE(CompareEqI16, Compare) IR_OPCODE(CompareNeI16, Compare) IR_OPCODE(CompareGtI16, Compare) IR_OPCODE(CompareGeI16, Compare) IR_OPCODE(CompareLtI16, Compare) IR_OPCODE(CompareLeI16, Compare) IR_OPCODE(CompareMaskEqI32, Compare) IR_OPCODE(CompareMaskNeI32, Compare) IR_OPCODE(CompareMaskGtI32, Compare) IR_OPCODE(CompareMaskGeI32, Compare) IR_OPCODE(CompareMaskLtI32, Compare) IR_OPCODE(CompareMaskLeI32, Compare) IR_OPCODE(CompareEqU16, Compare) IR_OPCODE(CompareNeU16, Compare) IR_OPCODE(CompareGtU16, Compare) IR_OPCODE(CompareGeU16, Compare) IR_OPCODE(CompareLtU16, Compare) IR_OPCODE(CompareLeU16, Compare) IR_OPCODE(CompareEqF32, Compare) IR_OPCODE(CompareNeF32, Compare) IR_OPCODE(CompareGtF32, Compare) IR_OPCODE(CompareGeF32, Compare) IR_OPCODE(CompareLtF32, Compare) IR_OPCODE(CompareLeF32, Compare) IR_OPCODE(CompareOrderedF32, Compare) IR_OPCODE(CompareUnorderedF32, Compare) IR_OPCODE(CompareUnordEqF32, Compare) IR_OPCODE(CompareUnordNeF32, Compare) IR_OPCODE(CompareUnordGtF32, Compare) IR_OPCODE(CompareUnordGeF32, Compare) IR_OPCODE(CompareUnordLtF32, Compare) IR_OPCODE(CompareUnordLeF32, Compare) IR_OPCODE(CompareClassF32, Compare) IR_OPCODE(CompareEqF16, Compare) IR_OPCODE(CompareNeF16, Compare) IR_OPCODE(CompareGtF16, Compare) IR_OPCODE(CompareGeF16, Compare) IR_OPCODE(CompareLtF16, Compare) IR_OPCODE(CompareLeF16, Compare) IR_OPCODE(CompareUnordNeF16, Compare) IR_OPCODE(CompareMaskEqF16, Compare) IR_OPCODE(CompareMaskNeF16, Compare) IR_OPCODE(CompareMaskGtF16, Compare) IR_OPCODE(CompareMaskGeF16, Compare) IR_OPCODE(CompareMaskLtF16, Compare) IR_OPCODE(CompareMaskLeF16, Compare) IR_OPCODE(CompareMaskUnordNeF16, Compare) IR_OPCODE(CompareMaskUnordGeF16, Compare) IR_OPCODE(CompareMaskEqF32, Compare) IR_OPCODE(CompareMaskNeF32, Compare) IR_OPCODE(CompareMaskGtF32, Compare) IR_OPCODE(CompareMaskGeF32, Compare) IR_OPCODE(CompareMaskLtF32, Compare) IR_OPCODE(CompareMaskLeF32, Compare) IR_OPCODE(CompareMaskUnordEqF32, Compare) IR_OPCODE(CompareMaskUnordNeF32, Compare) IR_OPCODE(CompareMaskUnordGtF32, Compare) IR_OPCODE(CompareMaskUnordGeF32, Compare) IR_OPCODE(CompareMaskUnordLtF32, Compare) IR_OPCODE(CompareMaskUnordLeF32, Compare) IR_OPCODE(ConvertByteU32ToF32, General) IR_OPCODE(ConvertU32ToF32, General) IR_OPCODE(ConvertI32ToF32, General) IR_OPCODE(ConvertF32ToU32, General) IR_OPCODE(ConvertF32ToI32, General) IR_OPCODE(ConvertF32ToF16, General) IR_OPCODE(ConvertF16ToF32, General) IR_OPCODE(ConvertU16ToF16, General) IR_OPCODE(ConvertF16ToU16, General) IR_OPCODE(ConvertI16ToF16, General) IR_OPCODE(ConvertF16ToI16, General) IR_OPCODE(ConvertRoundPlusInfF32ToI32, General) IR_OPCODE(ConvertFloorF32ToI32, General) IR_OPCODE(ConvertI4ToOffsetF32, General) IR_OPCODE(LdexpF32, General) IR_OPCODE(PackF32ToF16Rtz, General) IR_OPCODE(PackSnorm2x16F32, General) IR_OPCODE(PackUnorm2x16F32, General) IR_OPCODE(PackU16U32, General) IR_OPCODE(PackU8F32, General) IR_OPCODE(PackB32F16, General) IR_OPCODE(PackedMadI16, General) IR_OPCODE(PackedMulLoU16, General) IR_OPCODE(PackedAddI16, General) IR_OPCODE(PackedSubI16, General) IR_OPCODE(PackedLshlrevB16, General) IR_OPCODE(PackedLshrrevB16, General) IR_OPCODE(PackedAshrrevI16, General) IR_OPCODE(PackedMaxI16, General) IR_OPCODE(PackedMinI16, General) IR_OPCODE(PackedMadU16, General) IR_OPCODE(PackedAddU16, General) IR_OPCODE(PackedSubU16, General) IR_OPCODE(PackedMaxU16, General) IR_OPCODE(PackedMinU16, General) IR_OPCODE(PackedAddF16, General) IR_OPCODE(PackedMulF16, General) IR_OPCODE(PackedMinF16, General) IR_OPCODE(PackedMaxF16, General) IR_OPCODE(PackedFmaF16, General) IR_OPCODE(AddF16, General) IR_OPCODE(SubF16, General) IR_OPCODE(MulF16, General) IR_OPCODE(MinF16, General) IR_OPCODE(MaxF16, General) IR_OPCODE(FmaF16, General) IR_OPCODE(MadMixF16, General) IR_OPCODE(IAddU16, General) IR_OPCODE(ISubI16, General) IR_OPCODE(IMinI16, General) IR_OPCODE(IMaxI16, General) IR_OPCODE(UMinU16, General) IR_OPCODE(UMaxU16, General) IR_OPCODE(RcpF32, General) IR_OPCODE(FractF32, General) IR_OPCODE(TruncF32, General) IR_OPCODE(CeilF32, General) IR_OPCODE(RoundEvenF32, General) IR_OPCODE(FloorF32, General) IR_OPCODE(Exp2F32, General) IR_OPCODE(Log2F32, General) IR_OPCODE(InverseSqrtF32, General) IR_OPCODE(SqrtF32, General) IR_OPCODE(RcpF16, General) IR_OPCODE(SqrtF16, General) IR_OPCODE(InverseSqrtF16, General) IR_OPCODE(Log2F16, General) IR_OPCODE(Exp2F16, General) IR_OPCODE(FloorF16, General) IR_OPCODE(CeilF16, General) IR_OPCODE(TruncF16, General) IR_OPCODE(RoundEvenF16, General) IR_OPCODE(SinF32, General) IR_OPCODE(CosF32, General) IR_OPCODE(CubeIdF32, General) IR_OPCODE(CubeScF32, General) IR_OPCODE(CubeTcF32, General) IR_OPCODE(CubeMaF32, General) IR_OPCODE(FAddF32, General) IR_OPCODE(FSubF32, General) IR_OPCODE(FMulF32, General) IR_OPCODE(FMinF32, General) IR_OPCODE(FMaxF32, General) IR_OPCODE(FMadF32, General) IR_OPCODE(Dot2AccF32F16, General) IR_OPCODE(FMin3F32, General) IR_OPCODE(FMax3F32, General) IR_OPCODE(FMed3F32, General) IR_OPCODE(Min3F16, General) IR_OPCODE(Max3F16, General) IR_OPCODE(Med3F16, General) IR_OPCODE(LoadSrtDword, General) IR_OPCODE(SLoadDword, General) IR_OPCODE(SBufferLoadDword, General) IR_OPCODE(BufferLoadUbyte, General) IR_OPCODE(BufferLoadSbyte, General) IR_OPCODE(BufferLoadUshort, General) IR_OPCODE(BufferLoadSshort, General) IR_OPCODE(BufferLoadDword, General) IR_OPCODE(BufferStoreByte, General) IR_OPCODE(BufferStoreShort, General) IR_OPCODE(BufferStoreDword, General) IR_OPCODE(AtomicSwapU32, General) IR_OPCODE(AtomicAddU32, General) IR_OPCODE(AtomicSubU32, General) IR_OPCODE(AtomicSMinI32, General) IR_OPCODE(AtomicUMinU32, General) IR_OPCODE(AtomicSMaxI32, General) IR_OPCODE(AtomicUMaxU32, General) IR_OPCODE(AtomicAndU32, General) IR_OPCODE(AtomicOrU32, General) IR_OPCODE(AtomicXorU32, General) IR_OPCODE(AtomicFMinF32, General) IR_OPCODE(AtomicFMaxF32, General) IR_OPCODE(FlatLoadUbyte, General) IR_OPCODE(FlatLoadSbyte, General) IR_OPCODE(FlatLoadUshort, General) IR_OPCODE(FlatLoadSshort, General) IR_OPCODE(FlatLoadDword, General) IR_OPCODE(FlatStoreByte, General) IR_OPCODE(FlatStoreShort, General) IR_OPCODE(FlatStoreDword, General) IR_OPCODE(DsReadUbyte, General) IR_OPCODE(DsReadSbyte, General) IR_OPCODE(DsReadUshort, General) IR_OPCODE(DsReadSshort, General) IR_OPCODE(DsReadB32, General) IR_OPCODE(DsWriteByte, General) IR_OPCODE(DsWriteShort, General) IR_OPCODE(DsWriteB32, General) IR_OPCODE(DsMinF32, General) IR_OPCODE(DsMaxF32, General) IR_OPCODE(DsSwizzleB32, General) IR_OPCODE(DsConsume, General) IR_OPCODE(DsAppend, General) IR_OPCODE(DsWriteAddtidB32, General) IR_OPCODE(DsReadAddtidB32, General) IR_OPCODE(ImageGetResinfo, General) IR_OPCODE(ImageGetLod, General) IR_OPCODE(ImageLoad, General) IR_OPCODE(ImageStore, General) IR_OPCODE(ImageSample, General) IR_OPCODE(ImageGather4, General) IR_OPCODE(LoadInputF32, General) IR_OPCODE(Export, General)