[clang] [CIR][X86] Add support for cmp builtins (PR #174318)
Sirui Mu via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 5 07:19:28 PST 2026
================
@@ -105,79 +105,79 @@ class HasAtMostOneOfAttrs<list<string> names> : PredOpTrait<
// CastOp
//===----------------------------------------------------------------------===//
-def CIR_CastKind : CIR_I32EnumAttr<"CastKind", "cast kind", [
- I32EnumAttrCase<"bitcast", 1>,
- // CK_LValueBitCast
- // CK_LValueToRValueBitCast
- // CK_LValueToRValue
- // CK_NoOp
- // CK_BaseToDerived
- // CK_DerivedToBase
- // CK_UncheckedDerivedToBase
- // CK_Dynamic
- // CK_ToUnion
- I32EnumAttrCase<"array_to_ptrdecay", 11>,
- // CK_FunctionToPointerDecay
- // CK_NullToPointer
- // CK_NullToMemberPointer
- // CK_BaseToDerivedMemberPointer
- // CK_DerivedToBaseMemberPointer
- I32EnumAttrCase<"member_ptr_to_bool", 17>,
- // CK_ReinterpretMemberPointer
- // CK_UserDefinedConversion
- // CK_ConstructorConversion
- I32EnumAttrCase<"int_to_ptr", 21>,
- I32EnumAttrCase<"ptr_to_int", 22>,
- I32EnumAttrCase<"ptr_to_bool", 23>,
- // CK_ToVoid
- // CK_MatrixCast
- // CK_VectorSplat
- I32EnumAttrCase<"integral", 27>,
- I32EnumAttrCase<"int_to_bool", 28>,
- I32EnumAttrCase<"int_to_float", 29>,
- // CK_FloatingToFixedPoint
- // CK_FixedPointToFloating
- // CK_FixedPointCast
- // CK_FixedPointToIntegral
- // CK_IntegralToFixedPoint
- // CK_FixedPointToBoolean
- I32EnumAttrCase<"float_to_int", 36>,
- I32EnumAttrCase<"float_to_bool", 37>,
- I32EnumAttrCase<"bool_to_int", 38>,
- I32EnumAttrCase<"floating", 39>,
- // CK_CPointerToObjCPointerCast
- // CK_BlockPointerToObjCPointerCast
- // CK_AnyPointerToBlockPointerCast
- // CK_ObjCObjectLValueCast
- I32EnumAttrCase<"float_to_complex", 44>,
- I32EnumAttrCase<"float_complex_to_real", 45>,
- I32EnumAttrCase<"float_complex_to_bool", 46>,
- I32EnumAttrCase<"float_complex", 47>,
- I32EnumAttrCase<"float_complex_to_int_complex", 48>,
- I32EnumAttrCase<"int_to_complex", 49>,
- I32EnumAttrCase<"int_complex_to_real", 50>,
- I32EnumAttrCase<"int_complex_to_bool", 51>,
- I32EnumAttrCase<"int_complex", 52>,
- I32EnumAttrCase<"int_complex_to_float_complex", 53>,
- // CK_ARCProduceObject
- // CK_ARCConsumeObject
- // CK_ARCReclaimReturnedObject
- // CK_ARCExtendBlockObject
- // CK_AtomicToNonAtomic
- // CK_NonAtomicToAtomic
- // CK_CopyAndAutoreleaseBlockObject
- // CK_BuiltinFnToFnPtr
- // CK_ZeroToOCLOpaqueType
- I32EnumAttrCase<"address_space", 63>,
- // CK_IntToOCLSampler
- // CK_HLSLVectorTruncation
- // CK_HLSLArrayRValue
- // CK_HLSLElementwiseCast
- // CK_HLSLAggregateSplatCast
-
- // Enums below are specific to CIR and don't have a correspondence to classic
- // codegen:
- I32EnumAttrCase<"bool_to_float", 1000>,
+def CIR_CastKind
+ : CIR_I32EnumAttr<
+ "CastKind", "cast kind",
+ [I32EnumAttrCase<"bitcast", 1>,
+ // CK_LValueBitCast
+ // CK_LValueToRValueBitCast
+ // CK_LValueToRValue
+ // CK_NoOp
+ // CK_BaseToDerived
+ // CK_DerivedToBase
+ // CK_UncheckedDerivedToBase
+ // CK_Dynamic
+ // CK_ToUnion
+ I32EnumAttrCase<"array_to_ptrdecay", 11>,
+ // CK_FunctionToPointerDecay
+ // CK_NullToPointer
+ // CK_NullToMemberPointer
+ // CK_BaseToDerivedMemberPointer
+ // CK_DerivedToBaseMemberPointer
+ I32EnumAttrCase<"member_ptr_to_bool", 17>,
+ // CK_ReinterpretMemberPointer
+ // CK_UserDefinedConversion
+ // CK_ConstructorConversion
+ I32EnumAttrCase<"int_to_ptr", 21>, I32EnumAttrCase<"ptr_to_int", 22>,
+ I32EnumAttrCase<"ptr_to_bool", 23>,
+ // CK_ToVoid
+ // CK_MatrixCast
+ // CK_VectorSplat
+ I32EnumAttrCase<"integral", 27>, I32EnumAttrCase<"int_to_bool", 28>,
+ I32EnumAttrCase<"int_to_float", 29>,
+ // CK_FloatingToFixedPoint
+ // CK_FixedPointToFloating
+ // CK_FixedPointCast
+ // CK_FixedPointToIntegral
+ // CK_IntegralToFixedPoint
+ // CK_FixedPointToBoolean
+ I32EnumAttrCase<"float_to_int", 36>,
+ I32EnumAttrCase<"float_to_bool", 37>,
+ I32EnumAttrCase<"bool_to_int", 38>, I32EnumAttrCase<"floating", 39>,
+ // CK_CPointerToObjCPointerCast
+ // CK_BlockPointerToObjCPointerCast
+ // CK_AnyPointerToBlockPointerCast
+ // CK_ObjCObjectLValueCast
+ I32EnumAttrCase<"float_to_complex", 44>,
+ I32EnumAttrCase<"float_complex_to_real", 45>,
+ I32EnumAttrCase<"float_complex_to_bool", 46>,
+ I32EnumAttrCase<"float_complex", 47>,
+ I32EnumAttrCase<"float_complex_to_int_complex", 48>,
+ I32EnumAttrCase<"int_to_complex", 49>,
+ I32EnumAttrCase<"int_complex_to_real", 50>,
+ I32EnumAttrCase<"int_complex_to_bool", 51>,
+ I32EnumAttrCase<"int_complex", 52>,
+ I32EnumAttrCase<"int_complex_to_float_complex", 53>,
+ // CK_ARCProduceObject
+ // CK_ARCConsumeObject
+ // CK_ARCReclaimReturnedObject
+ // CK_ARCExtendBlockObject
+ // CK_AtomicToNonAtomic
+ // CK_NonAtomicToAtomic
+ // CK_CopyAndAutoreleaseBlockObject
+ // CK_BuiltinFnToFnPtr
+ // CK_ZeroToOCLOpaqueType
+ I32EnumAttrCase<"address_space", 63>,
+ // CK_IntToOCLSampler
+ // CK_HLSLVectorTruncation
+ // CK_HLSLArrayRValue
+ // CK_HLSLElementwiseCast
+ // CK_HLSLAggregateSplatCast
+
+ // Enums below are specific to CIR and don't have a correspondence to
+ // classic codegen:
+ I32EnumAttrCase<"vector_to_int", 999>,
+ I32EnumAttrCase<"bool_to_float", 1000>,
----------------
Lancern wrote:
We don't format TableGen code with `clang-format`. Please revert this.
https://github.com/llvm/llvm-project/pull/174318
More information about the cfe-commits
mailing list