================ @@ -0,0 +1,39 @@ +class ImmCheckType<int val> { + int Value = val; +} + +// These must be kept in sync with the flags in include/clang/Basic/TargetBuiltins.h +def ImmCheck0_31 : ImmCheckType<0>; // 0..31 (used for e.g. predicate patterns) +def ImmCheck1_16 : ImmCheckType<1>; // 1..16 +def ImmCheckExtract : ImmCheckType<2>; // 0..(2048/sizeinbits(elt) - 1) +def ImmCheckShiftRight : ImmCheckType<3>; // 1..sizeinbits(elt) +def ImmCheckShiftRightNarrow : ImmCheckType<4>; // 1..sizeinbits(elt)/2 +def ImmCheckShiftLeft : ImmCheckType<5>; // 0..(sizeinbits(elt) - 1) +def ImmCheck0_7 : ImmCheckType<6>; // 0..7 +def ImmCheckLaneIndex : ImmCheckType<7>; // 0..(128/(1*sizeinbits(elt)) - 1) +def ImmCheckCvt : ImmCheckType<8>; // 1..sizeinbits(elt) (same as ShiftRight) +def ImmCheckLaneIndexCompRotate : ImmCheckType<9>; // 0..(128/(2*sizeinbits(elt)) - 1) +def ImmCheckLaneIndexDot : ImmCheckType<10>; // 0..(128/(4*sizeinbits(elt)) - 1) +def ImmCheckComplexRot90_270 : ImmCheckType<11>; // [90,270] +def ImmCheckComplexRotAll90 : ImmCheckType<12>; // [0, 90, 180,270] +def ImmCheck0_13 : ImmCheckType<13>; // 0..13 +def ImmCheck0_1 : ImmCheckType<14>; // 0..1 +def ImmCheck0_2 : ImmCheckType<15>; // 0..2 +def ImmCheck0_3 : ImmCheckType<16>; // 0..3 +def ImmCheck0_0 : ImmCheckType<17>; // 0..0 +def ImmCheck0_15 : ImmCheckType<18>; // 0..15 +def ImmCheck0_255 : ImmCheckType<19>; // 0..255 +def ImmCheck2_4_Mul2 : ImmCheckType<20>; // 2, 4 +def ImmCheck1_1 : ImmCheckType<21>; // 1..1 +def ImmCheck1_3 : ImmCheckType<22>; // 1..3 +def ImmCheck1_7 : ImmCheckType<23>; // 1..7 +def ImmCheck1_32 : ImmCheckType<24>; // 1..32 +def ImmCheck1_64 : ImmCheckType<25>; // 1..64 +def ImmCheck0_63 : ImmCheckType<26>; // 0..63 + +class ImmCheck<int arg, ImmCheckType kind, int typeArg = -1> { + int Arg = arg; ---------------- SpencerAbson wrote:
:+1: I'll also do this for `typeArg`. https://github.com/llvm/llvm-project/pull/100278 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits