//===- IntrinsicsAARCH64.td - Defines AARCH64 intrinsics ---*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the AARCH64-specific intrinsics. // //===----------------------------------------------------------------------===// let TargetPrefix = "aarch64" in { def int_aarch64_ldxr : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty]>; def int_aarch64_ldaxr : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty]>; def int_aarch64_stxr : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_anyptr_ty]>; def int_aarch64_stlxr : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_anyptr_ty]>; def int_aarch64_ldxp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_ptr_ty]>; def int_aarch64_ldaxp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_ptr_ty]>; def int_aarch64_stxp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_ptr_ty]>; def int_aarch64_stlxp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_ptr_ty]>; def int_aarch64_clrex : Intrinsic<[]>; def int_aarch64_sdiv : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_aarch64_udiv : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; //===----------------------------------------------------------------------===// // HINT def int_aarch64_hint : Intrinsic<[], [llvm_i32_ty]>; //===----------------------------------------------------------------------===// // RBIT def int_aarch64_rbit : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], [IntrNoMem]>; //===----------------------------------------------------------------------===// // Data Barrier Instructions def int_aarch64_dmb : GCCBuiltin<"__builtin_arm_dmb">, Intrinsic<[], [llvm_i32_ty]>; def int_aarch64_dsb : GCCBuiltin<"__builtin_arm_dsb">, Intrinsic<[], [llvm_i32_ty]>; def int_aarch64_isb : GCCBuiltin<"__builtin_arm_isb">, Intrinsic<[], [llvm_i32_ty]>; } //===----------------------------------------------------------------------===// // Advanced SIMD (NEON) let TargetPrefix = "aarch64" in { // All intrinsics start with "llvm.aarch64.". class AdvSIMD_2Scalar_Float_Intrinsic : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_FPToIntRounding_Intrinsic : Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty], [IntrNoMem]>; class AdvSIMD_1IntArg_Intrinsic : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_1FloatArg_Intrinsic : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_1VectorArg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_1VectorArg_Expand_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty], [IntrNoMem]>; class AdvSIMD_1VectorArg_Long_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMTruncatedType<0>], [IntrNoMem]>; class AdvSIMD_1IntArg_Narrow_Intrinsic : Intrinsic<[llvm_anyint_ty], [llvm_anyint_ty], [IntrNoMem]>; class AdvSIMD_1VectorArg_Narrow_Intrinsic : Intrinsic<[llvm_anyint_ty], [LLVMExtendedType<0>], [IntrNoMem]>; class AdvSIMD_1VectorArg_Int_Across_Intrinsic : Intrinsic<[llvm_anyint_ty], [llvm_anyvector_ty], [IntrNoMem]>; class AdvSIMD_1VectorArg_Float_Across_Intrinsic : Intrinsic<[llvm_anyfloat_ty], [llvm_anyvector_ty], [IntrNoMem]>; class AdvSIMD_2IntArg_Intrinsic : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_2FloatArg_Intrinsic : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_2VectorArg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_2VectorArg_Compare_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty, LLVMMatchType<1>], [IntrNoMem]>; class AdvSIMD_2Arg_FloatCompare_Intrinsic : Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty, LLVMMatchType<1>], [IntrNoMem]>; class AdvSIMD_2VectorArg_Long_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMTruncatedType<0>, LLVMTruncatedType<0>], [IntrNoMem]>; class AdvSIMD_2VectorArg_Wide_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMTruncatedType<0>], [IntrNoMem]>; class AdvSIMD_2VectorArg_Narrow_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMExtendedType<0>, LLVMExtendedType<0>], [IntrNoMem]>; class AdvSIMD_2Arg_Scalar_Narrow_Intrinsic : Intrinsic<[llvm_anyint_ty], [LLVMExtendedType<0>, llvm_i32_ty], [IntrNoMem]>; class AdvSIMD_2VectorArg_Scalar_Expand_BySize_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty], [IntrNoMem]>; class AdvSIMD_2VectorArg_Scalar_Wide_BySize_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMTruncatedType<0>], [IntrNoMem]>; class AdvSIMD_2VectorArg_Scalar_Wide_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMTruncatedType<0>, llvm_i32_ty], [IntrNoMem]>; class AdvSIMD_2VectorArg_Tied_Narrow_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMHalfElementsVectorType<0>, llvm_anyvector_ty], [IntrNoMem]>; class AdvSIMD_3VectorArg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_3VectorArg_Scalar_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMMatchType<0>, llvm_i32_ty], [IntrNoMem]>; class AdvSIMD_3VectorArg_Tied_Narrow_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMHalfElementsVectorType<0>, llvm_anyvector_ty, LLVMMatchType<1>], [IntrNoMem]>; class AdvSIMD_3VectorArg_Scalar_Tied_Narrow_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMHalfElementsVectorType<0>, llvm_anyvector_ty, llvm_i32_ty], [IntrNoMem]>; class AdvSIMD_CvtFxToFP_Intrinsic : Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty, llvm_i32_ty], [IntrNoMem]>; class AdvSIMD_CvtFPToFx_Intrinsic : Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty, llvm_i32_ty], [IntrNoMem]>; } // Arithmetic ops let TargetPrefix = "aarch64", IntrProperties = [IntrNoMem] in { // Vector Add Across Lanes def int_aarch64_neon_saddv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_uaddv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_faddv : AdvSIMD_1VectorArg_Float_Across_Intrinsic; // Vector Long Add Across Lanes def int_aarch64_neon_saddlv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_uaddlv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; // Vector Halving Add def int_aarch64_neon_shadd : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_uhadd : AdvSIMD_2VectorArg_Intrinsic; // Vector Rounding Halving Add def int_aarch64_neon_srhadd : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_urhadd : AdvSIMD_2VectorArg_Intrinsic; // Vector Saturating Add def int_aarch64_neon_sqadd : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_suqadd : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_usqadd : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_uqadd : AdvSIMD_2IntArg_Intrinsic; // Vector Add High-Half // FIXME: this is a legacy intrinsic for aarch64_simd.h. Remove it when that // header is no longer supported. def int_aarch64_neon_addhn : AdvSIMD_2VectorArg_Narrow_Intrinsic; // Vector Rounding Add High-Half def int_aarch64_neon_raddhn : AdvSIMD_2VectorArg_Narrow_Intrinsic; // Vector Saturating Doubling Multiply High def int_aarch64_neon_sqdmulh : AdvSIMD_2IntArg_Intrinsic; // Vector Saturating Rounding Doubling Multiply High def int_aarch64_neon_sqrdmulh : AdvSIMD_2IntArg_Intrinsic; // Vector Polynominal Multiply def int_aarch64_neon_pmul : AdvSIMD_2VectorArg_Intrinsic; // Vector Long Multiply def int_aarch64_neon_smull : AdvSIMD_2VectorArg_Long_Intrinsic; def int_aarch64_neon_umull : AdvSIMD_2VectorArg_Long_Intrinsic; def int_aarch64_neon_pmull : AdvSIMD_2VectorArg_Long_Intrinsic; // 64-bit polynomial multiply really returns an i128, which is not legal. Fake // it with a v16i8. def int_aarch64_neon_pmull64 : Intrinsic<[llvm_v16i8_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; // Vector Extending Multiply def int_aarch64_neon_fmulx : AdvSIMD_2FloatArg_Intrinsic { let IntrProperties = [IntrNoMem, Commutative]; } // Vector Saturating Doubling Long Multiply def int_aarch64_neon_sqdmull : AdvSIMD_2VectorArg_Long_Intrinsic; def int_aarch64_neon_sqdmulls_scalar : Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; // Vector Halving Subtract def int_aarch64_neon_shsub : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_uhsub : AdvSIMD_2VectorArg_Intrinsic; // Vector Saturating Subtract def int_aarch64_neon_sqsub : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_uqsub : AdvSIMD_2IntArg_Intrinsic; // Vector Subtract High-Half // FIXME: this is a legacy intrinsic for aarch64_simd.h. Remove it when that // header is no longer supported. def int_aarch64_neon_subhn : AdvSIMD_2VectorArg_Narrow_Intrinsic; // Vector Rounding Subtract High-Half def int_aarch64_neon_rsubhn : AdvSIMD_2VectorArg_Narrow_Intrinsic; // Vector Compare Absolute Greater-than-or-equal def int_aarch64_neon_facge : AdvSIMD_2Arg_FloatCompare_Intrinsic; // Vector Compare Absolute Greater-than def int_aarch64_neon_facgt : AdvSIMD_2Arg_FloatCompare_Intrinsic; // Vector Absolute Difference def int_aarch64_neon_sabd : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_uabd : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fabd : AdvSIMD_2VectorArg_Intrinsic; // Scalar Absolute Difference def int_aarch64_sisd_fabd : AdvSIMD_2Scalar_Float_Intrinsic; // Vector Max def int_aarch64_neon_smax : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_umax : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fmax : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fmaxnmp : AdvSIMD_2VectorArg_Intrinsic; // Vector Max Across Lanes def int_aarch64_neon_smaxv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_umaxv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_fmaxv : AdvSIMD_1VectorArg_Float_Across_Intrinsic; def int_aarch64_neon_fmaxnmv : AdvSIMD_1VectorArg_Float_Across_Intrinsic; // Vector Min def int_aarch64_neon_smin : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_umin : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fmin : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fminnmp : AdvSIMD_2VectorArg_Intrinsic; // Vector Min/Max Number def int_aarch64_neon_fminnm : AdvSIMD_2FloatArg_Intrinsic; def int_aarch64_neon_fmaxnm : AdvSIMD_2FloatArg_Intrinsic; // Vector Min Across Lanes def int_aarch64_neon_sminv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_uminv : AdvSIMD_1VectorArg_Int_Across_Intrinsic; def int_aarch64_neon_fminv : AdvSIMD_1VectorArg_Float_Across_Intrinsic; def int_aarch64_neon_fminnmv : AdvSIMD_1VectorArg_Float_Across_Intrinsic; // Pairwise Add def int_aarch64_neon_addp : AdvSIMD_2VectorArg_Intrinsic; // Long Pairwise Add // FIXME: In theory, we shouldn't need intrinsics for saddlp or // uaddlp, but tblgen's type inference currently can't handle the // pattern fragments this ends up generating. def int_aarch64_neon_saddlp : AdvSIMD_1VectorArg_Expand_Intrinsic; def int_aarch64_neon_uaddlp : AdvSIMD_1VectorArg_Expand_Intrinsic; // Folding Maximum def int_aarch64_neon_smaxp : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_umaxp : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fmaxp : AdvSIMD_2VectorArg_Intrinsic; // Folding Minimum def int_aarch64_neon_sminp : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_uminp : AdvSIMD_2VectorArg_Intrinsic; def int_aarch64_neon_fminp : AdvSIMD_2VectorArg_Intrinsic; // Reciprocal Estimate/Step def int_aarch64_neon_frecps : AdvSIMD_2FloatArg_Intrinsic; def int_aarch64_neon_frsqrts : AdvSIMD_2FloatArg_Intrinsic; // Reciprocal Exponent def int_aarch64_neon_frecpx : AdvSIMD_1FloatArg_Intrinsic; // Vector Saturating Shift Left def int_aarch64_neon_sqshl : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_uqshl : AdvSIMD_2IntArg_Intrinsic; // Vector Rounding Shift Left def int_aarch64_neon_srshl : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_urshl : AdvSIMD_2IntArg_Intrinsic; // Vector Saturating Rounding Shift Left def int_aarch64_neon_sqrshl : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_uqrshl : AdvSIMD_2IntArg_Intrinsic; // Vector Signed->Unsigned Shift Left by Constant def int_aarch64_neon_sqshlu : AdvSIMD_2IntArg_Intrinsic; // Vector Signed->Unsigned Narrowing Saturating Shift Right by Constant def int_aarch64_neon_sqshrun : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; // Vector Signed->Unsigned Rounding Narrowing Saturating Shift Right by Const def int_aarch64_neon_sqrshrun : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; // Vector Narrowing Shift Right by Constant def int_aarch64_neon_sqshrn : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; def int_aarch64_neon_uqshrn : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; // Vector Rounding Narrowing Shift Right by Constant def int_aarch64_neon_rshrn : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; // Vector Rounding Narrowing Saturating Shift Right by Constant def int_aarch64_neon_sqrshrn : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; def int_aarch64_neon_uqrshrn : AdvSIMD_2Arg_Scalar_Narrow_Intrinsic; // Vector Shift Left def int_aarch64_neon_sshl : AdvSIMD_2IntArg_Intrinsic; def int_aarch64_neon_ushl : AdvSIMD_2IntArg_Intrinsic; // Vector Widening Shift Left by Constant def int_aarch64_neon_shll : AdvSIMD_2VectorArg_Scalar_Wide_BySize_Intrinsic; def int_aarch64_neon_sshll : AdvSIMD_2VectorArg_Scalar_Wide_Intrinsic; def int_aarch64_neon_ushll : AdvSIMD_2VectorArg_Scalar_Wide_Intrinsic; // Vector Shift Right by Constant and Insert def int_aarch64_neon_vsri : AdvSIMD_3VectorArg_Scalar_Intrinsic; // Vector Shift Left by Constant and Insert def int_aarch64_neon_vsli : AdvSIMD_3VectorArg_Scalar_Intrinsic; // Vector Saturating Narrow def int_aarch64_neon_scalar_sqxtn: AdvSIMD_1IntArg_Narrow_Intrinsic; def int_aarch64_neon_scalar_uqxtn : AdvSIMD_1IntArg_Narrow_Intrinsic; def int_aarch64_neon_sqxtn : AdvSIMD_1VectorArg_Narrow_Intrinsic; def int_aarch64_neon_uqxtn : AdvSIMD_1VectorArg_Narrow_Intrinsic; // Vector Saturating Extract and Unsigned Narrow def int_aarch64_neon_scalar_sqxtun : AdvSIMD_1IntArg_Narrow_Intrinsic; def int_aarch64_neon_sqxtun : AdvSIMD_1VectorArg_Narrow_Intrinsic; // Vector Absolute Value def int_aarch64_neon_abs : AdvSIMD_1IntArg_Intrinsic; // Vector Saturating Absolute Value def int_aarch64_neon_sqabs : AdvSIMD_1IntArg_Intrinsic; // Vector Saturating Negation def int_aarch64_neon_sqneg : AdvSIMD_1IntArg_Intrinsic; // Vector Count Leading Sign Bits def int_aarch64_neon_cls : AdvSIMD_1VectorArg_Intrinsic; // Vector Reciprocal Estimate def int_aarch64_neon_urecpe : AdvSIMD_1VectorArg_Intrinsic; def int_aarch64_neon_frecpe : AdvSIMD_1FloatArg_Intrinsic; // Vector Square Root Estimate def int_aarch64_neon_ursqrte : AdvSIMD_1VectorArg_Intrinsic; def int_aarch64_neon_frsqrte : AdvSIMD_1FloatArg_Intrinsic; // Vector Bitwise Reverse def int_aarch64_neon_rbit : AdvSIMD_1VectorArg_Intrinsic; // Vector Conversions Between Half-Precision and Single-Precision. def int_aarch64_neon_vcvtfp2hf : Intrinsic<[llvm_v4i16_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_aarch64_neon_vcvthf2fp : Intrinsic<[llvm_v4f32_ty], [llvm_v4i16_ty], [IntrNoMem]>; // Vector Conversions Between Floating-point and Fixed-point. def int_aarch64_neon_vcvtfp2fxs : AdvSIMD_CvtFPToFx_Intrinsic; def int_aarch64_neon_vcvtfp2fxu : AdvSIMD_CvtFPToFx_Intrinsic; def int_aarch64_neon_vcvtfxs2fp : AdvSIMD_CvtFxToFP_Intrinsic; def int_aarch64_neon_vcvtfxu2fp : AdvSIMD_CvtFxToFP_Intrinsic; // Vector FP->Int Conversions def int_aarch64_neon_fcvtas : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtau : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtms : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtmu : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtns : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtnu : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtps : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtpu : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtzs : AdvSIMD_FPToIntRounding_Intrinsic; def int_aarch64_neon_fcvtzu : AdvSIMD_FPToIntRounding_Intrinsic; // Vector FP Rounding: only ties to even is unrepresented by a normal // intrinsic. def int_aarch64_neon_frintn : AdvSIMD_1FloatArg_Intrinsic; // Scalar FP->Int conversions // Vector FP Inexact Narrowing def int_aarch64_neon_fcvtxn : AdvSIMD_1VectorArg_Expand_Intrinsic; // Scalar FP Inexact Narrowing def int_aarch64_sisd_fcvtxn : Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; } let TargetPrefix = "aarch64" in { // All intrinsics start with "llvm.aarch64.". class AdvSIMD_2Vector2Index_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty, llvm_i64_ty, LLVMMatchType<0>, llvm_i64_ty], [IntrNoMem]>; } // Vector element to element moves def int_aarch64_neon_vcopy_lane: AdvSIMD_2Vector2Index_Intrinsic; let TargetPrefix = "aarch64" in { // All intrinsics start with "llvm.aarch64.". class AdvSIMD_1Vec_Load_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMAnyPointerType>], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_1Vec_Store_Lane_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, llvm_i64_ty, llvm_anyptr_ty], [IntrArgMemOnly, NoCapture<2>]>; class AdvSIMD_2Vec_Load_Intrinsic : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>], [LLVMAnyPointerType>], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_2Vec_Load_Lane_Intrinsic : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>], [LLVMMatchType<0>, LLVMMatchType<0>, llvm_i64_ty, llvm_anyptr_ty], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_2Vec_Store_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, LLVMMatchType<0>, LLVMAnyPointerType>], [IntrArgMemOnly, NoCapture<2>]>; class AdvSIMD_2Vec_Store_Lane_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, LLVMMatchType<0>, llvm_i64_ty, llvm_anyptr_ty], [IntrArgMemOnly, NoCapture<3>]>; class AdvSIMD_3Vec_Load_Intrinsic : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>], [LLVMAnyPointerType>], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_3Vec_Load_Lane_Intrinsic : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i64_ty, llvm_anyptr_ty], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_3Vec_Store_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMAnyPointerType>], [IntrArgMemOnly, NoCapture<3>]>; class AdvSIMD_3Vec_Store_Lane_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i64_ty, llvm_anyptr_ty], [IntrArgMemOnly, NoCapture<4>]>; class AdvSIMD_4Vec_Load_Intrinsic : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [LLVMAnyPointerType>], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_4Vec_Load_Lane_Intrinsic : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i64_ty, llvm_anyptr_ty], [IntrReadMem, IntrArgMemOnly]>; class AdvSIMD_4Vec_Store_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, LLVMAnyPointerType>], [IntrArgMemOnly, NoCapture<4>]>; class AdvSIMD_4Vec_Store_Lane_Intrinsic : Intrinsic<[], [llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i64_ty, llvm_anyptr_ty], [IntrArgMemOnly, NoCapture<5>]>; } // Memory ops def int_aarch64_neon_ld1x2 : AdvSIMD_2Vec_Load_Intrinsic; def int_aarch64_neon_ld1x3 : AdvSIMD_3Vec_Load_Intrinsic; def int_aarch64_neon_ld1x4 : AdvSIMD_4Vec_Load_Intrinsic; def int_aarch64_neon_st1x2 : AdvSIMD_2Vec_Store_Intrinsic; def int_aarch64_neon_st1x3 : AdvSIMD_3Vec_Store_Intrinsic; def int_aarch64_neon_st1x4 : AdvSIMD_4Vec_Store_Intrinsic; def int_aarch64_neon_ld2 : AdvSIMD_2Vec_Load_Intrinsic; def int_aarch64_neon_ld3 : AdvSIMD_3Vec_Load_Intrinsic; def int_aarch64_neon_ld4 : AdvSIMD_4Vec_Load_Intrinsic; def int_aarch64_neon_ld2lane : AdvSIMD_2Vec_Load_Lane_Intrinsic; def int_aarch64_neon_ld3lane : AdvSIMD_3Vec_Load_Lane_Intrinsic; def int_aarch64_neon_ld4lane : AdvSIMD_4Vec_Load_Lane_Intrinsic; def int_aarch64_neon_ld2r : AdvSIMD_2Vec_Load_Intrinsic; def int_aarch64_neon_ld3r : AdvSIMD_3Vec_Load_Intrinsic; def int_aarch64_neon_ld4r : AdvSIMD_4Vec_Load_Intrinsic; def int_aarch64_neon_st2 : AdvSIMD_2Vec_Store_Intrinsic; def int_aarch64_neon_st3 : AdvSIMD_3Vec_Store_Intrinsic; def int_aarch64_neon_st4 : AdvSIMD_4Vec_Store_Intrinsic; def int_aarch64_neon_st2lane : AdvSIMD_2Vec_Store_Lane_Intrinsic; def int_aarch64_neon_st3lane : AdvSIMD_3Vec_Store_Lane_Intrinsic; def int_aarch64_neon_st4lane : AdvSIMD_4Vec_Store_Lane_Intrinsic; let TargetPrefix = "aarch64" in { // All intrinsics start with "llvm.aarch64.". class AdvSIMD_Tbl1_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbl2_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_v16i8_ty, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbl3_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbl4_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbx1_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbx2_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_v16i8_ty, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbx3_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; class AdvSIMD_Tbx4_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, LLVMMatchType<0>], [IntrNoMem]>; } def int_aarch64_neon_tbl1 : AdvSIMD_Tbl1_Intrinsic; def int_aarch64_neon_tbl2 : AdvSIMD_Tbl2_Intrinsic; def int_aarch64_neon_tbl3 : AdvSIMD_Tbl3_Intrinsic; def int_aarch64_neon_tbl4 : AdvSIMD_Tbl4_Intrinsic; def int_aarch64_neon_tbx1 : AdvSIMD_Tbx1_Intrinsic; def int_aarch64_neon_tbx2 : AdvSIMD_Tbx2_Intrinsic; def int_aarch64_neon_tbx3 : AdvSIMD_Tbx3_Intrinsic; def int_aarch64_neon_tbx4 : AdvSIMD_Tbx4_Intrinsic; let TargetPrefix = "aarch64" in { class Crypto_AES_DataKey_Intrinsic : Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; class Crypto_AES_Data_Intrinsic : Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; // SHA intrinsic taking 5 words of the hash (v4i32, i32) and 4 of the schedule // (v4i32). class Crypto_SHA_5Hash4Schedule_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty], [IntrNoMem]>; // SHA intrinsic taking 5 words of the hash (v4i32, i32) and 4 of the schedule // (v4i32). class Crypto_SHA_1Hash_Intrinsic : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; // SHA intrinsic taking 8 words of the schedule class Crypto_SHA_8Schedule_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; // SHA intrinsic taking 12 words of the schedule class Crypto_SHA_12Schedule_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; // SHA intrinsic taking 8 words of the hash and 4 of the schedule. class Crypto_SHA_8Hash4Schedule_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; } // AES def int_aarch64_crypto_aese : Crypto_AES_DataKey_Intrinsic; def int_aarch64_crypto_aesd : Crypto_AES_DataKey_Intrinsic; def int_aarch64_crypto_aesmc : Crypto_AES_Data_Intrinsic; def int_aarch64_crypto_aesimc : Crypto_AES_Data_Intrinsic; // SHA1 def int_aarch64_crypto_sha1c : Crypto_SHA_5Hash4Schedule_Intrinsic; def int_aarch64_crypto_sha1p : Crypto_SHA_5Hash4Schedule_Intrinsic; def int_aarch64_crypto_sha1m : Crypto_SHA_5Hash4Schedule_Intrinsic; def int_aarch64_crypto_sha1h : Crypto_SHA_1Hash_Intrinsic; def int_aarch64_crypto_sha1su0 : Crypto_SHA_12Schedule_Intrinsic; def int_aarch64_crypto_sha1su1 : Crypto_SHA_8Schedule_Intrinsic; // SHA256 def int_aarch64_crypto_sha256h : Crypto_SHA_8Hash4Schedule_Intrinsic; def int_aarch64_crypto_sha256h2 : Crypto_SHA_8Hash4Schedule_Intrinsic; def int_aarch64_crypto_sha256su0 : Crypto_SHA_8Schedule_Intrinsic; def int_aarch64_crypto_sha256su1 : Crypto_SHA_12Schedule_Intrinsic; //===----------------------------------------------------------------------===// // CRC32 let TargetPrefix = "aarch64" in { def int_aarch64_crc32b : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_aarch64_crc32cb : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_aarch64_crc32h : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_aarch64_crc32ch : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_aarch64_crc32w : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_aarch64_crc32cw : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_aarch64_crc32x : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i64_ty], [IntrNoMem]>; def int_aarch64_crc32cx : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i64_ty], [IntrNoMem]>; } //===- IntrinsicsAMDGPU.td - Defines AMDGPU intrinsics -----*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the R600-specific intrinsics. // //===----------------------------------------------------------------------===// class AMDGPUReadPreloadRegisterIntrinsic : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>; class AMDGPUReadPreloadRegisterIntrinsicNamed : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, GCCBuiltin; let TargetPrefix = "r600" in { multiclass AMDGPUReadPreloadRegisterIntrinsic_xyz { def _x : AMDGPUReadPreloadRegisterIntrinsic; def _y : AMDGPUReadPreloadRegisterIntrinsic; def _z : AMDGPUReadPreloadRegisterIntrinsic; } multiclass AMDGPUReadPreloadRegisterIntrinsic_xyz_named { def _x : AMDGPUReadPreloadRegisterIntrinsicNamed; def _y : AMDGPUReadPreloadRegisterIntrinsicNamed; def _z : AMDGPUReadPreloadRegisterIntrinsicNamed; } defm int_r600_read_global_size : AMDGPUReadPreloadRegisterIntrinsic_xyz_named <"__builtin_r600_read_global_size">; defm int_r600_read_ngroups : AMDGPUReadPreloadRegisterIntrinsic_xyz_named <"__builtin_r600_read_ngroups">; defm int_r600_read_tgid : AMDGPUReadPreloadRegisterIntrinsic_xyz_named <"__builtin_r600_read_tgid">; defm int_r600_read_local_size : AMDGPUReadPreloadRegisterIntrinsic_xyz; defm int_r600_read_tidig : AMDGPUReadPreloadRegisterIntrinsic_xyz; def int_r600_read_workdim : AMDGPUReadPreloadRegisterIntrinsic; def int_r600_group_barrier : GCCBuiltin<"__builtin_r600_group_barrier">, Intrinsic<[], [], [IntrConvergent]>; // AS 7 is PARAM_I_ADDRESS, used for kernel arguments def int_r600_implicitarg_ptr : GCCBuiltin<"__builtin_r600_implicitarg_ptr">, Intrinsic<[LLVMQualPointerType], [], [IntrNoMem]>; def int_r600_rat_store_typed : // 1st parameter: Data // 2nd parameter: Index // 3rd parameter: Constant RAT ID Intrinsic<[], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], []>, GCCBuiltin<"__builtin_r600_rat_store_typed">; def int_r600_recipsqrt_ieee : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_r600_recipsqrt_clamped : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; } // End TargetPrefix = "r600" let TargetPrefix = "amdgcn" in { defm int_amdgcn_workitem_id : AMDGPUReadPreloadRegisterIntrinsic_xyz; defm int_amdgcn_workgroup_id : AMDGPUReadPreloadRegisterIntrinsic_xyz_named <"__builtin_amdgcn_workgroup_id">; def int_amdgcn_s_barrier : GCCBuiltin<"__builtin_amdgcn_s_barrier">, Intrinsic<[], [], [IntrConvergent]>; def int_amdgcn_s_waitcnt : Intrinsic<[], [llvm_i32_ty], []>; def int_amdgcn_div_scale : Intrinsic< // 1st parameter: Numerator // 2nd parameter: Denominator // 3rd parameter: Constant to select select between first and // second. (0 = first, 1 = second). [llvm_anyfloat_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>, llvm_i1_ty], [IntrNoMem] >; def int_amdgcn_div_fmas : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i1_ty], [IntrNoMem] >; def int_amdgcn_div_fixup : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_trig_preop : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>, llvm_i32_ty], [IntrNoMem] >; def int_amdgcn_sin : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_cos : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_log_clamp : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_rcp : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_rsq : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_rsq_legacy : GCCBuiltin<"__builtin_amdgcn_rsq_legacy">, Intrinsic< [llvm_float_ty], [llvm_float_ty], [IntrNoMem] >; def int_amdgcn_rsq_clamp : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>; def int_amdgcn_ldexp : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>, llvm_i32_ty], [IntrNoMem] >; def int_amdgcn_frexp_mant : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_frexp_exp : Intrinsic< [llvm_i32_ty], [llvm_anyfloat_ty], [IntrNoMem] >; // v_fract is buggy on SI/CI. It mishandles infinities, may return 1.0 // and always uses rtz, so is not suitable for implementing the OpenCL // fract function. It should be ok on VI. def int_amdgcn_fract : Intrinsic< [llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem] >; def int_amdgcn_class : Intrinsic< [llvm_i1_ty], [llvm_anyfloat_ty, llvm_i32_ty], [IntrNoMem] >; def int_amdgcn_cubeid : GCCBuiltin<"__builtin_amdgcn_cubeid">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem] >; def int_amdgcn_cubema : GCCBuiltin<"__builtin_amdgcn_cubema">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem] >; def int_amdgcn_cubesc : GCCBuiltin<"__builtin_amdgcn_cubesc">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem] >; def int_amdgcn_cubetc : GCCBuiltin<"__builtin_amdgcn_cubetc">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem] >; // TODO: Do we want an ordering for these? def int_amdgcn_atomic_inc : Intrinsic<[llvm_anyint_ty], [llvm_anyptr_ty, LLVMMatchType<0>], [IntrArgMemOnly, NoCapture<0>] >; def int_amdgcn_atomic_dec : Intrinsic<[llvm_anyint_ty], [llvm_anyptr_ty, LLVMMatchType<0>], [IntrArgMemOnly, NoCapture<0>] >; class AMDGPUImageLoad : Intrinsic < [llvm_v4f32_ty], // vdata(VGPR) [llvm_anyint_ty, // vaddr(VGPR) llvm_v8i32_ty, // rsrc(SGPR) llvm_i32_ty, // dmask(imm) llvm_i1_ty, // r128(imm) llvm_i1_ty, // da(imm) llvm_i1_ty, // glc(imm) llvm_i1_ty], // slc(imm) [IntrReadMem]>; def int_amdgcn_image_load : AMDGPUImageLoad; def int_amdgcn_image_load_mip : AMDGPUImageLoad; class AMDGPUImageStore : Intrinsic < [], [llvm_v4f32_ty, // vdata(VGPR) llvm_anyint_ty, // vaddr(VGPR) llvm_v8i32_ty, // rsrc(SGPR) llvm_i32_ty, // dmask(imm) llvm_i1_ty, // r128(imm) llvm_i1_ty, // da(imm) llvm_i1_ty, // glc(imm) llvm_i1_ty], // slc(imm) []>; def int_amdgcn_image_store : AMDGPUImageStore; def int_amdgcn_image_store_mip : AMDGPUImageStore; class AMDGPUImageAtomic : Intrinsic < [llvm_i32_ty], [llvm_i32_ty, // vdata(VGPR) llvm_anyint_ty, // vaddr(VGPR) llvm_v8i32_ty, // rsrc(SGPR) llvm_i1_ty, // r128(imm) llvm_i1_ty, // da(imm) llvm_i1_ty], // slc(imm) []>; def int_amdgcn_image_atomic_swap : AMDGPUImageAtomic; def int_amdgcn_image_atomic_add : AMDGPUImageAtomic; def int_amdgcn_image_atomic_sub : AMDGPUImageAtomic; def int_amdgcn_image_atomic_smin : AMDGPUImageAtomic; def int_amdgcn_image_atomic_umin : AMDGPUImageAtomic; def int_amdgcn_image_atomic_smax : AMDGPUImageAtomic; def int_amdgcn_image_atomic_umax : AMDGPUImageAtomic; def int_amdgcn_image_atomic_and : AMDGPUImageAtomic; def int_amdgcn_image_atomic_or : AMDGPUImageAtomic; def int_amdgcn_image_atomic_xor : AMDGPUImageAtomic; def int_amdgcn_image_atomic_inc : AMDGPUImageAtomic; def int_amdgcn_image_atomic_dec : AMDGPUImageAtomic; def int_amdgcn_image_atomic_cmpswap : Intrinsic < [llvm_i32_ty], [llvm_i32_ty, // src(VGPR) llvm_i32_ty, // cmp(VGPR) llvm_anyint_ty, // vaddr(VGPR) llvm_v8i32_ty, // rsrc(SGPR) llvm_i1_ty, // r128(imm) llvm_i1_ty, // da(imm) llvm_i1_ty], // slc(imm) []>; class AMDGPUBufferLoad : Intrinsic < [llvm_anyfloat_ty], [llvm_v4i32_ty, // rsrc(SGPR) llvm_i32_ty, // vindex(VGPR) llvm_i32_ty, // offset(SGPR/VGPR/imm) llvm_i1_ty, // glc(imm) llvm_i1_ty], // slc(imm) [IntrReadMem]>; def int_amdgcn_buffer_load_format : AMDGPUBufferLoad; def int_amdgcn_buffer_load : AMDGPUBufferLoad; class AMDGPUBufferStore : Intrinsic < [], [llvm_anyfloat_ty, // vdata(VGPR) -- can currently only select f32, v2f32, v4f32 llvm_v4i32_ty, // rsrc(SGPR) llvm_i32_ty, // vindex(VGPR) llvm_i32_ty, // offset(SGPR/VGPR/imm) llvm_i1_ty, // glc(imm) llvm_i1_ty], // slc(imm) [IntrWriteMem]>; def int_amdgcn_buffer_store_format : AMDGPUBufferStore; def int_amdgcn_buffer_store : AMDGPUBufferStore; class AMDGPUBufferAtomic : Intrinsic < [llvm_i32_ty], [llvm_i32_ty, // vdata(VGPR) llvm_v4i32_ty, // rsrc(SGPR) llvm_i32_ty, // vindex(VGPR) llvm_i32_ty, // offset(SGPR/VGPR/imm) llvm_i1_ty], // slc(imm) []>; def int_amdgcn_buffer_atomic_swap : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_add : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_sub : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_smin : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_umin : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_smax : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_umax : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_and : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_or : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_xor : AMDGPUBufferAtomic; def int_amdgcn_buffer_atomic_cmpswap : Intrinsic< [llvm_i32_ty], [llvm_i32_ty, // src(VGPR) llvm_i32_ty, // cmp(VGPR) llvm_v4i32_ty, // rsrc(SGPR) llvm_i32_ty, // vindex(VGPR) llvm_i32_ty, // offset(SGPR/VGPR/imm) llvm_i1_ty], // slc(imm) []>; def int_amdgcn_read_workdim : AMDGPUReadPreloadRegisterIntrinsic; def int_amdgcn_buffer_wbinvl1_sc : GCCBuiltin<"__builtin_amdgcn_buffer_wbinvl1_sc">, Intrinsic<[], [], []>; def int_amdgcn_buffer_wbinvl1 : GCCBuiltin<"__builtin_amdgcn_buffer_wbinvl1">, Intrinsic<[], [], []>; def int_amdgcn_s_dcache_inv : GCCBuiltin<"__builtin_amdgcn_s_dcache_inv">, Intrinsic<[], [], []>; def int_amdgcn_s_memtime : GCCBuiltin<"__builtin_amdgcn_s_memtime">, Intrinsic<[llvm_i64_ty], [], []>; def int_amdgcn_s_sleep : GCCBuiltin<"__builtin_amdgcn_s_sleep">, Intrinsic<[], [llvm_i32_ty], []> { } def int_amdgcn_s_getreg : GCCBuiltin<"__builtin_amdgcn_s_getreg">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrReadMem]>; def int_amdgcn_groupstaticsize : GCCBuiltin<"__builtin_amdgcn_groupstaticsize">, Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>; def int_amdgcn_dispatch_ptr : GCCBuiltin<"__builtin_amdgcn_dispatch_ptr">, Intrinsic<[LLVMQualPointerType], [], [IntrNoMem]>; def int_amdgcn_queue_ptr : GCCBuiltin<"__builtin_amdgcn_queue_ptr">, Intrinsic<[LLVMQualPointerType], [], [IntrNoMem]>; def int_amdgcn_kernarg_segment_ptr : GCCBuiltin<"__builtin_amdgcn_kernarg_segment_ptr">, Intrinsic<[LLVMQualPointerType], [], [IntrNoMem]>; def int_amdgcn_implicitarg_ptr : GCCBuiltin<"__builtin_amdgcn_implicitarg_ptr">, Intrinsic<[LLVMQualPointerType], [], [IntrNoMem]>; // __builtin_amdgcn_interp_p1 , , , def int_amdgcn_interp_p1 : GCCBuiltin<"__builtin_amdgcn_interp_p1">, Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; // This intrinsic reads from lds, but the memory // values are constant, so it behaves like IntrNoMem. // __builtin_amdgcn_interp_p2 , , , , def int_amdgcn_interp_p2 : GCCBuiltin<"__builtin_amdgcn_interp_p2">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; // See int_amdgcn_v_interp_p1 for why this is // IntrNoMem. // Pixel shaders only: whether the current pixel is live (i.e. not a helper // invocation for derivative computation). def int_amdgcn_ps_live : Intrinsic < [llvm_i1_ty], [], [IntrNoMem]>; def int_amdgcn_mbcnt_lo : GCCBuiltin<"__builtin_amdgcn_mbcnt_lo">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_amdgcn_mbcnt_hi : GCCBuiltin<"__builtin_amdgcn_mbcnt_hi">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; // llvm.amdgcn.ds.swizzle src offset def int_amdgcn_ds_swizzle : GCCBuiltin<"__builtin_amdgcn_ds_swizzle">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent]>; // llvm.amdgcn.lerp def int_amdgcn_lerp : GCCBuiltin<"__builtin_amdgcn_lerp">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // CI+ Intrinsics //===----------------------------------------------------------------------===// def int_amdgcn_s_dcache_inv_vol : GCCBuiltin<"__builtin_amdgcn_s_dcache_inv_vol">, Intrinsic<[], [], []>; def int_amdgcn_buffer_wbinvl1_vol : GCCBuiltin<"__builtin_amdgcn_buffer_wbinvl1_vol">, Intrinsic<[], [], []>; //===----------------------------------------------------------------------===// // VI Intrinsics //===----------------------------------------------------------------------===// // llvm.amdgcn.mov.dpp.i32 def int_amdgcn_mov_dpp : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i1_ty], [IntrNoMem, IntrConvergent]>; def int_amdgcn_s_dcache_wb : GCCBuiltin<"__builtin_amdgcn_s_dcache_wb">, Intrinsic<[], [], []>; def int_amdgcn_s_dcache_wb_vol : GCCBuiltin<"__builtin_amdgcn_s_dcache_wb_vol">, Intrinsic<[], [], []>; def int_amdgcn_s_memrealtime : GCCBuiltin<"__builtin_amdgcn_s_memrealtime">, Intrinsic<[llvm_i64_ty], [], []>; // llvm.amdgcn.ds.permute def int_amdgcn_ds_permute : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent]>; // llvm.amdgcn.ds.bpermute def int_amdgcn_ds_bpermute : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent]>; } //===- IntrinsicsARM.td - Defines ARM intrinsics -----------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the ARM-specific intrinsics. // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // TLS let TargetPrefix = "arm" in { // All intrinsics start with "llvm.arm.". // A space-consuming intrinsic primarily for testing ARMConstantIslands. The // first argument is the number of bytes this "instruction" takes up, the second // and return value are essentially chains, used to force ordering during ISel. def int_arm_space : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>; //===----------------------------------------------------------------------===// // Saturating Arithmetic def int_arm_qadd : GCCBuiltin<"__builtin_arm_qadd">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_arm_qsub : GCCBuiltin<"__builtin_arm_qsub">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_ssat : GCCBuiltin<"__builtin_arm_ssat">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_usat : GCCBuiltin<"__builtin_arm_usat">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // Load, Store and Clear exclusive def int_arm_ldrex : Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty]>; def int_arm_strex : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_anyptr_ty]>; def int_arm_ldaex : Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty]>; def int_arm_stlex : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_anyptr_ty]>; def int_arm_clrex : Intrinsic<[]>; def int_arm_strexd : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty]>; def int_arm_ldrexd : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_ptr_ty]>; def int_arm_stlexd : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty]>; def int_arm_ldaexd : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_ptr_ty]>; //===----------------------------------------------------------------------===// // Data barrier instructions def int_arm_dmb : GCCBuiltin<"__builtin_arm_dmb">, MSBuiltin<"__dmb">, Intrinsic<[], [llvm_i32_ty]>; def int_arm_dsb : GCCBuiltin<"__builtin_arm_dsb">, MSBuiltin<"__dsb">, Intrinsic<[], [llvm_i32_ty]>; def int_arm_isb : GCCBuiltin<"__builtin_arm_isb">, MSBuiltin<"__isb">, Intrinsic<[], [llvm_i32_ty]>; //===----------------------------------------------------------------------===// // VFP def int_arm_get_fpscr : GCCBuiltin<"__builtin_arm_get_fpscr">, Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>; def int_arm_set_fpscr : GCCBuiltin<"__builtin_arm_set_fpscr">, Intrinsic<[], [llvm_i32_ty], []>; def int_arm_vcvtr : Intrinsic<[llvm_float_ty], [llvm_anyfloat_ty], [IntrNoMem]>; def int_arm_vcvtru : Intrinsic<[llvm_float_ty], [llvm_anyfloat_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // Coprocessor def int_arm_ldc : GCCBuiltin<"__builtin_arm_ldc">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_ldcl : GCCBuiltin<"__builtin_arm_ldcl">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_ldc2 : GCCBuiltin<"__builtin_arm_ldc2">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_ldc2l : GCCBuiltin<"__builtin_arm_ldc2l">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_stc : GCCBuiltin<"__builtin_arm_stc">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_stcl : GCCBuiltin<"__builtin_arm_stcl">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_stc2 : GCCBuiltin<"__builtin_arm_stc2">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; def int_arm_stc2l : GCCBuiltin<"__builtin_arm_stc2l">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], []>; // Move to coprocessor def int_arm_mcr : GCCBuiltin<"__builtin_arm_mcr">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_arm_mcr2 : GCCBuiltin<"__builtin_arm_mcr2">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; // Move from coprocessor def int_arm_mrc : GCCBuiltin<"__builtin_arm_mrc">, MSBuiltin<"_MoveFromCoprocessor">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_arm_mrc2 : GCCBuiltin<"__builtin_arm_mrc2">, MSBuiltin<"_MoveFromCoprocessor2">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; // Coprocessor data processing def int_arm_cdp : GCCBuiltin<"__builtin_arm_cdp">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_arm_cdp2 : GCCBuiltin<"__builtin_arm_cdp2">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; // Move from two registers to coprocessor def int_arm_mcrr : Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_arm_mcrr2 : Intrinsic<[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_arm_mrrc : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_arm_mrrc2 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; //===----------------------------------------------------------------------===// // CRC32 def int_arm_crc32b : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_crc32cb : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_crc32h : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_crc32ch : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_crc32w : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_arm_crc32cw : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // HINT def int_arm_hint : Intrinsic<[], [llvm_i32_ty]>; def int_arm_dbg : Intrinsic<[], [llvm_i32_ty]>; //===----------------------------------------------------------------------===// // RBIT def int_arm_rbit : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // UND (reserved undefined sequence) def int_arm_undefined : Intrinsic<[], [llvm_i32_ty]>; //===----------------------------------------------------------------------===// // Advanced SIMD (NEON) // The following classes do not correspond directly to GCC builtins. class Neon_1Arg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>], [IntrNoMem]>; class Neon_1Arg_Narrow_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMExtendedType<0>], [IntrNoMem]>; class Neon_2Arg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class Neon_2Arg_Narrow_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMExtendedType<0>, LLVMExtendedType<0>], [IntrNoMem]>; class Neon_2Arg_Long_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMTruncatedType<0>, LLVMTruncatedType<0>], [IntrNoMem]>; class Neon_3Arg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; class Neon_3Arg_Long_Intrinsic : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMTruncatedType<0>, LLVMTruncatedType<0>], [IntrNoMem]>; class Neon_CvtFxToFP_Intrinsic : Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty, llvm_i32_ty], [IntrNoMem]>; class Neon_CvtFPToFx_Intrinsic : Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty, llvm_i32_ty], [IntrNoMem]>; class Neon_CvtFPtoInt_1Arg_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty], [IntrNoMem]>; class Neon_Compare_Intrinsic : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty, LLVMMatchType<1>], [IntrNoMem]>; // The table operands for VTBL and VTBX consist of 1 to 4 v8i8 vectors. // Besides the table, VTBL has one other v8i8 argument and VTBX has two. // Overall, the classes range from 2 to 6 v8i8 arguments. class Neon_Tbl2Arg_Intrinsic : Intrinsic<[llvm_v8i8_ty], [llvm_v8i8_ty, llvm_v8i8_ty], [IntrNoMem]>; class Neon_Tbl3Arg_Intrinsic : Intrinsic<[llvm_v8i8_ty], [llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty], [IntrNoMem]>; class Neon_Tbl4Arg_Intrinsic : Intrinsic<[llvm_v8i8_ty], [llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty], [IntrNoMem]>; class Neon_Tbl5Arg_Intrinsic : Intrinsic<[llvm_v8i8_ty], [llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty], [IntrNoMem]>; class Neon_Tbl6Arg_Intrinsic : Intrinsic<[llvm_v8i8_ty], [llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty, llvm_v8i8_ty], [IntrNoMem]>; // Arithmetic ops let IntrProperties = [IntrNoMem, Commutative] in { // Vector Add. def int_arm_neon_vhadds : Neon_2Arg_Intrinsic; def int_arm_neon_vhaddu : Neon_2Arg_Intrinsic; def int_arm_neon_vrhadds : Neon_2Arg_Intrinsic; def int_arm_neon_vrhaddu : Neon_2Arg_Intrinsic; def int_arm_neon_vqadds : Neon_2Arg_Intrinsic; def int_arm_neon_vqaddu : Neon_2Arg_Intrinsic; def int_arm_neon_vraddhn : Neon_2Arg_Narrow_Intrinsic; // Vector Multiply. def int_arm_neon_vmulp : Neon_2Arg_Intrinsic; def int_arm_neon_vqdmulh : Neon_2Arg_Intrinsic; def int_arm_neon_vqrdmulh : Neon_2Arg_Intrinsic; def int_arm_neon_vmulls : Neon_2Arg_Long_Intrinsic; def int_arm_neon_vmullu : Neon_2Arg_Long_Intrinsic; def int_arm_neon_vmullp : Neon_2Arg_Long_Intrinsic; def int_arm_neon_vqdmull : Neon_2Arg_Long_Intrinsic; // Vector Maximum. def int_arm_neon_vmaxs : Neon_2Arg_Intrinsic; def int_arm_neon_vmaxu : Neon_2Arg_Intrinsic; def int_arm_neon_vmaxnm : Neon_2Arg_Intrinsic; // Vector Minimum. def int_arm_neon_vmins : Neon_2Arg_Intrinsic; def int_arm_neon_vminu : Neon_2Arg_Intrinsic; def int_arm_neon_vminnm : Neon_2Arg_Intrinsic; // Vector Reciprocal Step. def int_arm_neon_vrecps : Neon_2Arg_Intrinsic; // Vector Reciprocal Square Root Step. def int_arm_neon_vrsqrts : Neon_2Arg_Intrinsic; } // Vector Subtract. def int_arm_neon_vhsubs : Neon_2Arg_Intrinsic; def int_arm_neon_vhsubu : Neon_2Arg_Intrinsic; def int_arm_neon_vqsubs : Neon_2Arg_Intrinsic; def int_arm_neon_vqsubu : Neon_2Arg_Intrinsic; def int_arm_neon_vrsubhn : Neon_2Arg_Narrow_Intrinsic; // Vector Absolute Compare. def int_arm_neon_vacge : Neon_Compare_Intrinsic; def int_arm_neon_vacgt : Neon_Compare_Intrinsic; // Vector Absolute Differences. def int_arm_neon_vabds : Neon_2Arg_Intrinsic; def int_arm_neon_vabdu : Neon_2Arg_Intrinsic; // Vector Pairwise Add. def int_arm_neon_vpadd : Neon_2Arg_Intrinsic; // Vector Pairwise Add Long. // Note: This is different than the other "long" NEON intrinsics because // the result vector has half as many elements as the source vector. // The source and destination vector types must be specified separately. def int_arm_neon_vpaddls : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty], [IntrNoMem]>; def int_arm_neon_vpaddlu : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty], [IntrNoMem]>; // Vector Pairwise Add and Accumulate Long. // Note: This is similar to vpaddl but the destination vector also appears // as the first argument. def int_arm_neon_vpadals : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_anyvector_ty], [IntrNoMem]>; def int_arm_neon_vpadalu : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, llvm_anyvector_ty], [IntrNoMem]>; // Vector Pairwise Maximum and Minimum. def int_arm_neon_vpmaxs : Neon_2Arg_Intrinsic; def int_arm_neon_vpmaxu : Neon_2Arg_Intrinsic; def int_arm_neon_vpmins : Neon_2Arg_Intrinsic; def int_arm_neon_vpminu : Neon_2Arg_Intrinsic; // Vector Shifts: // // The various saturating and rounding vector shift operations need to be // represented by intrinsics in LLVM, and even the basic VSHL variable shift // operation cannot be safely translated to LLVM's shift operators. VSHL can // be used for both left and right shifts, or even combinations of the two, // depending on the signs of the shift amounts. It also has well-defined // behavior for shift amounts that LLVM leaves undefined. Only basic shifts // by constants can be represented with LLVM's shift operators. // // The shift counts for these intrinsics are always vectors, even for constant // shifts, where the constant is replicated. For consistency with VSHL (and // other variable shift instructions), left shifts have positive shift counts // and right shifts have negative shift counts. This convention is also used // for constant right shift intrinsics, and to help preserve sanity, the // intrinsic names use "shift" instead of either "shl" or "shr". Where // applicable, signed and unsigned versions of the intrinsics are // distinguished with "s" and "u" suffixes. A few NEON shift instructions, // such as VQSHLU, take signed operands but produce unsigned results; these // use a "su" suffix. // Vector Shift. def int_arm_neon_vshifts : Neon_2Arg_Intrinsic; def int_arm_neon_vshiftu : Neon_2Arg_Intrinsic; // Vector Rounding Shift. def int_arm_neon_vrshifts : Neon_2Arg_Intrinsic; def int_arm_neon_vrshiftu : Neon_2Arg_Intrinsic; def int_arm_neon_vrshiftn : Neon_2Arg_Narrow_Intrinsic; // Vector Saturating Shift. def int_arm_neon_vqshifts : Neon_2Arg_Intrinsic; def int_arm_neon_vqshiftu : Neon_2Arg_Intrinsic; def int_arm_neon_vqshiftsu : Neon_2Arg_Intrinsic; def int_arm_neon_vqshiftns : Neon_2Arg_Narrow_Intrinsic; def int_arm_neon_vqshiftnu : Neon_2Arg_Narrow_Intrinsic; def int_arm_neon_vqshiftnsu : Neon_2Arg_Narrow_Intrinsic; // Vector Saturating Rounding Shift. def int_arm_neon_vqrshifts : Neon_2Arg_Intrinsic; def int_arm_neon_vqrshiftu : Neon_2Arg_Intrinsic; def int_arm_neon_vqrshiftns : Neon_2Arg_Narrow_Intrinsic; def int_arm_neon_vqrshiftnu : Neon_2Arg_Narrow_Intrinsic; def int_arm_neon_vqrshiftnsu : Neon_2Arg_Narrow_Intrinsic; // Vector Shift and Insert. def int_arm_neon_vshiftins : Neon_3Arg_Intrinsic; // Vector Absolute Value and Saturating Absolute Value. def int_arm_neon_vabs : Neon_1Arg_Intrinsic; def int_arm_neon_vqabs : Neon_1Arg_Intrinsic; // Vector Saturating Negate. def int_arm_neon_vqneg : Neon_1Arg_Intrinsic; // Vector Count Leading Sign/Zero Bits. def int_arm_neon_vcls : Neon_1Arg_Intrinsic; // Vector Reciprocal Estimate. def int_arm_neon_vrecpe : Neon_1Arg_Intrinsic; // Vector Reciprocal Square Root Estimate. def int_arm_neon_vrsqrte : Neon_1Arg_Intrinsic; // Vector Conversions Between Floating-point and Integer def int_arm_neon_vcvtau : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtas : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtnu : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtns : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtpu : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtps : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtmu : Neon_CvtFPtoInt_1Arg_Intrinsic; def int_arm_neon_vcvtms : Neon_CvtFPtoInt_1Arg_Intrinsic; // Vector Conversions Between Floating-point and Fixed-point. def int_arm_neon_vcvtfp2fxs : Neon_CvtFPToFx_Intrinsic; def int_arm_neon_vcvtfp2fxu : Neon_CvtFPToFx_Intrinsic; def int_arm_neon_vcvtfxs2fp : Neon_CvtFxToFP_Intrinsic; def int_arm_neon_vcvtfxu2fp : Neon_CvtFxToFP_Intrinsic; // Vector Conversions Between Half-Precision and Single-Precision. def int_arm_neon_vcvtfp2hf : Intrinsic<[llvm_v4i16_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_arm_neon_vcvthf2fp : Intrinsic<[llvm_v4f32_ty], [llvm_v4i16_ty], [IntrNoMem]>; // Narrowing Saturating Vector Moves. def int_arm_neon_vqmovns : Neon_1Arg_Narrow_Intrinsic; def int_arm_neon_vqmovnu : Neon_1Arg_Narrow_Intrinsic; def int_arm_neon_vqmovnsu : Neon_1Arg_Narrow_Intrinsic; // Vector Table Lookup. // The first 1-4 arguments are the table. def int_arm_neon_vtbl1 : Neon_Tbl2Arg_Intrinsic; def int_arm_neon_vtbl2 : Neon_Tbl3Arg_Intrinsic; def int_arm_neon_vtbl3 : Neon_Tbl4Arg_Intrinsic; def int_arm_neon_vtbl4 : Neon_Tbl5Arg_Intrinsic; // Vector Table Extension. // Some elements of the destination vector may not be updated, so the original // value of that vector is passed as the first argument. The next 1-4 // arguments after that are the table. def int_arm_neon_vtbx1 : Neon_Tbl3Arg_Intrinsic; def int_arm_neon_vtbx2 : Neon_Tbl4Arg_Intrinsic; def int_arm_neon_vtbx3 : Neon_Tbl5Arg_Intrinsic; def int_arm_neon_vtbx4 : Neon_Tbl6Arg_Intrinsic; // Vector Rounding def int_arm_neon_vrintn : Neon_1Arg_Intrinsic; def int_arm_neon_vrintx : Neon_1Arg_Intrinsic; def int_arm_neon_vrinta : Neon_1Arg_Intrinsic; def int_arm_neon_vrintz : Neon_1Arg_Intrinsic; def int_arm_neon_vrintm : Neon_1Arg_Intrinsic; def int_arm_neon_vrintp : Neon_1Arg_Intrinsic; // De-interleaving vector loads from N-element structures. // Source operands are the address and alignment. def int_arm_neon_vld1 : Intrinsic<[llvm_anyvector_ty], [llvm_anyptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_arm_neon_vld2 : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>], [llvm_anyptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_arm_neon_vld3 : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>], [llvm_anyptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_arm_neon_vld4 : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [llvm_anyptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; // Vector load N-element structure to one lane. // Source operands are: the address, the N input vectors (since only one // lane is assigned), the lane number, and the alignment. def int_arm_neon_vld2lane : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>], [llvm_anyptr_ty, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i32_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_arm_neon_vld3lane : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>], [llvm_anyptr_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i32_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_arm_neon_vld4lane : Intrinsic<[llvm_anyvector_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [llvm_anyptr_ty, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>, llvm_i32_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; // Interleaving vector stores from N-element structures. // Source operands are: the address, the N vectors, and the alignment. def int_arm_neon_vst1 : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_arm_neon_vst2 : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, LLVMMatchType<1>, llvm_i32_ty], [IntrArgMemOnly]>; def int_arm_neon_vst3 : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, LLVMMatchType<1>, LLVMMatchType<1>, llvm_i32_ty], [IntrArgMemOnly]>; def int_arm_neon_vst4 : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, LLVMMatchType<1>, LLVMMatchType<1>, LLVMMatchType<1>, llvm_i32_ty], [IntrArgMemOnly]>; // Vector store N-element structure from one lane. // Source operands are: the address, the N vectors, the lane number, and // the alignment. def int_arm_neon_vst2lane : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, LLVMMatchType<1>, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_arm_neon_vst3lane : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, LLVMMatchType<1>, LLVMMatchType<1>, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_arm_neon_vst4lane : Intrinsic<[], [llvm_anyptr_ty, llvm_anyvector_ty, LLVMMatchType<1>, LLVMMatchType<1>, LLVMMatchType<1>, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; // Vector bitwise select. def int_arm_neon_vbsl : Intrinsic<[llvm_anyvector_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; // Crypto instructions class AES_1Arg_Intrinsic : Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; class AES_2Arg_Intrinsic : Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; class SHA_1Arg_Intrinsic : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; class SHA_2Arg_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; class SHA_3Arg_i32_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty], [IntrNoMem]>; class SHA_3Arg_v4i32_Intrinsic : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,llvm_v4i32_ty], [IntrNoMem]>; def int_arm_neon_aesd : AES_2Arg_Intrinsic; def int_arm_neon_aese : AES_2Arg_Intrinsic; def int_arm_neon_aesimc : AES_1Arg_Intrinsic; def int_arm_neon_aesmc : AES_1Arg_Intrinsic; def int_arm_neon_sha1h : SHA_1Arg_Intrinsic; def int_arm_neon_sha1su1 : SHA_2Arg_Intrinsic; def int_arm_neon_sha256su0 : SHA_2Arg_Intrinsic; def int_arm_neon_sha1c : SHA_3Arg_i32_Intrinsic; def int_arm_neon_sha1m : SHA_3Arg_i32_Intrinsic; def int_arm_neon_sha1p : SHA_3Arg_i32_Intrinsic; def int_arm_neon_sha1su0: SHA_3Arg_v4i32_Intrinsic; def int_arm_neon_sha256h: SHA_3Arg_v4i32_Intrinsic; def int_arm_neon_sha256h2: SHA_3Arg_v4i32_Intrinsic; def int_arm_neon_sha256su1: SHA_3Arg_v4i32_Intrinsic; } // end TargetPrefix //===- IntrinsicsBPF.td - Defines BPF intrinsics -----------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the BPF-specific intrinsics. // //===----------------------------------------------------------------------===// // Specialized loads from packet let TargetPrefix = "bpf" in { // All intrinsics start with "llvm.bpf." def int_bpf_load_byte : GCCBuiltin<"__builtin_bpf_load_byte">, Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_i64_ty], [IntrReadMem]>; def int_bpf_load_half : GCCBuiltin<"__builtin_bpf_load_half">, Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_i64_ty], [IntrReadMem]>; def int_bpf_load_word : GCCBuiltin<"__builtin_bpf_load_word">, Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_i64_ty], [IntrReadMem]>; def int_bpf_pseudo : GCCBuiltin<"__builtin_bpf_pseudo">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty]>; } //===- IntrinsicsHexagon.td - Defines Hexagon intrinsics ---*- tablegen -*-===// // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the Hexagon-specific intrinsics. // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // Definitions for all Hexagon intrinsics. // // All Hexagon intrinsics start with "llvm.hexagon.". let TargetPrefix = "hexagon" in { /// Hexagon_Intrinsic - Base class for all Hexagon intrinsics. class Hexagon_Intrinsic ret_types, list param_types, list properties> : GCCBuiltin, Intrinsic; } //===----------------------------------------------------------------------===// // // DEF_FUNCTION_TYPE_1(QI_ftype_MEM,BT_BOOL,BT_PTR) -> // Hexagon_qi_mem_Intrinsic // class Hexagon_qi_mem_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(void_ftype_SI,BT_VOID,BT_INT) -> // Hexagon_void_si_Intrinsic // class Hexagon_void_si_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(HI_ftype_SI,BT_I16,BT_INT) -> // Hexagon_hi_si_Intrinsic // class Hexagon_hi_si_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(SI_ftype_SI,BT_INT,BT_INT) -> // Hexagon_si_si_Intrinsic // class Hexagon_si_si_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(DI_ftype_SI,BT_LONGLONG,BT_INT) -> // Hexagon_di_si_Intrinsic // class Hexagon_di_si_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(SI_ftype_DI,BT_INT,BT_LONGLONG) -> // Hexagon_si_di_Intrinsic // class Hexagon_si_di_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(DI_ftype_DI,BT_LONGLONG,BT_LONGLONG) -> // Hexagon_di_di_Intrinsic // class Hexagon_di_di_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(QI_ftype_QI,BT_BOOL,BT_BOOL) -> // Hexagon_qi_qi_Intrinsic // class Hexagon_qi_qi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(QI_ftype_SI,BT_BOOL,BT_INT) -> // Hexagon_qi_si_Intrinsic // class Hexagon_qi_si_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(DI_ftype_QI,BT_LONGLONG,BT_BOOL) -> // Hexagon_di_qi_Intrinsic // class Hexagon_di_qi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_1(SI_ftype_QI,BT_INT,BT_BOOL) -> // Hexagon_si_qi_Intrinsic // class Hexagon_si_qi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(QI_ftype_SISI,BT_BOOL,BT_INT,BT_INT) -> // Hexagon_qi_sisi_Intrinsic // class Hexagon_qi_sisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(void_ftype_SISI,BT_VOID,BT_INT,BT_INT) -> // Hexagon_void_sisi_Intrinsic // class Hexagon_void_sisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(SI_ftype_SISI,BT_INT,BT_INT,BT_INT) -> // Hexagon_si_sisi_Intrinsic // class Hexagon_si_sisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(USI_ftype_SISI,BT_UINT,BT_INT,BT_INT) -> // Hexagon_usi_sisi_Intrinsic // class Hexagon_usi_sisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(DI_ftype_SISI,BT_LONGLONG,BT_INT,BT_INT) -> // Hexagon_di_sisi_Intrinsic // class Hexagon_di_sisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(UDI_ftype_SISI,BT_ULONGLONG,BT_INT,BT_INT) -> // Hexagon_udi_sisi_Intrinsic // class Hexagon_udi_sisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(DI_ftype_SIDI,BT_LONGLONG,BT_INT,BT_LONGLONG) -> // Hexagon_di_sidi_Intrinsic // class Hexagon_di_sidi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(DI_ftype_DISI,BT_LONGLONG,BT_LONGLONG,BT_INT) -> // Hexagon_di_disi_Intrinsic // class Hexagon_di_disi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(SI_ftype_SIDI,BT_INT,BT_INT,BT_LONGLONG) -> // Hexagon_si_sidi_Intrinsic // class Hexagon_si_sidi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(SI_ftype_DIDI,BT_INT,BT_LONGLONG,BT_LONGLONG) -> // Hexagon_si_didi_Intrinsic // class Hexagon_si_didi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(DI_ftype_DIDI,BT_LONGLONG,BT_LONGLONG,BT_LONGLONG) -> // Hexagon_di_didi_Intrinsic // class Hexagon_di_didi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(UDI_ftype_DIDI,BT_ULONGLONG,BT_LONGLONG,BT_LONGLONG) -> // Hexagon_udi_didi_Intrinsic // class Hexagon_udi_didi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(SI_ftype_DISI,BT_INT,BT_LONGLONG,BT_INT) -> // Hexagon_si_disi_Intrinsic // class Hexagon_si_disi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(QI_ftype_DIDI,BT_BOOL,BT_LONGLONG,BT_LONGLONG) -> // Hexagon_qi_didi_Intrinsic // class Hexagon_qi_didi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(QI_ftype_SIDI,BT_BOOL,BT_INT,BT_LONGLONG) -> // Hexagon_qi_didi_Intrinsic // class Hexagon_qi_sidi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(QI_ftype_DISI,BT_BOOL,BT_LONGLONG,BT_INT) -> // Hexagon_qi_disi_Intrinsic // class Hexagon_qi_disi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(QI_ftype_QIQI,BT_BOOL,BT_BOOL,BT_BOOL) -> // Hexagon_qi_qiqi_Intrinsic // class Hexagon_qi_qiqi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(QI_ftype_QIQIQI,BT_BOOL,BT_BOOL,BT_BOOL) -> // Hexagon_qi_qiqiqi_Intrinsic // class Hexagon_qi_qiqiqi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(SI_ftype_QIQI,BT_INT,BT_BOOL,BT_BOOL) -> // Hexagon_si_qiqi_Intrinsic // class Hexagon_si_qiqi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_2(SI_ftype_QISI,BT_INT,BT_BOOL,BT_INT) -> // Hexagon_si_qisi_Intrinsic // class Hexagon_si_qisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(void_ftype_SISISI,BT_VOID,BT_INT,BT_INT,BT_INT) -> // Hexagon_void_sisisi_Intrinsic // class Hexagon_void_sisisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(SI_ftype_SISISI,BT_INT,BT_INT,BT_INT,BT_INT) -> // Hexagon_si_sisisi_Intrinsic // class Hexagon_si_sisisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_SISISI,BT_LONGLONG,BT_INT,BT_INT,BT_INT) -> // Hexagon_di_sisisi_Intrinsic // class Hexagon_di_sisisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(SI_ftype_DISISI,BT_INT,BT_LONGLONG,BT_INT,BT_INT) -> // Hexagon_si_disisi_Intrinsic // class Hexagon_si_disisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_DISISI,BT_LONGLONG,BT_LONGLONG,BT_INT,BT_INT) -> // Hexagon_di_disisi_Intrinsic // class Hexagon_di_disisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(SI_ftype_SIDISI,BT_INT,BT_INT,BT_LONGLONG,BT_INT) -> // Hexagon_si_sidisi_Intrinsic // class Hexagon_si_sidisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_DIDISI,BT_LONGLONG,BT_LONGLONG, // BT_LONGLONG,BT_INT) -> // Hexagon_di_didisi_Intrinsic // class Hexagon_di_didisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(SI_ftype_SIDIDI,BT_INT,BT_INT,BT_LONGLONG,BT_LONGLONG) -> // Hexagon_si_sididi_Intrinsic // class Hexagon_si_sididi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_DIDIDI,BT_LONGLONG,BT_LONGLONG,BT_LONGLONG, // BT_LONGLONG) -> // Hexagon_di_dididi_Intrinsic // class Hexagon_di_dididi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(SI_ftype_SISIDI,BT_INT,BT_INT,BT_INT,BT_LONGLONG) -> // Hexagon_si_sisidi_Intrinsic // class Hexagon_si_sisidi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(SI_ftype_QISISI,BT_INT,BT_BOOL,BT_INT,BT_INT) -> // Hexagon_si_qisisi_Intrinsic // class Hexagon_si_qisisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_QISISI,BT_LONGLONG,BT_BOOL,BT_INT,BT_INT) -> // Hexagon_di_qisisi_Intrinsic // class Hexagon_di_qisisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_QIDIDI,BT_LONGLONG,BT_BOOL,BT_LONGLONG, // BT_LONGLONG) -> // Hexagon_di_qididi_Intrinsic // class Hexagon_di_qididi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_3(DI_ftype_DIDIQI,BT_LONGLONG,BT_LONGLONG,BT_LONGLONG, // BT_BOOL) -> // Hexagon_di_didiqi_Intrinsic // class Hexagon_di_didiqi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_4(SI_ftype_SISISISI,BT_INT,BT_INT,BT_INT,BT_INT,BT_INT) -> // Hexagon_si_sisisisi_Intrinsic // class Hexagon_si_sisisisi_Intrinsic : Hexagon_Intrinsic; // // DEF_FUNCTION_TYPE_4(DI_ftype_DIDISISI,BT_LONGLONG,BT_LONGLONG, // BT_LONGLONG,BT_INT,BT_INT) -> // Hexagon_di_didisisi_Intrinsic // class Hexagon_di_didisisi_Intrinsic : Hexagon_Intrinsic; class Hexagon_mem_memmemsi_Intrinsic : Hexagon_Intrinsic; class Hexagon_mem_memsisi_Intrinsic : Hexagon_Intrinsic; class Hexagon_mem_memdisi_Intrinsic : Hexagon_Intrinsic; class Hexagon_mem_memmemsisi_Intrinsic : Hexagon_Intrinsic; class Hexagon_mem_memsisisi_Intrinsic : Hexagon_Intrinsic; class Hexagon_mem_memdisisi_Intrinsic : Hexagon_Intrinsic; class Hexagon_v256_v256v256_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_df_Intrinsic // class Hexagon_sf_si_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_df_Intrinsic // class Hexagon_sf_df_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_di_Intrinsic // class Hexagon_sf_di_Intrinsic : Hexagon_Intrinsic; // // Hexagon_df_sf_Intrinsic // class Hexagon_df_sf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_di_sf_Intrinsic // class Hexagon_di_sf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_sf_Intrinsic // class Hexagon_sf_sf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_si_sf_Intrinsic // class Hexagon_si_sf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_si_df_Intrinsic // class Hexagon_si_df_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_sfsf_Intrinsic // class Hexagon_sf_sfsf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_si_sfsf_Intrinsic // class Hexagon_si_sfsf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_si_sfsi_Intrinsic // class Hexagon_si_sfsi_Intrinsic : Hexagon_Intrinsic; // // Hexagon_qi_sfqi_Intrinsic // class Hexagon_qi_sfqi_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_sfsfsf_Intrinsic // class Hexagon_sf_sfsfsf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_sf_sfsfsfqi_Intrinsic // class Hexagon_sf_sfsfsfqi_Intrinsic : Hexagon_Intrinsic; // // Hexagon_di_dididi_Intrinsic // class Hexagon_di_dididisi_Intrinsic : Hexagon_Intrinsic; // // Hexagon_df_si_Intrinsic // class Hexagon_df_si_Intrinsic : Hexagon_Intrinsic; // // Hexagon_df_di_Intrinsic // class Hexagon_df_di_Intrinsic : Hexagon_Intrinsic; // // Hexagon_di_df_Intrinsic // class Hexagon_di_df_Intrinsic : Hexagon_Intrinsic; // // Hexagon_df_df_Intrinsic // class Hexagon_df_df_Intrinsic : Hexagon_Intrinsic; // // Hexagon_df_dfdf_Intrinsic // class Hexagon_df_dfdf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_si_dfdf_Intrinsic // class Hexagon_si_dfdf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_si_dfsi_Intrinsic // class Hexagon_si_dfsi_Intrinsic : Hexagon_Intrinsic; // // // Hexagon_df_dfdfdf_Intrinsic // class Hexagon_df_dfdfdf_Intrinsic : Hexagon_Intrinsic; // // Hexagon_df_dfdfdf_Intrinsic // class Hexagon_df_dfdfdfqi_Intrinsic : Hexagon_Intrinsic; // This one below will not be auto-generated, // so make sure, you don't overwrite this one. // // BUILTIN_INFO(SI_to_SXTHI_asrh,SI_ftype_SI,1) // def int_hexagon_SI_to_SXTHI_asrh : Hexagon_si_si_Intrinsic<"SI_to_SXTHI_asrh">; // // BUILTIN_INFO_NONCONST(brev_ldd,PTR_ftype_PTRPTRSI,3) // def int_hexagon_brev_ldd : Hexagon_mem_memmemsi_Intrinsic<"brev_ldd">; // // BUILTIN_INFO_NONCONST(brev_ldw,PTR_ftype_PTRPTRSI,3) // def int_hexagon_brev_ldw : Hexagon_mem_memmemsi_Intrinsic<"brev_ldw">; // // BUILTIN_INFO_NONCONST(brev_ldh,PTR_ftype_PTRPTRSI,3) // def int_hexagon_brev_ldh : Hexagon_mem_memmemsi_Intrinsic<"brev_ldh">; // // BUILTIN_INFO_NONCONST(brev_lduh,PTR_ftype_PTRPTRSI,3) // def int_hexagon_brev_lduh : Hexagon_mem_memmemsi_Intrinsic<"brev_lduh">; // // BUILTIN_INFO_NONCONST(brev_ldb,PTR_ftype_PTRPTRSI,3) // def int_hexagon_brev_ldb : Hexagon_mem_memmemsi_Intrinsic<"brev_ldb">; // // BUILTIN_INFO_NONCONST(brev_ldub,PTR_ftype_PTRPTRSI,3) // def int_hexagon_brev_ldub : Hexagon_mem_memmemsi_Intrinsic<"brev_ldub">; // // BUILTIN_INFO_NONCONST(circ_ldd,PTR_ftype_PTRPTRSISI,4) // def int_hexagon_circ_ldd : Hexagon_mem_memmemsisi_Intrinsic<"circ_ldd">; // // BUILTIN_INFO_NONCONST(circ_ldw,PTR_ftype_PTRPTRSISI,4) // def int_hexagon_circ_ldw : Hexagon_mem_memmemsisi_Intrinsic<"circ_ldw">; // // BUILTIN_INFO_NONCONST(circ_ldh,PTR_ftype_PTRPTRSISI,4) // def int_hexagon_circ_ldh : Hexagon_mem_memmemsisi_Intrinsic<"circ_ldh">; // // BUILTIN_INFO_NONCONST(circ_lduh,PTR_ftype_PTRPTRSISI,4) // def int_hexagon_circ_lduh : Hexagon_mem_memmemsisi_Intrinsic<"circ_lduh">; // // BUILTIN_INFO_NONCONST(circ_ldb,PTR_ftype_PTRPTRSISI,4) // def int_hexagon_circ_ldb : Hexagon_mem_memmemsisi_Intrinsic<"circ_ldb">; // // BUILTIN_INFO_NONCONST(circ_ldub,PTR_ftype_PTRPTRSISI,4) // def int_hexagon_circ_ldub : Hexagon_mem_memmemsisi_Intrinsic<"circ_ldub">; // // BUILTIN_INFO_NONCONST(brev_stb,PTR_ftype_PTRSISI,3) // def int_hexagon_brev_stb : Hexagon_mem_memsisi_Intrinsic<"brev_stb">; // // BUILTIN_INFO_NONCONST(brev_sthhi,PTR_ftype_PTRSISI,3) // def int_hexagon_brev_sthhi : Hexagon_mem_memsisi_Intrinsic<"brev_sthhi">; // // BUILTIN_INFO_NONCONST(brev_sth,PTR_ftype_PTRSISI,3) // def int_hexagon_brev_sth : Hexagon_mem_memsisi_Intrinsic<"brev_sth">; // // BUILTIN_INFO_NONCONST(brev_stw,PTR_ftype_PTRSISI,3) // def int_hexagon_brev_stw : Hexagon_mem_memsisi_Intrinsic<"brev_stw">; // // BUILTIN_INFO_NONCONST(brev_std,PTR_ftype_PTRSISI,3) // def int_hexagon_brev_std : Hexagon_mem_memdisi_Intrinsic<"brev_std">; // // BUILTIN_INFO_NONCONST(circ_std,PTR_ftype_PTRDISISI,4) // def int_hexagon_circ_std : Hexagon_mem_memdisisi_Intrinsic<"circ_std">; // // BUILTIN_INFO_NONCONST(circ_stw,PTR_ftype_PTRSISISI,4) // def int_hexagon_circ_stw : Hexagon_mem_memsisisi_Intrinsic<"circ_stw">; // // BUILTIN_INFO_NONCONST(circ_sth,PTR_ftype_PTRSISISI,4) // def int_hexagon_circ_sth : Hexagon_mem_memsisisi_Intrinsic<"circ_sth">; // // BUILTIN_INFO_NONCONST(circ_sthhi,PTR_ftype_PTRSISISI,4) // def int_hexagon_circ_sthhi : Hexagon_mem_memsisisi_Intrinsic<"circ_sthhi">; // // BUILTIN_INFO_NONCONST(circ_stb,PTR_ftype_PTRSISISI,4) // def int_hexagon_circ_stb : Hexagon_mem_memsisisi_Intrinsic<"circ_stb">; def int_hexagon_mm256i_vaddw : Hexagon_v256_v256v256_Intrinsic<"_mm256i_vaddw">; // This one above will not be auto-generated, // so make sure, you don't overwrite this one. // // BUILTIN_INFO(HEXAGON.C2_cmpeq,QI_ftype_SISI,2) // def int_hexagon_C2_cmpeq : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpeq">; // // BUILTIN_INFO(HEXAGON.C2_cmpgt,QI_ftype_SISI,2) // def int_hexagon_C2_cmpgt : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpgt">; // // BUILTIN_INFO(HEXAGON.C2_cmpgtu,QI_ftype_SISI,2) // def int_hexagon_C2_cmpgtu : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpgtu">; // // BUILTIN_INFO(HEXAGON.C2_cmpeqp,QI_ftype_DIDI,2) // def int_hexagon_C2_cmpeqp : Hexagon_si_didi_Intrinsic<"HEXAGON_C2_cmpeqp">; // // BUILTIN_INFO(HEXAGON.C2_cmpgtp,QI_ftype_DIDI,2) // def int_hexagon_C2_cmpgtp : Hexagon_si_didi_Intrinsic<"HEXAGON_C2_cmpgtp">; // // BUILTIN_INFO(HEXAGON.C2_cmpgtup,QI_ftype_DIDI,2) // def int_hexagon_C2_cmpgtup : Hexagon_si_didi_Intrinsic<"HEXAGON_C2_cmpgtup">; // // BUILTIN_INFO(HEXAGON.A4_rcmpeqi,SI_ftype_SISI,2) // def int_hexagon_A4_rcmpeqi : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_rcmpeqi">; // // BUILTIN_INFO(HEXAGON.A4_rcmpneqi,SI_ftype_SISI,2) // def int_hexagon_A4_rcmpneqi : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_rcmpneqi">; // // BUILTIN_INFO(HEXAGON.A4_rcmpeq,SI_ftype_SISI,2) // def int_hexagon_A4_rcmpeq : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_rcmpeq">; // // BUILTIN_INFO(HEXAGON.A4_rcmpneq,SI_ftype_SISI,2) // def int_hexagon_A4_rcmpneq : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_rcmpneq">; // // BUILTIN_INFO(HEXAGON.C2_bitsset,QI_ftype_SISI,2) // def int_hexagon_C2_bitsset : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_bitsset">; // // BUILTIN_INFO(HEXAGON.C2_bitsclr,QI_ftype_SISI,2) // def int_hexagon_C2_bitsclr : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_bitsclr">; // // BUILTIN_INFO(HEXAGON.C4_nbitsset,QI_ftype_SISI,2) // def int_hexagon_C4_nbitsset : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_nbitsset">; // // BUILTIN_INFO(HEXAGON.C4_nbitsclr,QI_ftype_SISI,2) // def int_hexagon_C4_nbitsclr : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_nbitsclr">; // // BUILTIN_INFO(HEXAGON.C2_cmpeqi,QI_ftype_SISI,2) // def int_hexagon_C2_cmpeqi : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpeqi">; // // BUILTIN_INFO(HEXAGON.C2_cmpgti,QI_ftype_SISI,2) // def int_hexagon_C2_cmpgti : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpgti">; // // BUILTIN_INFO(HEXAGON.C2_cmpgtui,QI_ftype_SISI,2) // def int_hexagon_C2_cmpgtui : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpgtui">; // // BUILTIN_INFO(HEXAGON.C2_cmpgei,QI_ftype_SISI,2) // def int_hexagon_C2_cmpgei : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpgei">; // // BUILTIN_INFO(HEXAGON.C2_cmpgeui,QI_ftype_SISI,2) // def int_hexagon_C2_cmpgeui : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpgeui">; // // BUILTIN_INFO(HEXAGON.C2_cmplt,QI_ftype_SISI,2) // def int_hexagon_C2_cmplt : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmplt">; // // BUILTIN_INFO(HEXAGON.C2_cmpltu,QI_ftype_SISI,2) // def int_hexagon_C2_cmpltu : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_cmpltu">; // // BUILTIN_INFO(HEXAGON.C2_bitsclri,QI_ftype_SISI,2) // def int_hexagon_C2_bitsclri : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_bitsclri">; // // BUILTIN_INFO(HEXAGON.C4_nbitsclri,QI_ftype_SISI,2) // def int_hexagon_C4_nbitsclri : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_nbitsclri">; // // BUILTIN_INFO(HEXAGON.C4_cmpneqi,QI_ftype_SISI,2) // def int_hexagon_C4_cmpneqi : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_cmpneqi">; // // BUILTIN_INFO(HEXAGON.C4_cmpltei,QI_ftype_SISI,2) // def int_hexagon_C4_cmpltei : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_cmpltei">; // // BUILTIN_INFO(HEXAGON.C4_cmplteui,QI_ftype_SISI,2) // def int_hexagon_C4_cmplteui : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_cmplteui">; // // BUILTIN_INFO(HEXAGON.C4_cmpneq,QI_ftype_SISI,2) // def int_hexagon_C4_cmpneq : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_cmpneq">; // // BUILTIN_INFO(HEXAGON.C4_cmplte,QI_ftype_SISI,2) // def int_hexagon_C4_cmplte : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_cmplte">; // // BUILTIN_INFO(HEXAGON.C4_cmplteu,QI_ftype_SISI,2) // def int_hexagon_C4_cmplteu : Hexagon_si_sisi_Intrinsic<"HEXAGON_C4_cmplteu">; // // BUILTIN_INFO(HEXAGON.C2_and,QI_ftype_QIQI,2) // def int_hexagon_C2_and : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_and">; // // BUILTIN_INFO(HEXAGON.C2_or,QI_ftype_QIQI,2) // def int_hexagon_C2_or : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_or">; // // BUILTIN_INFO(HEXAGON.C2_xor,QI_ftype_QIQI,2) // def int_hexagon_C2_xor : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_xor">; // // BUILTIN_INFO(HEXAGON.C2_andn,QI_ftype_QIQI,2) // def int_hexagon_C2_andn : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_andn">; // // BUILTIN_INFO(HEXAGON.C2_not,QI_ftype_QI,1) // def int_hexagon_C2_not : Hexagon_si_si_Intrinsic<"HEXAGON_C2_not">; // // BUILTIN_INFO(HEXAGON.C2_orn,QI_ftype_QIQI,2) // def int_hexagon_C2_orn : Hexagon_si_sisi_Intrinsic<"HEXAGON_C2_orn">; // // BUILTIN_INFO(HEXAGON.C4_and_and,QI_ftype_QIQIQI,3) // def int_hexagon_C4_and_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_and_and">; // // BUILTIN_INFO(HEXAGON.C4_and_or,QI_ftype_QIQIQI,3) // def int_hexagon_C4_and_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_and_or">; // // BUILTIN_INFO(HEXAGON.C4_or_and,QI_ftype_QIQIQI,3) // def int_hexagon_C4_or_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_or_and">; // // BUILTIN_INFO(HEXAGON.C4_or_or,QI_ftype_QIQIQI,3) // def int_hexagon_C4_or_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_or_or">; // // BUILTIN_INFO(HEXAGON.C4_and_andn,QI_ftype_QIQIQI,3) // def int_hexagon_C4_and_andn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_and_andn">; // // BUILTIN_INFO(HEXAGON.C4_and_orn,QI_ftype_QIQIQI,3) // def int_hexagon_C4_and_orn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_and_orn">; // // BUILTIN_INFO(HEXAGON.C4_or_andn,QI_ftype_QIQIQI,3) // def int_hexagon_C4_or_andn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_or_andn">; // // BUILTIN_INFO(HEXAGON.C4_or_orn,QI_ftype_QIQIQI,3) // def int_hexagon_C4_or_orn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_C4_or_orn">; // // BUILTIN_INFO(HEXAGON.C2_pxfer_map,QI_ftype_QI,1) // def int_hexagon_C2_pxfer_map : Hexagon_si_qi_Intrinsic<"HEXAGON_C2_pxfer_map">; // // BUILTIN_INFO(HEXAGON.C2_any8,QI_ftype_QI,1) // def int_hexagon_C2_any8 : Hexagon_si_qi_Intrinsic<"HEXAGON_C2_any8">; // // BUILTIN_INFO(HEXAGON.C2_all8,QI_ftype_QI,1) // def int_hexagon_C2_all8 : Hexagon_si_qi_Intrinsic<"HEXAGON_C2_all8">; // // BUILTIN_INFO(HEXAGON.C2_vitpack,SI_ftype_QIQI,2) // def int_hexagon_C2_vitpack : Hexagon_si_qiqi_Intrinsic<"HEXAGON_C2_vitpack">; // // BUILTIN_INFO(HEXAGON.C2_mux,SI_ftype_QISISI,3) // def int_hexagon_C2_mux : Hexagon_si_qisisi_Intrinsic<"HEXAGON_C2_mux">; // // BUILTIN_INFO(HEXAGON.C2_muxii,SI_ftype_QISISI,3) // def int_hexagon_C2_muxii : Hexagon_si_qisisi_Intrinsic<"HEXAGON_C2_muxii">; // // BUILTIN_INFO(HEXAGON.C2_muxir,SI_ftype_QISISI,3) // def int_hexagon_C2_muxir : Hexagon_si_qisisi_Intrinsic<"HEXAGON_C2_muxir">; // // BUILTIN_INFO(HEXAGON.C2_muxri,SI_ftype_QISISI,3) // def int_hexagon_C2_muxri : Hexagon_si_qisisi_Intrinsic<"HEXAGON_C2_muxri">; // // BUILTIN_INFO(HEXAGON.C2_vmux,DI_ftype_QIDIDI,3) // def int_hexagon_C2_vmux : Hexagon_di_qididi_Intrinsic<"HEXAGON_C2_vmux">; // // BUILTIN_INFO(HEXAGON.C2_mask,DI_ftype_QI,1) // def int_hexagon_C2_mask : Hexagon_di_qi_Intrinsic<"HEXAGON_C2_mask">; // // BUILTIN_INFO(HEXAGON.A2_vcmpbeq,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmpbeq : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmpbeq">; // // BUILTIN_INFO(HEXAGON.A4_vcmpbeqi,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpbeqi : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpbeqi">; // // BUILTIN_INFO(HEXAGON.A4_vcmpbeq_any,QI_ftype_DIDI,2) // def int_hexagon_A4_vcmpbeq_any : Hexagon_si_didi_Intrinsic<"HEXAGON_A4_vcmpbeq_any">; // // BUILTIN_INFO(HEXAGON.A2_vcmpbgtu,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmpbgtu : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmpbgtu">; // // BUILTIN_INFO(HEXAGON.A4_vcmpbgtui,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpbgtui : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpbgtui">; // // BUILTIN_INFO(HEXAGON.A4_vcmpbgt,QI_ftype_DIDI,2) // def int_hexagon_A4_vcmpbgt : Hexagon_si_didi_Intrinsic<"HEXAGON_A4_vcmpbgt">; // // BUILTIN_INFO(HEXAGON.A4_vcmpbgti,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpbgti : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpbgti">; // // BUILTIN_INFO(HEXAGON.A4_cmpbeq,QI_ftype_SISI,2) // def int_hexagon_A4_cmpbeq : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpbeq">; // // BUILTIN_INFO(HEXAGON.A4_cmpbeqi,QI_ftype_SISI,2) // def int_hexagon_A4_cmpbeqi : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpbeqi">; // // BUILTIN_INFO(HEXAGON.A4_cmpbgtu,QI_ftype_SISI,2) // def int_hexagon_A4_cmpbgtu : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpbgtu">; // // BUILTIN_INFO(HEXAGON.A4_cmpbgtui,QI_ftype_SISI,2) // def int_hexagon_A4_cmpbgtui : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpbgtui">; // // BUILTIN_INFO(HEXAGON.A4_cmpbgt,QI_ftype_SISI,2) // def int_hexagon_A4_cmpbgt : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpbgt">; // // BUILTIN_INFO(HEXAGON.A4_cmpbgti,QI_ftype_SISI,2) // def int_hexagon_A4_cmpbgti : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpbgti">; // // BUILTIN_INFO(HEXAGON.A2_vcmpheq,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmpheq : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmpheq">; // // BUILTIN_INFO(HEXAGON.A2_vcmphgt,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmphgt : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmphgt">; // // BUILTIN_INFO(HEXAGON.A2_vcmphgtu,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmphgtu : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmphgtu">; // // BUILTIN_INFO(HEXAGON.A4_vcmpheqi,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpheqi : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpheqi">; // // BUILTIN_INFO(HEXAGON.A4_vcmphgti,QI_ftype_DISI,2) // def int_hexagon_A4_vcmphgti : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmphgti">; // // BUILTIN_INFO(HEXAGON.A4_vcmphgtui,QI_ftype_DISI,2) // def int_hexagon_A4_vcmphgtui : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmphgtui">; // // BUILTIN_INFO(HEXAGON.A4_cmpheq,QI_ftype_SISI,2) // def int_hexagon_A4_cmpheq : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpheq">; // // BUILTIN_INFO(HEXAGON.A4_cmphgt,QI_ftype_SISI,2) // def int_hexagon_A4_cmphgt : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmphgt">; // // BUILTIN_INFO(HEXAGON.A4_cmphgtu,QI_ftype_SISI,2) // def int_hexagon_A4_cmphgtu : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmphgtu">; // // BUILTIN_INFO(HEXAGON.A4_cmpheqi,QI_ftype_SISI,2) // def int_hexagon_A4_cmpheqi : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmpheqi">; // // BUILTIN_INFO(HEXAGON.A4_cmphgti,QI_ftype_SISI,2) // def int_hexagon_A4_cmphgti : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmphgti">; // // BUILTIN_INFO(HEXAGON.A4_cmphgtui,QI_ftype_SISI,2) // def int_hexagon_A4_cmphgtui : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cmphgtui">; // // BUILTIN_INFO(HEXAGON.A2_vcmpweq,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmpweq : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmpweq">; // // BUILTIN_INFO(HEXAGON.A2_vcmpwgt,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmpwgt : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmpwgt">; // // BUILTIN_INFO(HEXAGON.A2_vcmpwgtu,QI_ftype_DIDI,2) // def int_hexagon_A2_vcmpwgtu : Hexagon_si_didi_Intrinsic<"HEXAGON_A2_vcmpwgtu">; // // BUILTIN_INFO(HEXAGON.A4_vcmpweqi,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpweqi : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpweqi">; // // BUILTIN_INFO(HEXAGON.A4_vcmpwgti,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpwgti : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpwgti">; // // BUILTIN_INFO(HEXAGON.A4_vcmpwgtui,QI_ftype_DISI,2) // def int_hexagon_A4_vcmpwgtui : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_vcmpwgtui">; // // BUILTIN_INFO(HEXAGON.A4_boundscheck,QI_ftype_SIDI,2) // def int_hexagon_A4_boundscheck : Hexagon_si_sidi_Intrinsic<"HEXAGON_A4_boundscheck">; // // BUILTIN_INFO(HEXAGON.A4_tlbmatch,QI_ftype_DISI,2) // def int_hexagon_A4_tlbmatch : Hexagon_si_disi_Intrinsic<"HEXAGON_A4_tlbmatch">; // // BUILTIN_INFO(HEXAGON.C2_tfrpr,SI_ftype_QI,1) // def int_hexagon_C2_tfrpr : Hexagon_si_qi_Intrinsic<"HEXAGON_C2_tfrpr">; // // BUILTIN_INFO(HEXAGON.C2_tfrrp,QI_ftype_SI,1) // def int_hexagon_C2_tfrrp : Hexagon_si_si_Intrinsic<"HEXAGON_C2_tfrrp">; // // BUILTIN_INFO(HEXAGON.C4_fastcorner9,QI_ftype_QIQI,2) // def int_hexagon_C4_fastcorner9 : Hexagon_si_qiqi_Intrinsic<"HEXAGON_C4_fastcorner9">; // // BUILTIN_INFO(HEXAGON.C4_fastcorner9_not,QI_ftype_QIQI,2) // def int_hexagon_C4_fastcorner9_not : Hexagon_si_qiqi_Intrinsic<"HEXAGON_C4_fastcorner9_not">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_hh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_hh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_hh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_hh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_hl_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_hl_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_hl_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_hl_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_lh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_lh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_lh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_lh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_ll_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_ll_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_ll_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_ll_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_hh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_hh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_hh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_hh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_hl_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_hl_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_hl_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_hl_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_lh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_lh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_lh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_lh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_ll_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_ll_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_ll_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_ll_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_hh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_hh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_hh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_hh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_hl_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_hl_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_hl_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_hl_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_lh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_lh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_lh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_lh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_ll_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_ll_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_acc_sat_ll_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_acc_sat_ll_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_acc_sat_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_hh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_hh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_hh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_hh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_hl_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_hl_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_hl_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_hl_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_lh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_lh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_lh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_lh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_ll_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_ll_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_nac_sat_ll_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpy_nac_sat_ll_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpy_nac_sat_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_hh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_hh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_hh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_hh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_hl_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_hl_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_hl_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_hl_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_lh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_lh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_lh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_lh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_ll_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_ll_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_ll_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_ll_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_hh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_hh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_hh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_hh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_hl_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_hl_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_hl_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_hl_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_lh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_lh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_lh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_lh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_ll_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_ll_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_ll_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_ll_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_hh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_hh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_hh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_hh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_hl_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_hl_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_hl_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_hl_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_lh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_lh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_lh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_lh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_ll_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_ll_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_rnd_ll_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_rnd_ll_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_rnd_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_hh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_hh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_hh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_hh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_hl_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_hl_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_hl_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_hl_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_lh_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_lh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_lh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_lh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_ll_s0,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_ll_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_sat_rnd_ll_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_sat_rnd_ll_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_sat_rnd_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_hh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_hh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_hh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_hh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_hl_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_hl_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_hl_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_hl_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_lh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_lh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_lh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_lh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_ll_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_ll_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_acc_ll_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_acc_ll_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_acc_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_hh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_hh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_hh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_hh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_hl_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_hl_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_hl_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_hl_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_lh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_lh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_lh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_lh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_ll_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_ll_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_nac_ll_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyd_nac_ll_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyd_nac_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_hh_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_hh_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_hh_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_hh_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_hl_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_hl_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_hl_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_hl_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_lh_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_lh_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_lh_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_lh_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_ll_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_ll_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_ll_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_ll_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_hh_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_hh_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_hh_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_hh_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_hl_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_hl_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_hl_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_hl_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_lh_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_lh_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_lh_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_lh_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_ll_s0,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_ll_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyd_rnd_ll_s1,DI_ftype_SISI,2) // def int_hexagon_M2_mpyd_rnd_ll_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyd_rnd_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_hh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_hh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_hh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_hh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_hl_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_hl_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_hl_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_hl_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_lh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_lh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_lh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_lh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_ll_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_ll_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_acc_ll_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_acc_ll_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_acc_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_hh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_hh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_hh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_hh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_hl_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_hl_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_hl_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_hl_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_lh_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_lh_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_lh_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_lh_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_ll_s0,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_ll_s0 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_nac_ll_s1,SI_ftype_SISISI,3) // def int_hexagon_M2_mpyu_nac_ll_s1 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_mpyu_nac_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_hh_s0,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_hh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_hh_s1,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_hh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_hl_s0,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_hl_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_hl_s1,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_hl_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_lh_s0,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_lh_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_lh_s1,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_lh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_ll_s0,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_ll_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_ll_s1,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_ll_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_hh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_hh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_hh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_hh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_hl_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_hl_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_hl_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_hl_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_lh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_lh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_lh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_lh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_ll_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_ll_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_acc_ll_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_acc_ll_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_acc_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_hh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_hh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_hh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_hh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_hl_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_hl_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_hl_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_hl_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_lh_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_lh_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_lh_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_lh_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_ll_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_ll_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_nac_ll_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_mpyud_nac_ll_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_mpyud_nac_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_hh_s0,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_hh_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_hh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_hh_s1,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_hh_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_hh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_hl_s0,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_hl_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_hl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_hl_s1,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_hl_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_hl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_lh_s0,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_lh_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_lh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_lh_s1,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_lh_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_lh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_ll_s0,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_ll_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_ll_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpyud_ll_s1,UDI_ftype_SISI,2) // def int_hexagon_M2_mpyud_ll_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_mpyud_ll_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpysmi,SI_ftype_SISI,2) // def int_hexagon_M2_mpysmi : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpysmi">; // // BUILTIN_INFO(HEXAGON.M2_macsip,SI_ftype_SISISI,3) // def int_hexagon_M2_macsip : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_macsip">; // // BUILTIN_INFO(HEXAGON.M2_macsin,SI_ftype_SISISI,3) // def int_hexagon_M2_macsin : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_macsin">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyss_s0,DI_ftype_SISI,2) // def int_hexagon_M2_dpmpyss_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_dpmpyss_s0">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyss_acc_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_dpmpyss_acc_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_dpmpyss_acc_s0">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyss_nac_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_dpmpyss_nac_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_dpmpyss_nac_s0">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyuu_s0,UDI_ftype_SISI,2) // def int_hexagon_M2_dpmpyuu_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_dpmpyuu_s0">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyuu_acc_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_dpmpyuu_acc_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_dpmpyuu_acc_s0">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyuu_nac_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_dpmpyuu_nac_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_dpmpyuu_nac_s0">; // // BUILTIN_INFO(HEXAGON.M2_mpy_up,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_up : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_up">; // // BUILTIN_INFO(HEXAGON.M2_mpy_up_s1,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_up_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_up_s1">; // // BUILTIN_INFO(HEXAGON.M2_mpy_up_s1_sat,SI_ftype_SISI,2) // def int_hexagon_M2_mpy_up_s1_sat : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpy_up_s1_sat">; // // BUILTIN_INFO(HEXAGON.M2_mpyu_up,USI_ftype_SISI,2) // def int_hexagon_M2_mpyu_up : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyu_up">; // // BUILTIN_INFO(HEXAGON.M2_mpysu_up,SI_ftype_SISI,2) // def int_hexagon_M2_mpysu_up : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpysu_up">; // // BUILTIN_INFO(HEXAGON.M2_dpmpyss_rnd_s0,SI_ftype_SISI,2) // def int_hexagon_M2_dpmpyss_rnd_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_dpmpyss_rnd_s0">; // // BUILTIN_INFO(HEXAGON.M4_mac_up_s1_sat,SI_ftype_SISISI,3) // def int_hexagon_M4_mac_up_s1_sat : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_mac_up_s1_sat">; // // BUILTIN_INFO(HEXAGON.M4_nac_up_s1_sat,SI_ftype_SISISI,3) // def int_hexagon_M4_nac_up_s1_sat : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_nac_up_s1_sat">; // // BUILTIN_INFO(HEXAGON.M2_mpyi,SI_ftype_SISI,2) // def int_hexagon_M2_mpyi : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyi">; // // BUILTIN_INFO(HEXAGON.M2_mpyui,SI_ftype_SISI,2) // def int_hexagon_M2_mpyui : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_mpyui">; // // BUILTIN_INFO(HEXAGON.M2_maci,SI_ftype_SISISI,3) // def int_hexagon_M2_maci : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_maci">; // // BUILTIN_INFO(HEXAGON.M2_acci,SI_ftype_SISISI,3) // def int_hexagon_M2_acci : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_acci">; // // BUILTIN_INFO(HEXAGON.M2_accii,SI_ftype_SISISI,3) // def int_hexagon_M2_accii : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_accii">; // // BUILTIN_INFO(HEXAGON.M2_nacci,SI_ftype_SISISI,3) // def int_hexagon_M2_nacci : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_nacci">; // // BUILTIN_INFO(HEXAGON.M2_naccii,SI_ftype_SISISI,3) // def int_hexagon_M2_naccii : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_naccii">; // // BUILTIN_INFO(HEXAGON.M2_subacc,SI_ftype_SISISI,3) // def int_hexagon_M2_subacc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_subacc">; // // BUILTIN_INFO(HEXAGON.M4_mpyrr_addr,SI_ftype_SISISI,3) // def int_hexagon_M4_mpyrr_addr : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_mpyrr_addr">; // // BUILTIN_INFO(HEXAGON.M4_mpyri_addr_u2,SI_ftype_SISISI,3) // def int_hexagon_M4_mpyri_addr_u2 : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_mpyri_addr_u2">; // // BUILTIN_INFO(HEXAGON.M4_mpyri_addr,SI_ftype_SISISI,3) // def int_hexagon_M4_mpyri_addr : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_mpyri_addr">; // // BUILTIN_INFO(HEXAGON.M4_mpyri_addi,SI_ftype_SISISI,3) // def int_hexagon_M4_mpyri_addi : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_mpyri_addi">; // // BUILTIN_INFO(HEXAGON.M4_mpyrr_addi,SI_ftype_SISISI,3) // def int_hexagon_M4_mpyrr_addi : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_mpyrr_addi">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2s_s0,DI_ftype_SISI,2) // def int_hexagon_M2_vmpy2s_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_vmpy2s_s0">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2s_s1,DI_ftype_SISI,2) // def int_hexagon_M2_vmpy2s_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_vmpy2s_s1">; // // BUILTIN_INFO(HEXAGON.M2_vmac2s_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_vmac2s_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_vmac2s_s0">; // // BUILTIN_INFO(HEXAGON.M2_vmac2s_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_vmac2s_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_vmac2s_s1">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2su_s0,DI_ftype_SISI,2) // def int_hexagon_M2_vmpy2su_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_vmpy2su_s0">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2su_s1,DI_ftype_SISI,2) // def int_hexagon_M2_vmpy2su_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_vmpy2su_s1">; // // BUILTIN_INFO(HEXAGON.M2_vmac2su_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_vmac2su_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_vmac2su_s0">; // // BUILTIN_INFO(HEXAGON.M2_vmac2su_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_vmac2su_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_vmac2su_s1">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2s_s0pack,SI_ftype_SISI,2) // def int_hexagon_M2_vmpy2s_s0pack : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_vmpy2s_s0pack">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2s_s1pack,SI_ftype_SISI,2) // def int_hexagon_M2_vmpy2s_s1pack : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_vmpy2s_s1pack">; // // BUILTIN_INFO(HEXAGON.M2_vmac2,DI_ftype_DISISI,3) // def int_hexagon_M2_vmac2 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_vmac2">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2es_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_vmpy2es_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vmpy2es_s0">; // // BUILTIN_INFO(HEXAGON.M2_vmpy2es_s1,DI_ftype_DIDI,2) // def int_hexagon_M2_vmpy2es_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vmpy2es_s1">; // // BUILTIN_INFO(HEXAGON.M2_vmac2es_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vmac2es_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vmac2es_s0">; // // BUILTIN_INFO(HEXAGON.M2_vmac2es_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vmac2es_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vmac2es_s1">; // // BUILTIN_INFO(HEXAGON.M2_vmac2es,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vmac2es : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vmac2es">; // // BUILTIN_INFO(HEXAGON.M2_vrmac_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vrmac_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vrmac_s0">; // // BUILTIN_INFO(HEXAGON.M2_vrmpy_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_vrmpy_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vrmpy_s0">; // // BUILTIN_INFO(HEXAGON.M2_vdmpyrs_s0,SI_ftype_DIDI,2) // def int_hexagon_M2_vdmpyrs_s0 : Hexagon_si_didi_Intrinsic<"HEXAGON_M2_vdmpyrs_s0">; // // BUILTIN_INFO(HEXAGON.M2_vdmpyrs_s1,SI_ftype_DIDI,2) // def int_hexagon_M2_vdmpyrs_s1 : Hexagon_si_didi_Intrinsic<"HEXAGON_M2_vdmpyrs_s1">; // // BUILTIN_INFO(HEXAGON.M5_vrmpybuu,DI_ftype_DIDI,2) // def int_hexagon_M5_vrmpybuu : Hexagon_di_didi_Intrinsic<"HEXAGON_M5_vrmpybuu">; // // BUILTIN_INFO(HEXAGON.M5_vrmacbuu,DI_ftype_DIDIDI,3) // def int_hexagon_M5_vrmacbuu : Hexagon_di_dididi_Intrinsic<"HEXAGON_M5_vrmacbuu">; // // BUILTIN_INFO(HEXAGON.M5_vrmpybsu,DI_ftype_DIDI,2) // def int_hexagon_M5_vrmpybsu : Hexagon_di_didi_Intrinsic<"HEXAGON_M5_vrmpybsu">; // // BUILTIN_INFO(HEXAGON.M5_vrmacbsu,DI_ftype_DIDIDI,3) // def int_hexagon_M5_vrmacbsu : Hexagon_di_dididi_Intrinsic<"HEXAGON_M5_vrmacbsu">; // // BUILTIN_INFO(HEXAGON.M5_vmpybuu,DI_ftype_SISI,2) // def int_hexagon_M5_vmpybuu : Hexagon_di_sisi_Intrinsic<"HEXAGON_M5_vmpybuu">; // // BUILTIN_INFO(HEXAGON.M5_vmpybsu,DI_ftype_SISI,2) // def int_hexagon_M5_vmpybsu : Hexagon_di_sisi_Intrinsic<"HEXAGON_M5_vmpybsu">; // // BUILTIN_INFO(HEXAGON.M5_vmacbuu,DI_ftype_DISISI,3) // def int_hexagon_M5_vmacbuu : Hexagon_di_disisi_Intrinsic<"HEXAGON_M5_vmacbuu">; // // BUILTIN_INFO(HEXAGON.M5_vmacbsu,DI_ftype_DISISI,3) // def int_hexagon_M5_vmacbsu : Hexagon_di_disisi_Intrinsic<"HEXAGON_M5_vmacbsu">; // // BUILTIN_INFO(HEXAGON.M5_vdmpybsu,DI_ftype_DIDI,2) // def int_hexagon_M5_vdmpybsu : Hexagon_di_didi_Intrinsic<"HEXAGON_M5_vdmpybsu">; // // BUILTIN_INFO(HEXAGON.M5_vdmacbsu,DI_ftype_DIDIDI,3) // def int_hexagon_M5_vdmacbsu : Hexagon_di_dididi_Intrinsic<"HEXAGON_M5_vdmacbsu">; // // BUILTIN_INFO(HEXAGON.M2_vdmacs_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vdmacs_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vdmacs_s0">; // // BUILTIN_INFO(HEXAGON.M2_vdmacs_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vdmacs_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vdmacs_s1">; // // BUILTIN_INFO(HEXAGON.M2_vdmpys_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_vdmpys_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vdmpys_s0">; // // BUILTIN_INFO(HEXAGON.M2_vdmpys_s1,DI_ftype_DIDI,2) // def int_hexagon_M2_vdmpys_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vdmpys_s1">; // // BUILTIN_INFO(HEXAGON.M2_cmpyrs_s0,SI_ftype_SISI,2) // def int_hexagon_M2_cmpyrs_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_cmpyrs_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmpyrs_s1,SI_ftype_SISI,2) // def int_hexagon_M2_cmpyrs_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_cmpyrs_s1">; // // BUILTIN_INFO(HEXAGON.M2_cmpyrsc_s0,SI_ftype_SISI,2) // def int_hexagon_M2_cmpyrsc_s0 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_cmpyrsc_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmpyrsc_s1,SI_ftype_SISI,2) // def int_hexagon_M2_cmpyrsc_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_cmpyrsc_s1">; // // BUILTIN_INFO(HEXAGON.M2_cmacs_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_cmacs_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cmacs_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmacs_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_cmacs_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cmacs_s1">; // // BUILTIN_INFO(HEXAGON.M2_cmacsc_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_cmacsc_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cmacsc_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmacsc_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_cmacsc_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cmacsc_s1">; // // BUILTIN_INFO(HEXAGON.M2_cmpys_s0,DI_ftype_SISI,2) // def int_hexagon_M2_cmpys_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_cmpys_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmpys_s1,DI_ftype_SISI,2) // def int_hexagon_M2_cmpys_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_cmpys_s1">; // // BUILTIN_INFO(HEXAGON.M2_cmpysc_s0,DI_ftype_SISI,2) // def int_hexagon_M2_cmpysc_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_cmpysc_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmpysc_s1,DI_ftype_SISI,2) // def int_hexagon_M2_cmpysc_s1 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_cmpysc_s1">; // // BUILTIN_INFO(HEXAGON.M2_cnacs_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_cnacs_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cnacs_s0">; // // BUILTIN_INFO(HEXAGON.M2_cnacs_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_cnacs_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cnacs_s1">; // // BUILTIN_INFO(HEXAGON.M2_cnacsc_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_cnacsc_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cnacsc_s0">; // // BUILTIN_INFO(HEXAGON.M2_cnacsc_s1,DI_ftype_DISISI,3) // def int_hexagon_M2_cnacsc_s1 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cnacsc_s1">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpys_s1,DI_ftype_DISI,2) // def int_hexagon_M2_vrcmpys_s1 : Hexagon_di_disi_Intrinsic<"HEXAGON_M2_vrcmpys_s1">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpys_acc_s1,DI_ftype_DIDISI,3) // def int_hexagon_M2_vrcmpys_acc_s1 : Hexagon_di_didisi_Intrinsic<"HEXAGON_M2_vrcmpys_acc_s1">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpys_s1rp,SI_ftype_DISI,2) // def int_hexagon_M2_vrcmpys_s1rp : Hexagon_si_disi_Intrinsic<"HEXAGON_M2_vrcmpys_s1rp">; // // BUILTIN_INFO(HEXAGON.M2_mmacls_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacls_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacls_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmacls_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacls_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacls_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmachs_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmachs_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmachs_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmachs_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmachs_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmachs_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyl_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyl_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyl_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyl_s1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyl_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyl_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyh_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyh_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyh_s1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyh_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmacls_rs0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacls_rs0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacls_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmacls_rs1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacls_rs1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacls_rs1">; // // BUILTIN_INFO(HEXAGON.M2_mmachs_rs0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmachs_rs0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmachs_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmachs_rs1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmachs_rs1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmachs_rs1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyl_rs0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyl_rs0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyl_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyl_rs1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyl_rs1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyl_rs1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyh_rs0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyh_rs0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyh_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyh_rs1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyh_rs1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyh_rs1">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyeh_s0,DI_ftype_DIDI,2) // def int_hexagon_M4_vrmpyeh_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M4_vrmpyeh_s0">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyeh_s1,DI_ftype_DIDI,2) // def int_hexagon_M4_vrmpyeh_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M4_vrmpyeh_s1">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyeh_acc_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M4_vrmpyeh_acc_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M4_vrmpyeh_acc_s0">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyeh_acc_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M4_vrmpyeh_acc_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M4_vrmpyeh_acc_s1">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyoh_s0,DI_ftype_DIDI,2) // def int_hexagon_M4_vrmpyoh_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M4_vrmpyoh_s0">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyoh_s1,DI_ftype_DIDI,2) // def int_hexagon_M4_vrmpyoh_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M4_vrmpyoh_s1">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyoh_acc_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M4_vrmpyoh_acc_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M4_vrmpyoh_acc_s0">; // // BUILTIN_INFO(HEXAGON.M4_vrmpyoh_acc_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M4_vrmpyoh_acc_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M4_vrmpyoh_acc_s1">; // // BUILTIN_INFO(HEXAGON.M2_hmmpyl_rs1,SI_ftype_SISI,2) // def int_hexagon_M2_hmmpyl_rs1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_hmmpyl_rs1">; // // BUILTIN_INFO(HEXAGON.M2_hmmpyh_rs1,SI_ftype_SISI,2) // def int_hexagon_M2_hmmpyh_rs1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_hmmpyh_rs1">; // // BUILTIN_INFO(HEXAGON.M2_hmmpyl_s1,SI_ftype_SISI,2) // def int_hexagon_M2_hmmpyl_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_hmmpyl_s1">; // // BUILTIN_INFO(HEXAGON.M2_hmmpyh_s1,SI_ftype_SISI,2) // def int_hexagon_M2_hmmpyh_s1 : Hexagon_si_sisi_Intrinsic<"HEXAGON_M2_hmmpyh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmaculs_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmaculs_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmaculs_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmaculs_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmaculs_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmaculs_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmacuhs_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacuhs_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacuhs_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmacuhs_s1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacuhs_s1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacuhs_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyul_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyul_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyul_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyul_s1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyul_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyul_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyuh_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyuh_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyuh_s0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyuh_s1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyuh_s1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyuh_s1">; // // BUILTIN_INFO(HEXAGON.M2_mmaculs_rs0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmaculs_rs0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmaculs_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmaculs_rs1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmaculs_rs1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmaculs_rs1">; // // BUILTIN_INFO(HEXAGON.M2_mmacuhs_rs0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacuhs_rs0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacuhs_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmacuhs_rs1,DI_ftype_DIDIDI,3) // def int_hexagon_M2_mmacuhs_rs1 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_mmacuhs_rs1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyul_rs0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyul_rs0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyul_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyul_rs1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyul_rs1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyul_rs1">; // // BUILTIN_INFO(HEXAGON.M2_mmpyuh_rs0,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyuh_rs0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyuh_rs0">; // // BUILTIN_INFO(HEXAGON.M2_mmpyuh_rs1,DI_ftype_DIDI,2) // def int_hexagon_M2_mmpyuh_rs1 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_mmpyuh_rs1">; // // BUILTIN_INFO(HEXAGON.M2_vrcmaci_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vrcmaci_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vrcmaci_s0">; // // BUILTIN_INFO(HEXAGON.M2_vrcmacr_s0,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vrcmacr_s0 : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vrcmacr_s0">; // // BUILTIN_INFO(HEXAGON.M2_vrcmaci_s0c,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vrcmaci_s0c : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vrcmaci_s0c">; // // BUILTIN_INFO(HEXAGON.M2_vrcmacr_s0c,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vrcmacr_s0c : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vrcmacr_s0c">; // // BUILTIN_INFO(HEXAGON.M2_cmaci_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_cmaci_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cmaci_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmacr_s0,DI_ftype_DISISI,3) // def int_hexagon_M2_cmacr_s0 : Hexagon_di_disisi_Intrinsic<"HEXAGON_M2_cmacr_s0">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpyi_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_vrcmpyi_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vrcmpyi_s0">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpyr_s0,DI_ftype_DIDI,2) // def int_hexagon_M2_vrcmpyr_s0 : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vrcmpyr_s0">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpyi_s0c,DI_ftype_DIDI,2) // def int_hexagon_M2_vrcmpyi_s0c : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vrcmpyi_s0c">; // // BUILTIN_INFO(HEXAGON.M2_vrcmpyr_s0c,DI_ftype_DIDI,2) // def int_hexagon_M2_vrcmpyr_s0c : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vrcmpyr_s0c">; // // BUILTIN_INFO(HEXAGON.M2_cmpyi_s0,DI_ftype_SISI,2) // def int_hexagon_M2_cmpyi_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_cmpyi_s0">; // // BUILTIN_INFO(HEXAGON.M2_cmpyr_s0,DI_ftype_SISI,2) // def int_hexagon_M2_cmpyr_s0 : Hexagon_di_sisi_Intrinsic<"HEXAGON_M2_cmpyr_s0">; // // BUILTIN_INFO(HEXAGON.M4_cmpyi_wh,SI_ftype_DISI,2) // def int_hexagon_M4_cmpyi_wh : Hexagon_si_disi_Intrinsic<"HEXAGON_M4_cmpyi_wh">; // // BUILTIN_INFO(HEXAGON.M4_cmpyr_wh,SI_ftype_DISI,2) // def int_hexagon_M4_cmpyr_wh : Hexagon_si_disi_Intrinsic<"HEXAGON_M4_cmpyr_wh">; // // BUILTIN_INFO(HEXAGON.M4_cmpyi_whc,SI_ftype_DISI,2) // def int_hexagon_M4_cmpyi_whc : Hexagon_si_disi_Intrinsic<"HEXAGON_M4_cmpyi_whc">; // // BUILTIN_INFO(HEXAGON.M4_cmpyr_whc,SI_ftype_DISI,2) // def int_hexagon_M4_cmpyr_whc : Hexagon_si_disi_Intrinsic<"HEXAGON_M4_cmpyr_whc">; // // BUILTIN_INFO(HEXAGON.M2_vcmpy_s0_sat_i,DI_ftype_DIDI,2) // def int_hexagon_M2_vcmpy_s0_sat_i : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vcmpy_s0_sat_i">; // // BUILTIN_INFO(HEXAGON.M2_vcmpy_s0_sat_r,DI_ftype_DIDI,2) // def int_hexagon_M2_vcmpy_s0_sat_r : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vcmpy_s0_sat_r">; // // BUILTIN_INFO(HEXAGON.M2_vcmpy_s1_sat_i,DI_ftype_DIDI,2) // def int_hexagon_M2_vcmpy_s1_sat_i : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vcmpy_s1_sat_i">; // // BUILTIN_INFO(HEXAGON.M2_vcmpy_s1_sat_r,DI_ftype_DIDI,2) // def int_hexagon_M2_vcmpy_s1_sat_r : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vcmpy_s1_sat_r">; // // BUILTIN_INFO(HEXAGON.M2_vcmac_s0_sat_i,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vcmac_s0_sat_i : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vcmac_s0_sat_i">; // // BUILTIN_INFO(HEXAGON.M2_vcmac_s0_sat_r,DI_ftype_DIDIDI,3) // def int_hexagon_M2_vcmac_s0_sat_r : Hexagon_di_dididi_Intrinsic<"HEXAGON_M2_vcmac_s0_sat_r">; // // BUILTIN_INFO(HEXAGON.S2_vcrotate,DI_ftype_DISI,2) // def int_hexagon_S2_vcrotate : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_vcrotate">; // // BUILTIN_INFO(HEXAGON.S4_vrcrotate_acc,DI_ftype_DIDISISI,4) // def int_hexagon_S4_vrcrotate_acc : Hexagon_di_didisisi_Intrinsic<"HEXAGON_S4_vrcrotate_acc">; // // BUILTIN_INFO(HEXAGON.S4_vrcrotate,DI_ftype_DISISI,3) // def int_hexagon_S4_vrcrotate : Hexagon_di_disisi_Intrinsic<"HEXAGON_S4_vrcrotate">; // // BUILTIN_INFO(HEXAGON.S2_vcnegh,DI_ftype_DISI,2) // def int_hexagon_S2_vcnegh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_vcnegh">; // // BUILTIN_INFO(HEXAGON.S2_vrcnegh,DI_ftype_DIDISI,3) // def int_hexagon_S2_vrcnegh : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_vrcnegh">; // // BUILTIN_INFO(HEXAGON.M4_pmpyw,DI_ftype_SISI,2) // def int_hexagon_M4_pmpyw : Hexagon_di_sisi_Intrinsic<"HEXAGON_M4_pmpyw">; // // BUILTIN_INFO(HEXAGON.M4_vpmpyh,DI_ftype_SISI,2) // def int_hexagon_M4_vpmpyh : Hexagon_di_sisi_Intrinsic<"HEXAGON_M4_vpmpyh">; // // BUILTIN_INFO(HEXAGON.M4_pmpyw_acc,DI_ftype_DISISI,3) // def int_hexagon_M4_pmpyw_acc : Hexagon_di_disisi_Intrinsic<"HEXAGON_M4_pmpyw_acc">; // // BUILTIN_INFO(HEXAGON.M4_vpmpyh_acc,DI_ftype_DISISI,3) // def int_hexagon_M4_vpmpyh_acc : Hexagon_di_disisi_Intrinsic<"HEXAGON_M4_vpmpyh_acc">; // // BUILTIN_INFO(HEXAGON.A2_add,SI_ftype_SISI,2) // def int_hexagon_A2_add : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_add">; // // BUILTIN_INFO(HEXAGON.A2_sub,SI_ftype_SISI,2) // def int_hexagon_A2_sub : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_sub">; // // BUILTIN_INFO(HEXAGON.A2_addsat,SI_ftype_SISI,2) // def int_hexagon_A2_addsat : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addsat">; // // BUILTIN_INFO(HEXAGON.A2_subsat,SI_ftype_SISI,2) // def int_hexagon_A2_subsat : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subsat">; // // BUILTIN_INFO(HEXAGON.A2_addi,SI_ftype_SISI,2) // def int_hexagon_A2_addi : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addi">; // // BUILTIN_INFO(HEXAGON.A2_addh_l16_ll,SI_ftype_SISI,2) // def int_hexagon_A2_addh_l16_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_l16_ll">; // // BUILTIN_INFO(HEXAGON.A2_addh_l16_hl,SI_ftype_SISI,2) // def int_hexagon_A2_addh_l16_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_l16_hl">; // // BUILTIN_INFO(HEXAGON.A2_addh_l16_sat_ll,SI_ftype_SISI,2) // def int_hexagon_A2_addh_l16_sat_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_l16_sat_ll">; // // BUILTIN_INFO(HEXAGON.A2_addh_l16_sat_hl,SI_ftype_SISI,2) // def int_hexagon_A2_addh_l16_sat_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_l16_sat_hl">; // // BUILTIN_INFO(HEXAGON.A2_subh_l16_ll,SI_ftype_SISI,2) // def int_hexagon_A2_subh_l16_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_l16_ll">; // // BUILTIN_INFO(HEXAGON.A2_subh_l16_hl,SI_ftype_SISI,2) // def int_hexagon_A2_subh_l16_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_l16_hl">; // // BUILTIN_INFO(HEXAGON.A2_subh_l16_sat_ll,SI_ftype_SISI,2) // def int_hexagon_A2_subh_l16_sat_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_l16_sat_ll">; // // BUILTIN_INFO(HEXAGON.A2_subh_l16_sat_hl,SI_ftype_SISI,2) // def int_hexagon_A2_subh_l16_sat_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_l16_sat_hl">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_ll,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_ll">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_lh,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_lh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_lh">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_hl,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_hl">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_hh,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_hh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_hh">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_sat_ll,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_sat_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_sat_ll">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_sat_lh,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_sat_lh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_sat_lh">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_sat_hl,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_sat_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_sat_hl">; // // BUILTIN_INFO(HEXAGON.A2_addh_h16_sat_hh,SI_ftype_SISI,2) // def int_hexagon_A2_addh_h16_sat_hh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_addh_h16_sat_hh">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_ll,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_ll">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_lh,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_lh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_lh">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_hl,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_hl">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_hh,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_hh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_hh">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_sat_ll,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_sat_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_sat_ll">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_sat_lh,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_sat_lh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_sat_lh">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_sat_hl,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_sat_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_sat_hl">; // // BUILTIN_INFO(HEXAGON.A2_subh_h16_sat_hh,SI_ftype_SISI,2) // def int_hexagon_A2_subh_h16_sat_hh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subh_h16_sat_hh">; // // BUILTIN_INFO(HEXAGON.A2_aslh,SI_ftype_SI,1) // def int_hexagon_A2_aslh : Hexagon_si_si_Intrinsic<"HEXAGON_A2_aslh">; // // BUILTIN_INFO(HEXAGON.A2_asrh,SI_ftype_SI,1) // def int_hexagon_A2_asrh : Hexagon_si_si_Intrinsic<"HEXAGON_A2_asrh">; // // BUILTIN_INFO(HEXAGON.A2_addp,DI_ftype_DIDI,2) // def int_hexagon_A2_addp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_addp">; // // BUILTIN_INFO(HEXAGON.A2_addpsat,DI_ftype_DIDI,2) // def int_hexagon_A2_addpsat : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_addpsat">; // // BUILTIN_INFO(HEXAGON.A2_addsp,DI_ftype_SIDI,2) // def int_hexagon_A2_addsp : Hexagon_di_sidi_Intrinsic<"HEXAGON_A2_addsp">; // // BUILTIN_INFO(HEXAGON.A2_subp,DI_ftype_DIDI,2) // def int_hexagon_A2_subp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_subp">; // // BUILTIN_INFO(HEXAGON.A2_neg,SI_ftype_SI,1) // def int_hexagon_A2_neg : Hexagon_si_si_Intrinsic<"HEXAGON_A2_neg">; // // BUILTIN_INFO(HEXAGON.A2_negsat,SI_ftype_SI,1) // def int_hexagon_A2_negsat : Hexagon_si_si_Intrinsic<"HEXAGON_A2_negsat">; // // BUILTIN_INFO(HEXAGON.A2_abs,SI_ftype_SI,1) // def int_hexagon_A2_abs : Hexagon_si_si_Intrinsic<"HEXAGON_A2_abs">; // // BUILTIN_INFO(HEXAGON.A2_abssat,SI_ftype_SI,1) // def int_hexagon_A2_abssat : Hexagon_si_si_Intrinsic<"HEXAGON_A2_abssat">; // // BUILTIN_INFO(HEXAGON.A2_vconj,DI_ftype_DI,1) // def int_hexagon_A2_vconj : Hexagon_di_di_Intrinsic<"HEXAGON_A2_vconj">; // // BUILTIN_INFO(HEXAGON.A2_negp,DI_ftype_DI,1) // def int_hexagon_A2_negp : Hexagon_di_di_Intrinsic<"HEXAGON_A2_negp">; // // BUILTIN_INFO(HEXAGON.A2_absp,DI_ftype_DI,1) // def int_hexagon_A2_absp : Hexagon_di_di_Intrinsic<"HEXAGON_A2_absp">; // // BUILTIN_INFO(HEXAGON.A2_max,SI_ftype_SISI,2) // def int_hexagon_A2_max : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_max">; // // BUILTIN_INFO(HEXAGON.A2_maxu,USI_ftype_SISI,2) // def int_hexagon_A2_maxu : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_maxu">; // // BUILTIN_INFO(HEXAGON.A2_min,SI_ftype_SISI,2) // def int_hexagon_A2_min : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_min">; // // BUILTIN_INFO(HEXAGON.A2_minu,USI_ftype_SISI,2) // def int_hexagon_A2_minu : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_minu">; // // BUILTIN_INFO(HEXAGON.A2_maxp,DI_ftype_DIDI,2) // def int_hexagon_A2_maxp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_maxp">; // // BUILTIN_INFO(HEXAGON.A2_maxup,UDI_ftype_DIDI,2) // def int_hexagon_A2_maxup : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_maxup">; // // BUILTIN_INFO(HEXAGON.A2_minp,DI_ftype_DIDI,2) // def int_hexagon_A2_minp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_minp">; // // BUILTIN_INFO(HEXAGON.A2_minup,UDI_ftype_DIDI,2) // def int_hexagon_A2_minup : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_minup">; // // BUILTIN_INFO(HEXAGON.A2_tfr,SI_ftype_SI,1) // def int_hexagon_A2_tfr : Hexagon_si_si_Intrinsic<"HEXAGON_A2_tfr">; // // BUILTIN_INFO(HEXAGON.A2_tfrsi,SI_ftype_SI,1) // def int_hexagon_A2_tfrsi : Hexagon_si_si_Intrinsic<"HEXAGON_A2_tfrsi">; // // BUILTIN_INFO(HEXAGON.A2_tfrp,DI_ftype_DI,1) // def int_hexagon_A2_tfrp : Hexagon_di_di_Intrinsic<"HEXAGON_A2_tfrp">; // // BUILTIN_INFO(HEXAGON.A2_tfrpi,DI_ftype_SI,1) // def int_hexagon_A2_tfrpi : Hexagon_di_si_Intrinsic<"HEXAGON_A2_tfrpi">; // // BUILTIN_INFO(HEXAGON.A2_zxtb,SI_ftype_SI,1) // def int_hexagon_A2_zxtb : Hexagon_si_si_Intrinsic<"HEXAGON_A2_zxtb">; // // BUILTIN_INFO(HEXAGON.A2_sxtb,SI_ftype_SI,1) // def int_hexagon_A2_sxtb : Hexagon_si_si_Intrinsic<"HEXAGON_A2_sxtb">; // // BUILTIN_INFO(HEXAGON.A2_zxth,SI_ftype_SI,1) // def int_hexagon_A2_zxth : Hexagon_si_si_Intrinsic<"HEXAGON_A2_zxth">; // // BUILTIN_INFO(HEXAGON.A2_sxth,SI_ftype_SI,1) // def int_hexagon_A2_sxth : Hexagon_si_si_Intrinsic<"HEXAGON_A2_sxth">; // // BUILTIN_INFO(HEXAGON.A2_combinew,DI_ftype_SISI,2) // def int_hexagon_A2_combinew : Hexagon_di_sisi_Intrinsic<"HEXAGON_A2_combinew">; // // BUILTIN_INFO(HEXAGON.A4_combineri,DI_ftype_SISI,2) // def int_hexagon_A4_combineri : Hexagon_di_sisi_Intrinsic<"HEXAGON_A4_combineri">; // // BUILTIN_INFO(HEXAGON.A4_combineir,DI_ftype_SISI,2) // def int_hexagon_A4_combineir : Hexagon_di_sisi_Intrinsic<"HEXAGON_A4_combineir">; // // BUILTIN_INFO(HEXAGON.A2_combineii,DI_ftype_SISI,2) // def int_hexagon_A2_combineii : Hexagon_di_sisi_Intrinsic<"HEXAGON_A2_combineii">; // // BUILTIN_INFO(HEXAGON.A2_combine_hh,SI_ftype_SISI,2) // def int_hexagon_A2_combine_hh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_combine_hh">; // // BUILTIN_INFO(HEXAGON.A2_combine_hl,SI_ftype_SISI,2) // def int_hexagon_A2_combine_hl : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_combine_hl">; // // BUILTIN_INFO(HEXAGON.A2_combine_lh,SI_ftype_SISI,2) // def int_hexagon_A2_combine_lh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_combine_lh">; // // BUILTIN_INFO(HEXAGON.A2_combine_ll,SI_ftype_SISI,2) // def int_hexagon_A2_combine_ll : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_combine_ll">; // // BUILTIN_INFO(HEXAGON.A2_tfril,SI_ftype_SISI,2) // def int_hexagon_A2_tfril : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_tfril">; // // BUILTIN_INFO(HEXAGON.A2_tfrih,SI_ftype_SISI,2) // def int_hexagon_A2_tfrih : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_tfrih">; // // BUILTIN_INFO(HEXAGON.A2_and,SI_ftype_SISI,2) // def int_hexagon_A2_and : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_and">; // // BUILTIN_INFO(HEXAGON.A2_or,SI_ftype_SISI,2) // def int_hexagon_A2_or : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_or">; // // BUILTIN_INFO(HEXAGON.A2_xor,SI_ftype_SISI,2) // def int_hexagon_A2_xor : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_xor">; // // BUILTIN_INFO(HEXAGON.A2_not,SI_ftype_SI,1) // def int_hexagon_A2_not : Hexagon_si_si_Intrinsic<"HEXAGON_A2_not">; // // BUILTIN_INFO(HEXAGON.M2_xor_xacc,SI_ftype_SISISI,3) // def int_hexagon_M2_xor_xacc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M2_xor_xacc">; // // BUILTIN_INFO(HEXAGON.M4_xor_xacc,DI_ftype_DIDIDI,3) // def int_hexagon_M4_xor_xacc : Hexagon_di_dididi_Intrinsic<"HEXAGON_M4_xor_xacc">; // // BUILTIN_INFO(HEXAGON.A4_andn,SI_ftype_SISI,2) // def int_hexagon_A4_andn : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_andn">; // // BUILTIN_INFO(HEXAGON.A4_orn,SI_ftype_SISI,2) // def int_hexagon_A4_orn : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_orn">; // // BUILTIN_INFO(HEXAGON.A4_andnp,DI_ftype_DIDI,2) // def int_hexagon_A4_andnp : Hexagon_di_didi_Intrinsic<"HEXAGON_A4_andnp">; // // BUILTIN_INFO(HEXAGON.A4_ornp,DI_ftype_DIDI,2) // def int_hexagon_A4_ornp : Hexagon_di_didi_Intrinsic<"HEXAGON_A4_ornp">; // // BUILTIN_INFO(HEXAGON.S4_addaddi,SI_ftype_SISISI,3) // def int_hexagon_S4_addaddi : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_addaddi">; // // BUILTIN_INFO(HEXAGON.S4_subaddi,SI_ftype_SISISI,3) // def int_hexagon_S4_subaddi : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_subaddi">; // // BUILTIN_INFO(HEXAGON.M4_and_and,SI_ftype_SISISI,3) // def int_hexagon_M4_and_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_and_and">; // // BUILTIN_INFO(HEXAGON.M4_and_andn,SI_ftype_SISISI,3) // def int_hexagon_M4_and_andn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_and_andn">; // // BUILTIN_INFO(HEXAGON.M4_and_or,SI_ftype_SISISI,3) // def int_hexagon_M4_and_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_and_or">; // // BUILTIN_INFO(HEXAGON.M4_and_xor,SI_ftype_SISISI,3) // def int_hexagon_M4_and_xor : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_and_xor">; // // BUILTIN_INFO(HEXAGON.M4_or_and,SI_ftype_SISISI,3) // def int_hexagon_M4_or_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_or_and">; // // BUILTIN_INFO(HEXAGON.M4_or_andn,SI_ftype_SISISI,3) // def int_hexagon_M4_or_andn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_or_andn">; // // BUILTIN_INFO(HEXAGON.M4_or_or,SI_ftype_SISISI,3) // def int_hexagon_M4_or_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_or_or">; // // BUILTIN_INFO(HEXAGON.M4_or_xor,SI_ftype_SISISI,3) // def int_hexagon_M4_or_xor : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_or_xor">; // // BUILTIN_INFO(HEXAGON.S4_or_andix,SI_ftype_SISISI,3) // def int_hexagon_S4_or_andix : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_or_andix">; // // BUILTIN_INFO(HEXAGON.S4_or_andi,SI_ftype_SISISI,3) // def int_hexagon_S4_or_andi : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_or_andi">; // // BUILTIN_INFO(HEXAGON.S4_or_ori,SI_ftype_SISISI,3) // def int_hexagon_S4_or_ori : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_or_ori">; // // BUILTIN_INFO(HEXAGON.M4_xor_and,SI_ftype_SISISI,3) // def int_hexagon_M4_xor_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_xor_and">; // // BUILTIN_INFO(HEXAGON.M4_xor_or,SI_ftype_SISISI,3) // def int_hexagon_M4_xor_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_xor_or">; // // BUILTIN_INFO(HEXAGON.M4_xor_andn,SI_ftype_SISISI,3) // def int_hexagon_M4_xor_andn : Hexagon_si_sisisi_Intrinsic<"HEXAGON_M4_xor_andn">; // // BUILTIN_INFO(HEXAGON.A2_subri,SI_ftype_SISI,2) // def int_hexagon_A2_subri : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_subri">; // // BUILTIN_INFO(HEXAGON.A2_andir,SI_ftype_SISI,2) // def int_hexagon_A2_andir : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_andir">; // // BUILTIN_INFO(HEXAGON.A2_orir,SI_ftype_SISI,2) // def int_hexagon_A2_orir : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_orir">; // // BUILTIN_INFO(HEXAGON.A2_andp,DI_ftype_DIDI,2) // def int_hexagon_A2_andp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_andp">; // // BUILTIN_INFO(HEXAGON.A2_orp,DI_ftype_DIDI,2) // def int_hexagon_A2_orp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_orp">; // // BUILTIN_INFO(HEXAGON.A2_xorp,DI_ftype_DIDI,2) // def int_hexagon_A2_xorp : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_xorp">; // // BUILTIN_INFO(HEXAGON.A2_notp,DI_ftype_DI,1) // def int_hexagon_A2_notp : Hexagon_di_di_Intrinsic<"HEXAGON_A2_notp">; // // BUILTIN_INFO(HEXAGON.A2_sxtw,DI_ftype_SI,1) // def int_hexagon_A2_sxtw : Hexagon_di_si_Intrinsic<"HEXAGON_A2_sxtw">; // // BUILTIN_INFO(HEXAGON.A2_sat,SI_ftype_DI,1) // def int_hexagon_A2_sat : Hexagon_si_di_Intrinsic<"HEXAGON_A2_sat">; // // BUILTIN_INFO(HEXAGON.A2_roundsat,SI_ftype_DI,1) // def int_hexagon_A2_roundsat : Hexagon_si_di_Intrinsic<"HEXAGON_A2_roundsat">; // // BUILTIN_INFO(HEXAGON.A2_sath,SI_ftype_SI,1) // def int_hexagon_A2_sath : Hexagon_si_si_Intrinsic<"HEXAGON_A2_sath">; // // BUILTIN_INFO(HEXAGON.A2_satuh,SI_ftype_SI,1) // def int_hexagon_A2_satuh : Hexagon_si_si_Intrinsic<"HEXAGON_A2_satuh">; // // BUILTIN_INFO(HEXAGON.A2_satub,SI_ftype_SI,1) // def int_hexagon_A2_satub : Hexagon_si_si_Intrinsic<"HEXAGON_A2_satub">; // // BUILTIN_INFO(HEXAGON.A2_satb,SI_ftype_SI,1) // def int_hexagon_A2_satb : Hexagon_si_si_Intrinsic<"HEXAGON_A2_satb">; // // BUILTIN_INFO(HEXAGON.A2_vaddub,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddub">; // // BUILTIN_INFO(HEXAGON.A2_vaddb_map,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddb_map : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddb_map">; // // BUILTIN_INFO(HEXAGON.A2_vaddubs,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddubs : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddubs">; // // BUILTIN_INFO(HEXAGON.A2_vaddh,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddh">; // // BUILTIN_INFO(HEXAGON.A2_vaddhs,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddhs : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddhs">; // // BUILTIN_INFO(HEXAGON.A2_vadduhs,DI_ftype_DIDI,2) // def int_hexagon_A2_vadduhs : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vadduhs">; // // BUILTIN_INFO(HEXAGON.A5_vaddhubs,SI_ftype_DIDI,2) // def int_hexagon_A5_vaddhubs : Hexagon_si_didi_Intrinsic<"HEXAGON_A5_vaddhubs">; // // BUILTIN_INFO(HEXAGON.A2_vaddw,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddw">; // // BUILTIN_INFO(HEXAGON.A2_vaddws,DI_ftype_DIDI,2) // def int_hexagon_A2_vaddws : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vaddws">; // // BUILTIN_INFO(HEXAGON.S4_vxaddsubw,DI_ftype_DIDI,2) // def int_hexagon_S4_vxaddsubw : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_vxaddsubw">; // // BUILTIN_INFO(HEXAGON.S4_vxsubaddw,DI_ftype_DIDI,2) // def int_hexagon_S4_vxsubaddw : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_vxsubaddw">; // // BUILTIN_INFO(HEXAGON.S4_vxaddsubh,DI_ftype_DIDI,2) // def int_hexagon_S4_vxaddsubh : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_vxaddsubh">; // // BUILTIN_INFO(HEXAGON.S4_vxsubaddh,DI_ftype_DIDI,2) // def int_hexagon_S4_vxsubaddh : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_vxsubaddh">; // // BUILTIN_INFO(HEXAGON.S4_vxaddsubhr,DI_ftype_DIDI,2) // def int_hexagon_S4_vxaddsubhr : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_vxaddsubhr">; // // BUILTIN_INFO(HEXAGON.S4_vxsubaddhr,DI_ftype_DIDI,2) // def int_hexagon_S4_vxsubaddhr : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_vxsubaddhr">; // // BUILTIN_INFO(HEXAGON.A2_svavgh,SI_ftype_SISI,2) // def int_hexagon_A2_svavgh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svavgh">; // // BUILTIN_INFO(HEXAGON.A2_svavghs,SI_ftype_SISI,2) // def int_hexagon_A2_svavghs : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svavghs">; // // BUILTIN_INFO(HEXAGON.A2_svnavgh,SI_ftype_SISI,2) // def int_hexagon_A2_svnavgh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svnavgh">; // // BUILTIN_INFO(HEXAGON.A2_svaddh,SI_ftype_SISI,2) // def int_hexagon_A2_svaddh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svaddh">; // // BUILTIN_INFO(HEXAGON.A2_svaddhs,SI_ftype_SISI,2) // def int_hexagon_A2_svaddhs : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svaddhs">; // // BUILTIN_INFO(HEXAGON.A2_svadduhs,SI_ftype_SISI,2) // def int_hexagon_A2_svadduhs : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svadduhs">; // // BUILTIN_INFO(HEXAGON.A2_svsubh,SI_ftype_SISI,2) // def int_hexagon_A2_svsubh : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svsubh">; // // BUILTIN_INFO(HEXAGON.A2_svsubhs,SI_ftype_SISI,2) // def int_hexagon_A2_svsubhs : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svsubhs">; // // BUILTIN_INFO(HEXAGON.A2_svsubuhs,SI_ftype_SISI,2) // def int_hexagon_A2_svsubuhs : Hexagon_si_sisi_Intrinsic<"HEXAGON_A2_svsubuhs">; // // BUILTIN_INFO(HEXAGON.A2_vraddub,DI_ftype_DIDI,2) // def int_hexagon_A2_vraddub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vraddub">; // // BUILTIN_INFO(HEXAGON.A2_vraddub_acc,DI_ftype_DIDIDI,3) // def int_hexagon_A2_vraddub_acc : Hexagon_di_dididi_Intrinsic<"HEXAGON_A2_vraddub_acc">; // // BUILTIN_INFO(HEXAGON.M2_vraddh,SI_ftype_DIDI,2) // def int_hexagon_M2_vraddh : Hexagon_si_didi_Intrinsic<"HEXAGON_M2_vraddh">; // // BUILTIN_INFO(HEXAGON.M2_vradduh,SI_ftype_DIDI,2) // def int_hexagon_M2_vradduh : Hexagon_si_didi_Intrinsic<"HEXAGON_M2_vradduh">; // // BUILTIN_INFO(HEXAGON.A2_vsubub,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubub">; // // BUILTIN_INFO(HEXAGON.A2_vsubb_map,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubb_map : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubb_map">; // // BUILTIN_INFO(HEXAGON.A2_vsububs,DI_ftype_DIDI,2) // def int_hexagon_A2_vsububs : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsububs">; // // BUILTIN_INFO(HEXAGON.A2_vsubh,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubh">; // // BUILTIN_INFO(HEXAGON.A2_vsubhs,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubhs : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubhs">; // // BUILTIN_INFO(HEXAGON.A2_vsubuhs,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubuhs : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubuhs">; // // BUILTIN_INFO(HEXAGON.A2_vsubw,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubw">; // // BUILTIN_INFO(HEXAGON.A2_vsubws,DI_ftype_DIDI,2) // def int_hexagon_A2_vsubws : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vsubws">; // // BUILTIN_INFO(HEXAGON.A2_vabsh,DI_ftype_DI,1) // def int_hexagon_A2_vabsh : Hexagon_di_di_Intrinsic<"HEXAGON_A2_vabsh">; // // BUILTIN_INFO(HEXAGON.A2_vabshsat,DI_ftype_DI,1) // def int_hexagon_A2_vabshsat : Hexagon_di_di_Intrinsic<"HEXAGON_A2_vabshsat">; // // BUILTIN_INFO(HEXAGON.A2_vabsw,DI_ftype_DI,1) // def int_hexagon_A2_vabsw : Hexagon_di_di_Intrinsic<"HEXAGON_A2_vabsw">; // // BUILTIN_INFO(HEXAGON.A2_vabswsat,DI_ftype_DI,1) // def int_hexagon_A2_vabswsat : Hexagon_di_di_Intrinsic<"HEXAGON_A2_vabswsat">; // // BUILTIN_INFO(HEXAGON.M2_vabsdiffw,DI_ftype_DIDI,2) // def int_hexagon_M2_vabsdiffw : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vabsdiffw">; // // BUILTIN_INFO(HEXAGON.M2_vabsdiffh,DI_ftype_DIDI,2) // def int_hexagon_M2_vabsdiffh : Hexagon_di_didi_Intrinsic<"HEXAGON_M2_vabsdiffh">; // // BUILTIN_INFO(HEXAGON.A2_vrsadub,DI_ftype_DIDI,2) // def int_hexagon_A2_vrsadub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vrsadub">; // // BUILTIN_INFO(HEXAGON.A2_vrsadub_acc,DI_ftype_DIDIDI,3) // def int_hexagon_A2_vrsadub_acc : Hexagon_di_dididi_Intrinsic<"HEXAGON_A2_vrsadub_acc">; // // BUILTIN_INFO(HEXAGON.A2_vavgub,DI_ftype_DIDI,2) // def int_hexagon_A2_vavgub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavgub">; // // BUILTIN_INFO(HEXAGON.A2_vavguh,DI_ftype_DIDI,2) // def int_hexagon_A2_vavguh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavguh">; // // BUILTIN_INFO(HEXAGON.A2_vavgh,DI_ftype_DIDI,2) // def int_hexagon_A2_vavgh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavgh">; // // BUILTIN_INFO(HEXAGON.A2_vnavgh,DI_ftype_DIDI,2) // def int_hexagon_A2_vnavgh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vnavgh">; // // BUILTIN_INFO(HEXAGON.A2_vavgw,DI_ftype_DIDI,2) // def int_hexagon_A2_vavgw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavgw">; // // BUILTIN_INFO(HEXAGON.A2_vnavgw,DI_ftype_DIDI,2) // def int_hexagon_A2_vnavgw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vnavgw">; // // BUILTIN_INFO(HEXAGON.A2_vavgwr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavgwr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavgwr">; // // BUILTIN_INFO(HEXAGON.A2_vnavgwr,DI_ftype_DIDI,2) // def int_hexagon_A2_vnavgwr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vnavgwr">; // // BUILTIN_INFO(HEXAGON.A2_vavgwcr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavgwcr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavgwcr">; // // BUILTIN_INFO(HEXAGON.A2_vnavgwcr,DI_ftype_DIDI,2) // def int_hexagon_A2_vnavgwcr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vnavgwcr">; // // BUILTIN_INFO(HEXAGON.A2_vavghcr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavghcr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavghcr">; // // BUILTIN_INFO(HEXAGON.A2_vnavghcr,DI_ftype_DIDI,2) // def int_hexagon_A2_vnavghcr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vnavghcr">; // // BUILTIN_INFO(HEXAGON.A2_vavguw,DI_ftype_DIDI,2) // def int_hexagon_A2_vavguw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavguw">; // // BUILTIN_INFO(HEXAGON.A2_vavguwr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavguwr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavguwr">; // // BUILTIN_INFO(HEXAGON.A2_vavgubr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavgubr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavgubr">; // // BUILTIN_INFO(HEXAGON.A2_vavguhr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavguhr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavguhr">; // // BUILTIN_INFO(HEXAGON.A2_vavghr,DI_ftype_DIDI,2) // def int_hexagon_A2_vavghr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vavghr">; // // BUILTIN_INFO(HEXAGON.A2_vnavghr,DI_ftype_DIDI,2) // def int_hexagon_A2_vnavghr : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vnavghr">; // // BUILTIN_INFO(HEXAGON.A4_round_ri,SI_ftype_SISI,2) // def int_hexagon_A4_round_ri : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_round_ri">; // // BUILTIN_INFO(HEXAGON.A4_round_rr,SI_ftype_SISI,2) // def int_hexagon_A4_round_rr : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_round_rr">; // // BUILTIN_INFO(HEXAGON.A4_round_ri_sat,SI_ftype_SISI,2) // def int_hexagon_A4_round_ri_sat : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_round_ri_sat">; // // BUILTIN_INFO(HEXAGON.A4_round_rr_sat,SI_ftype_SISI,2) // def int_hexagon_A4_round_rr_sat : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_round_rr_sat">; // // BUILTIN_INFO(HEXAGON.A4_cround_ri,SI_ftype_SISI,2) // def int_hexagon_A4_cround_ri : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cround_ri">; // // BUILTIN_INFO(HEXAGON.A4_cround_rr,SI_ftype_SISI,2) // def int_hexagon_A4_cround_rr : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_cround_rr">; // // BUILTIN_INFO(HEXAGON.A4_vrminh,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrminh : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrminh">; // // BUILTIN_INFO(HEXAGON.A4_vrmaxh,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrmaxh : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrmaxh">; // // BUILTIN_INFO(HEXAGON.A4_vrminuh,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrminuh : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrminuh">; // // BUILTIN_INFO(HEXAGON.A4_vrmaxuh,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrmaxuh : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrmaxuh">; // // BUILTIN_INFO(HEXAGON.A4_vrminw,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrminw : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrminw">; // // BUILTIN_INFO(HEXAGON.A4_vrmaxw,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrmaxw : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrmaxw">; // // BUILTIN_INFO(HEXAGON.A4_vrminuw,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrminuw : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrminuw">; // // BUILTIN_INFO(HEXAGON.A4_vrmaxuw,DI_ftype_DIDISI,3) // def int_hexagon_A4_vrmaxuw : Hexagon_di_didisi_Intrinsic<"HEXAGON_A4_vrmaxuw">; // // BUILTIN_INFO(HEXAGON.A2_vminb,DI_ftype_DIDI,2) // def int_hexagon_A2_vminb : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vminb">; // // BUILTIN_INFO(HEXAGON.A2_vmaxb,DI_ftype_DIDI,2) // def int_hexagon_A2_vmaxb : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vmaxb">; // // BUILTIN_INFO(HEXAGON.A2_vminub,DI_ftype_DIDI,2) // def int_hexagon_A2_vminub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vminub">; // // BUILTIN_INFO(HEXAGON.A2_vmaxub,DI_ftype_DIDI,2) // def int_hexagon_A2_vmaxub : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vmaxub">; // // BUILTIN_INFO(HEXAGON.A2_vminh,DI_ftype_DIDI,2) // def int_hexagon_A2_vminh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vminh">; // // BUILTIN_INFO(HEXAGON.A2_vmaxh,DI_ftype_DIDI,2) // def int_hexagon_A2_vmaxh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vmaxh">; // // BUILTIN_INFO(HEXAGON.A2_vminuh,DI_ftype_DIDI,2) // def int_hexagon_A2_vminuh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vminuh">; // // BUILTIN_INFO(HEXAGON.A2_vmaxuh,DI_ftype_DIDI,2) // def int_hexagon_A2_vmaxuh : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vmaxuh">; // // BUILTIN_INFO(HEXAGON.A2_vminw,DI_ftype_DIDI,2) // def int_hexagon_A2_vminw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vminw">; // // BUILTIN_INFO(HEXAGON.A2_vmaxw,DI_ftype_DIDI,2) // def int_hexagon_A2_vmaxw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vmaxw">; // // BUILTIN_INFO(HEXAGON.A2_vminuw,DI_ftype_DIDI,2) // def int_hexagon_A2_vminuw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vminuw">; // // BUILTIN_INFO(HEXAGON.A2_vmaxuw,DI_ftype_DIDI,2) // def int_hexagon_A2_vmaxuw : Hexagon_di_didi_Intrinsic<"HEXAGON_A2_vmaxuw">; // // BUILTIN_INFO(HEXAGON.A4_modwrapu,SI_ftype_SISI,2) // def int_hexagon_A4_modwrapu : Hexagon_si_sisi_Intrinsic<"HEXAGON_A4_modwrapu">; // // BUILTIN_INFO(HEXAGON.F2_sfadd,SF_ftype_SFSF,2) // def int_hexagon_F2_sfadd : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sfadd">; // // BUILTIN_INFO(HEXAGON.F2_sfsub,SF_ftype_SFSF,2) // def int_hexagon_F2_sfsub : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sfsub">; // // BUILTIN_INFO(HEXAGON.F2_sfmpy,SF_ftype_SFSF,2) // def int_hexagon_F2_sfmpy : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sfmpy">; // // BUILTIN_INFO(HEXAGON.F2_sffma,SF_ftype_SFSFSF,3) // def int_hexagon_F2_sffma : Hexagon_sf_sfsfsf_Intrinsic<"HEXAGON_F2_sffma">; // // BUILTIN_INFO(HEXAGON.F2_sffma_sc,SF_ftype_SFSFSFQI,4) // def int_hexagon_F2_sffma_sc : Hexagon_sf_sfsfsfqi_Intrinsic<"HEXAGON_F2_sffma_sc">; // // BUILTIN_INFO(HEXAGON.F2_sffms,SF_ftype_SFSFSF,3) // def int_hexagon_F2_sffms : Hexagon_sf_sfsfsf_Intrinsic<"HEXAGON_F2_sffms">; // // BUILTIN_INFO(HEXAGON.F2_sffma_lib,SF_ftype_SFSFSF,3) // def int_hexagon_F2_sffma_lib : Hexagon_sf_sfsfsf_Intrinsic<"HEXAGON_F2_sffma_lib">; // // BUILTIN_INFO(HEXAGON.F2_sffms_lib,SF_ftype_SFSFSF,3) // def int_hexagon_F2_sffms_lib : Hexagon_sf_sfsfsf_Intrinsic<"HEXAGON_F2_sffms_lib">; // // BUILTIN_INFO(HEXAGON.F2_sfcmpeq,QI_ftype_SFSF,2) // def int_hexagon_F2_sfcmpeq : Hexagon_si_sfsf_Intrinsic<"HEXAGON_F2_sfcmpeq">; // // BUILTIN_INFO(HEXAGON.F2_sfcmpgt,QI_ftype_SFSF,2) // def int_hexagon_F2_sfcmpgt : Hexagon_si_sfsf_Intrinsic<"HEXAGON_F2_sfcmpgt">; // // BUILTIN_INFO(HEXAGON.F2_sfcmpge,QI_ftype_SFSF,2) // def int_hexagon_F2_sfcmpge : Hexagon_si_sfsf_Intrinsic<"HEXAGON_F2_sfcmpge">; // // BUILTIN_INFO(HEXAGON.F2_sfcmpuo,QI_ftype_SFSF,2) // def int_hexagon_F2_sfcmpuo : Hexagon_si_sfsf_Intrinsic<"HEXAGON_F2_sfcmpuo">; // // BUILTIN_INFO(HEXAGON.F2_sfmax,SF_ftype_SFSF,2) // def int_hexagon_F2_sfmax : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sfmax">; // // BUILTIN_INFO(HEXAGON.F2_sfmin,SF_ftype_SFSF,2) // def int_hexagon_F2_sfmin : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sfmin">; // // BUILTIN_INFO(HEXAGON.F2_sfclass,QI_ftype_SFSI,2) // def int_hexagon_F2_sfclass : Hexagon_si_sfsi_Intrinsic<"HEXAGON_F2_sfclass">; // // BUILTIN_INFO(HEXAGON.F2_sfimm_p,SF_ftype_SI,1) // def int_hexagon_F2_sfimm_p : Hexagon_sf_si_Intrinsic<"HEXAGON_F2_sfimm_p">; // // BUILTIN_INFO(HEXAGON.F2_sfimm_n,SF_ftype_SI,1) // def int_hexagon_F2_sfimm_n : Hexagon_sf_si_Intrinsic<"HEXAGON_F2_sfimm_n">; // // BUILTIN_INFO(HEXAGON.F2_sffixupn,SF_ftype_SFSF,2) // def int_hexagon_F2_sffixupn : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sffixupn">; // // BUILTIN_INFO(HEXAGON.F2_sffixupd,SF_ftype_SFSF,2) // def int_hexagon_F2_sffixupd : Hexagon_sf_sfsf_Intrinsic<"HEXAGON_F2_sffixupd">; // // BUILTIN_INFO(HEXAGON.F2_sffixupr,SF_ftype_SF,1) // def int_hexagon_F2_sffixupr : Hexagon_sf_sf_Intrinsic<"HEXAGON_F2_sffixupr">; // // BUILTIN_INFO(HEXAGON.F2_dfcmpeq,QI_ftype_DFDF,2) // def int_hexagon_F2_dfcmpeq : Hexagon_si_dfdf_Intrinsic<"HEXAGON_F2_dfcmpeq">; // // BUILTIN_INFO(HEXAGON.F2_dfcmpgt,QI_ftype_DFDF,2) // def int_hexagon_F2_dfcmpgt : Hexagon_si_dfdf_Intrinsic<"HEXAGON_F2_dfcmpgt">; // // BUILTIN_INFO(HEXAGON.F2_dfcmpge,QI_ftype_DFDF,2) // def int_hexagon_F2_dfcmpge : Hexagon_si_dfdf_Intrinsic<"HEXAGON_F2_dfcmpge">; // // BUILTIN_INFO(HEXAGON.F2_dfcmpuo,QI_ftype_DFDF,2) // def int_hexagon_F2_dfcmpuo : Hexagon_si_dfdf_Intrinsic<"HEXAGON_F2_dfcmpuo">; // // BUILTIN_INFO(HEXAGON.F2_dfclass,QI_ftype_DFSI,2) // def int_hexagon_F2_dfclass : Hexagon_si_dfsi_Intrinsic<"HEXAGON_F2_dfclass">; // // BUILTIN_INFO(HEXAGON.F2_dfimm_p,DF_ftype_SI,1) // def int_hexagon_F2_dfimm_p : Hexagon_df_si_Intrinsic<"HEXAGON_F2_dfimm_p">; // // BUILTIN_INFO(HEXAGON.F2_dfimm_n,DF_ftype_SI,1) // def int_hexagon_F2_dfimm_n : Hexagon_df_si_Intrinsic<"HEXAGON_F2_dfimm_n">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2df,DF_ftype_SF,1) // def int_hexagon_F2_conv_sf2df : Hexagon_df_sf_Intrinsic<"HEXAGON_F2_conv_sf2df">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2sf,SF_ftype_DF,1) // def int_hexagon_F2_conv_df2sf : Hexagon_sf_df_Intrinsic<"HEXAGON_F2_conv_df2sf">; // // BUILTIN_INFO(HEXAGON.F2_conv_uw2sf,SF_ftype_SI,1) // def int_hexagon_F2_conv_uw2sf : Hexagon_sf_si_Intrinsic<"HEXAGON_F2_conv_uw2sf">; // // BUILTIN_INFO(HEXAGON.F2_conv_uw2df,DF_ftype_SI,1) // def int_hexagon_F2_conv_uw2df : Hexagon_df_si_Intrinsic<"HEXAGON_F2_conv_uw2df">; // // BUILTIN_INFO(HEXAGON.F2_conv_w2sf,SF_ftype_SI,1) // def int_hexagon_F2_conv_w2sf : Hexagon_sf_si_Intrinsic<"HEXAGON_F2_conv_w2sf">; // // BUILTIN_INFO(HEXAGON.F2_conv_w2df,DF_ftype_SI,1) // def int_hexagon_F2_conv_w2df : Hexagon_df_si_Intrinsic<"HEXAGON_F2_conv_w2df">; // // BUILTIN_INFO(HEXAGON.F2_conv_ud2sf,SF_ftype_DI,1) // def int_hexagon_F2_conv_ud2sf : Hexagon_sf_di_Intrinsic<"HEXAGON_F2_conv_ud2sf">; // // BUILTIN_INFO(HEXAGON.F2_conv_ud2df,DF_ftype_DI,1) // def int_hexagon_F2_conv_ud2df : Hexagon_df_di_Intrinsic<"HEXAGON_F2_conv_ud2df">; // // BUILTIN_INFO(HEXAGON.F2_conv_d2sf,SF_ftype_DI,1) // def int_hexagon_F2_conv_d2sf : Hexagon_sf_di_Intrinsic<"HEXAGON_F2_conv_d2sf">; // // BUILTIN_INFO(HEXAGON.F2_conv_d2df,DF_ftype_DI,1) // def int_hexagon_F2_conv_d2df : Hexagon_df_di_Intrinsic<"HEXAGON_F2_conv_d2df">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2uw,SI_ftype_SF,1) // def int_hexagon_F2_conv_sf2uw : Hexagon_si_sf_Intrinsic<"HEXAGON_F2_conv_sf2uw">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2w,SI_ftype_SF,1) // def int_hexagon_F2_conv_sf2w : Hexagon_si_sf_Intrinsic<"HEXAGON_F2_conv_sf2w">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2ud,DI_ftype_SF,1) // def int_hexagon_F2_conv_sf2ud : Hexagon_di_sf_Intrinsic<"HEXAGON_F2_conv_sf2ud">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2d,DI_ftype_SF,1) // def int_hexagon_F2_conv_sf2d : Hexagon_di_sf_Intrinsic<"HEXAGON_F2_conv_sf2d">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2uw,SI_ftype_DF,1) // def int_hexagon_F2_conv_df2uw : Hexagon_si_df_Intrinsic<"HEXAGON_F2_conv_df2uw">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2w,SI_ftype_DF,1) // def int_hexagon_F2_conv_df2w : Hexagon_si_df_Intrinsic<"HEXAGON_F2_conv_df2w">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2ud,DI_ftype_DF,1) // def int_hexagon_F2_conv_df2ud : Hexagon_di_df_Intrinsic<"HEXAGON_F2_conv_df2ud">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2d,DI_ftype_DF,1) // def int_hexagon_F2_conv_df2d : Hexagon_di_df_Intrinsic<"HEXAGON_F2_conv_df2d">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2uw_chop,SI_ftype_SF,1) // def int_hexagon_F2_conv_sf2uw_chop : Hexagon_si_sf_Intrinsic<"HEXAGON_F2_conv_sf2uw_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2w_chop,SI_ftype_SF,1) // def int_hexagon_F2_conv_sf2w_chop : Hexagon_si_sf_Intrinsic<"HEXAGON_F2_conv_sf2w_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2ud_chop,DI_ftype_SF,1) // def int_hexagon_F2_conv_sf2ud_chop : Hexagon_di_sf_Intrinsic<"HEXAGON_F2_conv_sf2ud_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_sf2d_chop,DI_ftype_SF,1) // def int_hexagon_F2_conv_sf2d_chop : Hexagon_di_sf_Intrinsic<"HEXAGON_F2_conv_sf2d_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2uw_chop,SI_ftype_DF,1) // def int_hexagon_F2_conv_df2uw_chop : Hexagon_si_df_Intrinsic<"HEXAGON_F2_conv_df2uw_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2w_chop,SI_ftype_DF,1) // def int_hexagon_F2_conv_df2w_chop : Hexagon_si_df_Intrinsic<"HEXAGON_F2_conv_df2w_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2ud_chop,DI_ftype_DF,1) // def int_hexagon_F2_conv_df2ud_chop : Hexagon_di_df_Intrinsic<"HEXAGON_F2_conv_df2ud_chop">; // // BUILTIN_INFO(HEXAGON.F2_conv_df2d_chop,DI_ftype_DF,1) // def int_hexagon_F2_conv_df2d_chop : Hexagon_di_df_Intrinsic<"HEXAGON_F2_conv_df2d_chop">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_r,SI_ftype_SISI,2) // def int_hexagon_S2_asr_r_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asr_r_r">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_r,SI_ftype_SISI,2) // def int_hexagon_S2_asl_r_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asl_r_r">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_r,SI_ftype_SISI,2) // def int_hexagon_S2_lsr_r_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_lsr_r_r">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_r,SI_ftype_SISI,2) // def int_hexagon_S2_lsl_r_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_lsl_r_r">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_p,DI_ftype_DISI,2) // def int_hexagon_S2_asr_r_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_r_p">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_p,DI_ftype_DISI,2) // def int_hexagon_S2_asl_r_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asl_r_p">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_p,DI_ftype_DISI,2) // def int_hexagon_S2_lsr_r_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsr_r_p">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_p,DI_ftype_DISI,2) // def int_hexagon_S2_lsl_r_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsl_r_p">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_r_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_r_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_r_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_r_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_r_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_r_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_lsl_r_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsl_r_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_r_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_r_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_r_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_r_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_r_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_r_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsl_r_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsl_r_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_r_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_r_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_r_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_r_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_r_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_r_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_lsl_r_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsl_r_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_r_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_r_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_r_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_r_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_r_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_r_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsl_r_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsl_r_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_r_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_r_r_and">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_r_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_r_r_and">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_r_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_r_r_and">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_lsl_r_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsl_r_r_and">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_r_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_r_r_or">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_r_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_r_r_or">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_r_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_r_r_or">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_lsl_r_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsl_r_r_or">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_r_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_r_p_and">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_r_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_r_p_and">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_r_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_r_p_and">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsl_r_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsl_r_p_and">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_r_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_r_p_or">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_r_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_r_p_or">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_r_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_r_p_or">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsl_r_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsl_r_p_or">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_p_xor,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_r_p_xor : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_r_p_xor">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_p_xor,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_r_p_xor : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_r_p_xor">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_p_xor,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_r_p_xor : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_r_p_xor">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_p_xor,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsl_r_p_xor : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsl_r_p_xor">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_r_sat,SI_ftype_SISI,2) // def int_hexagon_S2_asr_r_r_sat : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asr_r_r_sat">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_r_sat,SI_ftype_SISI,2) // def int_hexagon_S2_asl_r_r_sat : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asl_r_r_sat">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r,SI_ftype_SISI,2) // def int_hexagon_S2_asr_i_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asr_i_r">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_r,SI_ftype_SISI,2) // def int_hexagon_S2_lsr_i_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_lsr_i_r">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r,SI_ftype_SISI,2) // def int_hexagon_S2_asl_i_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asl_i_r">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p,DI_ftype_DISI,2) // def int_hexagon_S2_asr_i_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_i_p">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_p,DI_ftype_DISI,2) // def int_hexagon_S2_lsr_i_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsr_i_p">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_p,DI_ftype_DISI,2) // def int_hexagon_S2_asl_i_p : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asl_i_p">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_i_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_i_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_i_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_i_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r_acc,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_i_r_acc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_i_r_acc">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_i_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_i_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_i_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_i_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_p_acc,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_i_p_acc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_i_p_acc">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_i_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_i_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_i_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_i_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r_nac,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_i_r_nac : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_i_r_nac">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_i_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_i_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_i_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_i_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_p_nac,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_i_p_nac : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_i_p_nac">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_r_xacc,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_i_r_xacc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_i_r_xacc">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r_xacc,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_i_r_xacc : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_i_r_xacc">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_p_xacc,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_i_p_xacc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_i_p_xacc">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_p_xacc,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_i_p_xacc : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_i_p_xacc">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_i_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_i_r_and">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_i_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_i_r_and">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r_and,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_i_r_and : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_i_r_and">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_asr_i_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asr_i_r_or">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_lsr_i_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_lsr_i_r_or">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r_or,SI_ftype_SISISI,3) // def int_hexagon_S2_asl_i_r_or : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_asl_i_r_or">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_i_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_i_p_and">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_i_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_i_p_and">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_p_and,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_i_p_and : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_i_p_and">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_asr_i_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asr_i_p_or">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_lsr_i_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_lsr_i_p_or">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_p_or,DI_ftype_DIDISI,3) // def int_hexagon_S2_asl_i_p_or : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_asl_i_p_or">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_r_sat,SI_ftype_SISI,2) // def int_hexagon_S2_asl_i_r_sat : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asl_i_r_sat">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r_rnd,SI_ftype_SISI,2) // def int_hexagon_S2_asr_i_r_rnd : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asr_i_r_rnd">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_r_rnd_goodsyntax,SI_ftype_SISI,2) // def int_hexagon_S2_asr_i_r_rnd_goodsyntax : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_asr_i_r_rnd_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p_rnd,DI_ftype_DISI,2) // def int_hexagon_S2_asr_i_p_rnd : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_i_p_rnd">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_p_rnd_goodsyntax,DI_ftype_DISI,2) // def int_hexagon_S2_asr_i_p_rnd_goodsyntax : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_i_p_rnd_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S4_lsli,SI_ftype_SISI,2) // def int_hexagon_S4_lsli : Hexagon_si_sisi_Intrinsic<"HEXAGON_S4_lsli">; // // BUILTIN_INFO(HEXAGON.S2_addasl_rrri,SI_ftype_SISISI,3) // def int_hexagon_S2_addasl_rrri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_addasl_rrri">; // // BUILTIN_INFO(HEXAGON.S4_andi_asl_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_andi_asl_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_andi_asl_ri">; // // BUILTIN_INFO(HEXAGON.S4_ori_asl_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_ori_asl_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_ori_asl_ri">; // // BUILTIN_INFO(HEXAGON.S4_addi_asl_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_addi_asl_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_addi_asl_ri">; // // BUILTIN_INFO(HEXAGON.S4_subi_asl_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_subi_asl_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_subi_asl_ri">; // // BUILTIN_INFO(HEXAGON.S4_andi_lsr_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_andi_lsr_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_andi_lsr_ri">; // // BUILTIN_INFO(HEXAGON.S4_ori_lsr_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_ori_lsr_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_ori_lsr_ri">; // // BUILTIN_INFO(HEXAGON.S4_addi_lsr_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_addi_lsr_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_addi_lsr_ri">; // // BUILTIN_INFO(HEXAGON.S4_subi_lsr_ri,SI_ftype_SISISI,3) // def int_hexagon_S4_subi_lsr_ri : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_subi_lsr_ri">; // // BUILTIN_INFO(HEXAGON.S2_valignib,DI_ftype_DIDISI,3) // def int_hexagon_S2_valignib : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_valignib">; // // BUILTIN_INFO(HEXAGON.S2_valignrb,DI_ftype_DIDIQI,3) // def int_hexagon_S2_valignrb : Hexagon_di_didiqi_Intrinsic<"HEXAGON_S2_valignrb">; // // BUILTIN_INFO(HEXAGON.S2_vspliceib,DI_ftype_DIDISI,3) // def int_hexagon_S2_vspliceib : Hexagon_di_didisi_Intrinsic<"HEXAGON_S2_vspliceib">; // // BUILTIN_INFO(HEXAGON.S2_vsplicerb,DI_ftype_DIDIQI,3) // def int_hexagon_S2_vsplicerb : Hexagon_di_didiqi_Intrinsic<"HEXAGON_S2_vsplicerb">; // // BUILTIN_INFO(HEXAGON.S2_vsplatrh,DI_ftype_SI,1) // def int_hexagon_S2_vsplatrh : Hexagon_di_si_Intrinsic<"HEXAGON_S2_vsplatrh">; // // BUILTIN_INFO(HEXAGON.S2_vsplatrb,SI_ftype_SI,1) // def int_hexagon_S2_vsplatrb : Hexagon_si_si_Intrinsic<"HEXAGON_S2_vsplatrb">; // // BUILTIN_INFO(HEXAGON.S2_insert,SI_ftype_SISISISI,4) // def int_hexagon_S2_insert : Hexagon_si_sisisisi_Intrinsic<"HEXAGON_S2_insert">; // // BUILTIN_INFO(HEXAGON.S2_tableidxb_goodsyntax,SI_ftype_SISISISI,4) // def int_hexagon_S2_tableidxb_goodsyntax : Hexagon_si_sisisisi_Intrinsic<"HEXAGON_S2_tableidxb_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S2_tableidxh_goodsyntax,SI_ftype_SISISISI,4) // def int_hexagon_S2_tableidxh_goodsyntax : Hexagon_si_sisisisi_Intrinsic<"HEXAGON_S2_tableidxh_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S2_tableidxw_goodsyntax,SI_ftype_SISISISI,4) // def int_hexagon_S2_tableidxw_goodsyntax : Hexagon_si_sisisisi_Intrinsic<"HEXAGON_S2_tableidxw_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S2_tableidxd_goodsyntax,SI_ftype_SISISISI,4) // def int_hexagon_S2_tableidxd_goodsyntax : Hexagon_si_sisisisi_Intrinsic<"HEXAGON_S2_tableidxd_goodsyntax">; // // BUILTIN_INFO(HEXAGON.A4_bitspliti,DI_ftype_SISI,2) // def int_hexagon_A4_bitspliti : Hexagon_di_sisi_Intrinsic<"HEXAGON_A4_bitspliti">; // // BUILTIN_INFO(HEXAGON.A4_bitsplit,DI_ftype_SISI,2) // def int_hexagon_A4_bitsplit : Hexagon_di_sisi_Intrinsic<"HEXAGON_A4_bitsplit">; // // BUILTIN_INFO(HEXAGON.S4_extract,SI_ftype_SISISI,3) // def int_hexagon_S4_extract : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S4_extract">; // // BUILTIN_INFO(HEXAGON.S2_extractu,SI_ftype_SISISI,3) // def int_hexagon_S2_extractu : Hexagon_si_sisisi_Intrinsic<"HEXAGON_S2_extractu">; // // BUILTIN_INFO(HEXAGON.S2_insertp,DI_ftype_DIDISISI,4) // def int_hexagon_S2_insertp : Hexagon_di_didisisi_Intrinsic<"HEXAGON_S2_insertp">; // // BUILTIN_INFO(HEXAGON.S4_extractp,DI_ftype_DISISI,3) // def int_hexagon_S4_extractp : Hexagon_di_disisi_Intrinsic<"HEXAGON_S4_extractp">; // // BUILTIN_INFO(HEXAGON.S2_extractup,DI_ftype_DISISI,3) // def int_hexagon_S2_extractup : Hexagon_di_disisi_Intrinsic<"HEXAGON_S2_extractup">; // // BUILTIN_INFO(HEXAGON.S2_insert_rp,SI_ftype_SISIDI,3) // def int_hexagon_S2_insert_rp : Hexagon_si_sisidi_Intrinsic<"HEXAGON_S2_insert_rp">; // // BUILTIN_INFO(HEXAGON.S4_extract_rp,SI_ftype_SIDI,2) // def int_hexagon_S4_extract_rp : Hexagon_si_sidi_Intrinsic<"HEXAGON_S4_extract_rp">; // // BUILTIN_INFO(HEXAGON.S2_extractu_rp,SI_ftype_SIDI,2) // def int_hexagon_S2_extractu_rp : Hexagon_si_sidi_Intrinsic<"HEXAGON_S2_extractu_rp">; // // BUILTIN_INFO(HEXAGON.S2_insertp_rp,DI_ftype_DIDIDI,3) // def int_hexagon_S2_insertp_rp : Hexagon_di_dididi_Intrinsic<"HEXAGON_S2_insertp_rp">; // // BUILTIN_INFO(HEXAGON.S4_extractp_rp,DI_ftype_DIDI,2) // def int_hexagon_S4_extractp_rp : Hexagon_di_didi_Intrinsic<"HEXAGON_S4_extractp_rp">; // // BUILTIN_INFO(HEXAGON.S2_extractup_rp,DI_ftype_DIDI,2) // def int_hexagon_S2_extractup_rp : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_extractup_rp">; // // BUILTIN_INFO(HEXAGON.S2_tstbit_i,QI_ftype_SISI,2) // def int_hexagon_S2_tstbit_i : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_tstbit_i">; // // BUILTIN_INFO(HEXAGON.S4_ntstbit_i,QI_ftype_SISI,2) // def int_hexagon_S4_ntstbit_i : Hexagon_si_sisi_Intrinsic<"HEXAGON_S4_ntstbit_i">; // // BUILTIN_INFO(HEXAGON.S2_setbit_i,SI_ftype_SISI,2) // def int_hexagon_S2_setbit_i : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_setbit_i">; // // BUILTIN_INFO(HEXAGON.S2_togglebit_i,SI_ftype_SISI,2) // def int_hexagon_S2_togglebit_i : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_togglebit_i">; // // BUILTIN_INFO(HEXAGON.S2_clrbit_i,SI_ftype_SISI,2) // def int_hexagon_S2_clrbit_i : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_clrbit_i">; // // BUILTIN_INFO(HEXAGON.S2_tstbit_r,QI_ftype_SISI,2) // def int_hexagon_S2_tstbit_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_tstbit_r">; // // BUILTIN_INFO(HEXAGON.S4_ntstbit_r,QI_ftype_SISI,2) // def int_hexagon_S4_ntstbit_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S4_ntstbit_r">; // // BUILTIN_INFO(HEXAGON.S2_setbit_r,SI_ftype_SISI,2) // def int_hexagon_S2_setbit_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_setbit_r">; // // BUILTIN_INFO(HEXAGON.S2_togglebit_r,SI_ftype_SISI,2) // def int_hexagon_S2_togglebit_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_togglebit_r">; // // BUILTIN_INFO(HEXAGON.S2_clrbit_r,SI_ftype_SISI,2) // def int_hexagon_S2_clrbit_r : Hexagon_si_sisi_Intrinsic<"HEXAGON_S2_clrbit_r">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_vh,DI_ftype_DISI,2) // def int_hexagon_S2_asr_i_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_i_vh">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_vh,DI_ftype_DISI,2) // def int_hexagon_S2_lsr_i_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsr_i_vh">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_vh,DI_ftype_DISI,2) // def int_hexagon_S2_asl_i_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asl_i_vh">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_vh,DI_ftype_DISI,2) // def int_hexagon_S2_asr_r_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_r_vh">; // // BUILTIN_INFO(HEXAGON.S5_asrhub_rnd_sat_goodsyntax,SI_ftype_DISI,2) // def int_hexagon_S5_asrhub_rnd_sat_goodsyntax : Hexagon_si_disi_Intrinsic<"HEXAGON_S5_asrhub_rnd_sat_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S5_asrhub_sat,SI_ftype_DISI,2) // def int_hexagon_S5_asrhub_sat : Hexagon_si_disi_Intrinsic<"HEXAGON_S5_asrhub_sat">; // // BUILTIN_INFO(HEXAGON.S5_vasrhrnd_goodsyntax,DI_ftype_DISI,2) // def int_hexagon_S5_vasrhrnd_goodsyntax : Hexagon_di_disi_Intrinsic<"HEXAGON_S5_vasrhrnd_goodsyntax">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_vh,DI_ftype_DISI,2) // def int_hexagon_S2_asl_r_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asl_r_vh">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_vh,DI_ftype_DISI,2) // def int_hexagon_S2_lsr_r_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsr_r_vh">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_vh,DI_ftype_DISI,2) // def int_hexagon_S2_lsl_r_vh : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsl_r_vh">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_vw,DI_ftype_DISI,2) // def int_hexagon_S2_asr_i_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_i_vw">; // // BUILTIN_INFO(HEXAGON.S2_asr_i_svw_trun,SI_ftype_DISI,2) // def int_hexagon_S2_asr_i_svw_trun : Hexagon_si_disi_Intrinsic<"HEXAGON_S2_asr_i_svw_trun">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_svw_trun,SI_ftype_DISI,2) // def int_hexagon_S2_asr_r_svw_trun : Hexagon_si_disi_Intrinsic<"HEXAGON_S2_asr_r_svw_trun">; // // BUILTIN_INFO(HEXAGON.S2_lsr_i_vw,DI_ftype_DISI,2) // def int_hexagon_S2_lsr_i_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsr_i_vw">; // // BUILTIN_INFO(HEXAGON.S2_asl_i_vw,DI_ftype_DISI,2) // def int_hexagon_S2_asl_i_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asl_i_vw">; // // BUILTIN_INFO(HEXAGON.S2_asr_r_vw,DI_ftype_DISI,2) // def int_hexagon_S2_asr_r_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asr_r_vw">; // // BUILTIN_INFO(HEXAGON.S2_asl_r_vw,DI_ftype_DISI,2) // def int_hexagon_S2_asl_r_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_asl_r_vw">; // // BUILTIN_INFO(HEXAGON.S2_lsr_r_vw,DI_ftype_DISI,2) // def int_hexagon_S2_lsr_r_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsr_r_vw">; // // BUILTIN_INFO(HEXAGON.S2_lsl_r_vw,DI_ftype_DISI,2) // def int_hexagon_S2_lsl_r_vw : Hexagon_di_disi_Intrinsic<"HEXAGON_S2_lsl_r_vw">; // // BUILTIN_INFO(HEXAGON.S2_vrndpackwh,SI_ftype_DI,1) // def int_hexagon_S2_vrndpackwh : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vrndpackwh">; // // BUILTIN_INFO(HEXAGON.S2_vrndpackwhs,SI_ftype_DI,1) // def int_hexagon_S2_vrndpackwhs : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vrndpackwhs">; // // BUILTIN_INFO(HEXAGON.S2_vsxtbh,DI_ftype_SI,1) // def int_hexagon_S2_vsxtbh : Hexagon_di_si_Intrinsic<"HEXAGON_S2_vsxtbh">; // // BUILTIN_INFO(HEXAGON.S2_vzxtbh,DI_ftype_SI,1) // def int_hexagon_S2_vzxtbh : Hexagon_di_si_Intrinsic<"HEXAGON_S2_vzxtbh">; // // BUILTIN_INFO(HEXAGON.S2_vsathub,SI_ftype_DI,1) // def int_hexagon_S2_vsathub : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vsathub">; // // BUILTIN_INFO(HEXAGON.S2_svsathub,SI_ftype_SI,1) // def int_hexagon_S2_svsathub : Hexagon_si_si_Intrinsic<"HEXAGON_S2_svsathub">; // // BUILTIN_INFO(HEXAGON.S2_svsathb,SI_ftype_SI,1) // def int_hexagon_S2_svsathb : Hexagon_si_si_Intrinsic<"HEXAGON_S2_svsathb">; // // BUILTIN_INFO(HEXAGON.S2_vsathb,SI_ftype_DI,1) // def int_hexagon_S2_vsathb : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vsathb">; // // BUILTIN_INFO(HEXAGON.S2_vtrunohb,SI_ftype_DI,1) // def int_hexagon_S2_vtrunohb : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vtrunohb">; // // BUILTIN_INFO(HEXAGON.S2_vtrunewh,DI_ftype_DIDI,2) // def int_hexagon_S2_vtrunewh : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_vtrunewh">; // // BUILTIN_INFO(HEXAGON.S2_vtrunowh,DI_ftype_DIDI,2) // def int_hexagon_S2_vtrunowh : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_vtrunowh">; // // BUILTIN_INFO(HEXAGON.S2_vtrunehb,SI_ftype_DI,1) // def int_hexagon_S2_vtrunehb : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vtrunehb">; // // BUILTIN_INFO(HEXAGON.S2_vsxthw,DI_ftype_SI,1) // def int_hexagon_S2_vsxthw : Hexagon_di_si_Intrinsic<"HEXAGON_S2_vsxthw">; // // BUILTIN_INFO(HEXAGON.S2_vzxthw,DI_ftype_SI,1) // def int_hexagon_S2_vzxthw : Hexagon_di_si_Intrinsic<"HEXAGON_S2_vzxthw">; // // BUILTIN_INFO(HEXAGON.S2_vsatwh,SI_ftype_DI,1) // def int_hexagon_S2_vsatwh : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vsatwh">; // // BUILTIN_INFO(HEXAGON.S2_vsatwuh,SI_ftype_DI,1) // def int_hexagon_S2_vsatwuh : Hexagon_si_di_Intrinsic<"HEXAGON_S2_vsatwuh">; // // BUILTIN_INFO(HEXAGON.S2_packhl,DI_ftype_SISI,2) // def int_hexagon_S2_packhl : Hexagon_di_sisi_Intrinsic<"HEXAGON_S2_packhl">; // // BUILTIN_INFO(HEXAGON.A2_swiz,SI_ftype_SI,1) // def int_hexagon_A2_swiz : Hexagon_si_si_Intrinsic<"HEXAGON_A2_swiz">; // // BUILTIN_INFO(HEXAGON.S2_vsathub_nopack,DI_ftype_DI,1) // def int_hexagon_S2_vsathub_nopack : Hexagon_di_di_Intrinsic<"HEXAGON_S2_vsathub_nopack">; // // BUILTIN_INFO(HEXAGON.S2_vsathb_nopack,DI_ftype_DI,1) // def int_hexagon_S2_vsathb_nopack : Hexagon_di_di_Intrinsic<"HEXAGON_S2_vsathb_nopack">; // // BUILTIN_INFO(HEXAGON.S2_vsatwh_nopack,DI_ftype_DI,1) // def int_hexagon_S2_vsatwh_nopack : Hexagon_di_di_Intrinsic<"HEXAGON_S2_vsatwh_nopack">; // // BUILTIN_INFO(HEXAGON.S2_vsatwuh_nopack,DI_ftype_DI,1) // def int_hexagon_S2_vsatwuh_nopack : Hexagon_di_di_Intrinsic<"HEXAGON_S2_vsatwuh_nopack">; // // BUILTIN_INFO(HEXAGON.S2_shuffob,DI_ftype_DIDI,2) // def int_hexagon_S2_shuffob : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_shuffob">; // // BUILTIN_INFO(HEXAGON.S2_shuffeb,DI_ftype_DIDI,2) // def int_hexagon_S2_shuffeb : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_shuffeb">; // // BUILTIN_INFO(HEXAGON.S2_shuffoh,DI_ftype_DIDI,2) // def int_hexagon_S2_shuffoh : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_shuffoh">; // // BUILTIN_INFO(HEXAGON.S2_shuffeh,DI_ftype_DIDI,2) // def int_hexagon_S2_shuffeh : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_shuffeh">; // // BUILTIN_INFO(HEXAGON.S5_popcountp,SI_ftype_DI,1) // def int_hexagon_S5_popcountp : Hexagon_si_di_Intrinsic<"HEXAGON_S5_popcountp">; // // BUILTIN_INFO(HEXAGON.S4_parity,SI_ftype_SISI,2) // def int_hexagon_S4_parity : Hexagon_si_sisi_Intrinsic<"HEXAGON_S4_parity">; // // BUILTIN_INFO(HEXAGON.S2_parityp,SI_ftype_DIDI,2) // def int_hexagon_S2_parityp : Hexagon_si_didi_Intrinsic<"HEXAGON_S2_parityp">; // // BUILTIN_INFO(HEXAGON.S2_lfsp,DI_ftype_DIDI,2) // def int_hexagon_S2_lfsp : Hexagon_di_didi_Intrinsic<"HEXAGON_S2_lfsp">; // // BUILTIN_INFO(HEXAGON.S2_clbnorm,SI_ftype_SI,1) // def int_hexagon_S2_clbnorm : Hexagon_si_si_Intrinsic<"HEXAGON_S2_clbnorm">; // // BUILTIN_INFO(HEXAGON.S4_clbaddi,SI_ftype_SISI,2) // def int_hexagon_S4_clbaddi : Hexagon_si_sisi_Intrinsic<"HEXAGON_S4_clbaddi">; // // BUILTIN_INFO(HEXAGON.S4_clbpnorm,SI_ftype_DI,1) // def int_hexagon_S4_clbpnorm : Hexagon_si_di_Intrinsic<"HEXAGON_S4_clbpnorm">; // // BUILTIN_INFO(HEXAGON.S4_clbpaddi,SI_ftype_DISI,2) // def int_hexagon_S4_clbpaddi : Hexagon_si_disi_Intrinsic<"HEXAGON_S4_clbpaddi">; // // BUILTIN_INFO(HEXAGON.S2_clb,SI_ftype_SI,1) // def int_hexagon_S2_clb : Hexagon_si_si_Intrinsic<"HEXAGON_S2_clb">; // // BUILTIN_INFO(HEXAGON.S2_cl0,SI_ftype_SI,1) // def int_hexagon_S2_cl0 : Hexagon_si_si_Intrinsic<"HEXAGON_S2_cl0">; // // BUILTIN_INFO(HEXAGON.S2_cl1,SI_ftype_SI,1) // def int_hexagon_S2_cl1 : Hexagon_si_si_Intrinsic<"HEXAGON_S2_cl1">; // // BUILTIN_INFO(HEXAGON.S2_clbp,SI_ftype_DI,1) // def int_hexagon_S2_clbp : Hexagon_si_di_Intrinsic<"HEXAGON_S2_clbp">; // // BUILTIN_INFO(HEXAGON.S2_cl0p,SI_ftype_DI,1) // def int_hexagon_S2_cl0p : Hexagon_si_di_Intrinsic<"HEXAGON_S2_cl0p">; // // BUILTIN_INFO(HEXAGON.S2_cl1p,SI_ftype_DI,1) // def int_hexagon_S2_cl1p : Hexagon_si_di_Intrinsic<"HEXAGON_S2_cl1p">; // // BUILTIN_INFO(HEXAGON.S2_brev,SI_ftype_SI,1) // def int_hexagon_S2_brev : Hexagon_si_si_Intrinsic<"HEXAGON_S2_brev">; // // BUILTIN_INFO(HEXAGON.S2_brevp,DI_ftype_DI,1) // def int_hexagon_S2_brevp : Hexagon_di_di_Intrinsic<"HEXAGON_S2_brevp">; // // BUILTIN_INFO(HEXAGON.S2_ct0,SI_ftype_SI,1) // def int_hexagon_S2_ct0 : Hexagon_si_si_Intrinsic<"HEXAGON_S2_ct0">; // // BUILTIN_INFO(HEXAGON.S2_ct1,SI_ftype_SI,1) // def int_hexagon_S2_ct1 : Hexagon_si_si_Intrinsic<"HEXAGON_S2_ct1">; // // BUILTIN_INFO(HEXAGON.S2_ct0p,SI_ftype_DI,1) // def int_hexagon_S2_ct0p : Hexagon_si_di_Intrinsic<"HEXAGON_S2_ct0p">; // // BUILTIN_INFO(HEXAGON.S2_ct1p,SI_ftype_DI,1) // def int_hexagon_S2_ct1p : Hexagon_si_di_Intrinsic<"HEXAGON_S2_ct1p">; // // BUILTIN_INFO(HEXAGON.S2_interleave,DI_ftype_DI,1) // def int_hexagon_S2_interleave : Hexagon_di_di_Intrinsic<"HEXAGON_S2_interleave">; // // BUILTIN_INFO(HEXAGON.S2_deinterleave,DI_ftype_DI,1) // def int_hexagon_S2_deinterleave : Hexagon_di_di_Intrinsic<"HEXAGON_S2_deinterleave">; // // BUILTIN_INFO(HEXAGON.dcfetch_A,v_ftype_DI*,1) // def int_hexagon_prefetch : Hexagon_void_si_Intrinsic<"HEXAGON_prefetch">; def llvm_ptr32_ty : LLVMPointerType; def llvm_ptr64_ty : LLVMPointerType; // Mark locked loads as read/write to prevent any accidental reordering. def int_hexagon_L2_loadw_locked : Hexagon_Intrinsic<"HEXAGON_L2_loadw_locked", [llvm_i32_ty], [llvm_ptr32_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_hexagon_L4_loadd_locked : Hexagon_Intrinsic<"HEXAGON_L4_loadd_locked", [llvm_i64_ty], [llvm_ptr64_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_hexagon_S2_storew_locked : Hexagon_Intrinsic<"HEXAGON_S2_storew_locked", [llvm_i32_ty], [llvm_ptr32_ty, llvm_i32_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_hexagon_S4_stored_locked : Hexagon_Intrinsic<"HEXAGON_S4_stored_locked", [llvm_i32_ty], [llvm_ptr64_ty, llvm_i64_ty], [IntrArgMemOnly, NoCapture<0>]>; // V60 class Hexagon_v2048v2048_Intrinsic_T : Hexagon_Intrinsic; // tag : V6_hi_W // tag : V6_lo_W class Hexagon_v512v1024_Intrinsic_T : Hexagon_Intrinsic; // tag : V6_hi_W_128B // tag : V6_lo_W_128B class Hexagon_v1024v2048_Intrinsic_T : Hexagon_Intrinsic; class Hexagon_v1024v1024_Intrinsic_T : Hexagon_Intrinsic; // BUILTIN_INFO(HEXAGON.V6_hi_W,VI_ftype_VI,1) // tag : V6_hi def int_hexagon_V6_hi : Hexagon_v512v1024_Intrinsic_T<"HEXAGON_V6_hi">; // BUILTIN_INFO(HEXAGON.V6_lo_W,VI_ftype_VI,1) // tag : V6_lo def int_hexagon_V6_lo : Hexagon_v512v1024_Intrinsic_T<"HEXAGON_V6_lo">; // BUILTIN_INFO(HEXAGON.V6_hi_W,VI_ftype_VI,1) // tag : V6_hi_128B def int_hexagon_V6_hi_128B : Hexagon_v1024v2048_Intrinsic_T<"HEXAGON_V6_hi_128B">; // BUILTIN_INFO(HEXAGON.V6_lo_W,VI_ftype_VI,1) // tag : V6_lo_128B def int_hexagon_V6_lo_128B : Hexagon_v1024v2048_Intrinsic_T<"HEXAGON_V6_lo_128B">; // BUILTIN_INFO(HEXAGON.V6_vassignp,VI_ftype_VI,1) // tag : V6_vassignp def int_hexagon_V6_vassignp : Hexagon_v1024v1024_Intrinsic_T<"HEXAGON_V6_vassignp">; // BUILTIN_INFO(HEXAGON.V6_vassignp,VI_ftype_VI,1) // tag : V6_vassignp_128B def int_hexagon_V6_vassignp_128B : Hexagon_v2048v2048_Intrinsic_T<"HEXAGON_V6_vassignp_128B">; // // Hexagon_iii_Intrinsic // tag : S6_rol_i_r class Hexagon_iii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_LLiLLii_Intrinsic // tag : S6_rol_i_p class Hexagon_LLiLLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_iiii_Intrinsic // tag : S6_rol_i_r_acc class Hexagon_iiii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_LLiLLiLLii_Intrinsic // tag : S6_rol_i_p_acc class Hexagon_LLiLLiLLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v512i_Intrinsic // tag : V6_valignb class Hexagon_v512v512v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v1024i_Intrinsic // tag : V6_valignb_128B class Hexagon_v1024v1024v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512i_Intrinsic // tag : V6_vror class Hexagon_v512v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024i_Intrinsic // tag : V6_vror_128B class Hexagon_v1024v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v512_Intrinsic // tag : V6_vunpackub class Hexagon_v1024v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v1024_Intrinsic // tag : V6_vunpackub_128B class Hexagon_v2048v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v512_Intrinsic // tag : V6_vunpackob class Hexagon_v1024v1024v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v1024_Intrinsic // tag : V6_vunpackob_128B class Hexagon_v2048v2048v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v512_Intrinsic // tag : V6_vpackeb class Hexagon_v512v512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v1024_Intrinsic // tag : V6_vpackeb_128B class Hexagon_v1024v1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048i_Intrinsic // tag : V6_vdmpybus_dv_128B class Hexagon_v2048v2048i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v2048i_Intrinsic // tag : V6_vdmpybus_dv_acc_128B class Hexagon_v2048v2048v2048i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v512v512_Intrinsic // tag : V6_vdmpyhvsat_acc class Hexagon_v512v512v512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v1024v1024_Intrinsic // tag : V6_vdmpyhvsat_acc_128B class Hexagon_v1024v1024v1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v1024i_Intrinsic // tag : V6_vdmpyhisat class Hexagon_v512v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v2048i_Intrinsic // tag : V6_vdmpyhisat_128B class Hexagon_v1024v2048i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v1024i_Intrinsic // tag : V6_vdmpyhisat_acc class Hexagon_v512v512v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v2048i_Intrinsic // tag : V6_vdmpyhisat_acc_128B class Hexagon_v1024v1024v2048i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024ii_Intrinsic // tag : V6_vrmpyubi class Hexagon_v1024v1024ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048ii_Intrinsic // tag : V6_vrmpyubi_128B class Hexagon_v2048v2048ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v1024ii_Intrinsic // tag : V6_vrmpyubi_acc class Hexagon_v1024v1024v1024ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v2048ii_Intrinsic // tag : V6_vrmpyubi_acc_128B class Hexagon_v2048v2048v2048ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v2048_Intrinsic // tag : V6_vaddb_dv_128B class Hexagon_v2048v2048v2048_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v512v512_Intrinsic // tag : V6_vaddubh class Hexagon_v1024v512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v1024v1024_Intrinsic // tag : V6_vaddubh_128B class Hexagon_v2048v1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512_Intrinsic // tag : V6_vd0 class Hexagon_v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024_Intrinsic // tag : V6_vd0_128B class Hexagon_v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v64iv512v512_Intrinsic // tag : V6_vaddbq class Hexagon_v512v64iv512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v128iv1024v1024_Intrinsic // tag : V6_vaddbq_128B class Hexagon_v1024v128iv1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512_Intrinsic // tag : V6_vabsh class Hexagon_v512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024_Intrinsic // tag : V6_vabsh_128B class Hexagon_v1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v512v512_Intrinsic // tag : V6_vmpybv_acc class Hexagon_v1024v1024v512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v1024v1024_Intrinsic // tag : V6_vmpybv_acc_128B class Hexagon_v2048v2048v1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v512i_Intrinsic // tag : V6_vmpyub class Hexagon_v1024v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v1024i_Intrinsic // tag : V6_vmpyub_128B class Hexagon_v2048v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v512i_Intrinsic // tag : V6_vmpyub_acc class Hexagon_v1024v1024v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v1024i_Intrinsic // tag : V6_vmpyub_acc_128B class Hexagon_v2048v2048v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v64ii_Intrinsic // tag : V6_vandqrt class Hexagon_v512v64ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v128ii_Intrinsic // tag : V6_vandqrt_128B class Hexagon_v1024v128ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v64ii_Intrinsic // tag : V6_vandqrt_acc class Hexagon_v512v512v64ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v128ii_Intrinsic // tag : V6_vandqrt_acc_128B class Hexagon_v1024v1024v128ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64iv512i_Intrinsic // tag : V6_vandvrt class Hexagon_v64iv512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128iv1024i_Intrinsic // tag : V6_vandvrt_128B class Hexagon_v128iv1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64iv64iv512i_Intrinsic // tag : V6_vandvrt_acc class Hexagon_v64iv64iv512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128iv128iv1024i_Intrinsic // tag : V6_vandvrt_acc_128B class Hexagon_v128iv128iv1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64iv512v512_Intrinsic // tag : V6_vgtw class Hexagon_v64iv512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128iv1024v1024_Intrinsic // tag : V6_vgtw_128B class Hexagon_v128iv1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64iv64iv512v512_Intrinsic // tag : V6_vgtw_and class Hexagon_v64iv64iv512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128iv128iv1024v1024_Intrinsic // tag : V6_vgtw_and_128B class Hexagon_v128iv128iv1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64iv64iv64i_Intrinsic // tag : V6_pred_or class Hexagon_v64iv64iv64i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128iv128iv128i_Intrinsic // tag : V6_pred_or_128B class Hexagon_v128iv128iv128i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64iv64i_Intrinsic // tag : V6_pred_not class Hexagon_v64iv64i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128iv128i_Intrinsic // tag : V6_pred_not_128B class Hexagon_v128iv128i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v64ii_Intrinsic // tag : V6_pred_scalar2 class Hexagon_v64ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v128ii_Intrinsic // tag : V6_pred_scalar2_128B class Hexagon_v128ii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v64iv512v512_Intrinsic // tag : V6_vswap class Hexagon_v1024v64iv512v512_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v128iv1024v1024_Intrinsic // tag : V6_vswap_128B class Hexagon_v2048v128iv1024v1024_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v512v512i_Intrinsic // tag : V6_vshuffvdd class Hexagon_v1024v512v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v1024v1024i_Intrinsic // tag : V6_vshuffvdd_128B class Hexagon_v2048v1024v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_iv512i_Intrinsic // tag : V6_extractw class Hexagon_iv512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_iv1024i_Intrinsic // tag : V6_extractw_128B class Hexagon_iv1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512i_Intrinsic // tag : V6_lvsplatw class Hexagon_v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024i_Intrinsic // tag : V6_lvsplatw_128B class Hexagon_v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512LLii_Intrinsic // tag : V6_vlutb class Hexagon_v512v512LLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024LLii_Intrinsic // tag : V6_vlutb_128B class Hexagon_v1024v1024LLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v512LLii_Intrinsic // tag : V6_vlutb_acc class Hexagon_v512v512v512LLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v1024LLii_Intrinsic // tag : V6_vlutb_acc_128B class Hexagon_v1024v1024v1024LLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048LLii_Intrinsic // tag : V6_vlutb_dv_128B class Hexagon_v2048v2048LLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v2048LLii_Intrinsic // tag : V6_vlutb_dv_acc_128B class Hexagon_v2048v2048v2048LLii_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v512v512v512v512i_Intrinsic // tag : V6_vlutvvb_oracc class Hexagon_v512v512v512v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v1024v1024i_Intrinsic // tag : V6_vlutvvb_oracc_128B class Hexagon_v1024v1024v1024v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v1024v1024v512v512i_Intrinsic // tag : V6_vlutvwh_oracc class Hexagon_v1024v1024v512v512i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_v2048v2048v1024v1024i_Intrinsic // tag : V6_vlutvwh_oracc_128B class Hexagon_v2048v2048v1024v1024i_Intrinsic : Hexagon_Intrinsic; // // Hexagon_LLiLLiLLi_Intrinsic // tag : M6_vabsdiffb class Hexagon_LLiLLiLLi_Intrinsic : Hexagon_Intrinsic; // // Hexagon_LLii_Intrinsic // tag : S6_vsplatrbp class Hexagon_LLii_Intrinsic : Hexagon_Intrinsic; // // BUILTIN_INFO(HEXAGON.S6_rol_i_r,SI_ftype_SISI,2) // tag : S6_rol_i_r def int_hexagon_S6_rol_i_r : Hexagon_iii_Intrinsic<"HEXAGON_S6_rol_i_r">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_p,DI_ftype_DISI,2) // tag : S6_rol_i_p def int_hexagon_S6_rol_i_p : Hexagon_LLiLLii_Intrinsic<"HEXAGON_S6_rol_i_p">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_r_acc,SI_ftype_SISISI,3) // tag : S6_rol_i_r_acc def int_hexagon_S6_rol_i_r_acc : Hexagon_iiii_Intrinsic<"HEXAGON_S6_rol_i_r_acc">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_p_acc,DI_ftype_DIDISI,3) // tag : S6_rol_i_p_acc def int_hexagon_S6_rol_i_p_acc : Hexagon_LLiLLiLLii_Intrinsic<"HEXAGON_S6_rol_i_p_acc">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_r_nac,SI_ftype_SISISI,3) // tag : S6_rol_i_r_nac def int_hexagon_S6_rol_i_r_nac : Hexagon_iiii_Intrinsic<"HEXAGON_S6_rol_i_r_nac">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_p_nac,DI_ftype_DIDISI,3) // tag : S6_rol_i_p_nac def int_hexagon_S6_rol_i_p_nac : Hexagon_LLiLLiLLii_Intrinsic<"HEXAGON_S6_rol_i_p_nac">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_r_xacc,SI_ftype_SISISI,3) // tag : S6_rol_i_r_xacc def int_hexagon_S6_rol_i_r_xacc : Hexagon_iiii_Intrinsic<"HEXAGON_S6_rol_i_r_xacc">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_p_xacc,DI_ftype_DIDISI,3) // tag : S6_rol_i_p_xacc def int_hexagon_S6_rol_i_p_xacc : Hexagon_LLiLLiLLii_Intrinsic<"HEXAGON_S6_rol_i_p_xacc">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_r_and,SI_ftype_SISISI,3) // tag : S6_rol_i_r_and def int_hexagon_S6_rol_i_r_and : Hexagon_iiii_Intrinsic<"HEXAGON_S6_rol_i_r_and">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_r_or,SI_ftype_SISISI,3) // tag : S6_rol_i_r_or def int_hexagon_S6_rol_i_r_or : Hexagon_iiii_Intrinsic<"HEXAGON_S6_rol_i_r_or">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_p_and,DI_ftype_DIDISI,3) // tag : S6_rol_i_p_and def int_hexagon_S6_rol_i_p_and : Hexagon_LLiLLiLLii_Intrinsic<"HEXAGON_S6_rol_i_p_and">; // // BUILTIN_INFO(HEXAGON.S6_rol_i_p_or,DI_ftype_DIDISI,3) // tag : S6_rol_i_p_or def int_hexagon_S6_rol_i_p_or : Hexagon_LLiLLiLLii_Intrinsic<"HEXAGON_S6_rol_i_p_or">; // // BUILTIN_INFO(HEXAGON.S2_cabacencbin,DI_ftype_DIDIQI,3) // tag : S2_cabacencbin def int_hexagon_S2_cabacencbin : Hexagon_LLiLLiLLii_Intrinsic<"HEXAGON_S2_cabacencbin">; // // BUILTIN_INFO(HEXAGON.V6_valignb,VI_ftype_VIVISI,3) // tag : V6_valignb def int_hexagon_V6_valignb : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_valignb">; // // BUILTIN_INFO(HEXAGON.V6_valignb_128B,VI_ftype_VIVISI,3) // tag : V6_valignb_128B def int_hexagon_V6_valignb_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_valignb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlalignb,VI_ftype_VIVISI,3) // tag : V6_vlalignb def int_hexagon_V6_vlalignb : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vlalignb">; // // BUILTIN_INFO(HEXAGON.V6_vlalignb_128B,VI_ftype_VIVISI,3) // tag : V6_vlalignb_128B def int_hexagon_V6_vlalignb_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vlalignb_128B">; // // BUILTIN_INFO(HEXAGON.V6_valignbi,VI_ftype_VIVISI,3) // tag : V6_valignbi def int_hexagon_V6_valignbi : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_valignbi">; // // BUILTIN_INFO(HEXAGON.V6_valignbi_128B,VI_ftype_VIVISI,3) // tag : V6_valignbi_128B def int_hexagon_V6_valignbi_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_valignbi_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlalignbi,VI_ftype_VIVISI,3) // tag : V6_vlalignbi def int_hexagon_V6_vlalignbi : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vlalignbi">; // // BUILTIN_INFO(HEXAGON.V6_vlalignbi_128B,VI_ftype_VIVISI,3) // tag : V6_vlalignbi_128B def int_hexagon_V6_vlalignbi_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vlalignbi_128B">; // // BUILTIN_INFO(HEXAGON.V6_vror,VI_ftype_VISI,2) // tag : V6_vror def int_hexagon_V6_vror : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vror">; // // BUILTIN_INFO(HEXAGON.V6_vror_128B,VI_ftype_VISI,2) // tag : V6_vror_128B def int_hexagon_V6_vror_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vror_128B">; // // BUILTIN_INFO(HEXAGON.V6_vunpackub,VD_ftype_VI,1) // tag : V6_vunpackub def int_hexagon_V6_vunpackub : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vunpackub">; // // BUILTIN_INFO(HEXAGON.V6_vunpackub_128B,VD_ftype_VI,1) // tag : V6_vunpackub_128B def int_hexagon_V6_vunpackub_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vunpackub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vunpackb,VD_ftype_VI,1) // tag : V6_vunpackb def int_hexagon_V6_vunpackb : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vunpackb">; // // BUILTIN_INFO(HEXAGON.V6_vunpackb_128B,VD_ftype_VI,1) // tag : V6_vunpackb_128B def int_hexagon_V6_vunpackb_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vunpackb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vunpackuh,VD_ftype_VI,1) // tag : V6_vunpackuh def int_hexagon_V6_vunpackuh : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vunpackuh">; // // BUILTIN_INFO(HEXAGON.V6_vunpackuh_128B,VD_ftype_VI,1) // tag : V6_vunpackuh_128B def int_hexagon_V6_vunpackuh_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vunpackuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vunpackh,VD_ftype_VI,1) // tag : V6_vunpackh def int_hexagon_V6_vunpackh : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vunpackh">; // // BUILTIN_INFO(HEXAGON.V6_vunpackh_128B,VD_ftype_VI,1) // tag : V6_vunpackh_128B def int_hexagon_V6_vunpackh_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vunpackh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vunpackob,VD_ftype_VDVI,2) // tag : V6_vunpackob def int_hexagon_V6_vunpackob : Hexagon_v1024v1024v512_Intrinsic<"HEXAGON_V6_vunpackob">; // // BUILTIN_INFO(HEXAGON.V6_vunpackob_128B,VD_ftype_VDVI,2) // tag : V6_vunpackob_128B def int_hexagon_V6_vunpackob_128B : Hexagon_v2048v2048v1024_Intrinsic<"HEXAGON_V6_vunpackob_128B">; // // BUILTIN_INFO(HEXAGON.V6_vunpackoh,VD_ftype_VDVI,2) // tag : V6_vunpackoh def int_hexagon_V6_vunpackoh : Hexagon_v1024v1024v512_Intrinsic<"HEXAGON_V6_vunpackoh">; // // BUILTIN_INFO(HEXAGON.V6_vunpackoh_128B,VD_ftype_VDVI,2) // tag : V6_vunpackoh_128B def int_hexagon_V6_vunpackoh_128B : Hexagon_v2048v2048v1024_Intrinsic<"HEXAGON_V6_vunpackoh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackeb,VI_ftype_VIVI,2) // tag : V6_vpackeb def int_hexagon_V6_vpackeb : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackeb">; // // BUILTIN_INFO(HEXAGON.V6_vpackeb_128B,VI_ftype_VIVI,2) // tag : V6_vpackeb_128B def int_hexagon_V6_vpackeb_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackeb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackeh,VI_ftype_VIVI,2) // tag : V6_vpackeh def int_hexagon_V6_vpackeh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackeh">; // // BUILTIN_INFO(HEXAGON.V6_vpackeh_128B,VI_ftype_VIVI,2) // tag : V6_vpackeh_128B def int_hexagon_V6_vpackeh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackeh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackob,VI_ftype_VIVI,2) // tag : V6_vpackob def int_hexagon_V6_vpackob : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackob">; // // BUILTIN_INFO(HEXAGON.V6_vpackob_128B,VI_ftype_VIVI,2) // tag : V6_vpackob_128B def int_hexagon_V6_vpackob_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackob_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackoh,VI_ftype_VIVI,2) // tag : V6_vpackoh def int_hexagon_V6_vpackoh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackoh">; // // BUILTIN_INFO(HEXAGON.V6_vpackoh_128B,VI_ftype_VIVI,2) // tag : V6_vpackoh_128B def int_hexagon_V6_vpackoh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackoh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackhub_sat,VI_ftype_VIVI,2) // tag : V6_vpackhub_sat def int_hexagon_V6_vpackhub_sat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackhub_sat">; // // BUILTIN_INFO(HEXAGON.V6_vpackhub_sat_128B,VI_ftype_VIVI,2) // tag : V6_vpackhub_sat_128B def int_hexagon_V6_vpackhub_sat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackhub_sat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackhb_sat,VI_ftype_VIVI,2) // tag : V6_vpackhb_sat def int_hexagon_V6_vpackhb_sat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackhb_sat">; // // BUILTIN_INFO(HEXAGON.V6_vpackhb_sat_128B,VI_ftype_VIVI,2) // tag : V6_vpackhb_sat_128B def int_hexagon_V6_vpackhb_sat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackhb_sat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackwuh_sat,VI_ftype_VIVI,2) // tag : V6_vpackwuh_sat def int_hexagon_V6_vpackwuh_sat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackwuh_sat">; // // BUILTIN_INFO(HEXAGON.V6_vpackwuh_sat_128B,VI_ftype_VIVI,2) // tag : V6_vpackwuh_sat_128B def int_hexagon_V6_vpackwuh_sat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackwuh_sat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpackwh_sat,VI_ftype_VIVI,2) // tag : V6_vpackwh_sat def int_hexagon_V6_vpackwh_sat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vpackwh_sat">; // // BUILTIN_INFO(HEXAGON.V6_vpackwh_sat_128B,VI_ftype_VIVI,2) // tag : V6_vpackwh_sat_128B def int_hexagon_V6_vpackwh_sat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vpackwh_sat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vzb,VD_ftype_VI,1) // tag : V6_vzb def int_hexagon_V6_vzb : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vzb">; // // BUILTIN_INFO(HEXAGON.V6_vzb_128B,VD_ftype_VI,1) // tag : V6_vzb_128B def int_hexagon_V6_vzb_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vzb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsb,VD_ftype_VI,1) // tag : V6_vsb def int_hexagon_V6_vsb : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vsb">; // // BUILTIN_INFO(HEXAGON.V6_vsb_128B,VD_ftype_VI,1) // tag : V6_vsb_128B def int_hexagon_V6_vsb_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vsb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vzh,VD_ftype_VI,1) // tag : V6_vzh def int_hexagon_V6_vzh : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vzh">; // // BUILTIN_INFO(HEXAGON.V6_vzh_128B,VD_ftype_VI,1) // tag : V6_vzh_128B def int_hexagon_V6_vzh_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vzh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsh,VD_ftype_VI,1) // tag : V6_vsh def int_hexagon_V6_vsh : Hexagon_v1024v512_Intrinsic<"HEXAGON_V6_vsh">; // // BUILTIN_INFO(HEXAGON.V6_vsh_128B,VD_ftype_VI,1) // tag : V6_vsh_128B def int_hexagon_V6_vsh_128B : Hexagon_v2048v1024_Intrinsic<"HEXAGON_V6_vsh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus,VI_ftype_VISI,2) // tag : V6_vdmpybus def int_hexagon_V6_vdmpybus : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vdmpybus">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_128B,VI_ftype_VISI,2) // tag : V6_vdmpybus_128B def int_hexagon_V6_vdmpybus_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpybus_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_acc,VI_ftype_VIVISI,3) // tag : V6_vdmpybus_acc def int_hexagon_V6_vdmpybus_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vdmpybus_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vdmpybus_acc_128B def int_hexagon_V6_vdmpybus_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpybus_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_dv,VD_ftype_VDSI,2) // tag : V6_vdmpybus_dv def int_hexagon_V6_vdmpybus_dv : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpybus_dv">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_dv_128B,VD_ftype_VDSI,2) // tag : V6_vdmpybus_dv_128B def int_hexagon_V6_vdmpybus_dv_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vdmpybus_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_dv_acc,VD_ftype_VDVDSI,3) // tag : V6_vdmpybus_dv_acc def int_hexagon_V6_vdmpybus_dv_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpybus_dv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpybus_dv_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vdmpybus_dv_acc_128B def int_hexagon_V6_vdmpybus_dv_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vdmpybus_dv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb,VI_ftype_VISI,2) // tag : V6_vdmpyhb def int_hexagon_V6_vdmpyhb : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vdmpyhb">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_128B,VI_ftype_VISI,2) // tag : V6_vdmpyhb_128B def int_hexagon_V6_vdmpyhb_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_acc,VI_ftype_VIVISI,3) // tag : V6_vdmpyhb_acc def int_hexagon_V6_vdmpyhb_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vdmpyhb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vdmpyhb_acc_128B def int_hexagon_V6_vdmpyhb_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_dv,VD_ftype_VDSI,2) // tag : V6_vdmpyhb_dv def int_hexagon_V6_vdmpyhb_dv : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhb_dv">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_dv_128B,VD_ftype_VDSI,2) // tag : V6_vdmpyhb_dv_128B def int_hexagon_V6_vdmpyhb_dv_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vdmpyhb_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_dv_acc,VD_ftype_VDVDSI,3) // tag : V6_vdmpyhb_dv_acc def int_hexagon_V6_vdmpyhb_dv_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhb_dv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhb_dv_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vdmpyhb_dv_acc_128B def int_hexagon_V6_vdmpyhb_dv_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vdmpyhb_dv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhvsat,VI_ftype_VIVI,2) // tag : V6_vdmpyhvsat def int_hexagon_V6_vdmpyhvsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vdmpyhvsat">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhvsat_128B,VI_ftype_VIVI,2) // tag : V6_vdmpyhvsat_128B def int_hexagon_V6_vdmpyhvsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vdmpyhvsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhvsat_acc,VI_ftype_VIVIVI,3) // tag : V6_vdmpyhvsat_acc def int_hexagon_V6_vdmpyhvsat_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vdmpyhvsat_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhvsat_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vdmpyhvsat_acc_128B def int_hexagon_V6_vdmpyhvsat_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vdmpyhvsat_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsat,VI_ftype_VISI,2) // tag : V6_vdmpyhsat def int_hexagon_V6_vdmpyhsat : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vdmpyhsat">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsat_128B,VI_ftype_VISI,2) // tag : V6_vdmpyhsat_128B def int_hexagon_V6_vdmpyhsat_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsat_acc,VI_ftype_VIVISI,3) // tag : V6_vdmpyhsat_acc def int_hexagon_V6_vdmpyhsat_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vdmpyhsat_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsat_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vdmpyhsat_acc_128B def int_hexagon_V6_vdmpyhsat_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhsat_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhisat,VI_ftype_VDSI,2) // tag : V6_vdmpyhisat def int_hexagon_V6_vdmpyhisat : Hexagon_v512v1024i_Intrinsic<"HEXAGON_V6_vdmpyhisat">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhisat_128B,VI_ftype_VDSI,2) // tag : V6_vdmpyhisat_128B def int_hexagon_V6_vdmpyhisat_128B : Hexagon_v1024v2048i_Intrinsic<"HEXAGON_V6_vdmpyhisat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhisat_acc,VI_ftype_VIVDSI,3) // tag : V6_vdmpyhisat_acc def int_hexagon_V6_vdmpyhisat_acc : Hexagon_v512v512v1024i_Intrinsic<"HEXAGON_V6_vdmpyhisat_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhisat_acc_128B,VI_ftype_VIVDSI,3) // tag : V6_vdmpyhisat_acc_128B def int_hexagon_V6_vdmpyhisat_acc_128B : Hexagon_v1024v1024v2048i_Intrinsic<"HEXAGON_V6_vdmpyhisat_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsusat,VI_ftype_VISI,2) // tag : V6_vdmpyhsusat def int_hexagon_V6_vdmpyhsusat : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vdmpyhsusat">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsusat_128B,VI_ftype_VISI,2) // tag : V6_vdmpyhsusat_128B def int_hexagon_V6_vdmpyhsusat_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhsusat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsusat_acc,VI_ftype_VIVISI,3) // tag : V6_vdmpyhsusat_acc def int_hexagon_V6_vdmpyhsusat_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vdmpyhsusat_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsusat_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vdmpyhsusat_acc_128B def int_hexagon_V6_vdmpyhsusat_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdmpyhsusat_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsuisat,VI_ftype_VDSI,2) // tag : V6_vdmpyhsuisat def int_hexagon_V6_vdmpyhsuisat : Hexagon_v512v1024i_Intrinsic<"HEXAGON_V6_vdmpyhsuisat">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsuisat_128B,VI_ftype_VDSI,2) // tag : V6_vdmpyhsuisat_128B def int_hexagon_V6_vdmpyhsuisat_128B : Hexagon_v1024v2048i_Intrinsic<"HEXAGON_V6_vdmpyhsuisat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsuisat_acc,VI_ftype_VIVDSI,3) // tag : V6_vdmpyhsuisat_acc def int_hexagon_V6_vdmpyhsuisat_acc : Hexagon_v512v512v1024i_Intrinsic<"HEXAGON_V6_vdmpyhsuisat_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdmpyhsuisat_acc_128B,VI_ftype_VIVDSI,3) // tag : V6_vdmpyhsuisat_acc_128B def int_hexagon_V6_vdmpyhsuisat_acc_128B : Hexagon_v1024v1024v2048i_Intrinsic<"HEXAGON_V6_vdmpyhsuisat_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyb,VD_ftype_VDSI,2) // tag : V6_vtmpyb def int_hexagon_V6_vtmpyb : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vtmpyb">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyb_128B,VD_ftype_VDSI,2) // tag : V6_vtmpyb_128B def int_hexagon_V6_vtmpyb_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vtmpyb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyb_acc,VD_ftype_VDVDSI,3) // tag : V6_vtmpyb_acc def int_hexagon_V6_vtmpyb_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vtmpyb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyb_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vtmpyb_acc_128B def int_hexagon_V6_vtmpyb_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vtmpyb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vtmpybus,VD_ftype_VDSI,2) // tag : V6_vtmpybus def int_hexagon_V6_vtmpybus : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vtmpybus">; // // BUILTIN_INFO(HEXAGON.V6_vtmpybus_128B,VD_ftype_VDSI,2) // tag : V6_vtmpybus_128B def int_hexagon_V6_vtmpybus_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vtmpybus_128B">; // // BUILTIN_INFO(HEXAGON.V6_vtmpybus_acc,VD_ftype_VDVDSI,3) // tag : V6_vtmpybus_acc def int_hexagon_V6_vtmpybus_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vtmpybus_acc">; // // BUILTIN_INFO(HEXAGON.V6_vtmpybus_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vtmpybus_acc_128B def int_hexagon_V6_vtmpybus_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vtmpybus_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyhb,VD_ftype_VDSI,2) // tag : V6_vtmpyhb def int_hexagon_V6_vtmpyhb : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vtmpyhb">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyhb_128B,VD_ftype_VDSI,2) // tag : V6_vtmpyhb_128B def int_hexagon_V6_vtmpyhb_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vtmpyhb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyhb_acc,VD_ftype_VDVDSI,3) // tag : V6_vtmpyhb_acc def int_hexagon_V6_vtmpyhb_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vtmpyhb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vtmpyhb_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vtmpyhb_acc_128B def int_hexagon_V6_vtmpyhb_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vtmpyhb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyub,VI_ftype_VISI,2) // tag : V6_vrmpyub def int_hexagon_V6_vrmpyub : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vrmpyub">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyub_128B,VI_ftype_VISI,2) // tag : V6_vrmpyub_128B def int_hexagon_V6_vrmpyub_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vrmpyub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyub_acc,VI_ftype_VIVISI,3) // tag : V6_vrmpyub_acc def int_hexagon_V6_vrmpyub_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vrmpyub_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyub_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vrmpyub_acc_128B def int_hexagon_V6_vrmpyub_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vrmpyub_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubv,VI_ftype_VIVI,2) // tag : V6_vrmpyubv def int_hexagon_V6_vrmpyubv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vrmpyubv">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubv_128B,VI_ftype_VIVI,2) // tag : V6_vrmpyubv_128B def int_hexagon_V6_vrmpyubv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrmpyubv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubv_acc,VI_ftype_VIVIVI,3) // tag : V6_vrmpyubv_acc def int_hexagon_V6_vrmpyubv_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vrmpyubv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubv_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vrmpyubv_acc_128B def int_hexagon_V6_vrmpyubv_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrmpyubv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybv,VI_ftype_VIVI,2) // tag : V6_vrmpybv def int_hexagon_V6_vrmpybv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vrmpybv">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybv_128B,VI_ftype_VIVI,2) // tag : V6_vrmpybv_128B def int_hexagon_V6_vrmpybv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrmpybv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybv_acc,VI_ftype_VIVIVI,3) // tag : V6_vrmpybv_acc def int_hexagon_V6_vrmpybv_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vrmpybv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybv_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vrmpybv_acc_128B def int_hexagon_V6_vrmpybv_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrmpybv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubi,VD_ftype_VDSISI,3) // tag : V6_vrmpyubi def int_hexagon_V6_vrmpyubi : Hexagon_v1024v1024ii_Intrinsic<"HEXAGON_V6_vrmpyubi">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubi_128B,VD_ftype_VDSISI,3) // tag : V6_vrmpyubi_128B def int_hexagon_V6_vrmpyubi_128B : Hexagon_v2048v2048ii_Intrinsic<"HEXAGON_V6_vrmpyubi_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubi_acc,VD_ftype_VDVDSISI,4) // tag : V6_vrmpyubi_acc def int_hexagon_V6_vrmpyubi_acc : Hexagon_v1024v1024v1024ii_Intrinsic<"HEXAGON_V6_vrmpyubi_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpyubi_acc_128B,VD_ftype_VDVDSISI,4) // tag : V6_vrmpyubi_acc_128B def int_hexagon_V6_vrmpyubi_acc_128B : Hexagon_v2048v2048v2048ii_Intrinsic<"HEXAGON_V6_vrmpyubi_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybus,VI_ftype_VISI,2) // tag : V6_vrmpybus def int_hexagon_V6_vrmpybus : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vrmpybus">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybus_128B,VI_ftype_VISI,2) // tag : V6_vrmpybus_128B def int_hexagon_V6_vrmpybus_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vrmpybus_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybus_acc,VI_ftype_VIVISI,3) // tag : V6_vrmpybus_acc def int_hexagon_V6_vrmpybus_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vrmpybus_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybus_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vrmpybus_acc_128B def int_hexagon_V6_vrmpybus_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vrmpybus_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusi,VD_ftype_VDSISI,3) // tag : V6_vrmpybusi def int_hexagon_V6_vrmpybusi : Hexagon_v1024v1024ii_Intrinsic<"HEXAGON_V6_vrmpybusi">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusi_128B,VD_ftype_VDSISI,3) // tag : V6_vrmpybusi_128B def int_hexagon_V6_vrmpybusi_128B : Hexagon_v2048v2048ii_Intrinsic<"HEXAGON_V6_vrmpybusi_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusi_acc,VD_ftype_VDVDSISI,4) // tag : V6_vrmpybusi_acc def int_hexagon_V6_vrmpybusi_acc : Hexagon_v1024v1024v1024ii_Intrinsic<"HEXAGON_V6_vrmpybusi_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusi_acc_128B,VD_ftype_VDVDSISI,4) // tag : V6_vrmpybusi_acc_128B def int_hexagon_V6_vrmpybusi_acc_128B : Hexagon_v2048v2048v2048ii_Intrinsic<"HEXAGON_V6_vrmpybusi_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusv,VI_ftype_VIVI,2) // tag : V6_vrmpybusv def int_hexagon_V6_vrmpybusv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vrmpybusv">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusv_128B,VI_ftype_VIVI,2) // tag : V6_vrmpybusv_128B def int_hexagon_V6_vrmpybusv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrmpybusv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusv_acc,VI_ftype_VIVIVI,3) // tag : V6_vrmpybusv_acc def int_hexagon_V6_vrmpybusv_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vrmpybusv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrmpybusv_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vrmpybusv_acc_128B def int_hexagon_V6_vrmpybusv_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrmpybusv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdsaduh,VD_ftype_VDSI,2) // tag : V6_vdsaduh def int_hexagon_V6_vdsaduh : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vdsaduh">; // // BUILTIN_INFO(HEXAGON.V6_vdsaduh_128B,VD_ftype_VDSI,2) // tag : V6_vdsaduh_128B def int_hexagon_V6_vdsaduh_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vdsaduh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdsaduh_acc,VD_ftype_VDVDSI,3) // tag : V6_vdsaduh_acc def int_hexagon_V6_vdsaduh_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vdsaduh_acc">; // // BUILTIN_INFO(HEXAGON.V6_vdsaduh_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vdsaduh_acc_128B def int_hexagon_V6_vdsaduh_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vdsaduh_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrsadubi,VD_ftype_VDSISI,3) // tag : V6_vrsadubi def int_hexagon_V6_vrsadubi : Hexagon_v1024v1024ii_Intrinsic<"HEXAGON_V6_vrsadubi">; // // BUILTIN_INFO(HEXAGON.V6_vrsadubi_128B,VD_ftype_VDSISI,3) // tag : V6_vrsadubi_128B def int_hexagon_V6_vrsadubi_128B : Hexagon_v2048v2048ii_Intrinsic<"HEXAGON_V6_vrsadubi_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrsadubi_acc,VD_ftype_VDVDSISI,4) // tag : V6_vrsadubi_acc def int_hexagon_V6_vrsadubi_acc : Hexagon_v1024v1024v1024ii_Intrinsic<"HEXAGON_V6_vrsadubi_acc">; // // BUILTIN_INFO(HEXAGON.V6_vrsadubi_acc_128B,VD_ftype_VDVDSISI,4) // tag : V6_vrsadubi_acc_128B def int_hexagon_V6_vrsadubi_acc_128B : Hexagon_v2048v2048v2048ii_Intrinsic<"HEXAGON_V6_vrsadubi_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrw,VI_ftype_VISI,2) // tag : V6_vasrw def int_hexagon_V6_vasrw : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vasrw">; // // BUILTIN_INFO(HEXAGON.V6_vasrw_128B,VI_ftype_VISI,2) // tag : V6_vasrw_128B def int_hexagon_V6_vasrw_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vasrw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaslw,VI_ftype_VISI,2) // tag : V6_vaslw def int_hexagon_V6_vaslw : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vaslw">; // // BUILTIN_INFO(HEXAGON.V6_vaslw_128B,VI_ftype_VISI,2) // tag : V6_vaslw_128B def int_hexagon_V6_vaslw_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vaslw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlsrw,VI_ftype_VISI,2) // tag : V6_vlsrw def int_hexagon_V6_vlsrw : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vlsrw">; // // BUILTIN_INFO(HEXAGON.V6_vlsrw_128B,VI_ftype_VISI,2) // tag : V6_vlsrw_128B def int_hexagon_V6_vlsrw_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vlsrw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrwv,VI_ftype_VIVI,2) // tag : V6_vasrwv def int_hexagon_V6_vasrwv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vasrwv">; // // BUILTIN_INFO(HEXAGON.V6_vasrwv_128B,VI_ftype_VIVI,2) // tag : V6_vasrwv_128B def int_hexagon_V6_vasrwv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vasrwv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaslwv,VI_ftype_VIVI,2) // tag : V6_vaslwv def int_hexagon_V6_vaslwv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaslwv">; // // BUILTIN_INFO(HEXAGON.V6_vaslwv_128B,VI_ftype_VIVI,2) // tag : V6_vaslwv_128B def int_hexagon_V6_vaslwv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaslwv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlsrwv,VI_ftype_VIVI,2) // tag : V6_vlsrwv def int_hexagon_V6_vlsrwv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vlsrwv">; // // BUILTIN_INFO(HEXAGON.V6_vlsrwv_128B,VI_ftype_VIVI,2) // tag : V6_vlsrwv_128B def int_hexagon_V6_vlsrwv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vlsrwv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrh,VI_ftype_VISI,2) // tag : V6_vasrh def int_hexagon_V6_vasrh : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vasrh">; // // BUILTIN_INFO(HEXAGON.V6_vasrh_128B,VI_ftype_VISI,2) // tag : V6_vasrh_128B def int_hexagon_V6_vasrh_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vasrh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaslh,VI_ftype_VISI,2) // tag : V6_vaslh def int_hexagon_V6_vaslh : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vaslh">; // // BUILTIN_INFO(HEXAGON.V6_vaslh_128B,VI_ftype_VISI,2) // tag : V6_vaslh_128B def int_hexagon_V6_vaslh_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vaslh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlsrh,VI_ftype_VISI,2) // tag : V6_vlsrh def int_hexagon_V6_vlsrh : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vlsrh">; // // BUILTIN_INFO(HEXAGON.V6_vlsrh_128B,VI_ftype_VISI,2) // tag : V6_vlsrh_128B def int_hexagon_V6_vlsrh_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vlsrh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrhv,VI_ftype_VIVI,2) // tag : V6_vasrhv def int_hexagon_V6_vasrhv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vasrhv">; // // BUILTIN_INFO(HEXAGON.V6_vasrhv_128B,VI_ftype_VIVI,2) // tag : V6_vasrhv_128B def int_hexagon_V6_vasrhv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vasrhv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaslhv,VI_ftype_VIVI,2) // tag : V6_vaslhv def int_hexagon_V6_vaslhv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaslhv">; // // BUILTIN_INFO(HEXAGON.V6_vaslhv_128B,VI_ftype_VIVI,2) // tag : V6_vaslhv_128B def int_hexagon_V6_vaslhv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaslhv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlsrhv,VI_ftype_VIVI,2) // tag : V6_vlsrhv def int_hexagon_V6_vlsrhv : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vlsrhv">; // // BUILTIN_INFO(HEXAGON.V6_vlsrhv_128B,VI_ftype_VIVI,2) // tag : V6_vlsrhv_128B def int_hexagon_V6_vlsrhv_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vlsrhv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrwh,VI_ftype_VIVISI,3) // tag : V6_vasrwh def int_hexagon_V6_vasrwh : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrwh">; // // BUILTIN_INFO(HEXAGON.V6_vasrwh_128B,VI_ftype_VIVISI,3) // tag : V6_vasrwh_128B def int_hexagon_V6_vasrwh_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrwh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrwhsat,VI_ftype_VIVISI,3) // tag : V6_vasrwhsat def int_hexagon_V6_vasrwhsat : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrwhsat">; // // BUILTIN_INFO(HEXAGON.V6_vasrwhsat_128B,VI_ftype_VIVISI,3) // tag : V6_vasrwhsat_128B def int_hexagon_V6_vasrwhsat_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrwhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrwhrndsat,VI_ftype_VIVISI,3) // tag : V6_vasrwhrndsat def int_hexagon_V6_vasrwhrndsat : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrwhrndsat">; // // BUILTIN_INFO(HEXAGON.V6_vasrwhrndsat_128B,VI_ftype_VIVISI,3) // tag : V6_vasrwhrndsat_128B def int_hexagon_V6_vasrwhrndsat_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrwhrndsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrwuhsat,VI_ftype_VIVISI,3) // tag : V6_vasrwuhsat def int_hexagon_V6_vasrwuhsat : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrwuhsat">; // // BUILTIN_INFO(HEXAGON.V6_vasrwuhsat_128B,VI_ftype_VIVISI,3) // tag : V6_vasrwuhsat_128B def int_hexagon_V6_vasrwuhsat_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrwuhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vroundwh,VI_ftype_VIVI,2) // tag : V6_vroundwh def int_hexagon_V6_vroundwh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vroundwh">; // // BUILTIN_INFO(HEXAGON.V6_vroundwh_128B,VI_ftype_VIVI,2) // tag : V6_vroundwh_128B def int_hexagon_V6_vroundwh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vroundwh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vroundwuh,VI_ftype_VIVI,2) // tag : V6_vroundwuh def int_hexagon_V6_vroundwuh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vroundwuh">; // // BUILTIN_INFO(HEXAGON.V6_vroundwuh_128B,VI_ftype_VIVI,2) // tag : V6_vroundwuh_128B def int_hexagon_V6_vroundwuh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vroundwuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrhubsat,VI_ftype_VIVISI,3) // tag : V6_vasrhubsat def int_hexagon_V6_vasrhubsat : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrhubsat">; // // BUILTIN_INFO(HEXAGON.V6_vasrhubsat_128B,VI_ftype_VIVISI,3) // tag : V6_vasrhubsat_128B def int_hexagon_V6_vasrhubsat_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrhubsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrhubrndsat,VI_ftype_VIVISI,3) // tag : V6_vasrhubrndsat def int_hexagon_V6_vasrhubrndsat : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrhubrndsat">; // // BUILTIN_INFO(HEXAGON.V6_vasrhubrndsat_128B,VI_ftype_VIVISI,3) // tag : V6_vasrhubrndsat_128B def int_hexagon_V6_vasrhubrndsat_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrhubrndsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrhbrndsat,VI_ftype_VIVISI,3) // tag : V6_vasrhbrndsat def int_hexagon_V6_vasrhbrndsat : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrhbrndsat">; // // BUILTIN_INFO(HEXAGON.V6_vasrhbrndsat_128B,VI_ftype_VIVISI,3) // tag : V6_vasrhbrndsat_128B def int_hexagon_V6_vasrhbrndsat_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrhbrndsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vroundhb,VI_ftype_VIVI,2) // tag : V6_vroundhb def int_hexagon_V6_vroundhb : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vroundhb">; // // BUILTIN_INFO(HEXAGON.V6_vroundhb_128B,VI_ftype_VIVI,2) // tag : V6_vroundhb_128B def int_hexagon_V6_vroundhb_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vroundhb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vroundhub,VI_ftype_VIVI,2) // tag : V6_vroundhub def int_hexagon_V6_vroundhub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vroundhub">; // // BUILTIN_INFO(HEXAGON.V6_vroundhub_128B,VI_ftype_VIVI,2) // tag : V6_vroundhub_128B def int_hexagon_V6_vroundhub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vroundhub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaslw_acc,VI_ftype_VIVISI,3) // tag : V6_vaslw_acc def int_hexagon_V6_vaslw_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vaslw_acc">; // // BUILTIN_INFO(HEXAGON.V6_vaslw_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vaslw_acc_128B def int_hexagon_V6_vaslw_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vaslw_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vasrw_acc,VI_ftype_VIVISI,3) // tag : V6_vasrw_acc def int_hexagon_V6_vasrw_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vasrw_acc">; // // BUILTIN_INFO(HEXAGON.V6_vasrw_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vasrw_acc_128B def int_hexagon_V6_vasrw_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vasrw_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddb,VI_ftype_VIVI,2) // tag : V6_vaddb def int_hexagon_V6_vaddb : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaddb">; // // BUILTIN_INFO(HEXAGON.V6_vaddb_128B,VI_ftype_VIVI,2) // tag : V6_vaddb_128B def int_hexagon_V6_vaddb_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubb,VI_ftype_VIVI,2) // tag : V6_vsubb def int_hexagon_V6_vsubb : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsubb">; // // BUILTIN_INFO(HEXAGON.V6_vsubb_128B,VI_ftype_VIVI,2) // tag : V6_vsubb_128B def int_hexagon_V6_vsubb_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddb_dv,VD_ftype_VDVD,2) // tag : V6_vaddb_dv def int_hexagon_V6_vaddb_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddb_dv">; // // BUILTIN_INFO(HEXAGON.V6_vaddb_dv_128B,VD_ftype_VDVD,2) // tag : V6_vaddb_dv_128B def int_hexagon_V6_vaddb_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vaddb_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubb_dv,VD_ftype_VDVD,2) // tag : V6_vsubb_dv def int_hexagon_V6_vsubb_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubb_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsubb_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsubb_dv_128B def int_hexagon_V6_vsubb_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsubb_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddh,VI_ftype_VIVI,2) // tag : V6_vaddh def int_hexagon_V6_vaddh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaddh">; // // BUILTIN_INFO(HEXAGON.V6_vaddh_128B,VI_ftype_VIVI,2) // tag : V6_vaddh_128B def int_hexagon_V6_vaddh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubh,VI_ftype_VIVI,2) // tag : V6_vsubh def int_hexagon_V6_vsubh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsubh">; // // BUILTIN_INFO(HEXAGON.V6_vsubh_128B,VI_ftype_VIVI,2) // tag : V6_vsubh_128B def int_hexagon_V6_vsubh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddh_dv,VD_ftype_VDVD,2) // tag : V6_vaddh_dv def int_hexagon_V6_vaddh_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddh_dv">; // // BUILTIN_INFO(HEXAGON.V6_vaddh_dv_128B,VD_ftype_VDVD,2) // tag : V6_vaddh_dv_128B def int_hexagon_V6_vaddh_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vaddh_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubh_dv,VD_ftype_VDVD,2) // tag : V6_vsubh_dv def int_hexagon_V6_vsubh_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubh_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsubh_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsubh_dv_128B def int_hexagon_V6_vsubh_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsubh_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddw,VI_ftype_VIVI,2) // tag : V6_vaddw def int_hexagon_V6_vaddw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaddw">; // // BUILTIN_INFO(HEXAGON.V6_vaddw_128B,VI_ftype_VIVI,2) // tag : V6_vaddw_128B def int_hexagon_V6_vaddw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubw,VI_ftype_VIVI,2) // tag : V6_vsubw def int_hexagon_V6_vsubw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsubw">; // // BUILTIN_INFO(HEXAGON.V6_vsubw_128B,VI_ftype_VIVI,2) // tag : V6_vsubw_128B def int_hexagon_V6_vsubw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddw_dv,VD_ftype_VDVD,2) // tag : V6_vaddw_dv def int_hexagon_V6_vaddw_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddw_dv">; // // BUILTIN_INFO(HEXAGON.V6_vaddw_dv_128B,VD_ftype_VDVD,2) // tag : V6_vaddw_dv_128B def int_hexagon_V6_vaddw_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vaddw_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubw_dv,VD_ftype_VDVD,2) // tag : V6_vsubw_dv def int_hexagon_V6_vsubw_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubw_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsubw_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsubw_dv_128B def int_hexagon_V6_vsubw_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsubw_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddubsat,VI_ftype_VIVI,2) // tag : V6_vaddubsat def int_hexagon_V6_vaddubsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaddubsat">; // // BUILTIN_INFO(HEXAGON.V6_vaddubsat_128B,VI_ftype_VIVI,2) // tag : V6_vaddubsat_128B def int_hexagon_V6_vaddubsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddubsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddubsat_dv,VD_ftype_VDVD,2) // tag : V6_vaddubsat_dv def int_hexagon_V6_vaddubsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddubsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vaddubsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vaddubsat_dv_128B def int_hexagon_V6_vaddubsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vaddubsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsububsat,VI_ftype_VIVI,2) // tag : V6_vsububsat def int_hexagon_V6_vsububsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsububsat">; // // BUILTIN_INFO(HEXAGON.V6_vsububsat_128B,VI_ftype_VIVI,2) // tag : V6_vsububsat_128B def int_hexagon_V6_vsububsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsububsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsububsat_dv,VD_ftype_VDVD,2) // tag : V6_vsububsat_dv def int_hexagon_V6_vsububsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsububsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsububsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsububsat_dv_128B def int_hexagon_V6_vsububsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsububsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vadduhsat,VI_ftype_VIVI,2) // tag : V6_vadduhsat def int_hexagon_V6_vadduhsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vadduhsat">; // // BUILTIN_INFO(HEXAGON.V6_vadduhsat_128B,VI_ftype_VIVI,2) // tag : V6_vadduhsat_128B def int_hexagon_V6_vadduhsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vadduhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vadduhsat_dv,VD_ftype_VDVD,2) // tag : V6_vadduhsat_dv def int_hexagon_V6_vadduhsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vadduhsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vadduhsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vadduhsat_dv_128B def int_hexagon_V6_vadduhsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vadduhsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubuhsat,VI_ftype_VIVI,2) // tag : V6_vsubuhsat def int_hexagon_V6_vsubuhsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsubuhsat">; // // BUILTIN_INFO(HEXAGON.V6_vsubuhsat_128B,VI_ftype_VIVI,2) // tag : V6_vsubuhsat_128B def int_hexagon_V6_vsubuhsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubuhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubuhsat_dv,VD_ftype_VDVD,2) // tag : V6_vsubuhsat_dv def int_hexagon_V6_vsubuhsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubuhsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsubuhsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsubuhsat_dv_128B def int_hexagon_V6_vsubuhsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsubuhsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddhsat,VI_ftype_VIVI,2) // tag : V6_vaddhsat def int_hexagon_V6_vaddhsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaddhsat">; // // BUILTIN_INFO(HEXAGON.V6_vaddhsat_128B,VI_ftype_VIVI,2) // tag : V6_vaddhsat_128B def int_hexagon_V6_vaddhsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddhsat_dv,VD_ftype_VDVD,2) // tag : V6_vaddhsat_dv def int_hexagon_V6_vaddhsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddhsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vaddhsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vaddhsat_dv_128B def int_hexagon_V6_vaddhsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vaddhsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubhsat,VI_ftype_VIVI,2) // tag : V6_vsubhsat def int_hexagon_V6_vsubhsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsubhsat">; // // BUILTIN_INFO(HEXAGON.V6_vsubhsat_128B,VI_ftype_VIVI,2) // tag : V6_vsubhsat_128B def int_hexagon_V6_vsubhsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubhsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubhsat_dv,VD_ftype_VDVD,2) // tag : V6_vsubhsat_dv def int_hexagon_V6_vsubhsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubhsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsubhsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsubhsat_dv_128B def int_hexagon_V6_vsubhsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsubhsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddwsat,VI_ftype_VIVI,2) // tag : V6_vaddwsat def int_hexagon_V6_vaddwsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vaddwsat">; // // BUILTIN_INFO(HEXAGON.V6_vaddwsat_128B,VI_ftype_VIVI,2) // tag : V6_vaddwsat_128B def int_hexagon_V6_vaddwsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddwsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddwsat_dv,VD_ftype_VDVD,2) // tag : V6_vaddwsat_dv def int_hexagon_V6_vaddwsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vaddwsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vaddwsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vaddwsat_dv_128B def int_hexagon_V6_vaddwsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vaddwsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubwsat,VI_ftype_VIVI,2) // tag : V6_vsubwsat def int_hexagon_V6_vsubwsat : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsubwsat">; // // BUILTIN_INFO(HEXAGON.V6_vsubwsat_128B,VI_ftype_VIVI,2) // tag : V6_vsubwsat_128B def int_hexagon_V6_vsubwsat_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubwsat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubwsat_dv,VD_ftype_VDVD,2) // tag : V6_vsubwsat_dv def int_hexagon_V6_vsubwsat_dv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsubwsat_dv">; // // BUILTIN_INFO(HEXAGON.V6_vsubwsat_dv_128B,VD_ftype_VDVD,2) // tag : V6_vsubwsat_dv_128B def int_hexagon_V6_vsubwsat_dv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vsubwsat_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavgub,VI_ftype_VIVI,2) // tag : V6_vavgub def int_hexagon_V6_vavgub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavgub">; // // BUILTIN_INFO(HEXAGON.V6_vavgub_128B,VI_ftype_VIVI,2) // tag : V6_vavgub_128B def int_hexagon_V6_vavgub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavgub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavgubrnd,VI_ftype_VIVI,2) // tag : V6_vavgubrnd def int_hexagon_V6_vavgubrnd : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavgubrnd">; // // BUILTIN_INFO(HEXAGON.V6_vavgubrnd_128B,VI_ftype_VIVI,2) // tag : V6_vavgubrnd_128B def int_hexagon_V6_vavgubrnd_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavgubrnd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavguh,VI_ftype_VIVI,2) // tag : V6_vavguh def int_hexagon_V6_vavguh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavguh">; // // BUILTIN_INFO(HEXAGON.V6_vavguh_128B,VI_ftype_VIVI,2) // tag : V6_vavguh_128B def int_hexagon_V6_vavguh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavguh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavguhrnd,VI_ftype_VIVI,2) // tag : V6_vavguhrnd def int_hexagon_V6_vavguhrnd : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavguhrnd">; // // BUILTIN_INFO(HEXAGON.V6_vavguhrnd_128B,VI_ftype_VIVI,2) // tag : V6_vavguhrnd_128B def int_hexagon_V6_vavguhrnd_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavguhrnd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavgh,VI_ftype_VIVI,2) // tag : V6_vavgh def int_hexagon_V6_vavgh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavgh">; // // BUILTIN_INFO(HEXAGON.V6_vavgh_128B,VI_ftype_VIVI,2) // tag : V6_vavgh_128B def int_hexagon_V6_vavgh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavgh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavghrnd,VI_ftype_VIVI,2) // tag : V6_vavghrnd def int_hexagon_V6_vavghrnd : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavghrnd">; // // BUILTIN_INFO(HEXAGON.V6_vavghrnd_128B,VI_ftype_VIVI,2) // tag : V6_vavghrnd_128B def int_hexagon_V6_vavghrnd_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavghrnd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vnavgh,VI_ftype_VIVI,2) // tag : V6_vnavgh def int_hexagon_V6_vnavgh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vnavgh">; // // BUILTIN_INFO(HEXAGON.V6_vnavgh_128B,VI_ftype_VIVI,2) // tag : V6_vnavgh_128B def int_hexagon_V6_vnavgh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vnavgh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavgw,VI_ftype_VIVI,2) // tag : V6_vavgw def int_hexagon_V6_vavgw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavgw">; // // BUILTIN_INFO(HEXAGON.V6_vavgw_128B,VI_ftype_VIVI,2) // tag : V6_vavgw_128B def int_hexagon_V6_vavgw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavgw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vavgwrnd,VI_ftype_VIVI,2) // tag : V6_vavgwrnd def int_hexagon_V6_vavgwrnd : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vavgwrnd">; // // BUILTIN_INFO(HEXAGON.V6_vavgwrnd_128B,VI_ftype_VIVI,2) // tag : V6_vavgwrnd_128B def int_hexagon_V6_vavgwrnd_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vavgwrnd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vnavgw,VI_ftype_VIVI,2) // tag : V6_vnavgw def int_hexagon_V6_vnavgw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vnavgw">; // // BUILTIN_INFO(HEXAGON.V6_vnavgw_128B,VI_ftype_VIVI,2) // tag : V6_vnavgw_128B def int_hexagon_V6_vnavgw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vnavgw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffub,VI_ftype_VIVI,2) // tag : V6_vabsdiffub def int_hexagon_V6_vabsdiffub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vabsdiffub">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffub_128B,VI_ftype_VIVI,2) // tag : V6_vabsdiffub_128B def int_hexagon_V6_vabsdiffub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vabsdiffub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffuh,VI_ftype_VIVI,2) // tag : V6_vabsdiffuh def int_hexagon_V6_vabsdiffuh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vabsdiffuh">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffuh_128B,VI_ftype_VIVI,2) // tag : V6_vabsdiffuh_128B def int_hexagon_V6_vabsdiffuh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vabsdiffuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffh,VI_ftype_VIVI,2) // tag : V6_vabsdiffh def int_hexagon_V6_vabsdiffh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vabsdiffh">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffh_128B,VI_ftype_VIVI,2) // tag : V6_vabsdiffh_128B def int_hexagon_V6_vabsdiffh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vabsdiffh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffw,VI_ftype_VIVI,2) // tag : V6_vabsdiffw def int_hexagon_V6_vabsdiffw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vabsdiffw">; // // BUILTIN_INFO(HEXAGON.V6_vabsdiffw_128B,VI_ftype_VIVI,2) // tag : V6_vabsdiffw_128B def int_hexagon_V6_vabsdiffw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vabsdiffw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vnavgub,VI_ftype_VIVI,2) // tag : V6_vnavgub def int_hexagon_V6_vnavgub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vnavgub">; // // BUILTIN_INFO(HEXAGON.V6_vnavgub_128B,VI_ftype_VIVI,2) // tag : V6_vnavgub_128B def int_hexagon_V6_vnavgub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vnavgub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddubh,VD_ftype_VIVI,2) // tag : V6_vaddubh def int_hexagon_V6_vaddubh : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vaddubh">; // // BUILTIN_INFO(HEXAGON.V6_vaddubh_128B,VD_ftype_VIVI,2) // tag : V6_vaddubh_128B def int_hexagon_V6_vaddubh_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vaddubh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsububh,VD_ftype_VIVI,2) // tag : V6_vsububh def int_hexagon_V6_vsububh : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vsububh">; // // BUILTIN_INFO(HEXAGON.V6_vsububh_128B,VD_ftype_VIVI,2) // tag : V6_vsububh_128B def int_hexagon_V6_vsububh_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vsububh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddhw,VD_ftype_VIVI,2) // tag : V6_vaddhw def int_hexagon_V6_vaddhw : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vaddhw">; // // BUILTIN_INFO(HEXAGON.V6_vaddhw_128B,VD_ftype_VIVI,2) // tag : V6_vaddhw_128B def int_hexagon_V6_vaddhw_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vaddhw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubhw,VD_ftype_VIVI,2) // tag : V6_vsubhw def int_hexagon_V6_vsubhw : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vsubhw">; // // BUILTIN_INFO(HEXAGON.V6_vsubhw_128B,VD_ftype_VIVI,2) // tag : V6_vsubhw_128B def int_hexagon_V6_vsubhw_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vsubhw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vadduhw,VD_ftype_VIVI,2) // tag : V6_vadduhw def int_hexagon_V6_vadduhw : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vadduhw">; // // BUILTIN_INFO(HEXAGON.V6_vadduhw_128B,VD_ftype_VIVI,2) // tag : V6_vadduhw_128B def int_hexagon_V6_vadduhw_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vadduhw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubuhw,VD_ftype_VIVI,2) // tag : V6_vsubuhw def int_hexagon_V6_vsubuhw : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vsubuhw">; // // BUILTIN_INFO(HEXAGON.V6_vsubuhw_128B,VD_ftype_VIVI,2) // tag : V6_vsubuhw_128B def int_hexagon_V6_vsubuhw_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vsubuhw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vd0,VI_ftype_,0) // tag : V6_vd0 def int_hexagon_V6_vd0 : Hexagon_v512_Intrinsic<"HEXAGON_V6_vd0">; // // BUILTIN_INFO(HEXAGON.V6_vd0_128B,VI_ftype_,0) // tag : V6_vd0_128B def int_hexagon_V6_vd0_128B : Hexagon_v1024_Intrinsic<"HEXAGON_V6_vd0_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddbq,VI_ftype_QVVIVI,3) // tag : V6_vaddbq def int_hexagon_V6_vaddbq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vaddbq">; // // BUILTIN_INFO(HEXAGON.V6_vaddbq_128B,VI_ftype_QVVIVI,3) // tag : V6_vaddbq_128B def int_hexagon_V6_vaddbq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vaddbq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubbq,VI_ftype_QVVIVI,3) // tag : V6_vsubbq def int_hexagon_V6_vsubbq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vsubbq">; // // BUILTIN_INFO(HEXAGON.V6_vsubbq_128B,VI_ftype_QVVIVI,3) // tag : V6_vsubbq_128B def int_hexagon_V6_vsubbq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vsubbq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddbnq,VI_ftype_QVVIVI,3) // tag : V6_vaddbnq def int_hexagon_V6_vaddbnq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vaddbnq">; // // BUILTIN_INFO(HEXAGON.V6_vaddbnq_128B,VI_ftype_QVVIVI,3) // tag : V6_vaddbnq_128B def int_hexagon_V6_vaddbnq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vaddbnq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubbnq,VI_ftype_QVVIVI,3) // tag : V6_vsubbnq def int_hexagon_V6_vsubbnq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vsubbnq">; // // BUILTIN_INFO(HEXAGON.V6_vsubbnq_128B,VI_ftype_QVVIVI,3) // tag : V6_vsubbnq_128B def int_hexagon_V6_vsubbnq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vsubbnq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddhq,VI_ftype_QVVIVI,3) // tag : V6_vaddhq def int_hexagon_V6_vaddhq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vaddhq">; // // BUILTIN_INFO(HEXAGON.V6_vaddhq_128B,VI_ftype_QVVIVI,3) // tag : V6_vaddhq_128B def int_hexagon_V6_vaddhq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vaddhq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubhq,VI_ftype_QVVIVI,3) // tag : V6_vsubhq def int_hexagon_V6_vsubhq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vsubhq">; // // BUILTIN_INFO(HEXAGON.V6_vsubhq_128B,VI_ftype_QVVIVI,3) // tag : V6_vsubhq_128B def int_hexagon_V6_vsubhq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vsubhq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddhnq,VI_ftype_QVVIVI,3) // tag : V6_vaddhnq def int_hexagon_V6_vaddhnq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vaddhnq">; // // BUILTIN_INFO(HEXAGON.V6_vaddhnq_128B,VI_ftype_QVVIVI,3) // tag : V6_vaddhnq_128B def int_hexagon_V6_vaddhnq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vaddhnq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubhnq,VI_ftype_QVVIVI,3) // tag : V6_vsubhnq def int_hexagon_V6_vsubhnq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vsubhnq">; // // BUILTIN_INFO(HEXAGON.V6_vsubhnq_128B,VI_ftype_QVVIVI,3) // tag : V6_vsubhnq_128B def int_hexagon_V6_vsubhnq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vsubhnq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddwq,VI_ftype_QVVIVI,3) // tag : V6_vaddwq def int_hexagon_V6_vaddwq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vaddwq">; // // BUILTIN_INFO(HEXAGON.V6_vaddwq_128B,VI_ftype_QVVIVI,3) // tag : V6_vaddwq_128B def int_hexagon_V6_vaddwq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vaddwq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubwq,VI_ftype_QVVIVI,3) // tag : V6_vsubwq def int_hexagon_V6_vsubwq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vsubwq">; // // BUILTIN_INFO(HEXAGON.V6_vsubwq_128B,VI_ftype_QVVIVI,3) // tag : V6_vsubwq_128B def int_hexagon_V6_vsubwq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vsubwq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vaddwnq,VI_ftype_QVVIVI,3) // tag : V6_vaddwnq def int_hexagon_V6_vaddwnq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vaddwnq">; // // BUILTIN_INFO(HEXAGON.V6_vaddwnq_128B,VI_ftype_QVVIVI,3) // tag : V6_vaddwnq_128B def int_hexagon_V6_vaddwnq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vaddwnq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsubwnq,VI_ftype_QVVIVI,3) // tag : V6_vsubwnq def int_hexagon_V6_vsubwnq : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vsubwnq">; // // BUILTIN_INFO(HEXAGON.V6_vsubwnq_128B,VI_ftype_QVVIVI,3) // tag : V6_vsubwnq_128B def int_hexagon_V6_vsubwnq_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vsubwnq_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsh,VI_ftype_VI,1) // tag : V6_vabsh def int_hexagon_V6_vabsh : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vabsh">; // // BUILTIN_INFO(HEXAGON.V6_vabsh_128B,VI_ftype_VI,1) // tag : V6_vabsh_128B def int_hexagon_V6_vabsh_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vabsh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsh_sat,VI_ftype_VI,1) // tag : V6_vabsh_sat def int_hexagon_V6_vabsh_sat : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vabsh_sat">; // // BUILTIN_INFO(HEXAGON.V6_vabsh_sat_128B,VI_ftype_VI,1) // tag : V6_vabsh_sat_128B def int_hexagon_V6_vabsh_sat_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vabsh_sat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsw,VI_ftype_VI,1) // tag : V6_vabsw def int_hexagon_V6_vabsw : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vabsw">; // // BUILTIN_INFO(HEXAGON.V6_vabsw_128B,VI_ftype_VI,1) // tag : V6_vabsw_128B def int_hexagon_V6_vabsw_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vabsw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vabsw_sat,VI_ftype_VI,1) // tag : V6_vabsw_sat def int_hexagon_V6_vabsw_sat : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vabsw_sat">; // // BUILTIN_INFO(HEXAGON.V6_vabsw_sat_128B,VI_ftype_VI,1) // tag : V6_vabsw_sat_128B def int_hexagon_V6_vabsw_sat_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vabsw_sat_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpybv,VD_ftype_VIVI,2) // tag : V6_vmpybv def int_hexagon_V6_vmpybv : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vmpybv">; // // BUILTIN_INFO(HEXAGON.V6_vmpybv_128B,VD_ftype_VIVI,2) // tag : V6_vmpybv_128B def int_hexagon_V6_vmpybv_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpybv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpybv_acc,VD_ftype_VDVIVI,3) // tag : V6_vmpybv_acc def int_hexagon_V6_vmpybv_acc : Hexagon_v1024v1024v512v512_Intrinsic<"HEXAGON_V6_vmpybv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpybv_acc_128B,VD_ftype_VDVIVI,3) // tag : V6_vmpybv_acc_128B def int_hexagon_V6_vmpybv_acc_128B : Hexagon_v2048v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpybv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyubv,VD_ftype_VIVI,2) // tag : V6_vmpyubv def int_hexagon_V6_vmpyubv : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyubv">; // // BUILTIN_INFO(HEXAGON.V6_vmpyubv_128B,VD_ftype_VIVI,2) // tag : V6_vmpyubv_128B def int_hexagon_V6_vmpyubv_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyubv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyubv_acc,VD_ftype_VDVIVI,3) // tag : V6_vmpyubv_acc def int_hexagon_V6_vmpyubv_acc : Hexagon_v1024v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyubv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyubv_acc_128B,VD_ftype_VDVIVI,3) // tag : V6_vmpyubv_acc_128B def int_hexagon_V6_vmpyubv_acc_128B : Hexagon_v2048v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyubv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpybusv,VD_ftype_VIVI,2) // tag : V6_vmpybusv def int_hexagon_V6_vmpybusv : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vmpybusv">; // // BUILTIN_INFO(HEXAGON.V6_vmpybusv_128B,VD_ftype_VIVI,2) // tag : V6_vmpybusv_128B def int_hexagon_V6_vmpybusv_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpybusv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpybusv_acc,VD_ftype_VDVIVI,3) // tag : V6_vmpybusv_acc def int_hexagon_V6_vmpybusv_acc : Hexagon_v1024v1024v512v512_Intrinsic<"HEXAGON_V6_vmpybusv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpybusv_acc_128B,VD_ftype_VDVIVI,3) // tag : V6_vmpybusv_acc_128B def int_hexagon_V6_vmpybusv_acc_128B : Hexagon_v2048v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpybusv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpabusv,VD_ftype_VDVD,2) // tag : V6_vmpabusv def int_hexagon_V6_vmpabusv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpabusv">; // // BUILTIN_INFO(HEXAGON.V6_vmpabusv_128B,VD_ftype_VDVD,2) // tag : V6_vmpabusv_128B def int_hexagon_V6_vmpabusv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vmpabusv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpabuuv,VD_ftype_VDVD,2) // tag : V6_vmpabuuv def int_hexagon_V6_vmpabuuv : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpabuuv">; // // BUILTIN_INFO(HEXAGON.V6_vmpabuuv_128B,VD_ftype_VDVD,2) // tag : V6_vmpabuuv_128B def int_hexagon_V6_vmpabuuv_128B : Hexagon_v2048v2048v2048_Intrinsic<"HEXAGON_V6_vmpabuuv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhv,VD_ftype_VIVI,2) // tag : V6_vmpyhv def int_hexagon_V6_vmpyhv : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyhv">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhv_128B,VD_ftype_VIVI,2) // tag : V6_vmpyhv_128B def int_hexagon_V6_vmpyhv_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyhv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhv_acc,VD_ftype_VDVIVI,3) // tag : V6_vmpyhv_acc def int_hexagon_V6_vmpyhv_acc : Hexagon_v1024v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyhv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhv_acc_128B,VD_ftype_VDVIVI,3) // tag : V6_vmpyhv_acc_128B def int_hexagon_V6_vmpyhv_acc_128B : Hexagon_v2048v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyhv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuhv,VD_ftype_VIVI,2) // tag : V6_vmpyuhv def int_hexagon_V6_vmpyuhv : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyuhv">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuhv_128B,VD_ftype_VIVI,2) // tag : V6_vmpyuhv_128B def int_hexagon_V6_vmpyuhv_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyuhv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuhv_acc,VD_ftype_VDVIVI,3) // tag : V6_vmpyuhv_acc def int_hexagon_V6_vmpyuhv_acc : Hexagon_v1024v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyuhv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuhv_acc_128B,VD_ftype_VDVIVI,3) // tag : V6_vmpyuhv_acc_128B def int_hexagon_V6_vmpyuhv_acc_128B : Hexagon_v2048v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyuhv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhvsrs,VI_ftype_VIVI,2) // tag : V6_vmpyhvsrs def int_hexagon_V6_vmpyhvsrs : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyhvsrs">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhvsrs_128B,VI_ftype_VIVI,2) // tag : V6_vmpyhvsrs_128B def int_hexagon_V6_vmpyhvsrs_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyhvsrs_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhus,VD_ftype_VIVI,2) // tag : V6_vmpyhus def int_hexagon_V6_vmpyhus : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyhus">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhus_128B,VD_ftype_VIVI,2) // tag : V6_vmpyhus_128B def int_hexagon_V6_vmpyhus_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyhus_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhus_acc,VD_ftype_VDVIVI,3) // tag : V6_vmpyhus_acc def int_hexagon_V6_vmpyhus_acc : Hexagon_v1024v1024v512v512_Intrinsic<"HEXAGON_V6_vmpyhus_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhus_acc_128B,VD_ftype_VDVIVI,3) // tag : V6_vmpyhus_acc_128B def int_hexagon_V6_vmpyhus_acc_128B : Hexagon_v2048v2048v1024v1024_Intrinsic<"HEXAGON_V6_vmpyhus_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyih,VI_ftype_VIVI,2) // tag : V6_vmpyih def int_hexagon_V6_vmpyih : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyih">; // // BUILTIN_INFO(HEXAGON.V6_vmpyih_128B,VI_ftype_VIVI,2) // tag : V6_vmpyih_128B def int_hexagon_V6_vmpyih_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyih_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyih_acc,VI_ftype_VIVIVI,3) // tag : V6_vmpyih_acc def int_hexagon_V6_vmpyih_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vmpyih_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyih_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vmpyih_acc_128B def int_hexagon_V6_vmpyih_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyih_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyewuh,VI_ftype_VIVI,2) // tag : V6_vmpyewuh def int_hexagon_V6_vmpyewuh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyewuh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyewuh_128B,VI_ftype_VIVI,2) // tag : V6_vmpyewuh_128B def int_hexagon_V6_vmpyewuh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyewuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh,VI_ftype_VIVI,2) // tag : V6_vmpyowh def int_hexagon_V6_vmpyowh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyowh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_128B,VI_ftype_VIVI,2) // tag : V6_vmpyowh_128B def int_hexagon_V6_vmpyowh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyowh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_rnd,VI_ftype_VIVI,2) // tag : V6_vmpyowh_rnd def int_hexagon_V6_vmpyowh_rnd : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyowh_rnd">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_rnd_128B,VI_ftype_VIVI,2) // tag : V6_vmpyowh_rnd_128B def int_hexagon_V6_vmpyowh_rnd_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyowh_rnd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_sacc,VI_ftype_VIVIVI,3) // tag : V6_vmpyowh_sacc def int_hexagon_V6_vmpyowh_sacc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vmpyowh_sacc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_sacc_128B,VI_ftype_VIVIVI,3) // tag : V6_vmpyowh_sacc_128B def int_hexagon_V6_vmpyowh_sacc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyowh_sacc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_rnd_sacc,VI_ftype_VIVIVI,3) // tag : V6_vmpyowh_rnd_sacc def int_hexagon_V6_vmpyowh_rnd_sacc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vmpyowh_rnd_sacc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyowh_rnd_sacc_128B,VI_ftype_VIVIVI,3) // tag : V6_vmpyowh_rnd_sacc_128B def int_hexagon_V6_vmpyowh_rnd_sacc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyowh_rnd_sacc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyieoh,VI_ftype_VIVI,2) // tag : V6_vmpyieoh def int_hexagon_V6_vmpyieoh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyieoh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyieoh_128B,VI_ftype_VIVI,2) // tag : V6_vmpyieoh_128B def int_hexagon_V6_vmpyieoh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyieoh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiewuh,VI_ftype_VIVI,2) // tag : V6_vmpyiewuh def int_hexagon_V6_vmpyiewuh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyiewuh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiewuh_128B,VI_ftype_VIVI,2) // tag : V6_vmpyiewuh_128B def int_hexagon_V6_vmpyiewuh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyiewuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiowh,VI_ftype_VIVI,2) // tag : V6_vmpyiowh def int_hexagon_V6_vmpyiowh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmpyiowh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiowh_128B,VI_ftype_VIVI,2) // tag : V6_vmpyiowh_128B def int_hexagon_V6_vmpyiowh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyiowh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiewh_acc,VI_ftype_VIVIVI,3) // tag : V6_vmpyiewh_acc def int_hexagon_V6_vmpyiewh_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vmpyiewh_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiewh_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vmpyiewh_acc_128B def int_hexagon_V6_vmpyiewh_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyiewh_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiewuh_acc,VI_ftype_VIVIVI,3) // tag : V6_vmpyiewuh_acc def int_hexagon_V6_vmpyiewuh_acc : Hexagon_v512v512v512v512_Intrinsic<"HEXAGON_V6_vmpyiewuh_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiewuh_acc_128B,VI_ftype_VIVIVI,3) // tag : V6_vmpyiewuh_acc_128B def int_hexagon_V6_vmpyiewuh_acc_128B : Hexagon_v1024v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmpyiewuh_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyub,VD_ftype_VISI,2) // tag : V6_vmpyub def int_hexagon_V6_vmpyub : Hexagon_v1024v512i_Intrinsic<"HEXAGON_V6_vmpyub">; // // BUILTIN_INFO(HEXAGON.V6_vmpyub_128B,VD_ftype_VISI,2) // tag : V6_vmpyub_128B def int_hexagon_V6_vmpyub_128B : Hexagon_v2048v1024i_Intrinsic<"HEXAGON_V6_vmpyub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyub_acc,VD_ftype_VDVISI,3) // tag : V6_vmpyub_acc def int_hexagon_V6_vmpyub_acc : Hexagon_v1024v1024v512i_Intrinsic<"HEXAGON_V6_vmpyub_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyub_acc_128B,VD_ftype_VDVISI,3) // tag : V6_vmpyub_acc_128B def int_hexagon_V6_vmpyub_acc_128B : Hexagon_v2048v2048v1024i_Intrinsic<"HEXAGON_V6_vmpyub_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpybus,VD_ftype_VISI,2) // tag : V6_vmpybus def int_hexagon_V6_vmpybus : Hexagon_v1024v512i_Intrinsic<"HEXAGON_V6_vmpybus">; // // BUILTIN_INFO(HEXAGON.V6_vmpybus_128B,VD_ftype_VISI,2) // tag : V6_vmpybus_128B def int_hexagon_V6_vmpybus_128B : Hexagon_v2048v1024i_Intrinsic<"HEXAGON_V6_vmpybus_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpybus_acc,VD_ftype_VDVISI,3) // tag : V6_vmpybus_acc def int_hexagon_V6_vmpybus_acc : Hexagon_v1024v1024v512i_Intrinsic<"HEXAGON_V6_vmpybus_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpybus_acc_128B,VD_ftype_VDVISI,3) // tag : V6_vmpybus_acc_128B def int_hexagon_V6_vmpybus_acc_128B : Hexagon_v2048v2048v1024i_Intrinsic<"HEXAGON_V6_vmpybus_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpabus,VD_ftype_VDSI,2) // tag : V6_vmpabus def int_hexagon_V6_vmpabus : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpabus">; // // BUILTIN_INFO(HEXAGON.V6_vmpabus_128B,VD_ftype_VDSI,2) // tag : V6_vmpabus_128B def int_hexagon_V6_vmpabus_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vmpabus_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpabus_acc,VD_ftype_VDVDSI,3) // tag : V6_vmpabus_acc def int_hexagon_V6_vmpabus_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vmpabus_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpabus_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vmpabus_acc_128B def int_hexagon_V6_vmpabus_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vmpabus_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpahb,VD_ftype_VDSI,2) // tag : V6_vmpahb def int_hexagon_V6_vmpahb : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpahb">; // // BUILTIN_INFO(HEXAGON.V6_vmpahb_128B,VD_ftype_VDSI,2) // tag : V6_vmpahb_128B def int_hexagon_V6_vmpahb_128B : Hexagon_v2048v2048i_Intrinsic<"HEXAGON_V6_vmpahb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpahb_acc,VD_ftype_VDVDSI,3) // tag : V6_vmpahb_acc def int_hexagon_V6_vmpahb_acc : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vmpahb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpahb_acc_128B,VD_ftype_VDVDSI,3) // tag : V6_vmpahb_acc_128B def int_hexagon_V6_vmpahb_acc_128B : Hexagon_v2048v2048v2048i_Intrinsic<"HEXAGON_V6_vmpahb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyh,VD_ftype_VISI,2) // tag : V6_vmpyh def int_hexagon_V6_vmpyh : Hexagon_v1024v512i_Intrinsic<"HEXAGON_V6_vmpyh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyh_128B,VD_ftype_VISI,2) // tag : V6_vmpyh_128B def int_hexagon_V6_vmpyh_128B : Hexagon_v2048v1024i_Intrinsic<"HEXAGON_V6_vmpyh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhsat_acc,VD_ftype_VDVISI,3) // tag : V6_vmpyhsat_acc def int_hexagon_V6_vmpyhsat_acc : Hexagon_v1024v1024v512i_Intrinsic<"HEXAGON_V6_vmpyhsat_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhsat_acc_128B,VD_ftype_VDVISI,3) // tag : V6_vmpyhsat_acc_128B def int_hexagon_V6_vmpyhsat_acc_128B : Hexagon_v2048v2048v1024i_Intrinsic<"HEXAGON_V6_vmpyhsat_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhss,VI_ftype_VISI,2) // tag : V6_vmpyhss def int_hexagon_V6_vmpyhss : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vmpyhss">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhss_128B,VI_ftype_VISI,2) // tag : V6_vmpyhss_128B def int_hexagon_V6_vmpyhss_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyhss_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhsrs,VI_ftype_VISI,2) // tag : V6_vmpyhsrs def int_hexagon_V6_vmpyhsrs : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vmpyhsrs">; // // BUILTIN_INFO(HEXAGON.V6_vmpyhsrs_128B,VI_ftype_VISI,2) // tag : V6_vmpyhsrs_128B def int_hexagon_V6_vmpyhsrs_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyhsrs_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuh,VD_ftype_VISI,2) // tag : V6_vmpyuh def int_hexagon_V6_vmpyuh : Hexagon_v1024v512i_Intrinsic<"HEXAGON_V6_vmpyuh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuh_128B,VD_ftype_VISI,2) // tag : V6_vmpyuh_128B def int_hexagon_V6_vmpyuh_128B : Hexagon_v2048v1024i_Intrinsic<"HEXAGON_V6_vmpyuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuh_acc,VD_ftype_VDVISI,3) // tag : V6_vmpyuh_acc def int_hexagon_V6_vmpyuh_acc : Hexagon_v1024v1024v512i_Intrinsic<"HEXAGON_V6_vmpyuh_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyuh_acc_128B,VD_ftype_VDVISI,3) // tag : V6_vmpyuh_acc_128B def int_hexagon_V6_vmpyuh_acc_128B : Hexagon_v2048v2048v1024i_Intrinsic<"HEXAGON_V6_vmpyuh_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyihb,VI_ftype_VISI,2) // tag : V6_vmpyihb def int_hexagon_V6_vmpyihb : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vmpyihb">; // // BUILTIN_INFO(HEXAGON.V6_vmpyihb_128B,VI_ftype_VISI,2) // tag : V6_vmpyihb_128B def int_hexagon_V6_vmpyihb_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyihb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyihb_acc,VI_ftype_VIVISI,3) // tag : V6_vmpyihb_acc def int_hexagon_V6_vmpyihb_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vmpyihb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyihb_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vmpyihb_acc_128B def int_hexagon_V6_vmpyihb_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyihb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwb,VI_ftype_VISI,2) // tag : V6_vmpyiwb def int_hexagon_V6_vmpyiwb : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vmpyiwb">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwb_128B,VI_ftype_VISI,2) // tag : V6_vmpyiwb_128B def int_hexagon_V6_vmpyiwb_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyiwb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwb_acc,VI_ftype_VIVISI,3) // tag : V6_vmpyiwb_acc def int_hexagon_V6_vmpyiwb_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vmpyiwb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwb_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vmpyiwb_acc_128B def int_hexagon_V6_vmpyiwb_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyiwb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwh,VI_ftype_VISI,2) // tag : V6_vmpyiwh def int_hexagon_V6_vmpyiwh : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vmpyiwh">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwh_128B,VI_ftype_VISI,2) // tag : V6_vmpyiwh_128B def int_hexagon_V6_vmpyiwh_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyiwh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwh_acc,VI_ftype_VIVISI,3) // tag : V6_vmpyiwh_acc def int_hexagon_V6_vmpyiwh_acc : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vmpyiwh_acc">; // // BUILTIN_INFO(HEXAGON.V6_vmpyiwh_acc_128B,VI_ftype_VIVISI,3) // tag : V6_vmpyiwh_acc_128B def int_hexagon_V6_vmpyiwh_acc_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vmpyiwh_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vand,VI_ftype_VIVI,2) // tag : V6_vand def int_hexagon_V6_vand : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vand">; // // BUILTIN_INFO(HEXAGON.V6_vand_128B,VI_ftype_VIVI,2) // tag : V6_vand_128B def int_hexagon_V6_vand_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vand_128B">; // // BUILTIN_INFO(HEXAGON.V6_vor,VI_ftype_VIVI,2) // tag : V6_vor def int_hexagon_V6_vor : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vor">; // // BUILTIN_INFO(HEXAGON.V6_vor_128B,VI_ftype_VIVI,2) // tag : V6_vor_128B def int_hexagon_V6_vor_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vxor,VI_ftype_VIVI,2) // tag : V6_vxor def int_hexagon_V6_vxor : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vxor">; // // BUILTIN_INFO(HEXAGON.V6_vxor_128B,VI_ftype_VIVI,2) // tag : V6_vxor_128B def int_hexagon_V6_vxor_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vxor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vnot,VI_ftype_VI,1) // tag : V6_vnot def int_hexagon_V6_vnot : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vnot">; // // BUILTIN_INFO(HEXAGON.V6_vnot_128B,VI_ftype_VI,1) // tag : V6_vnot_128B def int_hexagon_V6_vnot_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vnot_128B">; // // BUILTIN_INFO(HEXAGON.V6_vandqrt,VI_ftype_QVSI,2) // tag : V6_vandqrt def int_hexagon_V6_vandqrt : Hexagon_v512v64ii_Intrinsic<"HEXAGON_V6_vandqrt">; // // BUILTIN_INFO(HEXAGON.V6_vandqrt_128B,VI_ftype_QVSI,2) // tag : V6_vandqrt_128B def int_hexagon_V6_vandqrt_128B : Hexagon_v1024v128ii_Intrinsic<"HEXAGON_V6_vandqrt_128B">; // // BUILTIN_INFO(HEXAGON.V6_vandqrt_acc,VI_ftype_VIQVSI,3) // tag : V6_vandqrt_acc def int_hexagon_V6_vandqrt_acc : Hexagon_v512v512v64ii_Intrinsic<"HEXAGON_V6_vandqrt_acc">; // // BUILTIN_INFO(HEXAGON.V6_vandqrt_acc_128B,VI_ftype_VIQVSI,3) // tag : V6_vandqrt_acc_128B def int_hexagon_V6_vandqrt_acc_128B : Hexagon_v1024v1024v128ii_Intrinsic<"HEXAGON_V6_vandqrt_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vandvrt,QV_ftype_VISI,2) // tag : V6_vandvrt def int_hexagon_V6_vandvrt : Hexagon_v64iv512i_Intrinsic<"HEXAGON_V6_vandvrt">; // // BUILTIN_INFO(HEXAGON.V6_vandvrt_128B,QV_ftype_VISI,2) // tag : V6_vandvrt_128B def int_hexagon_V6_vandvrt_128B : Hexagon_v128iv1024i_Intrinsic<"HEXAGON_V6_vandvrt_128B">; // // BUILTIN_INFO(HEXAGON.V6_vandvrt_acc,QV_ftype_QVVISI,3) // tag : V6_vandvrt_acc def int_hexagon_V6_vandvrt_acc : Hexagon_v64iv64iv512i_Intrinsic<"HEXAGON_V6_vandvrt_acc">; // // BUILTIN_INFO(HEXAGON.V6_vandvrt_acc_128B,QV_ftype_QVVISI,3) // tag : V6_vandvrt_acc_128B def int_hexagon_V6_vandvrt_acc_128B : Hexagon_v128iv128iv1024i_Intrinsic<"HEXAGON_V6_vandvrt_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtw,QV_ftype_VIVI,2) // tag : V6_vgtw def int_hexagon_V6_vgtw : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_vgtw">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_128B,QV_ftype_VIVI,2) // tag : V6_vgtw_128B def int_hexagon_V6_vgtw_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_and,QV_ftype_QVVIVI,3) // tag : V6_vgtw_and def int_hexagon_V6_vgtw_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtw_and">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_and_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtw_and_128B def int_hexagon_V6_vgtw_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtw_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_or,QV_ftype_QVVIVI,3) // tag : V6_vgtw_or def int_hexagon_V6_vgtw_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtw_or">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_or_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtw_or_128B def int_hexagon_V6_vgtw_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtw_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_xor,QV_ftype_QVVIVI,3) // tag : V6_vgtw_xor def int_hexagon_V6_vgtw_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtw_xor">; // // BUILTIN_INFO(HEXAGON.V6_vgtw_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtw_xor_128B def int_hexagon_V6_vgtw_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtw_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqw,QV_ftype_VIVI,2) // tag : V6_veqw def int_hexagon_V6_veqw : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_veqw">; // // BUILTIN_INFO(HEXAGON.V6_veqw_128B,QV_ftype_VIVI,2) // tag : V6_veqw_128B def int_hexagon_V6_veqw_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_veqw_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqw_and,QV_ftype_QVVIVI,3) // tag : V6_veqw_and def int_hexagon_V6_veqw_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqw_and">; // // BUILTIN_INFO(HEXAGON.V6_veqw_and_128B,QV_ftype_QVVIVI,3) // tag : V6_veqw_and_128B def int_hexagon_V6_veqw_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqw_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqw_or,QV_ftype_QVVIVI,3) // tag : V6_veqw_or def int_hexagon_V6_veqw_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqw_or">; // // BUILTIN_INFO(HEXAGON.V6_veqw_or_128B,QV_ftype_QVVIVI,3) // tag : V6_veqw_or_128B def int_hexagon_V6_veqw_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqw_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqw_xor,QV_ftype_QVVIVI,3) // tag : V6_veqw_xor def int_hexagon_V6_veqw_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqw_xor">; // // BUILTIN_INFO(HEXAGON.V6_veqw_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_veqw_xor_128B def int_hexagon_V6_veqw_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqw_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgth,QV_ftype_VIVI,2) // tag : V6_vgth def int_hexagon_V6_vgth : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_vgth">; // // BUILTIN_INFO(HEXAGON.V6_vgth_128B,QV_ftype_VIVI,2) // tag : V6_vgth_128B def int_hexagon_V6_vgth_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_vgth_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgth_and,QV_ftype_QVVIVI,3) // tag : V6_vgth_and def int_hexagon_V6_vgth_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgth_and">; // // BUILTIN_INFO(HEXAGON.V6_vgth_and_128B,QV_ftype_QVVIVI,3) // tag : V6_vgth_and_128B def int_hexagon_V6_vgth_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgth_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgth_or,QV_ftype_QVVIVI,3) // tag : V6_vgth_or def int_hexagon_V6_vgth_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgth_or">; // // BUILTIN_INFO(HEXAGON.V6_vgth_or_128B,QV_ftype_QVVIVI,3) // tag : V6_vgth_or_128B def int_hexagon_V6_vgth_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgth_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgth_xor,QV_ftype_QVVIVI,3) // tag : V6_vgth_xor def int_hexagon_V6_vgth_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgth_xor">; // // BUILTIN_INFO(HEXAGON.V6_vgth_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_vgth_xor_128B def int_hexagon_V6_vgth_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgth_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqh,QV_ftype_VIVI,2) // tag : V6_veqh def int_hexagon_V6_veqh : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_veqh">; // // BUILTIN_INFO(HEXAGON.V6_veqh_128B,QV_ftype_VIVI,2) // tag : V6_veqh_128B def int_hexagon_V6_veqh_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_veqh_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqh_and,QV_ftype_QVVIVI,3) // tag : V6_veqh_and def int_hexagon_V6_veqh_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqh_and">; // // BUILTIN_INFO(HEXAGON.V6_veqh_and_128B,QV_ftype_QVVIVI,3) // tag : V6_veqh_and_128B def int_hexagon_V6_veqh_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqh_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqh_or,QV_ftype_QVVIVI,3) // tag : V6_veqh_or def int_hexagon_V6_veqh_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqh_or">; // // BUILTIN_INFO(HEXAGON.V6_veqh_or_128B,QV_ftype_QVVIVI,3) // tag : V6_veqh_or_128B def int_hexagon_V6_veqh_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqh_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqh_xor,QV_ftype_QVVIVI,3) // tag : V6_veqh_xor def int_hexagon_V6_veqh_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqh_xor">; // // BUILTIN_INFO(HEXAGON.V6_veqh_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_veqh_xor_128B def int_hexagon_V6_veqh_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqh_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtb,QV_ftype_VIVI,2) // tag : V6_vgtb def int_hexagon_V6_vgtb : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_vgtb">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_128B,QV_ftype_VIVI,2) // tag : V6_vgtb_128B def int_hexagon_V6_vgtb_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_and,QV_ftype_QVVIVI,3) // tag : V6_vgtb_and def int_hexagon_V6_vgtb_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtb_and">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_and_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtb_and_128B def int_hexagon_V6_vgtb_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtb_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_or,QV_ftype_QVVIVI,3) // tag : V6_vgtb_or def int_hexagon_V6_vgtb_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtb_or">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_or_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtb_or_128B def int_hexagon_V6_vgtb_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtb_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_xor,QV_ftype_QVVIVI,3) // tag : V6_vgtb_xor def int_hexagon_V6_vgtb_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtb_xor">; // // BUILTIN_INFO(HEXAGON.V6_vgtb_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtb_xor_128B def int_hexagon_V6_vgtb_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtb_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqb,QV_ftype_VIVI,2) // tag : V6_veqb def int_hexagon_V6_veqb : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_veqb">; // // BUILTIN_INFO(HEXAGON.V6_veqb_128B,QV_ftype_VIVI,2) // tag : V6_veqb_128B def int_hexagon_V6_veqb_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_veqb_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqb_and,QV_ftype_QVVIVI,3) // tag : V6_veqb_and def int_hexagon_V6_veqb_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqb_and">; // // BUILTIN_INFO(HEXAGON.V6_veqb_and_128B,QV_ftype_QVVIVI,3) // tag : V6_veqb_and_128B def int_hexagon_V6_veqb_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqb_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqb_or,QV_ftype_QVVIVI,3) // tag : V6_veqb_or def int_hexagon_V6_veqb_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqb_or">; // // BUILTIN_INFO(HEXAGON.V6_veqb_or_128B,QV_ftype_QVVIVI,3) // tag : V6_veqb_or_128B def int_hexagon_V6_veqb_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqb_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_veqb_xor,QV_ftype_QVVIVI,3) // tag : V6_veqb_xor def int_hexagon_V6_veqb_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_veqb_xor">; // // BUILTIN_INFO(HEXAGON.V6_veqb_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_veqb_xor_128B def int_hexagon_V6_veqb_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_veqb_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw,QV_ftype_VIVI,2) // tag : V6_vgtuw def int_hexagon_V6_vgtuw : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_vgtuw">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_128B,QV_ftype_VIVI,2) // tag : V6_vgtuw_128B def int_hexagon_V6_vgtuw_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_and,QV_ftype_QVVIVI,3) // tag : V6_vgtuw_and def int_hexagon_V6_vgtuw_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtuw_and">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_and_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtuw_and_128B def int_hexagon_V6_vgtuw_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuw_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_or,QV_ftype_QVVIVI,3) // tag : V6_vgtuw_or def int_hexagon_V6_vgtuw_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtuw_or">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_or_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtuw_or_128B def int_hexagon_V6_vgtuw_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuw_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_xor,QV_ftype_QVVIVI,3) // tag : V6_vgtuw_xor def int_hexagon_V6_vgtuw_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtuw_xor">; // // BUILTIN_INFO(HEXAGON.V6_vgtuw_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtuw_xor_128B def int_hexagon_V6_vgtuw_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuw_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh,QV_ftype_VIVI,2) // tag : V6_vgtuh def int_hexagon_V6_vgtuh : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_vgtuh">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_128B,QV_ftype_VIVI,2) // tag : V6_vgtuh_128B def int_hexagon_V6_vgtuh_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_and,QV_ftype_QVVIVI,3) // tag : V6_vgtuh_and def int_hexagon_V6_vgtuh_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtuh_and">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_and_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtuh_and_128B def int_hexagon_V6_vgtuh_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuh_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_or,QV_ftype_QVVIVI,3) // tag : V6_vgtuh_or def int_hexagon_V6_vgtuh_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtuh_or">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_or_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtuh_or_128B def int_hexagon_V6_vgtuh_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuh_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_xor,QV_ftype_QVVIVI,3) // tag : V6_vgtuh_xor def int_hexagon_V6_vgtuh_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtuh_xor">; // // BUILTIN_INFO(HEXAGON.V6_vgtuh_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtuh_xor_128B def int_hexagon_V6_vgtuh_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtuh_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtub,QV_ftype_VIVI,2) // tag : V6_vgtub def int_hexagon_V6_vgtub : Hexagon_v64iv512v512_Intrinsic<"HEXAGON_V6_vgtub">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_128B,QV_ftype_VIVI,2) // tag : V6_vgtub_128B def int_hexagon_V6_vgtub_128B : Hexagon_v128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_and,QV_ftype_QVVIVI,3) // tag : V6_vgtub_and def int_hexagon_V6_vgtub_and : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtub_and">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_and_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtub_and_128B def int_hexagon_V6_vgtub_and_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtub_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_or,QV_ftype_QVVIVI,3) // tag : V6_vgtub_or def int_hexagon_V6_vgtub_or : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtub_or">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_or_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtub_or_128B def int_hexagon_V6_vgtub_or_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtub_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_xor,QV_ftype_QVVIVI,3) // tag : V6_vgtub_xor def int_hexagon_V6_vgtub_xor : Hexagon_v64iv64iv512v512_Intrinsic<"HEXAGON_V6_vgtub_xor">; // // BUILTIN_INFO(HEXAGON.V6_vgtub_xor_128B,QV_ftype_QVVIVI,3) // tag : V6_vgtub_xor_128B def int_hexagon_V6_vgtub_xor_128B : Hexagon_v128iv128iv1024v1024_Intrinsic<"HEXAGON_V6_vgtub_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_or,QV_ftype_QVQV,2) // tag : V6_pred_or def int_hexagon_V6_pred_or : Hexagon_v64iv64iv64i_Intrinsic<"HEXAGON_V6_pred_or">; // // BUILTIN_INFO(HEXAGON.V6_pred_or_128B,QV_ftype_QVQV,2) // tag : V6_pred_or_128B def int_hexagon_V6_pred_or_128B : Hexagon_v128iv128iv128i_Intrinsic<"HEXAGON_V6_pred_or_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_and,QV_ftype_QVQV,2) // tag : V6_pred_and def int_hexagon_V6_pred_and : Hexagon_v64iv64iv64i_Intrinsic<"HEXAGON_V6_pred_and">; // // BUILTIN_INFO(HEXAGON.V6_pred_and_128B,QV_ftype_QVQV,2) // tag : V6_pred_and_128B def int_hexagon_V6_pred_and_128B : Hexagon_v128iv128iv128i_Intrinsic<"HEXAGON_V6_pred_and_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_not,QV_ftype_QV,1) // tag : V6_pred_not def int_hexagon_V6_pred_not : Hexagon_v64iv64i_Intrinsic<"HEXAGON_V6_pred_not">; // // BUILTIN_INFO(HEXAGON.V6_pred_not_128B,QV_ftype_QV,1) // tag : V6_pred_not_128B def int_hexagon_V6_pred_not_128B : Hexagon_v128iv128i_Intrinsic<"HEXAGON_V6_pred_not_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_xor,QV_ftype_QVQV,2) // tag : V6_pred_xor def int_hexagon_V6_pred_xor : Hexagon_v64iv64iv64i_Intrinsic<"HEXAGON_V6_pred_xor">; // // BUILTIN_INFO(HEXAGON.V6_pred_xor_128B,QV_ftype_QVQV,2) // tag : V6_pred_xor_128B def int_hexagon_V6_pred_xor_128B : Hexagon_v128iv128iv128i_Intrinsic<"HEXAGON_V6_pred_xor_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_and_n,QV_ftype_QVQV,2) // tag : V6_pred_and_n def int_hexagon_V6_pred_and_n : Hexagon_v64iv64iv64i_Intrinsic<"HEXAGON_V6_pred_and_n">; // // BUILTIN_INFO(HEXAGON.V6_pred_and_n_128B,QV_ftype_QVQV,2) // tag : V6_pred_and_n_128B def int_hexagon_V6_pred_and_n_128B : Hexagon_v128iv128iv128i_Intrinsic<"HEXAGON_V6_pred_and_n_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_or_n,QV_ftype_QVQV,2) // tag : V6_pred_or_n def int_hexagon_V6_pred_or_n : Hexagon_v64iv64iv64i_Intrinsic<"HEXAGON_V6_pred_or_n">; // // BUILTIN_INFO(HEXAGON.V6_pred_or_n_128B,QV_ftype_QVQV,2) // tag : V6_pred_or_n_128B def int_hexagon_V6_pred_or_n_128B : Hexagon_v128iv128iv128i_Intrinsic<"HEXAGON_V6_pred_or_n_128B">; // // BUILTIN_INFO(HEXAGON.V6_pred_scalar2,QV_ftype_SI,1) // tag : V6_pred_scalar2 def int_hexagon_V6_pred_scalar2 : Hexagon_v64ii_Intrinsic<"HEXAGON_V6_pred_scalar2">; // // BUILTIN_INFO(HEXAGON.V6_pred_scalar2_128B,QV_ftype_SI,1) // tag : V6_pred_scalar2_128B def int_hexagon_V6_pred_scalar2_128B : Hexagon_v128ii_Intrinsic<"HEXAGON_V6_pred_scalar2_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmux,VI_ftype_QVVIVI,3) // tag : V6_vmux def int_hexagon_V6_vmux : Hexagon_v512v64iv512v512_Intrinsic<"HEXAGON_V6_vmux">; // // BUILTIN_INFO(HEXAGON.V6_vmux_128B,VI_ftype_QVVIVI,3) // tag : V6_vmux_128B def int_hexagon_V6_vmux_128B : Hexagon_v1024v128iv1024v1024_Intrinsic<"HEXAGON_V6_vmux_128B">; // // BUILTIN_INFO(HEXAGON.V6_vswap,VD_ftype_QVVIVI,3) // tag : V6_vswap def int_hexagon_V6_vswap : Hexagon_v1024v64iv512v512_Intrinsic<"HEXAGON_V6_vswap">; // // BUILTIN_INFO(HEXAGON.V6_vswap_128B,VD_ftype_QVVIVI,3) // tag : V6_vswap_128B def int_hexagon_V6_vswap_128B : Hexagon_v2048v128iv1024v1024_Intrinsic<"HEXAGON_V6_vswap_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmaxub,VI_ftype_VIVI,2) // tag : V6_vmaxub def int_hexagon_V6_vmaxub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmaxub">; // // BUILTIN_INFO(HEXAGON.V6_vmaxub_128B,VI_ftype_VIVI,2) // tag : V6_vmaxub_128B def int_hexagon_V6_vmaxub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmaxub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vminub,VI_ftype_VIVI,2) // tag : V6_vminub def int_hexagon_V6_vminub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vminub">; // // BUILTIN_INFO(HEXAGON.V6_vminub_128B,VI_ftype_VIVI,2) // tag : V6_vminub_128B def int_hexagon_V6_vminub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vminub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmaxuh,VI_ftype_VIVI,2) // tag : V6_vmaxuh def int_hexagon_V6_vmaxuh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmaxuh">; // // BUILTIN_INFO(HEXAGON.V6_vmaxuh_128B,VI_ftype_VIVI,2) // tag : V6_vmaxuh_128B def int_hexagon_V6_vmaxuh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmaxuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vminuh,VI_ftype_VIVI,2) // tag : V6_vminuh def int_hexagon_V6_vminuh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vminuh">; // // BUILTIN_INFO(HEXAGON.V6_vminuh_128B,VI_ftype_VIVI,2) // tag : V6_vminuh_128B def int_hexagon_V6_vminuh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vminuh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmaxh,VI_ftype_VIVI,2) // tag : V6_vmaxh def int_hexagon_V6_vmaxh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmaxh">; // // BUILTIN_INFO(HEXAGON.V6_vmaxh_128B,VI_ftype_VIVI,2) // tag : V6_vmaxh_128B def int_hexagon_V6_vmaxh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmaxh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vminh,VI_ftype_VIVI,2) // tag : V6_vminh def int_hexagon_V6_vminh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vminh">; // // BUILTIN_INFO(HEXAGON.V6_vminh_128B,VI_ftype_VIVI,2) // tag : V6_vminh_128B def int_hexagon_V6_vminh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vminh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vmaxw,VI_ftype_VIVI,2) // tag : V6_vmaxw def int_hexagon_V6_vmaxw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vmaxw">; // // BUILTIN_INFO(HEXAGON.V6_vmaxw_128B,VI_ftype_VIVI,2) // tag : V6_vmaxw_128B def int_hexagon_V6_vmaxw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vmaxw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vminw,VI_ftype_VIVI,2) // tag : V6_vminw def int_hexagon_V6_vminw : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vminw">; // // BUILTIN_INFO(HEXAGON.V6_vminw_128B,VI_ftype_VIVI,2) // tag : V6_vminw_128B def int_hexagon_V6_vminw_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vminw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsathub,VI_ftype_VIVI,2) // tag : V6_vsathub def int_hexagon_V6_vsathub : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsathub">; // // BUILTIN_INFO(HEXAGON.V6_vsathub_128B,VI_ftype_VIVI,2) // tag : V6_vsathub_128B def int_hexagon_V6_vsathub_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsathub_128B">; // // BUILTIN_INFO(HEXAGON.V6_vsatwh,VI_ftype_VIVI,2) // tag : V6_vsatwh def int_hexagon_V6_vsatwh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vsatwh">; // // BUILTIN_INFO(HEXAGON.V6_vsatwh_128B,VI_ftype_VIVI,2) // tag : V6_vsatwh_128B def int_hexagon_V6_vsatwh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vsatwh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshuffeb,VI_ftype_VIVI,2) // tag : V6_vshuffeb def int_hexagon_V6_vshuffeb : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vshuffeb">; // // BUILTIN_INFO(HEXAGON.V6_vshuffeb_128B,VI_ftype_VIVI,2) // tag : V6_vshuffeb_128B def int_hexagon_V6_vshuffeb_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vshuffeb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshuffob,VI_ftype_VIVI,2) // tag : V6_vshuffob def int_hexagon_V6_vshuffob : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vshuffob">; // // BUILTIN_INFO(HEXAGON.V6_vshuffob_128B,VI_ftype_VIVI,2) // tag : V6_vshuffob_128B def int_hexagon_V6_vshuffob_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vshuffob_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshufeh,VI_ftype_VIVI,2) // tag : V6_vshufeh def int_hexagon_V6_vshufeh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vshufeh">; // // BUILTIN_INFO(HEXAGON.V6_vshufeh_128B,VI_ftype_VIVI,2) // tag : V6_vshufeh_128B def int_hexagon_V6_vshufeh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vshufeh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshufoh,VI_ftype_VIVI,2) // tag : V6_vshufoh def int_hexagon_V6_vshufoh : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vshufoh">; // // BUILTIN_INFO(HEXAGON.V6_vshufoh_128B,VI_ftype_VIVI,2) // tag : V6_vshufoh_128B def int_hexagon_V6_vshufoh_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vshufoh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshuffvdd,VD_ftype_VIVISI,3) // tag : V6_vshuffvdd def int_hexagon_V6_vshuffvdd : Hexagon_v1024v512v512i_Intrinsic<"HEXAGON_V6_vshuffvdd">; // // BUILTIN_INFO(HEXAGON.V6_vshuffvdd_128B,VD_ftype_VIVISI,3) // tag : V6_vshuffvdd_128B def int_hexagon_V6_vshuffvdd_128B : Hexagon_v2048v1024v1024i_Intrinsic<"HEXAGON_V6_vshuffvdd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdealvdd,VD_ftype_VIVISI,3) // tag : V6_vdealvdd def int_hexagon_V6_vdealvdd : Hexagon_v1024v512v512i_Intrinsic<"HEXAGON_V6_vdealvdd">; // // BUILTIN_INFO(HEXAGON.V6_vdealvdd_128B,VD_ftype_VIVISI,3) // tag : V6_vdealvdd_128B def int_hexagon_V6_vdealvdd_128B : Hexagon_v2048v1024v1024i_Intrinsic<"HEXAGON_V6_vdealvdd_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshufoeh,VD_ftype_VIVI,2) // tag : V6_vshufoeh def int_hexagon_V6_vshufoeh : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vshufoeh">; // // BUILTIN_INFO(HEXAGON.V6_vshufoeh_128B,VD_ftype_VIVI,2) // tag : V6_vshufoeh_128B def int_hexagon_V6_vshufoeh_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vshufoeh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshufoeb,VD_ftype_VIVI,2) // tag : V6_vshufoeb def int_hexagon_V6_vshufoeb : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vshufoeb">; // // BUILTIN_INFO(HEXAGON.V6_vshufoeb_128B,VD_ftype_VIVI,2) // tag : V6_vshufoeb_128B def int_hexagon_V6_vshufoeb_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vshufoeb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdealh,VI_ftype_VI,1) // tag : V6_vdealh def int_hexagon_V6_vdealh : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vdealh">; // // BUILTIN_INFO(HEXAGON.V6_vdealh_128B,VI_ftype_VI,1) // tag : V6_vdealh_128B def int_hexagon_V6_vdealh_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vdealh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdealb,VI_ftype_VI,1) // tag : V6_vdealb def int_hexagon_V6_vdealb : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vdealb">; // // BUILTIN_INFO(HEXAGON.V6_vdealb_128B,VI_ftype_VI,1) // tag : V6_vdealb_128B def int_hexagon_V6_vdealb_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vdealb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdealb4w,VI_ftype_VIVI,2) // tag : V6_vdealb4w def int_hexagon_V6_vdealb4w : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vdealb4w">; // // BUILTIN_INFO(HEXAGON.V6_vdealb4w_128B,VI_ftype_VIVI,2) // tag : V6_vdealb4w_128B def int_hexagon_V6_vdealb4w_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vdealb4w_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshuffh,VI_ftype_VI,1) // tag : V6_vshuffh def int_hexagon_V6_vshuffh : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vshuffh">; // // BUILTIN_INFO(HEXAGON.V6_vshuffh_128B,VI_ftype_VI,1) // tag : V6_vshuffh_128B def int_hexagon_V6_vshuffh_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vshuffh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vshuffb,VI_ftype_VI,1) // tag : V6_vshuffb def int_hexagon_V6_vshuffb : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vshuffb">; // // BUILTIN_INFO(HEXAGON.V6_vshuffb_128B,VI_ftype_VI,1) // tag : V6_vshuffb_128B def int_hexagon_V6_vshuffb_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vshuffb_128B">; // // BUILTIN_INFO(HEXAGON.V6_extractw,SI_ftype_VISI,2) // tag : V6_extractw def int_hexagon_V6_extractw : Hexagon_iv512i_Intrinsic<"HEXAGON_V6_extractw">; // // BUILTIN_INFO(HEXAGON.V6_extractw_128B,SI_ftype_VISI,2) // tag : V6_extractw_128B def int_hexagon_V6_extractw_128B : Hexagon_iv1024i_Intrinsic<"HEXAGON_V6_extractw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vinsertwr,VI_ftype_VISI,2) // tag : V6_vinsertwr def int_hexagon_V6_vinsertwr : Hexagon_v512v512i_Intrinsic<"HEXAGON_V6_vinsertwr">; // // BUILTIN_INFO(HEXAGON.V6_vinsertwr_128B,VI_ftype_VISI,2) // tag : V6_vinsertwr_128B def int_hexagon_V6_vinsertwr_128B : Hexagon_v1024v1024i_Intrinsic<"HEXAGON_V6_vinsertwr_128B">; // // BUILTIN_INFO(HEXAGON.V6_lvsplatw,VI_ftype_SI,1) // tag : V6_lvsplatw def int_hexagon_V6_lvsplatw : Hexagon_v512i_Intrinsic<"HEXAGON_V6_lvsplatw">; // // BUILTIN_INFO(HEXAGON.V6_lvsplatw_128B,VI_ftype_SI,1) // tag : V6_lvsplatw_128B def int_hexagon_V6_lvsplatw_128B : Hexagon_v1024i_Intrinsic<"HEXAGON_V6_lvsplatw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vassign,VI_ftype_VI,1) // tag : V6_vassign def int_hexagon_V6_vassign : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vassign">; // // BUILTIN_INFO(HEXAGON.V6_vassign_128B,VI_ftype_VI,1) // tag : V6_vassign_128B def int_hexagon_V6_vassign_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vassign_128B">; // // BUILTIN_INFO(HEXAGON.V6_vcombine,VD_ftype_VIVI,2) // tag : V6_vcombine def int_hexagon_V6_vcombine : Hexagon_v1024v512v512_Intrinsic<"HEXAGON_V6_vcombine">; // // BUILTIN_INFO(HEXAGON.V6_vcombine_128B,VD_ftype_VIVI,2) // tag : V6_vcombine_128B def int_hexagon_V6_vcombine_128B : Hexagon_v2048v1024v1024_Intrinsic<"HEXAGON_V6_vcombine_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutb,VI_ftype_VIDISI,3) // tag : V6_vlutb def int_hexagon_V6_vlutb : Hexagon_v512v512LLii_Intrinsic<"HEXAGON_V6_vlutb">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_128B,VI_ftype_VIDISI,3) // tag : V6_vlutb_128B def int_hexagon_V6_vlutb_128B : Hexagon_v1024v1024LLii_Intrinsic<"HEXAGON_V6_vlutb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_acc,VI_ftype_VIVIDISI,4) // tag : V6_vlutb_acc def int_hexagon_V6_vlutb_acc : Hexagon_v512v512v512LLii_Intrinsic<"HEXAGON_V6_vlutb_acc">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_acc_128B,VI_ftype_VIVIDISI,4) // tag : V6_vlutb_acc_128B def int_hexagon_V6_vlutb_acc_128B : Hexagon_v1024v1024v1024LLii_Intrinsic<"HEXAGON_V6_vlutb_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_dv,VD_ftype_VDDISI,3) // tag : V6_vlutb_dv def int_hexagon_V6_vlutb_dv : Hexagon_v1024v1024LLii_Intrinsic<"HEXAGON_V6_vlutb_dv">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_dv_128B,VD_ftype_VDDISI,3) // tag : V6_vlutb_dv_128B def int_hexagon_V6_vlutb_dv_128B : Hexagon_v2048v2048LLii_Intrinsic<"HEXAGON_V6_vlutb_dv_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_dv_acc,VD_ftype_VDVDDISI,4) // tag : V6_vlutb_dv_acc def int_hexagon_V6_vlutb_dv_acc : Hexagon_v1024v1024v1024LLii_Intrinsic<"HEXAGON_V6_vlutb_dv_acc">; // // BUILTIN_INFO(HEXAGON.V6_vlutb_dv_acc_128B,VD_ftype_VDVDDISI,4) // tag : V6_vlutb_dv_acc_128B def int_hexagon_V6_vlutb_dv_acc_128B : Hexagon_v2048v2048v2048LLii_Intrinsic<"HEXAGON_V6_vlutb_dv_acc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vdelta,VI_ftype_VIVI,2) // tag : V6_vdelta def int_hexagon_V6_vdelta : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vdelta">; // // BUILTIN_INFO(HEXAGON.V6_vdelta_128B,VI_ftype_VIVI,2) // tag : V6_vdelta_128B def int_hexagon_V6_vdelta_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vdelta_128B">; // // BUILTIN_INFO(HEXAGON.V6_vrdelta,VI_ftype_VIVI,2) // tag : V6_vrdelta def int_hexagon_V6_vrdelta : Hexagon_v512v512v512_Intrinsic<"HEXAGON_V6_vrdelta">; // // BUILTIN_INFO(HEXAGON.V6_vrdelta_128B,VI_ftype_VIVI,2) // tag : V6_vrdelta_128B def int_hexagon_V6_vrdelta_128B : Hexagon_v1024v1024v1024_Intrinsic<"HEXAGON_V6_vrdelta_128B">; // // BUILTIN_INFO(HEXAGON.V6_vcl0w,VI_ftype_VI,1) // tag : V6_vcl0w def int_hexagon_V6_vcl0w : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vcl0w">; // // BUILTIN_INFO(HEXAGON.V6_vcl0w_128B,VI_ftype_VI,1) // tag : V6_vcl0w_128B def int_hexagon_V6_vcl0w_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vcl0w_128B">; // // BUILTIN_INFO(HEXAGON.V6_vcl0h,VI_ftype_VI,1) // tag : V6_vcl0h def int_hexagon_V6_vcl0h : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vcl0h">; // // BUILTIN_INFO(HEXAGON.V6_vcl0h_128B,VI_ftype_VI,1) // tag : V6_vcl0h_128B def int_hexagon_V6_vcl0h_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vcl0h_128B">; // // BUILTIN_INFO(HEXAGON.V6_vnormamtw,VI_ftype_VI,1) // tag : V6_vnormamtw def int_hexagon_V6_vnormamtw : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vnormamtw">; // // BUILTIN_INFO(HEXAGON.V6_vnormamtw_128B,VI_ftype_VI,1) // tag : V6_vnormamtw_128B def int_hexagon_V6_vnormamtw_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vnormamtw_128B">; // // BUILTIN_INFO(HEXAGON.V6_vnormamth,VI_ftype_VI,1) // tag : V6_vnormamth def int_hexagon_V6_vnormamth : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vnormamth">; // // BUILTIN_INFO(HEXAGON.V6_vnormamth_128B,VI_ftype_VI,1) // tag : V6_vnormamth_128B def int_hexagon_V6_vnormamth_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vnormamth_128B">; // // BUILTIN_INFO(HEXAGON.V6_vpopcounth,VI_ftype_VI,1) // tag : V6_vpopcounth def int_hexagon_V6_vpopcounth : Hexagon_v512v512_Intrinsic<"HEXAGON_V6_vpopcounth">; // // BUILTIN_INFO(HEXAGON.V6_vpopcounth_128B,VI_ftype_VI,1) // tag : V6_vpopcounth_128B def int_hexagon_V6_vpopcounth_128B : Hexagon_v1024v1024_Intrinsic<"HEXAGON_V6_vpopcounth_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutvvb,VI_ftype_VIVISI,3) // tag : V6_vlutvvb def int_hexagon_V6_vlutvvb : Hexagon_v512v512v512i_Intrinsic<"HEXAGON_V6_vlutvvb">; // // BUILTIN_INFO(HEXAGON.V6_vlutvvb_128B,VI_ftype_VIVISI,3) // tag : V6_vlutvvb_128B def int_hexagon_V6_vlutvvb_128B : Hexagon_v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vlutvvb_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutvvb_oracc,VI_ftype_VIVIVISI,4) // tag : V6_vlutvvb_oracc def int_hexagon_V6_vlutvvb_oracc : Hexagon_v512v512v512v512i_Intrinsic<"HEXAGON_V6_vlutvvb_oracc">; // // BUILTIN_INFO(HEXAGON.V6_vlutvvb_oracc_128B,VI_ftype_VIVIVISI,4) // tag : V6_vlutvvb_oracc_128B def int_hexagon_V6_vlutvvb_oracc_128B : Hexagon_v1024v1024v1024v1024i_Intrinsic<"HEXAGON_V6_vlutvvb_oracc_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutvwh,VD_ftype_VIVISI,3) // tag : V6_vlutvwh def int_hexagon_V6_vlutvwh : Hexagon_v1024v512v512i_Intrinsic<"HEXAGON_V6_vlutvwh">; // // BUILTIN_INFO(HEXAGON.V6_vlutvwh_128B,VD_ftype_VIVISI,3) // tag : V6_vlutvwh_128B def int_hexagon_V6_vlutvwh_128B : Hexagon_v2048v1024v1024i_Intrinsic<"HEXAGON_V6_vlutvwh_128B">; // // BUILTIN_INFO(HEXAGON.V6_vlutvwh_oracc,VD_ftype_VDVIVISI,4) // tag : V6_vlutvwh_oracc def int_hexagon_V6_vlutvwh_oracc : Hexagon_v1024v1024v512v512i_Intrinsic<"HEXAGON_V6_vlutvwh_oracc">; // // BUILTIN_INFO(HEXAGON.V6_vlutvwh_oracc_128B,VD_ftype_VDVIVISI,4) // tag : V6_vlutvwh_oracc_128B def int_hexagon_V6_vlutvwh_oracc_128B : Hexagon_v2048v2048v1024v1024i_Intrinsic<"HEXAGON_V6_vlutvwh_oracc_128B">; // // BUILTIN_INFO(HEXAGON.M6_vabsdiffb,DI_ftype_DIDI,2) // tag : M6_vabsdiffb def int_hexagon_M6_vabsdiffb : Hexagon_LLiLLiLLi_Intrinsic<"HEXAGON_M6_vabsdiffb">; // // BUILTIN_INFO(HEXAGON.M6_vabsdiffub,DI_ftype_DIDI,2) // tag : M6_vabsdiffub def int_hexagon_M6_vabsdiffub : Hexagon_LLiLLiLLi_Intrinsic<"HEXAGON_M6_vabsdiffub">; // // BUILTIN_INFO(HEXAGON.S6_vsplatrbp,DI_ftype_SI,1) // tag : S6_vsplatrbp def int_hexagon_S6_vsplatrbp : Hexagon_LLii_Intrinsic<"HEXAGON_S6_vsplatrbp">; // // BUILTIN_INFO(HEXAGON.S6_vtrunehb_ppp,DI_ftype_DIDI,2) // tag : S6_vtrunehb_ppp def int_hexagon_S6_vtrunehb_ppp : Hexagon_LLiLLiLLi_Intrinsic<"HEXAGON_S6_vtrunehb_ppp">; // // BUILTIN_INFO(HEXAGON.S6_vtrunohb_ppp,DI_ftype_DIDI,2) // tag : S6_vtrunohb_ppp def int_hexagon_S6_vtrunohb_ppp : Hexagon_LLiLLiLLi_Intrinsic<"HEXAGON_S6_vtrunohb_ppp">; //===- IntrinsicsMips.td - Defines Mips intrinsics ---------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the MIPS-specific intrinsics. // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // MIPS DSP data types def mips_v2q15_ty: LLVMType; def mips_v4q7_ty: LLVMType; def mips_q31_ty: LLVMType; let TargetPrefix = "mips" in { // All intrinsics start with "llvm.mips.". //===----------------------------------------------------------------------===// // MIPS DSP Rev 1 //===----------------------------------------------------------------------===// // Addition/subtraction def int_mips_addu_qb : GCCBuiltin<"__builtin_mips_addu_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative, IntrNoMem]>; def int_mips_addu_s_qb : GCCBuiltin<"__builtin_mips_addu_s_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative, IntrNoMem]>; def int_mips_subu_qb : GCCBuiltin<"__builtin_mips_subu_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_subu_s_qb : GCCBuiltin<"__builtin_mips_subu_s_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_addq_ph : GCCBuiltin<"__builtin_mips_addq_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative, IntrNoMem]>; def int_mips_addq_s_ph : GCCBuiltin<"__builtin_mips_addq_s_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative, IntrNoMem]>; def int_mips_subq_ph : GCCBuiltin<"__builtin_mips_subq_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; def int_mips_subq_s_ph : GCCBuiltin<"__builtin_mips_subq_s_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; def int_mips_madd: GCCBuiltin<"__builtin_mips_madd">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_mips_maddu: GCCBuiltin<"__builtin_mips_maddu">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_mips_msub: GCCBuiltin<"__builtin_mips_msub">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_msubu: GCCBuiltin<"__builtin_mips_msubu">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_addq_s_w: GCCBuiltin<"__builtin_mips_addq_s_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>; def int_mips_subq_s_w: GCCBuiltin<"__builtin_mips_subq_s_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], []>; def int_mips_addsc: GCCBuiltin<"__builtin_mips_addsc">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>; def int_mips_addwc: GCCBuiltin<"__builtin_mips_addwc">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>; def int_mips_modsub: GCCBuiltin<"__builtin_mips_modsub">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_raddu_w_qb: GCCBuiltin<"__builtin_mips_raddu_w_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // Absolute value def int_mips_absq_s_ph: GCCBuiltin<"__builtin_mips_absq_s_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty], []>; def int_mips_absq_s_w: GCCBuiltin<"__builtin_mips_absq_s_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty], []>; //===----------------------------------------------------------------------===// // Precision reduce/expand def int_mips_precrq_qb_ph: GCCBuiltin<"__builtin_mips_precrq_qb_ph">, Intrinsic<[llvm_v4i8_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; def int_mips_precrqu_s_qb_ph: GCCBuiltin<"__builtin_mips_precrqu_s_qb_ph">, Intrinsic<[llvm_v4i8_ty], [mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_precrq_ph_w: GCCBuiltin<"__builtin_mips_precrq_ph_w">, Intrinsic<[mips_v2q15_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>; def int_mips_precrq_rs_ph_w: GCCBuiltin<"__builtin_mips_precrq_rs_ph_w">, Intrinsic<[mips_v2q15_ty], [mips_q31_ty, mips_q31_ty], []>; def int_mips_preceq_w_phl: GCCBuiltin<"__builtin_mips_preceq_w_phl">, Intrinsic<[mips_q31_ty], [mips_v2q15_ty], [IntrNoMem]>; def int_mips_preceq_w_phr: GCCBuiltin<"__builtin_mips_preceq_w_phr">, Intrinsic<[mips_q31_ty], [mips_v2q15_ty], [IntrNoMem]>; def int_mips_precequ_ph_qbl: GCCBuiltin<"__builtin_mips_precequ_ph_qbl">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_precequ_ph_qbr: GCCBuiltin<"__builtin_mips_precequ_ph_qbr">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_precequ_ph_qbla: GCCBuiltin<"__builtin_mips_precequ_ph_qbla">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_precequ_ph_qbra: GCCBuiltin<"__builtin_mips_precequ_ph_qbra">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_preceu_ph_qbl: GCCBuiltin<"__builtin_mips_preceu_ph_qbl">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_preceu_ph_qbr: GCCBuiltin<"__builtin_mips_preceu_ph_qbr">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_preceu_ph_qbla: GCCBuiltin<"__builtin_mips_preceu_ph_qbla">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; def int_mips_preceu_ph_qbra: GCCBuiltin<"__builtin_mips_preceu_ph_qbra">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // Shift def int_mips_shll_qb: GCCBuiltin<"__builtin_mips_shll_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], []>; def int_mips_shrl_qb: GCCBuiltin<"__builtin_mips_shrl_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shll_ph: GCCBuiltin<"__builtin_mips_shll_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], []>; def int_mips_shll_s_ph: GCCBuiltin<"__builtin_mips_shll_s_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], []>; def int_mips_shra_ph: GCCBuiltin<"__builtin_mips_shra_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shra_r_ph: GCCBuiltin<"__builtin_mips_shra_r_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shll_s_w: GCCBuiltin<"__builtin_mips_shll_s_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, llvm_i32_ty], []>; def int_mips_shra_r_w: GCCBuiltin<"__builtin_mips_shra_r_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shilo: GCCBuiltin<"__builtin_mips_shilo">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // Multiplication def int_mips_muleu_s_ph_qbl: GCCBuiltin<"__builtin_mips_muleu_s_ph_qbl">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty, mips_v2q15_ty], []>; def int_mips_muleu_s_ph_qbr: GCCBuiltin<"__builtin_mips_muleu_s_ph_qbr">, Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty, mips_v2q15_ty], []>; def int_mips_mulq_rs_ph: GCCBuiltin<"__builtin_mips_mulq_rs_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>; def int_mips_muleq_s_w_phl: GCCBuiltin<"__builtin_mips_muleq_s_w_phl">, Intrinsic<[mips_q31_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>; def int_mips_muleq_s_w_phr: GCCBuiltin<"__builtin_mips_muleq_s_w_phr">, Intrinsic<[mips_q31_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>; def int_mips_mulsaq_s_w_ph: GCCBuiltin<"__builtin_mips_mulsaq_s_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_maq_s_w_phl: GCCBuiltin<"__builtin_mips_maq_s_w_phl">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_maq_s_w_phr: GCCBuiltin<"__builtin_mips_maq_s_w_phr">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_maq_sa_w_phl: GCCBuiltin<"__builtin_mips_maq_sa_w_phl">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_maq_sa_w_phr: GCCBuiltin<"__builtin_mips_maq_sa_w_phr">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_mult: GCCBuiltin<"__builtin_mips_mult">, Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_mips_multu: GCCBuiltin<"__builtin_mips_multu">, Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; //===----------------------------------------------------------------------===// // Dot product with accumulate/subtract def int_mips_dpau_h_qbl: GCCBuiltin<"__builtin_mips_dpau_h_qbl">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_dpau_h_qbr: GCCBuiltin<"__builtin_mips_dpau_h_qbr">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_dpsu_h_qbl: GCCBuiltin<"__builtin_mips_dpsu_h_qbl">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_dpsu_h_qbr: GCCBuiltin<"__builtin_mips_dpsu_h_qbr">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_dpaq_s_w_ph: GCCBuiltin<"__builtin_mips_dpaq_s_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_dpsq_s_w_ph: GCCBuiltin<"__builtin_mips_dpsq_s_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_dpaq_sa_l_w: GCCBuiltin<"__builtin_mips_dpaq_sa_l_w">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_q31_ty, mips_q31_ty], []>; def int_mips_dpsq_sa_l_w: GCCBuiltin<"__builtin_mips_dpsq_sa_l_w">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_q31_ty, mips_q31_ty], []>; //===----------------------------------------------------------------------===// // Comparison def int_mips_cmpu_eq_qb: GCCBuiltin<"__builtin_mips_cmpu_eq_qb">, Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>; def int_mips_cmpu_lt_qb: GCCBuiltin<"__builtin_mips_cmpu_lt_qb">, Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], []>; def int_mips_cmpu_le_qb: GCCBuiltin<"__builtin_mips_cmpu_le_qb">, Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], []>; def int_mips_cmpgu_eq_qb: GCCBuiltin<"__builtin_mips_cmpgu_eq_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>; def int_mips_cmpgu_lt_qb: GCCBuiltin<"__builtin_mips_cmpgu_lt_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>; def int_mips_cmpgu_le_qb: GCCBuiltin<"__builtin_mips_cmpgu_le_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>; def int_mips_cmp_eq_ph: GCCBuiltin<"__builtin_mips_cmp_eq_ph">, Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>; def int_mips_cmp_lt_ph: GCCBuiltin<"__builtin_mips_cmp_lt_ph">, Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_cmp_le_ph: GCCBuiltin<"__builtin_mips_cmp_le_ph">, Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], []>; //===----------------------------------------------------------------------===// // Extracting def int_mips_extr_s_h: GCCBuiltin<"__builtin_mips_extr_s_h">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; def int_mips_extr_w: GCCBuiltin<"__builtin_mips_extr_w">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; def int_mips_extr_rs_w: GCCBuiltin<"__builtin_mips_extr_rs_w">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; def int_mips_extr_r_w: GCCBuiltin<"__builtin_mips_extr_r_w">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; def int_mips_extp: GCCBuiltin<"__builtin_mips_extp">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; def int_mips_extpdp: GCCBuiltin<"__builtin_mips_extpdp">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>; //===----------------------------------------------------------------------===// // Misc def int_mips_wrdsp: GCCBuiltin<"__builtin_mips_wrdsp">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>; def int_mips_rddsp: GCCBuiltin<"__builtin_mips_rddsp">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrReadMem]>; def int_mips_insv: GCCBuiltin<"__builtin_mips_insv">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrReadMem]>; def int_mips_bitrev: GCCBuiltin<"__builtin_mips_bitrev">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_packrl_ph: GCCBuiltin<"__builtin_mips_packrl_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; def int_mips_repl_qb: GCCBuiltin<"__builtin_mips_repl_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_repl_ph: GCCBuiltin<"__builtin_mips_repl_ph">, Intrinsic<[mips_v2q15_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_pick_qb: GCCBuiltin<"__builtin_mips_pick_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrReadMem]>; def int_mips_pick_ph: GCCBuiltin<"__builtin_mips_pick_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrReadMem]>; def int_mips_mthlip: GCCBuiltin<"__builtin_mips_mthlip">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], []>; def int_mips_bposge32: GCCBuiltin<"__builtin_mips_bposge32">, Intrinsic<[llvm_i32_ty], [], [IntrReadMem]>; def int_mips_lbux: GCCBuiltin<"__builtin_mips_lbux">, Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_mips_lhx: GCCBuiltin<"__builtin_mips_lhx">, Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_mips_lwx: GCCBuiltin<"__builtin_mips_lwx">, Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; //===----------------------------------------------------------------------===// // MIPS DSP Rev 2 def int_mips_absq_s_qb: GCCBuiltin<"__builtin_mips_absq_s_qb">, Intrinsic<[mips_v4q7_ty], [mips_v4q7_ty], []>; def int_mips_addqh_ph: GCCBuiltin<"__builtin_mips_addqh_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem, Commutative]>; def int_mips_addqh_r_ph: GCCBuiltin<"__builtin_mips_addqh_r_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem, Commutative]>; def int_mips_addqh_w: GCCBuiltin<"__builtin_mips_addqh_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem, Commutative]>; def int_mips_addqh_r_w: GCCBuiltin<"__builtin_mips_addqh_r_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem, Commutative]>; def int_mips_addu_ph: GCCBuiltin<"__builtin_mips_addu_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>; def int_mips_addu_s_ph: GCCBuiltin<"__builtin_mips_addu_s_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>; def int_mips_adduh_qb: GCCBuiltin<"__builtin_mips_adduh_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem, Commutative]>; def int_mips_adduh_r_qb: GCCBuiltin<"__builtin_mips_adduh_r_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem, Commutative]>; def int_mips_append: GCCBuiltin<"__builtin_mips_append">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_balign: GCCBuiltin<"__builtin_mips_balign">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_cmpgdu_eq_qb: GCCBuiltin<"__builtin_mips_cmpgdu_eq_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>; def int_mips_cmpgdu_lt_qb: GCCBuiltin<"__builtin_mips_cmpgdu_lt_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>; def int_mips_cmpgdu_le_qb: GCCBuiltin<"__builtin_mips_cmpgdu_le_qb">, Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>; def int_mips_dpa_w_ph: GCCBuiltin<"__builtin_mips_dpa_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty], [IntrNoMem]>; def int_mips_dps_w_ph: GCCBuiltin<"__builtin_mips_dps_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty], [IntrNoMem]>; def int_mips_dpaqx_s_w_ph: GCCBuiltin<"__builtin_mips_dpaqx_s_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_dpaqx_sa_w_ph: GCCBuiltin<"__builtin_mips_dpaqx_sa_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_dpax_w_ph: GCCBuiltin<"__builtin_mips_dpax_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty], [IntrNoMem]>; def int_mips_dpsx_w_ph: GCCBuiltin<"__builtin_mips_dpsx_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty], [IntrNoMem]>; def int_mips_dpsqx_s_w_ph: GCCBuiltin<"__builtin_mips_dpsqx_s_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_dpsqx_sa_w_ph: GCCBuiltin<"__builtin_mips_dpsqx_sa_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>; def int_mips_mul_ph: GCCBuiltin<"__builtin_mips_mul_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>; def int_mips_mul_s_ph: GCCBuiltin<"__builtin_mips_mul_s_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>; def int_mips_mulq_rs_w: GCCBuiltin<"__builtin_mips_mulq_rs_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>; def int_mips_mulq_s_ph: GCCBuiltin<"__builtin_mips_mulq_s_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>; def int_mips_mulq_s_w: GCCBuiltin<"__builtin_mips_mulq_s_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>; def int_mips_mulsa_w_ph: GCCBuiltin<"__builtin_mips_mulsa_w_ph">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty], [IntrNoMem]>; def int_mips_precr_qb_ph: GCCBuiltin<"__builtin_mips_precr_qb_ph">, Intrinsic<[llvm_v4i8_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>; def int_mips_precr_sra_ph_w: GCCBuiltin<"__builtin_mips_precr_sra_ph_w">, Intrinsic<[llvm_v2i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_precr_sra_r_ph_w: GCCBuiltin<"__builtin_mips_precr_sra_r_ph_w">, Intrinsic<[llvm_v2i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_prepend: GCCBuiltin<"__builtin_mips_prepend">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shra_qb: GCCBuiltin<"__builtin_mips_shra_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shra_r_qb: GCCBuiltin<"__builtin_mips_shra_r_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shrl_ph: GCCBuiltin<"__builtin_mips_shrl_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_subqh_ph: GCCBuiltin<"__builtin_mips_subqh_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; def int_mips_subqh_r_ph: GCCBuiltin<"__builtin_mips_subqh_r_ph">, Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>; def int_mips_subqh_w: GCCBuiltin<"__builtin_mips_subqh_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>; def int_mips_subqh_r_w: GCCBuiltin<"__builtin_mips_subqh_r_w">, Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>; def int_mips_subu_ph: GCCBuiltin<"__builtin_mips_subu_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>; def int_mips_subu_s_ph: GCCBuiltin<"__builtin_mips_subu_s_ph">, Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>; def int_mips_subuh_qb: GCCBuiltin<"__builtin_mips_subuh_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; def int_mips_subuh_r_qb: GCCBuiltin<"__builtin_mips_subuh_r_qb">, Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>; //===----------------------------------------------------------------------===// // MIPS MSA //===----------------------------------------------------------------------===// // Addition/subtraction def int_mips_add_a_b : GCCBuiltin<"__builtin_msa_add_a_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_add_a_h : GCCBuiltin<"__builtin_msa_add_a_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_add_a_w : GCCBuiltin<"__builtin_msa_add_a_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_add_a_d : GCCBuiltin<"__builtin_msa_add_a_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_adds_a_b : GCCBuiltin<"__builtin_msa_adds_a_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_adds_a_h : GCCBuiltin<"__builtin_msa_adds_a_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_adds_a_w : GCCBuiltin<"__builtin_msa_adds_a_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_adds_a_d : GCCBuiltin<"__builtin_msa_adds_a_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_adds_s_b : GCCBuiltin<"__builtin_msa_adds_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_adds_s_h : GCCBuiltin<"__builtin_msa_adds_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_adds_s_w : GCCBuiltin<"__builtin_msa_adds_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_adds_s_d : GCCBuiltin<"__builtin_msa_adds_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_adds_u_b : GCCBuiltin<"__builtin_msa_adds_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_adds_u_h : GCCBuiltin<"__builtin_msa_adds_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_adds_u_w : GCCBuiltin<"__builtin_msa_adds_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_adds_u_d : GCCBuiltin<"__builtin_msa_adds_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_addv_b : GCCBuiltin<"__builtin_msa_addv_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_addv_h : GCCBuiltin<"__builtin_msa_addv_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_addv_w : GCCBuiltin<"__builtin_msa_addv_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_addv_d : GCCBuiltin<"__builtin_msa_addv_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_addvi_b : GCCBuiltin<"__builtin_msa_addvi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [Commutative, IntrNoMem]>; def int_mips_addvi_h : GCCBuiltin<"__builtin_msa_addvi_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [Commutative, IntrNoMem]>; def int_mips_addvi_w : GCCBuiltin<"__builtin_msa_addvi_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [Commutative, IntrNoMem]>; def int_mips_addvi_d : GCCBuiltin<"__builtin_msa_addvi_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [Commutative, IntrNoMem]>; def int_mips_and_v : GCCBuiltin<"__builtin_msa_and_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_andi_b : GCCBuiltin<"__builtin_msa_andi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_asub_s_b : GCCBuiltin<"__builtin_msa_asub_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_asub_s_h : GCCBuiltin<"__builtin_msa_asub_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_asub_s_w : GCCBuiltin<"__builtin_msa_asub_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_asub_s_d : GCCBuiltin<"__builtin_msa_asub_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_asub_u_b : GCCBuiltin<"__builtin_msa_asub_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_asub_u_h : GCCBuiltin<"__builtin_msa_asub_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_asub_u_w : GCCBuiltin<"__builtin_msa_asub_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_asub_u_d : GCCBuiltin<"__builtin_msa_asub_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ave_s_b : GCCBuiltin<"__builtin_msa_ave_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_ave_s_h : GCCBuiltin<"__builtin_msa_ave_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_ave_s_w : GCCBuiltin<"__builtin_msa_ave_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_ave_s_d : GCCBuiltin<"__builtin_msa_ave_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_ave_u_b : GCCBuiltin<"__builtin_msa_ave_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_ave_u_h : GCCBuiltin<"__builtin_msa_ave_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_ave_u_w : GCCBuiltin<"__builtin_msa_ave_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_ave_u_d : GCCBuiltin<"__builtin_msa_ave_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_aver_s_b : GCCBuiltin<"__builtin_msa_aver_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_aver_s_h : GCCBuiltin<"__builtin_msa_aver_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_aver_s_w : GCCBuiltin<"__builtin_msa_aver_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_aver_s_d : GCCBuiltin<"__builtin_msa_aver_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_aver_u_b : GCCBuiltin<"__builtin_msa_aver_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [Commutative, IntrNoMem]>; def int_mips_aver_u_h : GCCBuiltin<"__builtin_msa_aver_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [Commutative, IntrNoMem]>; def int_mips_aver_u_w : GCCBuiltin<"__builtin_msa_aver_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [Commutative, IntrNoMem]>; def int_mips_aver_u_d : GCCBuiltin<"__builtin_msa_aver_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [Commutative, IntrNoMem]>; def int_mips_bclr_b : GCCBuiltin<"__builtin_msa_bclr_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bclr_h : GCCBuiltin<"__builtin_msa_bclr_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_bclr_w : GCCBuiltin<"__builtin_msa_bclr_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_bclr_d : GCCBuiltin<"__builtin_msa_bclr_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_bclri_b : GCCBuiltin<"__builtin_msa_bclri_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bclri_h : GCCBuiltin<"__builtin_msa_bclri_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bclri_w : GCCBuiltin<"__builtin_msa_bclri_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bclri_d : GCCBuiltin<"__builtin_msa_bclri_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsl_b : GCCBuiltin<"__builtin_msa_binsl_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_binsl_h : GCCBuiltin<"__builtin_msa_binsl_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_binsl_w : GCCBuiltin<"__builtin_msa_binsl_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_binsl_d : GCCBuiltin<"__builtin_msa_binsl_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_binsli_b : GCCBuiltin<"__builtin_msa_binsli_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsli_h : GCCBuiltin<"__builtin_msa_binsli_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsli_w : GCCBuiltin<"__builtin_msa_binsli_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsli_d : GCCBuiltin<"__builtin_msa_binsli_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsr_b : GCCBuiltin<"__builtin_msa_binsr_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_binsr_h : GCCBuiltin<"__builtin_msa_binsr_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_binsr_w : GCCBuiltin<"__builtin_msa_binsr_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_binsr_d : GCCBuiltin<"__builtin_msa_binsr_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_binsri_b : GCCBuiltin<"__builtin_msa_binsri_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsri_h : GCCBuiltin<"__builtin_msa_binsri_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsri_w : GCCBuiltin<"__builtin_msa_binsri_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_binsri_d : GCCBuiltin<"__builtin_msa_binsri_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bmnz_v : GCCBuiltin<"__builtin_msa_bmnz_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bmnzi_b : GCCBuiltin<"__builtin_msa_bmnzi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bmz_v : GCCBuiltin<"__builtin_msa_bmz_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bmzi_b : GCCBuiltin<"__builtin_msa_bmzi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bneg_b : GCCBuiltin<"__builtin_msa_bneg_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bneg_h : GCCBuiltin<"__builtin_msa_bneg_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_bneg_w : GCCBuiltin<"__builtin_msa_bneg_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_bneg_d : GCCBuiltin<"__builtin_msa_bneg_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_bnegi_b : GCCBuiltin<"__builtin_msa_bnegi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bnegi_h : GCCBuiltin<"__builtin_msa_bnegi_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bnegi_w : GCCBuiltin<"__builtin_msa_bnegi_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bnegi_d : GCCBuiltin<"__builtin_msa_bnegi_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bnz_b : GCCBuiltin<"__builtin_msa_bnz_b">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bnz_h : GCCBuiltin<"__builtin_msa_bnz_h">, Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_bnz_w : GCCBuiltin<"__builtin_msa_bnz_w">, Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_bnz_d : GCCBuiltin<"__builtin_msa_bnz_d">, Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_bnz_v : GCCBuiltin<"__builtin_msa_bnz_v">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bsel_v : GCCBuiltin<"__builtin_msa_bsel_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bseli_b : GCCBuiltin<"__builtin_msa_bseli_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bset_b : GCCBuiltin<"__builtin_msa_bset_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bset_h : GCCBuiltin<"__builtin_msa_bset_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_bset_w : GCCBuiltin<"__builtin_msa_bset_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_bset_d : GCCBuiltin<"__builtin_msa_bset_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_bseti_b : GCCBuiltin<"__builtin_msa_bseti_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bseti_h : GCCBuiltin<"__builtin_msa_bseti_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bseti_w : GCCBuiltin<"__builtin_msa_bseti_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bseti_d : GCCBuiltin<"__builtin_msa_bseti_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_bz_b : GCCBuiltin<"__builtin_msa_bz_b">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_bz_h : GCCBuiltin<"__builtin_msa_bz_h">, Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_bz_w : GCCBuiltin<"__builtin_msa_bz_w">, Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_bz_d : GCCBuiltin<"__builtin_msa_bz_d">, Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_bz_v : GCCBuiltin<"__builtin_msa_bz_v">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ceq_b : GCCBuiltin<"__builtin_msa_ceq_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ceq_h : GCCBuiltin<"__builtin_msa_ceq_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ceq_w : GCCBuiltin<"__builtin_msa_ceq_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ceq_d : GCCBuiltin<"__builtin_msa_ceq_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ceqi_b : GCCBuiltin<"__builtin_msa_ceqi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_ceqi_h : GCCBuiltin<"__builtin_msa_ceqi_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_ceqi_w : GCCBuiltin<"__builtin_msa_ceqi_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_ceqi_d : GCCBuiltin<"__builtin_msa_ceqi_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_cfcmsa : GCCBuiltin<"__builtin_msa_cfcmsa">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; def int_mips_cle_s_b : GCCBuiltin<"__builtin_msa_cle_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_cle_s_h : GCCBuiltin<"__builtin_msa_cle_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_cle_s_w : GCCBuiltin<"__builtin_msa_cle_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_cle_s_d : GCCBuiltin<"__builtin_msa_cle_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_cle_u_b : GCCBuiltin<"__builtin_msa_cle_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_cle_u_h : GCCBuiltin<"__builtin_msa_cle_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_cle_u_w : GCCBuiltin<"__builtin_msa_cle_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_cle_u_d : GCCBuiltin<"__builtin_msa_cle_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_clei_s_b : GCCBuiltin<"__builtin_msa_clei_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_s_h : GCCBuiltin<"__builtin_msa_clei_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_s_w : GCCBuiltin<"__builtin_msa_clei_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_s_d : GCCBuiltin<"__builtin_msa_clei_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_u_b : GCCBuiltin<"__builtin_msa_clei_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_u_h : GCCBuiltin<"__builtin_msa_clei_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_u_w : GCCBuiltin<"__builtin_msa_clei_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clei_u_d : GCCBuiltin<"__builtin_msa_clei_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clt_s_b : GCCBuiltin<"__builtin_msa_clt_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_clt_s_h : GCCBuiltin<"__builtin_msa_clt_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_clt_s_w : GCCBuiltin<"__builtin_msa_clt_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_clt_s_d : GCCBuiltin<"__builtin_msa_clt_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_clt_u_b : GCCBuiltin<"__builtin_msa_clt_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_clt_u_h : GCCBuiltin<"__builtin_msa_clt_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_clt_u_w : GCCBuiltin<"__builtin_msa_clt_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_clt_u_d : GCCBuiltin<"__builtin_msa_clt_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_clti_s_b : GCCBuiltin<"__builtin_msa_clti_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_s_h : GCCBuiltin<"__builtin_msa_clti_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_s_w : GCCBuiltin<"__builtin_msa_clti_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_s_d : GCCBuiltin<"__builtin_msa_clti_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_u_b : GCCBuiltin<"__builtin_msa_clti_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_u_h : GCCBuiltin<"__builtin_msa_clti_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_u_w : GCCBuiltin<"__builtin_msa_clti_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_clti_u_d : GCCBuiltin<"__builtin_msa_clti_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_s_b : GCCBuiltin<"__builtin_msa_copy_s_b">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_s_h : GCCBuiltin<"__builtin_msa_copy_s_h">, Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_s_w : GCCBuiltin<"__builtin_msa_copy_s_w">, Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_s_d : GCCBuiltin<"__builtin_msa_copy_s_d">, Intrinsic<[llvm_i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_u_b : GCCBuiltin<"__builtin_msa_copy_u_b">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_u_h : GCCBuiltin<"__builtin_msa_copy_u_h">, Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_u_w : GCCBuiltin<"__builtin_msa_copy_u_w">, Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_copy_u_d : GCCBuiltin<"__builtin_msa_copy_u_d">, Intrinsic<[llvm_i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_ctcmsa : GCCBuiltin<"__builtin_msa_ctcmsa">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>; def int_mips_div_s_b : GCCBuiltin<"__builtin_msa_div_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_div_s_h : GCCBuiltin<"__builtin_msa_div_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_div_s_w : GCCBuiltin<"__builtin_msa_div_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_div_s_d : GCCBuiltin<"__builtin_msa_div_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_div_u_b : GCCBuiltin<"__builtin_msa_div_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_div_u_h : GCCBuiltin<"__builtin_msa_div_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_div_u_w : GCCBuiltin<"__builtin_msa_div_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_div_u_d : GCCBuiltin<"__builtin_msa_div_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; // This instruction is part of the MSA spec but it does not share the // __builtin_msa prefix because it operates on GP registers. def int_mips_dlsa : GCCBuiltin<"__builtin_mips_dlsa">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_dotp_s_h : GCCBuiltin<"__builtin_msa_dotp_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_dotp_s_w : GCCBuiltin<"__builtin_msa_dotp_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_dotp_s_d : GCCBuiltin<"__builtin_msa_dotp_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_dotp_u_h : GCCBuiltin<"__builtin_msa_dotp_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_dotp_u_w : GCCBuiltin<"__builtin_msa_dotp_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_dotp_u_d : GCCBuiltin<"__builtin_msa_dotp_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_dpadd_s_h : GCCBuiltin<"__builtin_msa_dpadd_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_dpadd_s_w : GCCBuiltin<"__builtin_msa_dpadd_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_dpadd_s_d : GCCBuiltin<"__builtin_msa_dpadd_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_dpadd_u_h : GCCBuiltin<"__builtin_msa_dpadd_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_dpadd_u_w : GCCBuiltin<"__builtin_msa_dpadd_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_dpadd_u_d : GCCBuiltin<"__builtin_msa_dpadd_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_dpsub_s_h : GCCBuiltin<"__builtin_msa_dpsub_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_dpsub_s_w : GCCBuiltin<"__builtin_msa_dpsub_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_dpsub_s_d : GCCBuiltin<"__builtin_msa_dpsub_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_dpsub_u_h : GCCBuiltin<"__builtin_msa_dpsub_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_dpsub_u_w : GCCBuiltin<"__builtin_msa_dpsub_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_dpsub_u_d : GCCBuiltin<"__builtin_msa_dpsub_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_fadd_w : GCCBuiltin<"__builtin_msa_fadd_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fadd_d : GCCBuiltin<"__builtin_msa_fadd_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcaf_w : GCCBuiltin<"__builtin_msa_fcaf_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcaf_d : GCCBuiltin<"__builtin_msa_fcaf_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fceq_w : GCCBuiltin<"__builtin_msa_fceq_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fceq_d : GCCBuiltin<"__builtin_msa_fceq_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcle_w : GCCBuiltin<"__builtin_msa_fcle_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcle_d : GCCBuiltin<"__builtin_msa_fcle_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fclt_w : GCCBuiltin<"__builtin_msa_fclt_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fclt_d : GCCBuiltin<"__builtin_msa_fclt_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fclass_w : GCCBuiltin<"__builtin_msa_fclass_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fclass_d : GCCBuiltin<"__builtin_msa_fclass_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcne_w : GCCBuiltin<"__builtin_msa_fcne_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcne_d : GCCBuiltin<"__builtin_msa_fcne_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcor_w : GCCBuiltin<"__builtin_msa_fcor_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcor_d : GCCBuiltin<"__builtin_msa_fcor_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcueq_w : GCCBuiltin<"__builtin_msa_fcueq_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcueq_d : GCCBuiltin<"__builtin_msa_fcueq_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcule_w : GCCBuiltin<"__builtin_msa_fcule_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcule_d : GCCBuiltin<"__builtin_msa_fcule_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcult_w : GCCBuiltin<"__builtin_msa_fcult_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcult_d : GCCBuiltin<"__builtin_msa_fcult_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcun_w : GCCBuiltin<"__builtin_msa_fcun_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcun_d : GCCBuiltin<"__builtin_msa_fcun_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fcune_w : GCCBuiltin<"__builtin_msa_fcune_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fcune_d : GCCBuiltin<"__builtin_msa_fcune_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fdiv_w : GCCBuiltin<"__builtin_msa_fdiv_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fdiv_d : GCCBuiltin<"__builtin_msa_fdiv_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fexdo_h : GCCBuiltin<"__builtin_msa_fexdo_h">, Intrinsic<[llvm_v8f16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fexdo_w : GCCBuiltin<"__builtin_msa_fexdo_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fexp2_w : GCCBuiltin<"__builtin_msa_fexp2_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_fexp2_d : GCCBuiltin<"__builtin_msa_fexp2_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_fexupl_w : GCCBuiltin<"__builtin_msa_fexupl_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v8f16_ty], [IntrNoMem]>; def int_mips_fexupl_d : GCCBuiltin<"__builtin_msa_fexupl_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fexupr_w : GCCBuiltin<"__builtin_msa_fexupr_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v8f16_ty], [IntrNoMem]>; def int_mips_fexupr_d : GCCBuiltin<"__builtin_msa_fexupr_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_ffint_s_w : GCCBuiltin<"__builtin_msa_ffint_s_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ffint_s_d : GCCBuiltin<"__builtin_msa_ffint_s_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ffint_u_w : GCCBuiltin<"__builtin_msa_ffint_u_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ffint_u_d : GCCBuiltin<"__builtin_msa_ffint_u_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ffql_w : GCCBuiltin<"__builtin_msa_ffql_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ffql_d : GCCBuiltin<"__builtin_msa_ffql_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ffqr_w : GCCBuiltin<"__builtin_msa_ffqr_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ffqr_d : GCCBuiltin<"__builtin_msa_ffqr_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_fill_b : GCCBuiltin<"__builtin_msa_fill_b">, Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_fill_h : GCCBuiltin<"__builtin_msa_fill_h">, Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_fill_w : GCCBuiltin<"__builtin_msa_fill_w">, Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_fill_d : GCCBuiltin<"__builtin_msa_fill_d">, Intrinsic<[llvm_v2i64_ty], [llvm_i64_ty], [IntrNoMem]>; def int_mips_flog2_w : GCCBuiltin<"__builtin_msa_flog2_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_flog2_d : GCCBuiltin<"__builtin_msa_flog2_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmadd_w : GCCBuiltin<"__builtin_msa_fmadd_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmadd_d : GCCBuiltin<"__builtin_msa_fmadd_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmax_w : GCCBuiltin<"__builtin_msa_fmax_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmax_d : GCCBuiltin<"__builtin_msa_fmax_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmax_a_w : GCCBuiltin<"__builtin_msa_fmax_a_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmax_a_d : GCCBuiltin<"__builtin_msa_fmax_a_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmin_w : GCCBuiltin<"__builtin_msa_fmin_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmin_d : GCCBuiltin<"__builtin_msa_fmin_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmin_a_w : GCCBuiltin<"__builtin_msa_fmin_a_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmin_a_d : GCCBuiltin<"__builtin_msa_fmin_a_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmsub_w : GCCBuiltin<"__builtin_msa_fmsub_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmsub_d : GCCBuiltin<"__builtin_msa_fmsub_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fmul_w : GCCBuiltin<"__builtin_msa_fmul_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fmul_d : GCCBuiltin<"__builtin_msa_fmul_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_frint_w : GCCBuiltin<"__builtin_msa_frint_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_frint_d : GCCBuiltin<"__builtin_msa_frint_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_frcp_w : GCCBuiltin<"__builtin_msa_frcp_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_frcp_d : GCCBuiltin<"__builtin_msa_frcp_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_frsqrt_w : GCCBuiltin<"__builtin_msa_frsqrt_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_frsqrt_d : GCCBuiltin<"__builtin_msa_frsqrt_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsaf_w : GCCBuiltin<"__builtin_msa_fsaf_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsaf_d : GCCBuiltin<"__builtin_msa_fsaf_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fseq_w : GCCBuiltin<"__builtin_msa_fseq_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fseq_d : GCCBuiltin<"__builtin_msa_fseq_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsle_w : GCCBuiltin<"__builtin_msa_fsle_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsle_d : GCCBuiltin<"__builtin_msa_fsle_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fslt_w : GCCBuiltin<"__builtin_msa_fslt_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fslt_d : GCCBuiltin<"__builtin_msa_fslt_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsne_w : GCCBuiltin<"__builtin_msa_fsne_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsne_d : GCCBuiltin<"__builtin_msa_fsne_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsor_w : GCCBuiltin<"__builtin_msa_fsor_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsor_d : GCCBuiltin<"__builtin_msa_fsor_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsqrt_w : GCCBuiltin<"__builtin_msa_fsqrt_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsqrt_d : GCCBuiltin<"__builtin_msa_fsqrt_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsub_w : GCCBuiltin<"__builtin_msa_fsub_w">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsub_d : GCCBuiltin<"__builtin_msa_fsub_d">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsueq_w : GCCBuiltin<"__builtin_msa_fsueq_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsueq_d : GCCBuiltin<"__builtin_msa_fsueq_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsule_w : GCCBuiltin<"__builtin_msa_fsule_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsule_d : GCCBuiltin<"__builtin_msa_fsule_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsult_w : GCCBuiltin<"__builtin_msa_fsult_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsult_d : GCCBuiltin<"__builtin_msa_fsult_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsun_w : GCCBuiltin<"__builtin_msa_fsun_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsun_d : GCCBuiltin<"__builtin_msa_fsun_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_fsune_w : GCCBuiltin<"__builtin_msa_fsune_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_fsune_d : GCCBuiltin<"__builtin_msa_fsune_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_ftint_s_w : GCCBuiltin<"__builtin_msa_ftint_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_ftint_s_d : GCCBuiltin<"__builtin_msa_ftint_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_ftint_u_w : GCCBuiltin<"__builtin_msa_ftint_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_ftint_u_d : GCCBuiltin<"__builtin_msa_ftint_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_ftq_h : GCCBuiltin<"__builtin_msa_ftq_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_mips_ftq_w : GCCBuiltin<"__builtin_msa_ftq_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_mips_ftrunc_s_w : GCCBuiltin<"__builtin_msa_ftrunc_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_ftrunc_s_d : GCCBuiltin<"__builtin_msa_ftrunc_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_ftrunc_u_w : GCCBuiltin<"__builtin_msa_ftrunc_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_mips_ftrunc_u_d : GCCBuiltin<"__builtin_msa_ftrunc_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_mips_hadd_s_h : GCCBuiltin<"__builtin_msa_hadd_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_hadd_s_w : GCCBuiltin<"__builtin_msa_hadd_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_hadd_s_d : GCCBuiltin<"__builtin_msa_hadd_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_hadd_u_h : GCCBuiltin<"__builtin_msa_hadd_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_hadd_u_w : GCCBuiltin<"__builtin_msa_hadd_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_hadd_u_d : GCCBuiltin<"__builtin_msa_hadd_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_hsub_s_h : GCCBuiltin<"__builtin_msa_hsub_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_hsub_s_w : GCCBuiltin<"__builtin_msa_hsub_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_hsub_s_d : GCCBuiltin<"__builtin_msa_hsub_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_hsub_u_h : GCCBuiltin<"__builtin_msa_hsub_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_hsub_u_w : GCCBuiltin<"__builtin_msa_hsub_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_hsub_u_d : GCCBuiltin<"__builtin_msa_hsub_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ilvev_b : GCCBuiltin<"__builtin_msa_ilvev_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ilvev_h : GCCBuiltin<"__builtin_msa_ilvev_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ilvev_w : GCCBuiltin<"__builtin_msa_ilvev_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ilvev_d : GCCBuiltin<"__builtin_msa_ilvev_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ilvl_b : GCCBuiltin<"__builtin_msa_ilvl_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ilvl_h : GCCBuiltin<"__builtin_msa_ilvl_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ilvl_w : GCCBuiltin<"__builtin_msa_ilvl_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ilvl_d : GCCBuiltin<"__builtin_msa_ilvl_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ilvod_b : GCCBuiltin<"__builtin_msa_ilvod_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ilvod_h : GCCBuiltin<"__builtin_msa_ilvod_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ilvod_w : GCCBuiltin<"__builtin_msa_ilvod_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ilvod_d : GCCBuiltin<"__builtin_msa_ilvod_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ilvr_b : GCCBuiltin<"__builtin_msa_ilvr_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ilvr_h : GCCBuiltin<"__builtin_msa_ilvr_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_ilvr_w : GCCBuiltin<"__builtin_msa_ilvr_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_ilvr_d : GCCBuiltin<"__builtin_msa_ilvr_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_insert_b : GCCBuiltin<"__builtin_msa_insert_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_insert_h : GCCBuiltin<"__builtin_msa_insert_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_insert_w : GCCBuiltin<"__builtin_msa_insert_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_insert_d : GCCBuiltin<"__builtin_msa_insert_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_i64_ty], [IntrNoMem]>; def int_mips_insve_b : GCCBuiltin<"__builtin_msa_insve_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_insve_h : GCCBuiltin<"__builtin_msa_insve_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_insve_w : GCCBuiltin<"__builtin_msa_insve_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_insve_d : GCCBuiltin<"__builtin_msa_insve_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_ld_b : GCCBuiltin<"__builtin_msa_ld_b">, Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_mips_ld_h : GCCBuiltin<"__builtin_msa_ld_h">, Intrinsic<[llvm_v8i16_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_mips_ld_w : GCCBuiltin<"__builtin_msa_ld_w">, Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_mips_ld_d : GCCBuiltin<"__builtin_msa_ld_d">, Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_mips_ldi_b : GCCBuiltin<"__builtin_msa_ldi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_ldi_h : GCCBuiltin<"__builtin_msa_ldi_h">, Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_ldi_w : GCCBuiltin<"__builtin_msa_ldi_w">, Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_mips_ldi_d : GCCBuiltin<"__builtin_msa_ldi_d">, Intrinsic<[llvm_v2i64_ty], [llvm_i32_ty], [IntrNoMem]>; // This instruction is part of the MSA spec but it does not share the // __builtin_msa prefix because it operates on the GPR registers. def int_mips_lsa : GCCBuiltin<"__builtin_mips_lsa">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_madd_q_h : GCCBuiltin<"__builtin_msa_madd_q_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_madd_q_w : GCCBuiltin<"__builtin_msa_madd_q_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_maddr_q_h : GCCBuiltin<"__builtin_msa_maddr_q_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_maddr_q_w : GCCBuiltin<"__builtin_msa_maddr_q_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_maddv_b : GCCBuiltin<"__builtin_msa_maddv_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_maddv_h : GCCBuiltin<"__builtin_msa_maddv_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_maddv_w : GCCBuiltin<"__builtin_msa_maddv_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_maddv_d : GCCBuiltin<"__builtin_msa_maddv_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_max_a_b : GCCBuiltin<"__builtin_msa_max_a_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_max_a_h : GCCBuiltin<"__builtin_msa_max_a_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_max_a_w : GCCBuiltin<"__builtin_msa_max_a_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_max_a_d : GCCBuiltin<"__builtin_msa_max_a_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_max_s_b : GCCBuiltin<"__builtin_msa_max_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_max_s_h : GCCBuiltin<"__builtin_msa_max_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_max_s_w : GCCBuiltin<"__builtin_msa_max_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_max_s_d : GCCBuiltin<"__builtin_msa_max_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_max_u_b : GCCBuiltin<"__builtin_msa_max_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_max_u_h : GCCBuiltin<"__builtin_msa_max_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_max_u_w : GCCBuiltin<"__builtin_msa_max_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_max_u_d : GCCBuiltin<"__builtin_msa_max_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_maxi_s_b : GCCBuiltin<"__builtin_msa_maxi_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_s_h : GCCBuiltin<"__builtin_msa_maxi_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_s_w : GCCBuiltin<"__builtin_msa_maxi_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_s_d : GCCBuiltin<"__builtin_msa_maxi_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_u_b : GCCBuiltin<"__builtin_msa_maxi_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_u_h : GCCBuiltin<"__builtin_msa_maxi_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_u_w : GCCBuiltin<"__builtin_msa_maxi_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_maxi_u_d : GCCBuiltin<"__builtin_msa_maxi_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_min_a_b : GCCBuiltin<"__builtin_msa_min_a_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_min_a_h : GCCBuiltin<"__builtin_msa_min_a_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_min_a_w : GCCBuiltin<"__builtin_msa_min_a_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_min_a_d : GCCBuiltin<"__builtin_msa_min_a_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_min_s_b : GCCBuiltin<"__builtin_msa_min_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_min_s_h : GCCBuiltin<"__builtin_msa_min_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_min_s_w : GCCBuiltin<"__builtin_msa_min_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_min_s_d : GCCBuiltin<"__builtin_msa_min_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_min_u_b : GCCBuiltin<"__builtin_msa_min_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_min_u_h : GCCBuiltin<"__builtin_msa_min_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_min_u_w : GCCBuiltin<"__builtin_msa_min_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_min_u_d : GCCBuiltin<"__builtin_msa_min_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_mini_s_b : GCCBuiltin<"__builtin_msa_mini_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_s_h : GCCBuiltin<"__builtin_msa_mini_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_s_w : GCCBuiltin<"__builtin_msa_mini_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_s_d : GCCBuiltin<"__builtin_msa_mini_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_u_b : GCCBuiltin<"__builtin_msa_mini_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_u_h : GCCBuiltin<"__builtin_msa_mini_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_u_w : GCCBuiltin<"__builtin_msa_mini_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mini_u_d : GCCBuiltin<"__builtin_msa_mini_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_mod_s_b : GCCBuiltin<"__builtin_msa_mod_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_mod_s_h : GCCBuiltin<"__builtin_msa_mod_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_mod_s_w : GCCBuiltin<"__builtin_msa_mod_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_mod_s_d : GCCBuiltin<"__builtin_msa_mod_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_mod_u_b : GCCBuiltin<"__builtin_msa_mod_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_mod_u_h : GCCBuiltin<"__builtin_msa_mod_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_mod_u_w : GCCBuiltin<"__builtin_msa_mod_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_mod_u_d : GCCBuiltin<"__builtin_msa_mod_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_move_v : GCCBuiltin<"__builtin_msa_move_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_msub_q_h : GCCBuiltin<"__builtin_msa_msub_q_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_msub_q_w : GCCBuiltin<"__builtin_msa_msub_q_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_msubr_q_h : GCCBuiltin<"__builtin_msa_msubr_q_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_msubr_q_w : GCCBuiltin<"__builtin_msa_msubr_q_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_msubv_b : GCCBuiltin<"__builtin_msa_msubv_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_msubv_h : GCCBuiltin<"__builtin_msa_msubv_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_msubv_w : GCCBuiltin<"__builtin_msa_msubv_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_msubv_d : GCCBuiltin<"__builtin_msa_msubv_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_mul_q_h : GCCBuiltin<"__builtin_msa_mul_q_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_mul_q_w : GCCBuiltin<"__builtin_msa_mul_q_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_mulr_q_h : GCCBuiltin<"__builtin_msa_mulr_q_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_mulr_q_w : GCCBuiltin<"__builtin_msa_mulr_q_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_mulv_b : GCCBuiltin<"__builtin_msa_mulv_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_mulv_h : GCCBuiltin<"__builtin_msa_mulv_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_mulv_w : GCCBuiltin<"__builtin_msa_mulv_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_mulv_d : GCCBuiltin<"__builtin_msa_mulv_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_nloc_b : GCCBuiltin<"__builtin_msa_nloc_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_nloc_h : GCCBuiltin<"__builtin_msa_nloc_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_nloc_w : GCCBuiltin<"__builtin_msa_nloc_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_nloc_d : GCCBuiltin<"__builtin_msa_nloc_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_nlzc_b : GCCBuiltin<"__builtin_msa_nlzc_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_nlzc_h : GCCBuiltin<"__builtin_msa_nlzc_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_nlzc_w : GCCBuiltin<"__builtin_msa_nlzc_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_nlzc_d : GCCBuiltin<"__builtin_msa_nlzc_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_nor_v : GCCBuiltin<"__builtin_msa_nor_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_nori_b : GCCBuiltin<"__builtin_msa_nori_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_or_v : GCCBuiltin<"__builtin_msa_or_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_ori_b : GCCBuiltin<"__builtin_msa_ori_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_pckev_b : GCCBuiltin<"__builtin_msa_pckev_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_pckev_h : GCCBuiltin<"__builtin_msa_pckev_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_pckev_w : GCCBuiltin<"__builtin_msa_pckev_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_pckev_d : GCCBuiltin<"__builtin_msa_pckev_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_pckod_b : GCCBuiltin<"__builtin_msa_pckod_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_pckod_h : GCCBuiltin<"__builtin_msa_pckod_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_pckod_w : GCCBuiltin<"__builtin_msa_pckod_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_pckod_d : GCCBuiltin<"__builtin_msa_pckod_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_pcnt_b : GCCBuiltin<"__builtin_msa_pcnt_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_mips_pcnt_h : GCCBuiltin<"__builtin_msa_pcnt_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_mips_pcnt_w : GCCBuiltin<"__builtin_msa_pcnt_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_mips_pcnt_d : GCCBuiltin<"__builtin_msa_pcnt_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_mips_sat_s_b : GCCBuiltin<"__builtin_msa_sat_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_s_h : GCCBuiltin<"__builtin_msa_sat_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_s_w : GCCBuiltin<"__builtin_msa_sat_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_s_d : GCCBuiltin<"__builtin_msa_sat_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_u_b : GCCBuiltin<"__builtin_msa_sat_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_u_h : GCCBuiltin<"__builtin_msa_sat_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_u_w : GCCBuiltin<"__builtin_msa_sat_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sat_u_d : GCCBuiltin<"__builtin_msa_sat_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shf_b : GCCBuiltin<"__builtin_msa_shf_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shf_h : GCCBuiltin<"__builtin_msa_shf_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_shf_w : GCCBuiltin<"__builtin_msa_shf_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sld_b : GCCBuiltin<"__builtin_msa_sld_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sld_h : GCCBuiltin<"__builtin_msa_sld_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sld_w : GCCBuiltin<"__builtin_msa_sld_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sld_d : GCCBuiltin<"__builtin_msa_sld_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sldi_b : GCCBuiltin<"__builtin_msa_sldi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sldi_h : GCCBuiltin<"__builtin_msa_sldi_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sldi_w : GCCBuiltin<"__builtin_msa_sldi_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sldi_d : GCCBuiltin<"__builtin_msa_sldi_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sll_b : GCCBuiltin<"__builtin_msa_sll_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_sll_h : GCCBuiltin<"__builtin_msa_sll_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_sll_w : GCCBuiltin<"__builtin_msa_sll_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_sll_d : GCCBuiltin<"__builtin_msa_sll_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_slli_b : GCCBuiltin<"__builtin_msa_slli_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_slli_h : GCCBuiltin<"__builtin_msa_slli_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_slli_w : GCCBuiltin<"__builtin_msa_slli_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_slli_d : GCCBuiltin<"__builtin_msa_slli_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splat_b : GCCBuiltin<"__builtin_msa_splat_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splat_h : GCCBuiltin<"__builtin_msa_splat_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splat_w : GCCBuiltin<"__builtin_msa_splat_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splat_d : GCCBuiltin<"__builtin_msa_splat_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splati_b : GCCBuiltin<"__builtin_msa_splati_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splati_h : GCCBuiltin<"__builtin_msa_splati_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splati_w : GCCBuiltin<"__builtin_msa_splati_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_splati_d : GCCBuiltin<"__builtin_msa_splati_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_sra_b : GCCBuiltin<"__builtin_msa_sra_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_sra_h : GCCBuiltin<"__builtin_msa_sra_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_sra_w : GCCBuiltin<"__builtin_msa_sra_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_sra_d : GCCBuiltin<"__builtin_msa_sra_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_srai_b : GCCBuiltin<"__builtin_msa_srai_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srai_h : GCCBuiltin<"__builtin_msa_srai_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srai_w : GCCBuiltin<"__builtin_msa_srai_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srai_d : GCCBuiltin<"__builtin_msa_srai_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srar_b : GCCBuiltin<"__builtin_msa_srar_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_srar_h : GCCBuiltin<"__builtin_msa_srar_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_srar_w : GCCBuiltin<"__builtin_msa_srar_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_srar_d : GCCBuiltin<"__builtin_msa_srar_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_srari_b : GCCBuiltin<"__builtin_msa_srari_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srari_h : GCCBuiltin<"__builtin_msa_srari_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srari_w : GCCBuiltin<"__builtin_msa_srari_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srari_d : GCCBuiltin<"__builtin_msa_srari_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srl_b : GCCBuiltin<"__builtin_msa_srl_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_srl_h : GCCBuiltin<"__builtin_msa_srl_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_srl_w : GCCBuiltin<"__builtin_msa_srl_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_srl_d : GCCBuiltin<"__builtin_msa_srl_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_srli_b : GCCBuiltin<"__builtin_msa_srli_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srli_h : GCCBuiltin<"__builtin_msa_srli_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srli_w : GCCBuiltin<"__builtin_msa_srli_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srli_d : GCCBuiltin<"__builtin_msa_srli_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srlr_b : GCCBuiltin<"__builtin_msa_srlr_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_srlr_h : GCCBuiltin<"__builtin_msa_srlr_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_srlr_w : GCCBuiltin<"__builtin_msa_srlr_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_srlr_d : GCCBuiltin<"__builtin_msa_srlr_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_srlri_b : GCCBuiltin<"__builtin_msa_srlri_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srlri_h : GCCBuiltin<"__builtin_msa_srlri_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srlri_w : GCCBuiltin<"__builtin_msa_srlri_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_srlri_d : GCCBuiltin<"__builtin_msa_srlri_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_st_b : GCCBuiltin<"__builtin_msa_st_b">, Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_mips_st_h : GCCBuiltin<"__builtin_msa_st_h">, Intrinsic<[], [llvm_v8i16_ty, llvm_ptr_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_mips_st_w : GCCBuiltin<"__builtin_msa_st_w">, Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_mips_st_d : GCCBuiltin<"__builtin_msa_st_d">, Intrinsic<[], [llvm_v2i64_ty, llvm_ptr_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_mips_subs_s_b : GCCBuiltin<"__builtin_msa_subs_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_subs_s_h : GCCBuiltin<"__builtin_msa_subs_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_subs_s_w : GCCBuiltin<"__builtin_msa_subs_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_subs_s_d : GCCBuiltin<"__builtin_msa_subs_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_subs_u_b : GCCBuiltin<"__builtin_msa_subs_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_subs_u_h : GCCBuiltin<"__builtin_msa_subs_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_subs_u_w : GCCBuiltin<"__builtin_msa_subs_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_subs_u_d : GCCBuiltin<"__builtin_msa_subs_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_subsus_u_b : GCCBuiltin<"__builtin_msa_subsus_u_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_subsus_u_h : GCCBuiltin<"__builtin_msa_subsus_u_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_subsus_u_w : GCCBuiltin<"__builtin_msa_subsus_u_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_subsus_u_d : GCCBuiltin<"__builtin_msa_subsus_u_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_subsuu_s_b : GCCBuiltin<"__builtin_msa_subsuu_s_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_subsuu_s_h : GCCBuiltin<"__builtin_msa_subsuu_s_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_subsuu_s_w : GCCBuiltin<"__builtin_msa_subsuu_s_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_subsuu_s_d : GCCBuiltin<"__builtin_msa_subsuu_s_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_subv_b : GCCBuiltin<"__builtin_msa_subv_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_subv_h : GCCBuiltin<"__builtin_msa_subv_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_subv_w : GCCBuiltin<"__builtin_msa_subv_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_subv_d : GCCBuiltin<"__builtin_msa_subv_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_subvi_b : GCCBuiltin<"__builtin_msa_subvi_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_subvi_h : GCCBuiltin<"__builtin_msa_subvi_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_subvi_w : GCCBuiltin<"__builtin_msa_subvi_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_subvi_d : GCCBuiltin<"__builtin_msa_subvi_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_mips_vshf_b : GCCBuiltin<"__builtin_msa_vshf_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_vshf_h : GCCBuiltin<"__builtin_msa_vshf_h">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_mips_vshf_w : GCCBuiltin<"__builtin_msa_vshf_w">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_mips_vshf_d : GCCBuiltin<"__builtin_msa_vshf_d">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_mips_xor_v : GCCBuiltin<"__builtin_msa_xor_v">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_mips_xori_b : GCCBuiltin<"__builtin_msa_xori_b">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; } //===- IntrinsicsNVVM.td - Defines NVVM intrinsics ---------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the NVVM-specific intrinsics for use with NVPTX. // //===----------------------------------------------------------------------===// def llvm_anyi64ptr_ty : LLVMAnyPointerType; // (space)i64* // // MISC // let TargetPrefix = "nvvm" in { def int_nvvm_clz_i : GCCBuiltin<"__nvvm_clz_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_clz_ll : GCCBuiltin<"__nvvm_clz_ll">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_popc_i : GCCBuiltin<"__nvvm_popc_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_popc_ll : GCCBuiltin<"__nvvm_popc_ll">, Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_prmt : GCCBuiltin<"__nvvm_prmt">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; // // Min Max // def int_nvvm_min_i : GCCBuiltin<"__nvvm_min_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_min_ui : GCCBuiltin<"__nvvm_min_ui">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_min_ll : GCCBuiltin<"__nvvm_min_ll">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem, Commutative]>; def int_nvvm_min_ull : GCCBuiltin<"__nvvm_min_ull">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem, Commutative]>; def int_nvvm_max_i : GCCBuiltin<"__nvvm_max_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_max_ui : GCCBuiltin<"__nvvm_max_ui">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_max_ll : GCCBuiltin<"__nvvm_max_ll">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem, Commutative]>; def int_nvvm_max_ull : GCCBuiltin<"__nvvm_max_ull">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem, Commutative]>; def int_nvvm_fmin_f : GCCBuiltin<"__nvvm_fmin_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fmin_ftz_f : GCCBuiltin<"__nvvm_fmin_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fmax_f : GCCBuiltin<"__nvvm_fmax_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty] , [IntrNoMem, Commutative]>; def int_nvvm_fmax_ftz_f : GCCBuiltin<"__nvvm_fmax_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fmin_d : GCCBuiltin<"__nvvm_fmin_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_fmax_d : GCCBuiltin<"__nvvm_fmax_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; // // Multiplication // def int_nvvm_mulhi_i : GCCBuiltin<"__nvvm_mulhi_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_mulhi_ui : GCCBuiltin<"__nvvm_mulhi_ui">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_mulhi_ll : GCCBuiltin<"__nvvm_mulhi_ll">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem, Commutative]>; def int_nvvm_mulhi_ull : GCCBuiltin<"__nvvm_mulhi_ull">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rn_ftz_f : GCCBuiltin<"__nvvm_mul_rn_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rn_f : GCCBuiltin<"__nvvm_mul_rn_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rz_ftz_f : GCCBuiltin<"__nvvm_mul_rz_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rz_f : GCCBuiltin<"__nvvm_mul_rz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rm_ftz_f : GCCBuiltin<"__nvvm_mul_rm_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rm_f : GCCBuiltin<"__nvvm_mul_rm_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rp_ftz_f : GCCBuiltin<"__nvvm_mul_rp_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rp_f : GCCBuiltin<"__nvvm_mul_rp_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rn_d : GCCBuiltin<"__nvvm_mul_rn_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rz_d : GCCBuiltin<"__nvvm_mul_rz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rm_d : GCCBuiltin<"__nvvm_mul_rm_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul_rp_d : GCCBuiltin<"__nvvm_mul_rp_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul24_i : GCCBuiltin<"__nvvm_mul24_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_mul24_ui : GCCBuiltin<"__nvvm_mul24_ui">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; // // Div // def int_nvvm_div_approx_ftz_f : GCCBuiltin<"__nvvm_div_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_approx_f : GCCBuiltin<"__nvvm_div_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rn_ftz_f : GCCBuiltin<"__nvvm_div_rn_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rn_f : GCCBuiltin<"__nvvm_div_rn_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rz_ftz_f : GCCBuiltin<"__nvvm_div_rz_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rz_f : GCCBuiltin<"__nvvm_div_rz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rm_ftz_f : GCCBuiltin<"__nvvm_div_rm_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rm_f : GCCBuiltin<"__nvvm_div_rm_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rp_ftz_f : GCCBuiltin<"__nvvm_div_rp_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rp_f : GCCBuiltin<"__nvvm_div_rp_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rn_d : GCCBuiltin<"__nvvm_div_rn_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rz_d : GCCBuiltin<"__nvvm_div_rz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rm_d : GCCBuiltin<"__nvvm_div_rm_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_div_rp_d : GCCBuiltin<"__nvvm_div_rp_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; // // Brev // def int_nvvm_brev32 : GCCBuiltin<"__nvvm_brev32">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_brev64 : GCCBuiltin<"__nvvm_brev64">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem]>; // // Sad // def int_nvvm_sad_i : GCCBuiltin<"__nvvm_sad_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_sad_ui : GCCBuiltin<"__nvvm_sad_ui">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; // // Floor Ceil // def int_nvvm_floor_ftz_f : GCCBuiltin<"__nvvm_floor_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_floor_f : GCCBuiltin<"__nvvm_floor_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_floor_d : GCCBuiltin<"__nvvm_floor_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_ceil_ftz_f : GCCBuiltin<"__nvvm_ceil_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_ceil_f : GCCBuiltin<"__nvvm_ceil_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_ceil_d : GCCBuiltin<"__nvvm_ceil_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Abs // def int_nvvm_abs_i : GCCBuiltin<"__nvvm_abs_i">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_abs_ll : GCCBuiltin<"__nvvm_abs_ll">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_fabs_ftz_f : GCCBuiltin<"__nvvm_fabs_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_fabs_f : GCCBuiltin<"__nvvm_fabs_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_fabs_d : GCCBuiltin<"__nvvm_fabs_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Round // def int_nvvm_round_ftz_f : GCCBuiltin<"__nvvm_round_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_round_f : GCCBuiltin<"__nvvm_round_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_round_d : GCCBuiltin<"__nvvm_round_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Trunc // def int_nvvm_trunc_ftz_f : GCCBuiltin<"__nvvm_trunc_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_trunc_f : GCCBuiltin<"__nvvm_trunc_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_trunc_d : GCCBuiltin<"__nvvm_trunc_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Saturate // def int_nvvm_saturate_ftz_f : GCCBuiltin<"__nvvm_saturate_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_saturate_f : GCCBuiltin<"__nvvm_saturate_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_saturate_d : GCCBuiltin<"__nvvm_saturate_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Exp2 Log2 // def int_nvvm_ex2_approx_ftz_f : GCCBuiltin<"__nvvm_ex2_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_ex2_approx_f : GCCBuiltin<"__nvvm_ex2_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_ex2_approx_d : GCCBuiltin<"__nvvm_ex2_approx_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_lg2_approx_ftz_f : GCCBuiltin<"__nvvm_lg2_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_lg2_approx_f : GCCBuiltin<"__nvvm_lg2_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_lg2_approx_d : GCCBuiltin<"__nvvm_lg2_approx_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Sin Cos // def int_nvvm_sin_approx_ftz_f : GCCBuiltin<"__nvvm_sin_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sin_approx_f : GCCBuiltin<"__nvvm_sin_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_cos_approx_ftz_f : GCCBuiltin<"__nvvm_cos_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_cos_approx_f : GCCBuiltin<"__nvvm_cos_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; // // Fma // def int_nvvm_fma_rn_ftz_f : GCCBuiltin<"__nvvm_fma_rn_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rn_f : GCCBuiltin<"__nvvm_fma_rn_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rz_ftz_f : GCCBuiltin<"__nvvm_fma_rz_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rz_f : GCCBuiltin<"__nvvm_fma_rz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rm_ftz_f : GCCBuiltin<"__nvvm_fma_rm_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rm_f : GCCBuiltin<"__nvvm_fma_rm_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rp_ftz_f : GCCBuiltin<"__nvvm_fma_rp_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rp_f : GCCBuiltin<"__nvvm_fma_rp_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rn_d : GCCBuiltin<"__nvvm_fma_rn_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rz_d : GCCBuiltin<"__nvvm_fma_rz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rm_d : GCCBuiltin<"__nvvm_fma_rm_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_fma_rp_d : GCCBuiltin<"__nvvm_fma_rp_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; // // Rcp // def int_nvvm_rcp_rn_ftz_f : GCCBuiltin<"__nvvm_rcp_rn_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rn_f : GCCBuiltin<"__nvvm_rcp_rn_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rz_ftz_f : GCCBuiltin<"__nvvm_rcp_rz_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rz_f : GCCBuiltin<"__nvvm_rcp_rz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rm_ftz_f : GCCBuiltin<"__nvvm_rcp_rm_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rm_f : GCCBuiltin<"__nvvm_rcp_rm_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rp_ftz_f : GCCBuiltin<"__nvvm_rcp_rp_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rp_f : GCCBuiltin<"__nvvm_rcp_rp_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rcp_rn_d : GCCBuiltin<"__nvvm_rcp_rn_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_rcp_rz_d : GCCBuiltin<"__nvvm_rcp_rz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_rcp_rm_d : GCCBuiltin<"__nvvm_rcp_rm_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_rcp_rp_d : GCCBuiltin<"__nvvm_rcp_rp_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_rcp_approx_ftz_d : GCCBuiltin<"__nvvm_rcp_approx_ftz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Sqrt // def int_nvvm_sqrt_f : GCCBuiltin<"__nvvm_sqrt_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rn_ftz_f : GCCBuiltin<"__nvvm_sqrt_rn_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rn_f : GCCBuiltin<"__nvvm_sqrt_rn_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rz_ftz_f : GCCBuiltin<"__nvvm_sqrt_rz_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rz_f : GCCBuiltin<"__nvvm_sqrt_rz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rm_ftz_f : GCCBuiltin<"__nvvm_sqrt_rm_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rm_f : GCCBuiltin<"__nvvm_sqrt_rm_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rp_ftz_f : GCCBuiltin<"__nvvm_sqrt_rp_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rp_f : GCCBuiltin<"__nvvm_sqrt_rp_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_approx_ftz_f : GCCBuiltin<"__nvvm_sqrt_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_approx_f : GCCBuiltin<"__nvvm_sqrt_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_sqrt_rn_d : GCCBuiltin<"__nvvm_sqrt_rn_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_sqrt_rz_d : GCCBuiltin<"__nvvm_sqrt_rz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_sqrt_rm_d : GCCBuiltin<"__nvvm_sqrt_rm_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_sqrt_rp_d : GCCBuiltin<"__nvvm_sqrt_rp_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Rsqrt // def int_nvvm_rsqrt_approx_ftz_f : GCCBuiltin<"__nvvm_rsqrt_approx_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rsqrt_approx_f : GCCBuiltin<"__nvvm_rsqrt_approx_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_rsqrt_approx_d : GCCBuiltin<"__nvvm_rsqrt_approx_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem]>; // // Add // def int_nvvm_add_rn_ftz_f : GCCBuiltin<"__nvvm_add_rn_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rn_f : GCCBuiltin<"__nvvm_add_rn_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rz_ftz_f : GCCBuiltin<"__nvvm_add_rz_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rz_f : GCCBuiltin<"__nvvm_add_rz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rm_ftz_f : GCCBuiltin<"__nvvm_add_rm_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rm_f : GCCBuiltin<"__nvvm_add_rm_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rp_ftz_f : GCCBuiltin<"__nvvm_add_rp_ftz_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rp_f : GCCBuiltin<"__nvvm_add_rp_f">, Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rn_d : GCCBuiltin<"__nvvm_add_rn_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rz_d : GCCBuiltin<"__nvvm_add_rz_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rm_d : GCCBuiltin<"__nvvm_add_rm_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; def int_nvvm_add_rp_d : GCCBuiltin<"__nvvm_add_rp_d">, Intrinsic<[llvm_double_ty], [llvm_double_ty, llvm_double_ty], [IntrNoMem, Commutative]>; // // Convert // def int_nvvm_d2f_rn_ftz : GCCBuiltin<"__nvvm_d2f_rn_ftz">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rn : GCCBuiltin<"__nvvm_d2f_rn">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rz_ftz : GCCBuiltin<"__nvvm_d2f_rz_ftz">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rz : GCCBuiltin<"__nvvm_d2f_rz">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rm_ftz : GCCBuiltin<"__nvvm_d2f_rm_ftz">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rm : GCCBuiltin<"__nvvm_d2f_rm">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rp_ftz : GCCBuiltin<"__nvvm_d2f_rp_ftz">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2f_rp : GCCBuiltin<"__nvvm_d2f_rp">, Intrinsic<[llvm_float_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2i_rn : GCCBuiltin<"__nvvm_d2i_rn">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2i_rz : GCCBuiltin<"__nvvm_d2i_rz">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2i_rm : GCCBuiltin<"__nvvm_d2i_rm">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2i_rp : GCCBuiltin<"__nvvm_d2i_rp">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ui_rn : GCCBuiltin<"__nvvm_d2ui_rn">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ui_rz : GCCBuiltin<"__nvvm_d2ui_rz">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ui_rm : GCCBuiltin<"__nvvm_d2ui_rm">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ui_rp : GCCBuiltin<"__nvvm_d2ui_rp">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_i2d_rn : GCCBuiltin<"__nvvm_i2d_rn">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_i2d_rz : GCCBuiltin<"__nvvm_i2d_rz">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_i2d_rm : GCCBuiltin<"__nvvm_i2d_rm">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_i2d_rp : GCCBuiltin<"__nvvm_i2d_rp">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2d_rn : GCCBuiltin<"__nvvm_ui2d_rn">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2d_rz : GCCBuiltin<"__nvvm_ui2d_rz">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2d_rm : GCCBuiltin<"__nvvm_ui2d_rm">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2d_rp : GCCBuiltin<"__nvvm_ui2d_rp">, Intrinsic<[llvm_double_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_f2i_rn_ftz : GCCBuiltin<"__nvvm_f2i_rn_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rn : GCCBuiltin<"__nvvm_f2i_rn">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rz_ftz : GCCBuiltin<"__nvvm_f2i_rz_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rz : GCCBuiltin<"__nvvm_f2i_rz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rm_ftz : GCCBuiltin<"__nvvm_f2i_rm_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rm : GCCBuiltin<"__nvvm_f2i_rm">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rp_ftz : GCCBuiltin<"__nvvm_f2i_rp_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2i_rp : GCCBuiltin<"__nvvm_f2i_rp">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rn_ftz : GCCBuiltin<"__nvvm_f2ui_rn_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rn : GCCBuiltin<"__nvvm_f2ui_rn">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rz_ftz : GCCBuiltin<"__nvvm_f2ui_rz_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rz : GCCBuiltin<"__nvvm_f2ui_rz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rm_ftz : GCCBuiltin<"__nvvm_f2ui_rm_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rm : GCCBuiltin<"__nvvm_f2ui_rm">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rp_ftz : GCCBuiltin<"__nvvm_f2ui_rp_ftz">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ui_rp : GCCBuiltin<"__nvvm_f2ui_rp">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_i2f_rn : GCCBuiltin<"__nvvm_i2f_rn">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_i2f_rz : GCCBuiltin<"__nvvm_i2f_rz">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_i2f_rm : GCCBuiltin<"__nvvm_i2f_rm">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_i2f_rp : GCCBuiltin<"__nvvm_i2f_rp">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2f_rn : GCCBuiltin<"__nvvm_ui2f_rn">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2f_rz : GCCBuiltin<"__nvvm_ui2f_rz">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2f_rm : GCCBuiltin<"__nvvm_ui2f_rm">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_ui2f_rp : GCCBuiltin<"__nvvm_ui2f_rp">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_lohi_i2d : GCCBuiltin<"__nvvm_lohi_i2d">, Intrinsic<[llvm_double_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem, Commutative]>; def int_nvvm_d2i_lo : GCCBuiltin<"__nvvm_d2i_lo">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2i_hi : GCCBuiltin<"__nvvm_d2i_hi">, Intrinsic<[llvm_i32_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_f2ll_rn_ftz : GCCBuiltin<"__nvvm_f2ll_rn_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rn : GCCBuiltin<"__nvvm_f2ll_rn">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rz_ftz : GCCBuiltin<"__nvvm_f2ll_rz_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rz : GCCBuiltin<"__nvvm_f2ll_rz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rm_ftz : GCCBuiltin<"__nvvm_f2ll_rm_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rm : GCCBuiltin<"__nvvm_f2ll_rm">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rp_ftz : GCCBuiltin<"__nvvm_f2ll_rp_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ll_rp : GCCBuiltin<"__nvvm_f2ll_rp">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rn_ftz : GCCBuiltin<"__nvvm_f2ull_rn_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rn : GCCBuiltin<"__nvvm_f2ull_rn">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rz_ftz : GCCBuiltin<"__nvvm_f2ull_rz_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rz : GCCBuiltin<"__nvvm_f2ull_rz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rm_ftz : GCCBuiltin<"__nvvm_f2ull_rm_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rm : GCCBuiltin<"__nvvm_f2ull_rm">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rp_ftz : GCCBuiltin<"__nvvm_f2ull_rp_ftz">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2ull_rp : GCCBuiltin<"__nvvm_f2ull_rp">, Intrinsic<[llvm_i64_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_d2ll_rn : GCCBuiltin<"__nvvm_d2ll_rn">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ll_rz : GCCBuiltin<"__nvvm_d2ll_rz">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ll_rm : GCCBuiltin<"__nvvm_d2ll_rm">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ll_rp : GCCBuiltin<"__nvvm_d2ll_rp">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ull_rn : GCCBuiltin<"__nvvm_d2ull_rn">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ull_rz : GCCBuiltin<"__nvvm_d2ull_rz">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ull_rm : GCCBuiltin<"__nvvm_d2ull_rm">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_d2ull_rp : GCCBuiltin<"__nvvm_d2ull_rp">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; def int_nvvm_ll2f_rn : GCCBuiltin<"__nvvm_ll2f_rn">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2f_rz : GCCBuiltin<"__nvvm_ll2f_rz">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2f_rm : GCCBuiltin<"__nvvm_ll2f_rm">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2f_rp : GCCBuiltin<"__nvvm_ll2f_rp">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2f_rn : GCCBuiltin<"__nvvm_ull2f_rn">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2f_rz : GCCBuiltin<"__nvvm_ull2f_rz">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2f_rm : GCCBuiltin<"__nvvm_ull2f_rm">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2f_rp : GCCBuiltin<"__nvvm_ull2f_rp">, Intrinsic<[llvm_float_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2d_rn : GCCBuiltin<"__nvvm_ll2d_rn">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2d_rz : GCCBuiltin<"__nvvm_ll2d_rz">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2d_rm : GCCBuiltin<"__nvvm_ll2d_rm">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ll2d_rp : GCCBuiltin<"__nvvm_ll2d_rp">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2d_rn : GCCBuiltin<"__nvvm_ull2d_rn">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2d_rz : GCCBuiltin<"__nvvm_ull2d_rz">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2d_rm : GCCBuiltin<"__nvvm_ull2d_rm">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_ull2d_rp : GCCBuiltin<"__nvvm_ull2d_rp">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_f2h_rn_ftz : GCCBuiltin<"__nvvm_f2h_rn_ftz">, Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_f2h_rn : GCCBuiltin<"__nvvm_f2h_rn">, Intrinsic<[llvm_i16_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_h2f : GCCBuiltin<"__nvvm_h2f">, Intrinsic<[llvm_float_ty], [llvm_i16_ty], [IntrNoMem]>; // // Bitcast // def int_nvvm_bitcast_f2i : GCCBuiltin<"__nvvm_bitcast_f2i">, Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; def int_nvvm_bitcast_i2f : GCCBuiltin<"__nvvm_bitcast_i2f">, Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; def int_nvvm_bitcast_ll2d : GCCBuiltin<"__nvvm_bitcast_ll2d">, Intrinsic<[llvm_double_ty], [llvm_i64_ty], [IntrNoMem]>; def int_nvvm_bitcast_d2ll : GCCBuiltin<"__nvvm_bitcast_d2ll">, Intrinsic<[llvm_i64_ty], [llvm_double_ty], [IntrNoMem]>; // Atomic not available as an llvm intrinsic. def int_nvvm_atomic_load_add_f32 : Intrinsic<[llvm_float_ty], [LLVMAnyPointerType, llvm_float_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_nvvm_atomic_load_inc_32 : Intrinsic<[llvm_i32_ty], [LLVMAnyPointerType, llvm_i32_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_nvvm_atomic_load_dec_32 : Intrinsic<[llvm_i32_ty], [LLVMAnyPointerType, llvm_i32_ty], [IntrArgMemOnly, NoCapture<0>]>; // Bar.Sync // The builtin for "bar.sync 0" is called __syncthreads. Unlike most of the // intrinsics in this file, this one is a user-facing API. def int_nvvm_barrier0 : GCCBuiltin<"__syncthreads">, Intrinsic<[], [], [IntrConvergent]>; def int_nvvm_barrier0_popc : GCCBuiltin<"__nvvm_bar0_popc">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>; def int_nvvm_barrier0_and : GCCBuiltin<"__nvvm_bar0_and">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>; def int_nvvm_barrier0_or : GCCBuiltin<"__nvvm_bar0_or">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrConvergent]>; def int_nvvm_bar_sync : Intrinsic<[], [llvm_i32_ty], [IntrConvergent]>, GCCBuiltin<"__nvvm_bar_sync">; // Membar def int_nvvm_membar_cta : GCCBuiltin<"__nvvm_membar_cta">, Intrinsic<[], [], []>; def int_nvvm_membar_gl : GCCBuiltin<"__nvvm_membar_gl">, Intrinsic<[], [], []>; def int_nvvm_membar_sys : GCCBuiltin<"__nvvm_membar_sys">, Intrinsic<[], [], []>; // Generated within nvvm. Use for ldu on sm_20 or later. Second arg is the // pointer's alignment. def int_nvvm_ldu_global_i : Intrinsic<[llvm_anyint_ty], [LLVMAnyPointerType>, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldu.global.i">; def int_nvvm_ldu_global_f : Intrinsic<[llvm_anyfloat_ty], [LLVMAnyPointerType>, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldu.global.f">; def int_nvvm_ldu_global_p : Intrinsic<[llvm_anyptr_ty], [LLVMAnyPointerType>, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldu.global.p">; // Generated within nvvm. Use for ldg on sm_35 or later. Second arg is the // pointer's alignment. def int_nvvm_ldg_global_i : Intrinsic<[llvm_anyint_ty], [LLVMAnyPointerType>, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldg.global.i">; def int_nvvm_ldg_global_f : Intrinsic<[llvm_anyfloat_ty], [LLVMAnyPointerType>, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldg.global.f">; def int_nvvm_ldg_global_p : Intrinsic<[llvm_anyptr_ty], [LLVMAnyPointerType>, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly, NoCapture<0>], "llvm.nvvm.ldg.global.p">; // Use for generic pointers // - These intrinsics are used to convert address spaces. // - The input pointer and output pointer must have the same type, except for // the address-space. (This restriction is not enforced here as there is // currently no way to describe it). // - This complements the llvm bitcast, which can be used to cast one type // of pointer to another type of pointer, while the address space remains // the same. def int_nvvm_ptr_local_to_gen: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.local.to.gen">; def int_nvvm_ptr_shared_to_gen: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.shared.to.gen">; def int_nvvm_ptr_global_to_gen: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.global.to.gen">; def int_nvvm_ptr_constant_to_gen: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.constant.to.gen">; def int_nvvm_ptr_gen_to_global: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.gen.to.global">; def int_nvvm_ptr_gen_to_shared: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.gen.to.shared">; def int_nvvm_ptr_gen_to_local: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.gen.to.local">; def int_nvvm_ptr_gen_to_constant: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.gen.to.constant">; // Used in nvvm internally to help address space opt and ptx code generation // This is for params that are passed to kernel functions by pointer by-val. def int_nvvm_ptr_gen_to_param: Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.ptr.gen.to.param">; // Move intrinsics, used in nvvm internally def int_nvvm_move_i16 : Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem], "llvm.nvvm.move.i16">; def int_nvvm_move_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem], "llvm.nvvm.move.i32">; def int_nvvm_move_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.move.i64">; def int_nvvm_move_float : Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem], "llvm.nvvm.move.float">; def int_nvvm_move_double : Intrinsic<[llvm_double_ty], [llvm_double_ty], [IntrNoMem], "llvm.nvvm.move.double">; def int_nvvm_move_ptr : Intrinsic<[llvm_anyptr_ty], [llvm_anyptr_ty], [IntrNoMem, NoCapture<0>], "llvm.nvvm.move.ptr">; // For getting the handle from a texture or surface variable def int_nvvm_texsurf_handle : Intrinsic<[llvm_i64_ty], [llvm_metadata_ty, llvm_anyi64ptr_ty], [IntrNoMem], "llvm.nvvm.texsurf.handle">; def int_nvvm_texsurf_handle_internal : Intrinsic<[llvm_i64_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.texsurf.handle.internal">; /// Error / Warn def int_nvvm_compiler_error : Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.error">; def int_nvvm_compiler_warn : Intrinsic<[], [llvm_anyptr_ty], [], "llvm.nvvm.compiler.warn">; def int_nvvm_reflect : Intrinsic<[llvm_i32_ty], [llvm_anyptr_ty], [IntrNoMem], "llvm.nvvm.reflect">; // isspacep.{const, global, local, shared} def int_nvvm_isspacep_const : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], "llvm.nvvm.isspacep.const">, GCCBuiltin<"__nvvm_isspacep_const">; def int_nvvm_isspacep_global : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], "llvm.nvvm.isspacep.global">, GCCBuiltin<"__nvvm_isspacep_global">; def int_nvvm_isspacep_local : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], "llvm.nvvm.isspacep.local">, GCCBuiltin<"__nvvm_isspacep_local">; def int_nvvm_isspacep_shared : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty], [IntrNoMem], "llvm.nvvm.isspacep.shared">, GCCBuiltin<"__nvvm_isspacep_shared">; // Environment register read def int_nvvm_read_ptx_sreg_envreg0 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg0">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg0">; def int_nvvm_read_ptx_sreg_envreg1 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg1">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg1">; def int_nvvm_read_ptx_sreg_envreg2 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg2">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg2">; def int_nvvm_read_ptx_sreg_envreg3 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg3">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg3">; def int_nvvm_read_ptx_sreg_envreg4 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg4">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg4">; def int_nvvm_read_ptx_sreg_envreg5 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg5">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg5">; def int_nvvm_read_ptx_sreg_envreg6 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg6">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg6">; def int_nvvm_read_ptx_sreg_envreg7 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg7">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg7">; def int_nvvm_read_ptx_sreg_envreg8 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg8">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg8">; def int_nvvm_read_ptx_sreg_envreg9 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg9">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg9">; def int_nvvm_read_ptx_sreg_envreg10 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg10">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg10">; def int_nvvm_read_ptx_sreg_envreg11 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg11">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg11">; def int_nvvm_read_ptx_sreg_envreg12 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg12">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg12">; def int_nvvm_read_ptx_sreg_envreg13 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg13">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg13">; def int_nvvm_read_ptx_sreg_envreg14 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg14">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg14">; def int_nvvm_read_ptx_sreg_envreg15 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg15">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg15">; def int_nvvm_read_ptx_sreg_envreg16 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg16">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg16">; def int_nvvm_read_ptx_sreg_envreg17 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg17">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg17">; def int_nvvm_read_ptx_sreg_envreg18 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg18">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg18">; def int_nvvm_read_ptx_sreg_envreg19 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg19">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg19">; def int_nvvm_read_ptx_sreg_envreg20 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg20">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg20">; def int_nvvm_read_ptx_sreg_envreg21 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg21">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg21">; def int_nvvm_read_ptx_sreg_envreg22 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg22">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg22">; def int_nvvm_read_ptx_sreg_envreg23 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg23">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg23">; def int_nvvm_read_ptx_sreg_envreg24 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg24">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg24">; def int_nvvm_read_ptx_sreg_envreg25 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg25">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg25">; def int_nvvm_read_ptx_sreg_envreg26 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg26">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg26">; def int_nvvm_read_ptx_sreg_envreg27 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg27">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg27">; def int_nvvm_read_ptx_sreg_envreg28 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg28">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg28">; def int_nvvm_read_ptx_sreg_envreg29 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg29">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg29">; def int_nvvm_read_ptx_sreg_envreg30 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg30">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg30">; def int_nvvm_read_ptx_sreg_envreg31 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem], "llvm.nvvm.read.ptx.sreg.envreg31">, GCCBuiltin<"__nvvm_read_ptx_sreg_envreg31">; // Texture Fetch // texmode_independent def int_nvvm_tex_1d_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.tex.1d.v4f32.s32">; def int_nvvm_tex_1d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.v4f32.f32">; def int_nvvm_tex_1d_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.level.v4f32.f32">; def int_nvvm_tex_1d_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.grad.v4f32.f32">; def int_nvvm_tex_1d_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.tex.1d.v4s32.s32">; def int_nvvm_tex_1d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.v4s32.f32">; def int_nvvm_tex_1d_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.level.v4s32.f32">; def int_nvvm_tex_1d_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.grad.v4s32.f32">; def int_nvvm_tex_1d_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.tex.1d.v4u32.s32">; def int_nvvm_tex_1d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.v4u32.f32">; def int_nvvm_tex_1d_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.level.v4u32.f32">; def int_nvvm_tex_1d_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.grad.v4u32.f32">; def int_nvvm_tex_1d_array_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.1d.array.v4f32.s32">; def int_nvvm_tex_1d_array_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.v4f32.f32">; def int_nvvm_tex_1d_array_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.level.v4f32.f32">; def int_nvvm_tex_1d_array_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.grad.v4f32.f32">; def int_nvvm_tex_1d_array_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.1d.array.v4s32.s32">; def int_nvvm_tex_1d_array_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.v4s32.f32">; def int_nvvm_tex_1d_array_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.level.v4s32.f32">; def int_nvvm_tex_1d_array_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.grad.v4s32.f32">; def int_nvvm_tex_1d_array_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.1d.array.v4u32.s32">; def int_nvvm_tex_1d_array_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.v4u32.f32">; def int_nvvm_tex_1d_array_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.level.v4u32.f32">; def int_nvvm_tex_1d_array_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.1d.array.grad.v4u32.f32">; def int_nvvm_tex_2d_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.2d.v4f32.s32">; def int_nvvm_tex_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.v4f32.f32">; def int_nvvm_tex_2d_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.level.v4f32.f32">; def int_nvvm_tex_2d_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.grad.v4f32.f32">; def int_nvvm_tex_2d_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.2d.v4s32.s32">; def int_nvvm_tex_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.v4s32.f32">; def int_nvvm_tex_2d_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.level.v4s32.f32">; def int_nvvm_tex_2d_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.grad.v4s32.f32">; def int_nvvm_tex_2d_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.2d.v4u32.s32">; def int_nvvm_tex_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.v4u32.f32">; def int_nvvm_tex_2d_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.level.v4u32.f32">; def int_nvvm_tex_2d_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.grad.v4u32.f32">; def int_nvvm_tex_2d_array_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.2d.array.v4f32.s32">; def int_nvvm_tex_2d_array_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.v4f32.f32">; def int_nvvm_tex_2d_array_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.level.v4f32.f32">; def int_nvvm_tex_2d_array_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.grad.v4f32.f32">; def int_nvvm_tex_2d_array_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.2d.array.v4s32.s32">; def int_nvvm_tex_2d_array_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.v4s32.f32">; def int_nvvm_tex_2d_array_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.level.v4s32.f32">; def int_nvvm_tex_2d_array_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.grad.v4s32.f32">; def int_nvvm_tex_2d_array_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.2d.array.v4u32.s32">; def int_nvvm_tex_2d_array_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.v4u32.f32">; def int_nvvm_tex_2d_array_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.level.v4u32.f32">; def int_nvvm_tex_2d_array_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.2d.array.grad.v4u32.f32">; def int_nvvm_tex_3d_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.3d.v4f32.s32">; def int_nvvm_tex_3d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.v4f32.f32">; def int_nvvm_tex_3d_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.level.v4f32.f32">; def int_nvvm_tex_3d_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.grad.v4f32.f32">; def int_nvvm_tex_3d_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.3d.v4s32.s32">; def int_nvvm_tex_3d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.v4s32.f32">; def int_nvvm_tex_3d_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.level.v4s32.f32">; def int_nvvm_tex_3d_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.grad.v4s32.f32">; def int_nvvm_tex_3d_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.3d.v4u32.s32">; def int_nvvm_tex_3d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.v4u32.f32">; def int_nvvm_tex_3d_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.level.v4u32.f32">; def int_nvvm_tex_3d_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.3d.grad.v4u32.f32">; def int_nvvm_tex_cube_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.v4f32.f32">; def int_nvvm_tex_cube_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.level.v4f32.f32">; def int_nvvm_tex_cube_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.v4s32.f32">; def int_nvvm_tex_cube_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.level.v4s32.f32">; def int_nvvm_tex_cube_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.v4u32.f32">; def int_nvvm_tex_cube_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.level.v4u32.f32">; def int_nvvm_tex_cube_array_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.array.v4f32.f32">; def int_nvvm_tex_cube_array_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.array.level.v4f32.f32">; def int_nvvm_tex_cube_array_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.array.v4s32.f32">; def int_nvvm_tex_cube_array_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.array.level.v4s32.f32">; def int_nvvm_tex_cube_array_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.array.v4u32.f32">; def int_nvvm_tex_cube_array_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.cube.array.level.v4u32.f32">; def int_nvvm_tld4_r_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.r.2d.v4f32.f32">; def int_nvvm_tld4_g_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.g.2d.v4f32.f32">; def int_nvvm_tld4_b_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.b.2d.v4f32.f32">; def int_nvvm_tld4_a_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.a.2d.v4f32.f32">; def int_nvvm_tld4_r_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.r.2d.v4s32.f32">; def int_nvvm_tld4_g_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.g.2d.v4s32.f32">; def int_nvvm_tld4_b_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.b.2d.v4s32.f32">; def int_nvvm_tld4_a_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.a.2d.v4s32.f32">; def int_nvvm_tld4_r_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.r.2d.v4u32.f32">; def int_nvvm_tld4_g_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.g.2d.v4u32.f32">; def int_nvvm_tld4_b_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.b.2d.v4u32.f32">; def int_nvvm_tld4_a_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.a.2d.v4u32.f32">; // texmode_unified def int_nvvm_tex_unified_1d_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.1d.v4f32.s32">; def int_nvvm_tex_unified_1d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.v4f32.f32">; def int_nvvm_tex_unified_1d_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.level.v4f32.f32">; def int_nvvm_tex_unified_1d_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.grad.v4f32.f32">; def int_nvvm_tex_unified_1d_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.1d.v4s32.s32">; def int_nvvm_tex_unified_1d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.v4s32.f32">; def int_nvvm_tex_unified_1d_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.level.v4s32.f32">; def int_nvvm_tex_unified_1d_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.grad.v4s32.f32">; def int_nvvm_tex_unified_1d_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.1d.v4u32.s32">; def int_nvvm_tex_unified_1d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.v4u32.f32">; def int_nvvm_tex_unified_1d_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.level.v4u32.f32">; def int_nvvm_tex_unified_1d_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.grad.v4u32.f32">; def int_nvvm_tex_unified_1d_array_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.1d.array.v4f32.s32">; def int_nvvm_tex_unified_1d_array_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.v4f32.f32">; def int_nvvm_tex_unified_1d_array_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32">; def int_nvvm_tex_unified_1d_array_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32">; def int_nvvm_tex_unified_1d_array_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.1d.array.v4s32.s32">; def int_nvvm_tex_unified_1d_array_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.v4s32.f32">; def int_nvvm_tex_unified_1d_array_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32">; def int_nvvm_tex_unified_1d_array_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32">; def int_nvvm_tex_unified_1d_array_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.1d.array.v4u32.s32">; def int_nvvm_tex_unified_1d_array_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.v4u32.f32">; def int_nvvm_tex_unified_1d_array_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32">; def int_nvvm_tex_unified_1d_array_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32">; def int_nvvm_tex_unified_2d_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.2d.v4f32.s32">; def int_nvvm_tex_unified_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.v4f32.f32">; def int_nvvm_tex_unified_2d_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.level.v4f32.f32">; def int_nvvm_tex_unified_2d_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.grad.v4f32.f32">; def int_nvvm_tex_unified_2d_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.2d.v4s32.s32">; def int_nvvm_tex_unified_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.v4s32.f32">; def int_nvvm_tex_unified_2d_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.level.v4s32.f32">; def int_nvvm_tex_unified_2d_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.grad.v4s32.f32">; def int_nvvm_tex_unified_2d_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.2d.v4u32.s32">; def int_nvvm_tex_unified_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.v4u32.f32">; def int_nvvm_tex_unified_2d_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.level.v4u32.f32">; def int_nvvm_tex_unified_2d_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.grad.v4u32.f32">; def int_nvvm_tex_unified_2d_array_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.2d.array.v4f32.s32">; def int_nvvm_tex_unified_2d_array_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.v4f32.f32">; def int_nvvm_tex_unified_2d_array_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32">; def int_nvvm_tex_unified_2d_array_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32">; def int_nvvm_tex_unified_2d_array_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.2d.array.v4s32.s32">; def int_nvvm_tex_unified_2d_array_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.v4s32.f32">; def int_nvvm_tex_unified_2d_array_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32">; def int_nvvm_tex_unified_2d_array_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32">; def int_nvvm_tex_unified_2d_array_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.2d.array.v4u32.s32">; def int_nvvm_tex_unified_2d_array_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.v4u32.f32">; def int_nvvm_tex_unified_2d_array_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32">; def int_nvvm_tex_unified_2d_array_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32">; def int_nvvm_tex_unified_3d_v4f32_s32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.3d.v4f32.s32">; def int_nvvm_tex_unified_3d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.v4f32.f32">; def int_nvvm_tex_unified_3d_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.level.v4f32.f32">; def int_nvvm_tex_unified_3d_grad_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.grad.v4f32.f32">; def int_nvvm_tex_unified_3d_v4s32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.3d.v4s32.s32">; def int_nvvm_tex_unified_3d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.v4s32.f32">; def int_nvvm_tex_unified_3d_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.level.v4s32.f32">; def int_nvvm_tex_unified_3d_grad_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.grad.v4s32.f32">; def int_nvvm_tex_unified_3d_v4u32_s32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.tex.unified.3d.v4u32.s32">; def int_nvvm_tex_unified_3d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.v4u32.f32">; def int_nvvm_tex_unified_3d_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.level.v4u32.f32">; def int_nvvm_tex_unified_3d_grad_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.3d.grad.v4u32.f32">; def int_nvvm_tex_unified_cube_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.v4f32.f32">; def int_nvvm_tex_unified_cube_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.level.v4f32.f32">; def int_nvvm_tex_unified_cube_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.v4s32.f32">; def int_nvvm_tex_unified_cube_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.level.v4s32.f32">; def int_nvvm_tex_unified_cube_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.v4u32.f32">; def int_nvvm_tex_unified_cube_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.level.v4u32.f32">; def int_nvvm_tex_unified_cube_array_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.array.v4f32.f32">; def int_nvvm_tex_unified_cube_array_level_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32">; def int_nvvm_tex_unified_cube_array_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.array.v4s32.f32">; def int_nvvm_tex_unified_cube_array_level_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32">; def int_nvvm_tex_unified_cube_array_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.array.v4u32.f32">; def int_nvvm_tex_unified_cube_array_level_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32">; def int_nvvm_tld4_unified_r_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.r.2d.v4f32.f32">; def int_nvvm_tld4_unified_g_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.g.2d.v4f32.f32">; def int_nvvm_tld4_unified_b_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.b.2d.v4f32.f32">; def int_nvvm_tld4_unified_a_2d_v4f32_f32 : Intrinsic<[llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.a.2d.v4f32.f32">; def int_nvvm_tld4_unified_r_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.r.2d.v4s32.f32">; def int_nvvm_tld4_unified_g_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.g.2d.v4s32.f32">; def int_nvvm_tld4_unified_b_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.b.2d.v4s32.f32">; def int_nvvm_tld4_unified_a_2d_v4s32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.a.2d.v4s32.f32">; def int_nvvm_tld4_unified_r_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.r.2d.v4u32.f32">; def int_nvvm_tld4_unified_g_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.g.2d.v4u32.f32">; def int_nvvm_tld4_unified_b_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.b.2d.v4u32.f32">; def int_nvvm_tld4_unified_a_2d_v4u32_f32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_float_ty, llvm_float_ty], [], "llvm.nvvm.tld4.unified.a.2d.v4u32.f32">; //=== Surface Load // .clamp variants def int_nvvm_suld_1d_i8_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i8.clamp">; def int_nvvm_suld_1d_i16_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i16.clamp">; def int_nvvm_suld_1d_i32_clamp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i32.clamp">; def int_nvvm_suld_1d_i64_clamp : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i64.clamp">; def int_nvvm_suld_1d_v2i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i8.clamp">; def int_nvvm_suld_1d_v2i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i16.clamp">; def int_nvvm_suld_1d_v2i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i32.clamp">; def int_nvvm_suld_1d_v2i64_clamp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i64.clamp">; def int_nvvm_suld_1d_v4i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i8.clamp">; def int_nvvm_suld_1d_v4i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i16.clamp">; def int_nvvm_suld_1d_v4i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i32.clamp">; def int_nvvm_suld_1d_array_i8_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i8.clamp">; def int_nvvm_suld_1d_array_i16_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i16.clamp">; def int_nvvm_suld_1d_array_i32_clamp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i32.clamp">; def int_nvvm_suld_1d_array_i64_clamp : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i64.clamp">; def int_nvvm_suld_1d_array_v2i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i8.clamp">; def int_nvvm_suld_1d_array_v2i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i16.clamp">; def int_nvvm_suld_1d_array_v2i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i32.clamp">; def int_nvvm_suld_1d_array_v2i64_clamp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i64.clamp">; def int_nvvm_suld_1d_array_v4i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i8.clamp">; def int_nvvm_suld_1d_array_v4i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i16.clamp">; def int_nvvm_suld_1d_array_v4i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i32.clamp">; def int_nvvm_suld_2d_i8_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i8.clamp">; def int_nvvm_suld_2d_i16_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i16.clamp">; def int_nvvm_suld_2d_i32_clamp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i32.clamp">; def int_nvvm_suld_2d_i64_clamp : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i64.clamp">; def int_nvvm_suld_2d_v2i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i8.clamp">; def int_nvvm_suld_2d_v2i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i16.clamp">; def int_nvvm_suld_2d_v2i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i32.clamp">; def int_nvvm_suld_2d_v2i64_clamp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i64.clamp">; def int_nvvm_suld_2d_v4i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i8.clamp">; def int_nvvm_suld_2d_v4i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i16.clamp">; def int_nvvm_suld_2d_v4i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i32.clamp">; def int_nvvm_suld_2d_array_i8_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i8.clamp">; def int_nvvm_suld_2d_array_i16_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i16.clamp">; def int_nvvm_suld_2d_array_i32_clamp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i32.clamp">; def int_nvvm_suld_2d_array_i64_clamp : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i64.clamp">; def int_nvvm_suld_2d_array_v2i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i8.clamp">; def int_nvvm_suld_2d_array_v2i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i16.clamp">; def int_nvvm_suld_2d_array_v2i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i32.clamp">; def int_nvvm_suld_2d_array_v2i64_clamp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i64.clamp">; def int_nvvm_suld_2d_array_v4i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i8.clamp">; def int_nvvm_suld_2d_array_v4i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i16.clamp">; def int_nvvm_suld_2d_array_v4i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i32.clamp">; def int_nvvm_suld_3d_i8_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i8.clamp">; def int_nvvm_suld_3d_i16_clamp : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i16.clamp">; def int_nvvm_suld_3d_i32_clamp : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i32.clamp">; def int_nvvm_suld_3d_i64_clamp : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i64.clamp">; def int_nvvm_suld_3d_v2i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i8.clamp">; def int_nvvm_suld_3d_v2i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i16.clamp">; def int_nvvm_suld_3d_v2i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i32.clamp">; def int_nvvm_suld_3d_v2i64_clamp : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i64.clamp">; def int_nvvm_suld_3d_v4i8_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i8.clamp">; def int_nvvm_suld_3d_v4i16_clamp : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i16.clamp">; def int_nvvm_suld_3d_v4i32_clamp : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i32.clamp">; // .trap variants def int_nvvm_suld_1d_i8_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i8.trap">; def int_nvvm_suld_1d_i16_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i16.trap">; def int_nvvm_suld_1d_i32_trap : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i32.trap">; def int_nvvm_suld_1d_i64_trap : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i64.trap">; def int_nvvm_suld_1d_v2i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i8.trap">; def int_nvvm_suld_1d_v2i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i16.trap">; def int_nvvm_suld_1d_v2i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i32.trap">; def int_nvvm_suld_1d_v2i64_trap : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i64.trap">; def int_nvvm_suld_1d_v4i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i8.trap">; def int_nvvm_suld_1d_v4i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i16.trap">; def int_nvvm_suld_1d_v4i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i32.trap">; def int_nvvm_suld_1d_array_i8_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i8.trap">; def int_nvvm_suld_1d_array_i16_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i16.trap">; def int_nvvm_suld_1d_array_i32_trap : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i32.trap">; def int_nvvm_suld_1d_array_i64_trap : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i64.trap">; def int_nvvm_suld_1d_array_v2i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i8.trap">; def int_nvvm_suld_1d_array_v2i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i16.trap">; def int_nvvm_suld_1d_array_v2i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i32.trap">; def int_nvvm_suld_1d_array_v2i64_trap : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i64.trap">; def int_nvvm_suld_1d_array_v4i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i8.trap">; def int_nvvm_suld_1d_array_v4i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i16.trap">; def int_nvvm_suld_1d_array_v4i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i32.trap">; def int_nvvm_suld_2d_i8_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i8.trap">; def int_nvvm_suld_2d_i16_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i16.trap">; def int_nvvm_suld_2d_i32_trap : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i32.trap">; def int_nvvm_suld_2d_i64_trap : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i64.trap">; def int_nvvm_suld_2d_v2i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i8.trap">; def int_nvvm_suld_2d_v2i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i16.trap">; def int_nvvm_suld_2d_v2i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i32.trap">; def int_nvvm_suld_2d_v2i64_trap : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i64.trap">; def int_nvvm_suld_2d_v4i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i8.trap">; def int_nvvm_suld_2d_v4i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i16.trap">; def int_nvvm_suld_2d_v4i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i32.trap">; def int_nvvm_suld_2d_array_i8_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i8.trap">; def int_nvvm_suld_2d_array_i16_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i16.trap">; def int_nvvm_suld_2d_array_i32_trap : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i32.trap">; def int_nvvm_suld_2d_array_i64_trap : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i64.trap">; def int_nvvm_suld_2d_array_v2i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i8.trap">; def int_nvvm_suld_2d_array_v2i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i16.trap">; def int_nvvm_suld_2d_array_v2i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i32.trap">; def int_nvvm_suld_2d_array_v2i64_trap : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i64.trap">; def int_nvvm_suld_2d_array_v4i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i8.trap">; def int_nvvm_suld_2d_array_v4i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i16.trap">; def int_nvvm_suld_2d_array_v4i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i32.trap">; def int_nvvm_suld_3d_i8_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i8.trap">; def int_nvvm_suld_3d_i16_trap : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i16.trap">; def int_nvvm_suld_3d_i32_trap : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i32.trap">; def int_nvvm_suld_3d_i64_trap : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i64.trap">; def int_nvvm_suld_3d_v2i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i8.trap">; def int_nvvm_suld_3d_v2i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i16.trap">; def int_nvvm_suld_3d_v2i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i32.trap">; def int_nvvm_suld_3d_v2i64_trap : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i64.trap">; def int_nvvm_suld_3d_v4i8_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i8.trap">; def int_nvvm_suld_3d_v4i16_trap : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i16.trap">; def int_nvvm_suld_3d_v4i32_trap : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i32.trap">; // .zero variants def int_nvvm_suld_1d_i8_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i8.zero">; def int_nvvm_suld_1d_i16_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i16.zero">; def int_nvvm_suld_1d_i32_zero : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i32.zero">; def int_nvvm_suld_1d_i64_zero : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.i64.zero">; def int_nvvm_suld_1d_v2i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i8.zero">; def int_nvvm_suld_1d_v2i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i16.zero">; def int_nvvm_suld_1d_v2i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i32.zero">; def int_nvvm_suld_1d_v2i64_zero : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v2i64.zero">; def int_nvvm_suld_1d_v4i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i8.zero">; def int_nvvm_suld_1d_v4i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i16.zero">; def int_nvvm_suld_1d_v4i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.v4i32.zero">; def int_nvvm_suld_1d_array_i8_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i8.zero">; def int_nvvm_suld_1d_array_i16_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i16.zero">; def int_nvvm_suld_1d_array_i32_zero : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i32.zero">; def int_nvvm_suld_1d_array_i64_zero : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.i64.zero">; def int_nvvm_suld_1d_array_v2i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i8.zero">; def int_nvvm_suld_1d_array_v2i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i16.zero">; def int_nvvm_suld_1d_array_v2i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i32.zero">; def int_nvvm_suld_1d_array_v2i64_zero : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v2i64.zero">; def int_nvvm_suld_1d_array_v4i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i8.zero">; def int_nvvm_suld_1d_array_v4i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i16.zero">; def int_nvvm_suld_1d_array_v4i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.1d.array.v4i32.zero">; def int_nvvm_suld_2d_i8_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i8.zero">; def int_nvvm_suld_2d_i16_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i16.zero">; def int_nvvm_suld_2d_i32_zero : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i32.zero">; def int_nvvm_suld_2d_i64_zero : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.i64.zero">; def int_nvvm_suld_2d_v2i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i8.zero">; def int_nvvm_suld_2d_v2i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i16.zero">; def int_nvvm_suld_2d_v2i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i32.zero">; def int_nvvm_suld_2d_v2i64_zero : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v2i64.zero">; def int_nvvm_suld_2d_v4i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i8.zero">; def int_nvvm_suld_2d_v4i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i16.zero">; def int_nvvm_suld_2d_v4i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.v4i32.zero">; def int_nvvm_suld_2d_array_i8_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i8.zero">; def int_nvvm_suld_2d_array_i16_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i16.zero">; def int_nvvm_suld_2d_array_i32_zero : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i32.zero">; def int_nvvm_suld_2d_array_i64_zero : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.i64.zero">; def int_nvvm_suld_2d_array_v2i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i8.zero">; def int_nvvm_suld_2d_array_v2i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i16.zero">; def int_nvvm_suld_2d_array_v2i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i32.zero">; def int_nvvm_suld_2d_array_v2i64_zero : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v2i64.zero">; def int_nvvm_suld_2d_array_v4i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i8.zero">; def int_nvvm_suld_2d_array_v4i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i16.zero">; def int_nvvm_suld_2d_array_v4i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.2d.array.v4i32.zero">; def int_nvvm_suld_3d_i8_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i8.zero">; def int_nvvm_suld_3d_i16_zero : Intrinsic<[llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i16.zero">; def int_nvvm_suld_3d_i32_zero : Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i32.zero">; def int_nvvm_suld_3d_i64_zero : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.i64.zero">; def int_nvvm_suld_3d_v2i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i8.zero">; def int_nvvm_suld_3d_v2i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i16.zero">; def int_nvvm_suld_3d_v2i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i32.zero">; def int_nvvm_suld_3d_v2i64_zero : Intrinsic<[llvm_i64_ty, llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v2i64.zero">; def int_nvvm_suld_3d_v4i8_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i8.zero">; def int_nvvm_suld_3d_v4i16_zero : Intrinsic<[llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i16.zero">; def int_nvvm_suld_3d_v4i32_zero : Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.suld.3d.v4i32.zero">; //===- Texture Query ------------------------------------------------------===// def int_nvvm_txq_channel_order : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.channel.order">, GCCBuiltin<"__nvvm_txq_channel_order">; def int_nvvm_txq_channel_data_type : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.channel.data.type">, GCCBuiltin<"__nvvm_txq_channel_data_type">; def int_nvvm_txq_width : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.width">, GCCBuiltin<"__nvvm_txq_width">; def int_nvvm_txq_height : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.height">, GCCBuiltin<"__nvvm_txq_height">; def int_nvvm_txq_depth : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.depth">, GCCBuiltin<"__nvvm_txq_depth">; def int_nvvm_txq_array_size : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.array.size">, GCCBuiltin<"__nvvm_txq_array_size">; def int_nvvm_txq_num_samples : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.num.samples">, GCCBuiltin<"__nvvm_txq_num_samples">; def int_nvvm_txq_num_mipmap_levels : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.txq.num.mipmap.levels">, GCCBuiltin<"__nvvm_txq_num_mipmap_levels">; //===- Surface Query ------------------------------------------------------===// def int_nvvm_suq_channel_order : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.suq.channel.order">, GCCBuiltin<"__nvvm_suq_channel_order">; def int_nvvm_suq_channel_data_type : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.suq.channel.data.type">, GCCBuiltin<"__nvvm_suq_channel_data_type">; def int_nvvm_suq_width : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.suq.width">, GCCBuiltin<"__nvvm_suq_width">; def int_nvvm_suq_height : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.suq.height">, GCCBuiltin<"__nvvm_suq_height">; def int_nvvm_suq_depth : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.suq.depth">, GCCBuiltin<"__nvvm_suq_depth">; def int_nvvm_suq_array_size : Intrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.suq.array.size">, GCCBuiltin<"__nvvm_suq_array_size">; //===- Handle Query -------------------------------------------------------===// def int_nvvm_istypep_sampler : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.istypep.sampler">, GCCBuiltin<"__nvvm_istypep_sampler">; def int_nvvm_istypep_surface : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.istypep.surface">, GCCBuiltin<"__nvvm_istypep_surface">; def int_nvvm_istypep_texture : Intrinsic<[llvm_i1_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.istypep.texture">, GCCBuiltin<"__nvvm_istypep_texture">; //===- Surface Stores -----------------------------------------------------===// // Unformatted // .clamp variant def int_nvvm_sust_b_1d_i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.i8.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_i8_clamp">; def int_nvvm_sust_b_1d_i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.i16.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_i16_clamp">; def int_nvvm_sust_b_1d_i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.i32.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_i32_clamp">; def int_nvvm_sust_b_1d_i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.i64.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_i64_clamp">; def int_nvvm_sust_b_1d_v2i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v2i8.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v2i8_clamp">; def int_nvvm_sust_b_1d_v2i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v2i16.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v2i16_clamp">; def int_nvvm_sust_b_1d_v2i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.v2i32.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v2i32_clamp">; def int_nvvm_sust_b_1d_v2i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.v2i64.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v2i64_clamp">; def int_nvvm_sust_b_1d_v4i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v4i8.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v4i8_clamp">; def int_nvvm_sust_b_1d_v4i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v4i16.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v4i16_clamp">; def int_nvvm_sust_b_1d_v4i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.v4i32.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_v4i32_clamp">; def int_nvvm_sust_b_1d_array_i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.i8.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_i8_clamp">; def int_nvvm_sust_b_1d_array_i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.i16.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_i16_clamp">; def int_nvvm_sust_b_1d_array_i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.i32.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_i32_clamp">; def int_nvvm_sust_b_1d_array_i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.array.i64.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_i64_clamp">; def int_nvvm_sust_b_1d_array_v2i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v2i8.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_clamp">; def int_nvvm_sust_b_1d_array_v2i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v2i16.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_clamp">; def int_nvvm_sust_b_1d_array_v2i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.v2i32.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_clamp">; def int_nvvm_sust_b_1d_array_v2i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.array.v2i64.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_clamp">; def int_nvvm_sust_b_1d_array_v4i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v4i8.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_clamp">; def int_nvvm_sust_b_1d_array_v4i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v4i16.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_clamp">; def int_nvvm_sust_b_1d_array_v4i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.v4i32.clamp">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_clamp">; def int_nvvm_sust_b_2d_i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.i8.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_i8_clamp">; def int_nvvm_sust_b_2d_i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.i16.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_i16_clamp">; def int_nvvm_sust_b_2d_i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.i32.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_i32_clamp">; def int_nvvm_sust_b_2d_i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.i64.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_i64_clamp">; def int_nvvm_sust_b_2d_v2i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v2i8.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v2i8_clamp">; def int_nvvm_sust_b_2d_v2i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v2i16.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v2i16_clamp">; def int_nvvm_sust_b_2d_v2i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.v2i32.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v2i32_clamp">; def int_nvvm_sust_b_2d_v2i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.v2i64.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v2i64_clamp">; def int_nvvm_sust_b_2d_v4i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v4i8.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v4i8_clamp">; def int_nvvm_sust_b_2d_v4i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v4i16.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v4i16_clamp">; def int_nvvm_sust_b_2d_v4i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.v4i32.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_v4i32_clamp">; def int_nvvm_sust_b_2d_array_i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.i8.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_i8_clamp">; def int_nvvm_sust_b_2d_array_i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.i16.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_i16_clamp">; def int_nvvm_sust_b_2d_array_i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.i32.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_i32_clamp">; def int_nvvm_sust_b_2d_array_i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.array.i64.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_i64_clamp">; def int_nvvm_sust_b_2d_array_v2i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v2i8.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_clamp">; def int_nvvm_sust_b_2d_array_v2i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v2i16.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_clamp">; def int_nvvm_sust_b_2d_array_v2i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.v2i32.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_clamp">; def int_nvvm_sust_b_2d_array_v2i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.array.v2i64.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_clamp">; def int_nvvm_sust_b_2d_array_v4i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v4i8.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_clamp">; def int_nvvm_sust_b_2d_array_v4i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v4i16.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_clamp">; def int_nvvm_sust_b_2d_array_v4i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.v4i32.clamp">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_clamp">; def int_nvvm_sust_b_3d_i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.i8.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_i8_clamp">; def int_nvvm_sust_b_3d_i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.i16.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_i16_clamp">; def int_nvvm_sust_b_3d_i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.i32.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_i32_clamp">; def int_nvvm_sust_b_3d_i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.3d.i64.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_i64_clamp">; def int_nvvm_sust_b_3d_v2i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v2i8.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v2i8_clamp">; def int_nvvm_sust_b_3d_v2i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v2i16.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v2i16_clamp">; def int_nvvm_sust_b_3d_v2i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.v2i32.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v2i32_clamp">; def int_nvvm_sust_b_3d_v2i64_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.3d.v2i64.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v2i64_clamp">; def int_nvvm_sust_b_3d_v4i8_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v4i8.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v4i8_clamp">; def int_nvvm_sust_b_3d_v4i16_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v4i16.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v4i16_clamp">; def int_nvvm_sust_b_3d_v4i32_clamp : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.v4i32.clamp">, GCCBuiltin<"__nvvm_sust_b_3d_v4i32_clamp">; // .trap variant def int_nvvm_sust_b_1d_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.i8.trap">, GCCBuiltin<"__nvvm_sust_b_1d_i8_trap">; def int_nvvm_sust_b_1d_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.i16.trap">, GCCBuiltin<"__nvvm_sust_b_1d_i16_trap">; def int_nvvm_sust_b_1d_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.i32.trap">, GCCBuiltin<"__nvvm_sust_b_1d_i32_trap">; def int_nvvm_sust_b_1d_i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.i64.trap">, GCCBuiltin<"__nvvm_sust_b_1d_i64_trap">; def int_nvvm_sust_b_1d_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v2i8.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v2i8_trap">; def int_nvvm_sust_b_1d_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v2i16.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v2i16_trap">; def int_nvvm_sust_b_1d_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.v2i32.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v2i32_trap">; def int_nvvm_sust_b_1d_v2i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.v2i64.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v2i64_trap">; def int_nvvm_sust_b_1d_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v4i8.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v4i8_trap">; def int_nvvm_sust_b_1d_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v4i16.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v4i16_trap">; def int_nvvm_sust_b_1d_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.v4i32.trap">, GCCBuiltin<"__nvvm_sust_b_1d_v4i32_trap">; def int_nvvm_sust_b_1d_array_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.i8.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_i8_trap">; def int_nvvm_sust_b_1d_array_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.i16.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_i16_trap">; def int_nvvm_sust_b_1d_array_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.i32.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_i32_trap">; def int_nvvm_sust_b_1d_array_i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.array.i64.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_i64_trap">; def int_nvvm_sust_b_1d_array_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v2i8.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_trap">; def int_nvvm_sust_b_1d_array_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v2i16.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_trap">; def int_nvvm_sust_b_1d_array_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.v2i32.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_trap">; def int_nvvm_sust_b_1d_array_v2i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.array.v2i64.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_trap">; def int_nvvm_sust_b_1d_array_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v4i8.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_trap">; def int_nvvm_sust_b_1d_array_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v4i16.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_trap">; def int_nvvm_sust_b_1d_array_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.v4i32.trap">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_trap">; def int_nvvm_sust_b_2d_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.i8.trap">, GCCBuiltin<"__nvvm_sust_b_2d_i8_trap">; def int_nvvm_sust_b_2d_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.i16.trap">, GCCBuiltin<"__nvvm_sust_b_2d_i16_trap">; def int_nvvm_sust_b_2d_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.i32.trap">, GCCBuiltin<"__nvvm_sust_b_2d_i32_trap">; def int_nvvm_sust_b_2d_i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.i64.trap">, GCCBuiltin<"__nvvm_sust_b_2d_i64_trap">; def int_nvvm_sust_b_2d_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v2i8.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v2i8_trap">; def int_nvvm_sust_b_2d_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v2i16.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v2i16_trap">; def int_nvvm_sust_b_2d_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.v2i32.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v2i32_trap">; def int_nvvm_sust_b_2d_v2i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.v2i64.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v2i64_trap">; def int_nvvm_sust_b_2d_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v4i8.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v4i8_trap">; def int_nvvm_sust_b_2d_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v4i16.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v4i16_trap">; def int_nvvm_sust_b_2d_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.v4i32.trap">, GCCBuiltin<"__nvvm_sust_b_2d_v4i32_trap">; def int_nvvm_sust_b_2d_array_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.i8.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_i8_trap">; def int_nvvm_sust_b_2d_array_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.i16.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_i16_trap">; def int_nvvm_sust_b_2d_array_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.i32.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_i32_trap">; def int_nvvm_sust_b_2d_array_i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.array.i64.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_i64_trap">; def int_nvvm_sust_b_2d_array_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v2i8.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_trap">; def int_nvvm_sust_b_2d_array_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v2i16.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_trap">; def int_nvvm_sust_b_2d_array_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.v2i32.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_trap">; def int_nvvm_sust_b_2d_array_v2i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.array.v2i64.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_trap">; def int_nvvm_sust_b_2d_array_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v4i8.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_trap">; def int_nvvm_sust_b_2d_array_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v4i16.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_trap">; def int_nvvm_sust_b_2d_array_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.v4i32.trap">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_trap">; def int_nvvm_sust_b_3d_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.i8.trap">, GCCBuiltin<"__nvvm_sust_b_3d_i8_trap">; def int_nvvm_sust_b_3d_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.i16.trap">, GCCBuiltin<"__nvvm_sust_b_3d_i16_trap">; def int_nvvm_sust_b_3d_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.i32.trap">, GCCBuiltin<"__nvvm_sust_b_3d_i32_trap">; def int_nvvm_sust_b_3d_i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.3d.i64.trap">, GCCBuiltin<"__nvvm_sust_b_3d_i64_trap">; def int_nvvm_sust_b_3d_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v2i8.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v2i8_trap">; def int_nvvm_sust_b_3d_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v2i16.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v2i16_trap">; def int_nvvm_sust_b_3d_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.v2i32.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v2i32_trap">; def int_nvvm_sust_b_3d_v2i64_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.3d.v2i64.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v2i64_trap">; def int_nvvm_sust_b_3d_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v4i8.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v4i8_trap">; def int_nvvm_sust_b_3d_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v4i16.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v4i16_trap">; def int_nvvm_sust_b_3d_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.v4i32.trap">, GCCBuiltin<"__nvvm_sust_b_3d_v4i32_trap">; // .zero variant def int_nvvm_sust_b_1d_i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.i8.zero">, GCCBuiltin<"__nvvm_sust_b_1d_i8_zero">; def int_nvvm_sust_b_1d_i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.i16.zero">, GCCBuiltin<"__nvvm_sust_b_1d_i16_zero">; def int_nvvm_sust_b_1d_i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.i32.zero">, GCCBuiltin<"__nvvm_sust_b_1d_i32_zero">; def int_nvvm_sust_b_1d_i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.i64.zero">, GCCBuiltin<"__nvvm_sust_b_1d_i64_zero">; def int_nvvm_sust_b_1d_v2i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v2i8.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v2i8_zero">; def int_nvvm_sust_b_1d_v2i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v2i16.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v2i16_zero">; def int_nvvm_sust_b_1d_v2i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.v2i32.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v2i32_zero">; def int_nvvm_sust_b_1d_v2i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.v2i64.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v2i64_zero">; def int_nvvm_sust_b_1d_v4i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v4i8.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v4i8_zero">; def int_nvvm_sust_b_1d_v4i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.v4i16.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v4i16_zero">; def int_nvvm_sust_b_1d_v4i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.v4i32.zero">, GCCBuiltin<"__nvvm_sust_b_1d_v4i32_zero">; def int_nvvm_sust_b_1d_array_i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.i8.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_i8_zero">; def int_nvvm_sust_b_1d_array_i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.i16.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_i16_zero">; def int_nvvm_sust_b_1d_array_i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.i32.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_i32_zero">; def int_nvvm_sust_b_1d_array_i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.array.i64.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_i64_zero">; def int_nvvm_sust_b_1d_array_v2i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v2i8.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i8_zero">; def int_nvvm_sust_b_1d_array_v2i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v2i16.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i16_zero">; def int_nvvm_sust_b_1d_array_v2i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.v2i32.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i32_zero">; def int_nvvm_sust_b_1d_array_v2i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.1d.array.v2i64.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v2i64_zero">; def int_nvvm_sust_b_1d_array_v4i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v4i8.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i8_zero">; def int_nvvm_sust_b_1d_array_v4i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.1d.array.v4i16.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i16_zero">; def int_nvvm_sust_b_1d_array_v4i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.1d.array.v4i32.zero">, GCCBuiltin<"__nvvm_sust_b_1d_array_v4i32_zero">; def int_nvvm_sust_b_2d_i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.i8.zero">, GCCBuiltin<"__nvvm_sust_b_2d_i8_zero">; def int_nvvm_sust_b_2d_i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.i16.zero">, GCCBuiltin<"__nvvm_sust_b_2d_i16_zero">; def int_nvvm_sust_b_2d_i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.i32.zero">, GCCBuiltin<"__nvvm_sust_b_2d_i32_zero">; def int_nvvm_sust_b_2d_i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.i64.zero">, GCCBuiltin<"__nvvm_sust_b_2d_i64_zero">; def int_nvvm_sust_b_2d_v2i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v2i8.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v2i8_zero">; def int_nvvm_sust_b_2d_v2i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v2i16.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v2i16_zero">; def int_nvvm_sust_b_2d_v2i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.v2i32.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v2i32_zero">; def int_nvvm_sust_b_2d_v2i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.v2i64.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v2i64_zero">; def int_nvvm_sust_b_2d_v4i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v4i8.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v4i8_zero">; def int_nvvm_sust_b_2d_v4i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.v4i16.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v4i16_zero">; def int_nvvm_sust_b_2d_v4i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.v4i32.zero">, GCCBuiltin<"__nvvm_sust_b_2d_v4i32_zero">; def int_nvvm_sust_b_2d_array_i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.i8.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_i8_zero">; def int_nvvm_sust_b_2d_array_i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.i16.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_i16_zero">; def int_nvvm_sust_b_2d_array_i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.i32.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_i32_zero">; def int_nvvm_sust_b_2d_array_i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.array.i64.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_i64_zero">; def int_nvvm_sust_b_2d_array_v2i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v2i8.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i8_zero">; def int_nvvm_sust_b_2d_array_v2i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v2i16.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i16_zero">; def int_nvvm_sust_b_2d_array_v2i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.v2i32.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i32_zero">; def int_nvvm_sust_b_2d_array_v2i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.2d.array.v2i64.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v2i64_zero">; def int_nvvm_sust_b_2d_array_v4i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v4i8.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i8_zero">; def int_nvvm_sust_b_2d_array_v4i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.2d.array.v4i16.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i16_zero">; def int_nvvm_sust_b_2d_array_v4i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.2d.array.v4i32.zero">, GCCBuiltin<"__nvvm_sust_b_2d_array_v4i32_zero">; def int_nvvm_sust_b_3d_i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.i8.zero">, GCCBuiltin<"__nvvm_sust_b_3d_i8_zero">; def int_nvvm_sust_b_3d_i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.i16.zero">, GCCBuiltin<"__nvvm_sust_b_3d_i16_zero">; def int_nvvm_sust_b_3d_i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.i32.zero">, GCCBuiltin<"__nvvm_sust_b_3d_i32_zero">; def int_nvvm_sust_b_3d_i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.3d.i64.zero">, GCCBuiltin<"__nvvm_sust_b_3d_i64_zero">; def int_nvvm_sust_b_3d_v2i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v2i8.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v2i8_zero">; def int_nvvm_sust_b_3d_v2i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v2i16.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v2i16_zero">; def int_nvvm_sust_b_3d_v2i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.v2i32.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v2i32_zero">; def int_nvvm_sust_b_3d_v2i64_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i64_ty, llvm_i64_ty], [], "llvm.nvvm.sust.b.3d.v2i64.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v2i64_zero">; def int_nvvm_sust_b_3d_v4i8_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v4i8.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v4i8_zero">; def int_nvvm_sust_b_3d_v4i16_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.b.3d.v4i16.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v4i16_zero">; def int_nvvm_sust_b_3d_v4i32_zero : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.b.3d.v4i32.zero">, GCCBuiltin<"__nvvm_sust_b_3d_v4i32_zero">; // Formatted def int_nvvm_sust_p_1d_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.i8.trap">, GCCBuiltin<"__nvvm_sust_p_1d_i8_trap">; def int_nvvm_sust_p_1d_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.i16.trap">, GCCBuiltin<"__nvvm_sust_p_1d_i16_trap">; def int_nvvm_sust_p_1d_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.1d.i32.trap">, GCCBuiltin<"__nvvm_sust_p_1d_i32_trap">; def int_nvvm_sust_p_1d_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.v2i8.trap">, GCCBuiltin<"__nvvm_sust_p_1d_v2i8_trap">; def int_nvvm_sust_p_1d_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.v2i16.trap">, GCCBuiltin<"__nvvm_sust_p_1d_v2i16_trap">; def int_nvvm_sust_p_1d_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.1d.v2i32.trap">, GCCBuiltin<"__nvvm_sust_p_1d_v2i32_trap">; def int_nvvm_sust_p_1d_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.v4i8.trap">, GCCBuiltin<"__nvvm_sust_p_1d_v4i8_trap">; def int_nvvm_sust_p_1d_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.v4i16.trap">, GCCBuiltin<"__nvvm_sust_p_1d_v4i16_trap">; def int_nvvm_sust_p_1d_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.1d.v4i32.trap">, GCCBuiltin<"__nvvm_sust_p_1d_v4i32_trap">; def int_nvvm_sust_p_1d_array_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.array.i8.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_i8_trap">; def int_nvvm_sust_p_1d_array_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.array.i16.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_i16_trap">; def int_nvvm_sust_p_1d_array_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.1d.array.i32.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_i32_trap">; def int_nvvm_sust_p_1d_array_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.array.v2i8.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_v2i8_trap">; def int_nvvm_sust_p_1d_array_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.array.v2i16.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_v2i16_trap">; def int_nvvm_sust_p_1d_array_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.1d.array.v2i32.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_v2i32_trap">; def int_nvvm_sust_p_1d_array_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.array.v4i8.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_v4i8_trap">; def int_nvvm_sust_p_1d_array_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.1d.array.v4i16.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_v4i16_trap">; def int_nvvm_sust_p_1d_array_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.1d.array.v4i32.trap">, GCCBuiltin<"__nvvm_sust_p_1d_array_v4i32_trap">; def int_nvvm_sust_p_2d_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.i8.trap">, GCCBuiltin<"__nvvm_sust_p_2d_i8_trap">; def int_nvvm_sust_p_2d_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.i16.trap">, GCCBuiltin<"__nvvm_sust_p_2d_i16_trap">; def int_nvvm_sust_p_2d_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.2d.i32.trap">, GCCBuiltin<"__nvvm_sust_p_2d_i32_trap">; def int_nvvm_sust_p_2d_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.v2i8.trap">, GCCBuiltin<"__nvvm_sust_p_2d_v2i8_trap">; def int_nvvm_sust_p_2d_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.v2i16.trap">, GCCBuiltin<"__nvvm_sust_p_2d_v2i16_trap">; def int_nvvm_sust_p_2d_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.2d.v2i32.trap">, GCCBuiltin<"__nvvm_sust_p_2d_v2i32_trap">; def int_nvvm_sust_p_2d_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.v4i8.trap">, GCCBuiltin<"__nvvm_sust_p_2d_v4i8_trap">; def int_nvvm_sust_p_2d_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.v4i16.trap">, GCCBuiltin<"__nvvm_sust_p_2d_v4i16_trap">; def int_nvvm_sust_p_2d_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.2d.v4i32.trap">, GCCBuiltin<"__nvvm_sust_p_2d_v4i32_trap">; def int_nvvm_sust_p_2d_array_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.array.i8.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_i8_trap">; def int_nvvm_sust_p_2d_array_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.array.i16.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_i16_trap">; def int_nvvm_sust_p_2d_array_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.2d.array.i32.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_i32_trap">; def int_nvvm_sust_p_2d_array_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.array.v2i8.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_v2i8_trap">; def int_nvvm_sust_p_2d_array_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.array.v2i16.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_v2i16_trap">; def int_nvvm_sust_p_2d_array_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.2d.array.v2i32.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_v2i32_trap">; def int_nvvm_sust_p_2d_array_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.array.v4i8.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_v4i8_trap">; def int_nvvm_sust_p_2d_array_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.2d.array.v4i16.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_v4i16_trap">; def int_nvvm_sust_p_2d_array_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.2d.array.v4i32.trap">, GCCBuiltin<"__nvvm_sust_p_2d_array_v4i32_trap">; def int_nvvm_sust_p_3d_i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.3d.i8.trap">, GCCBuiltin<"__nvvm_sust_p_3d_i8_trap">; def int_nvvm_sust_p_3d_i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.3d.i16.trap">, GCCBuiltin<"__nvvm_sust_p_3d_i16_trap">; def int_nvvm_sust_p_3d_i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.3d.i32.trap">, GCCBuiltin<"__nvvm_sust_p_3d_i32_trap">; def int_nvvm_sust_p_3d_v2i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.3d.v2i8.trap">, GCCBuiltin<"__nvvm_sust_p_3d_v2i8_trap">; def int_nvvm_sust_p_3d_v2i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.3d.v2i16.trap">, GCCBuiltin<"__nvvm_sust_p_3d_v2i16_trap">; def int_nvvm_sust_p_3d_v2i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.3d.v2i32.trap">, GCCBuiltin<"__nvvm_sust_p_3d_v2i32_trap">; def int_nvvm_sust_p_3d_v4i8_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.3d.v4i8.trap">, GCCBuiltin<"__nvvm_sust_p_3d_v4i8_trap">; def int_nvvm_sust_p_3d_v4i16_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty, llvm_i16_ty], [], "llvm.nvvm.sust.p.3d.v4i16.trap">, GCCBuiltin<"__nvvm_sust_p_3d_v4i16_trap">; def int_nvvm_sust_p_3d_v4i32_trap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [], "llvm.nvvm.sust.p.3d.v4i32.trap">, GCCBuiltin<"__nvvm_sust_p_3d_v4i32_trap">; def int_nvvm_rotate_b32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem], "llvm.nvvm.rotate.b32">, GCCBuiltin<"__nvvm_rotate_b32">; def int_nvvm_rotate_b64 :Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem], "llvm.nvvm.rotate.b64">, GCCBuiltin<"__nvvm_rotate_b64">; def int_nvvm_rotate_right_b64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem], "llvm.nvvm.rotate.right.b64">, GCCBuiltin<"__nvvm_rotate_right_b64">; def int_nvvm_swap_lo_hi_b64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], [IntrNoMem], "llvm.nvvm.swap.lo.hi.b64">, GCCBuiltin<"__nvvm_swap_lo_hi_b64">; // Accessing special registers. multiclass PTXReadSRegIntrinsic_v4i32 { // FIXME: Do we need the 128-bit integer type version? // def _r64 : Intrinsic<[llvm_i128_ty], [], [IntrNoMem]>; // FIXME: Enable this once v4i32 support is enabled in back-end. // def _v4i16 : Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>; def _x : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_x">; def _y : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_y">; def _z : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_z">; def _w : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, GCCBuiltin<"__nvvm_read_ptx_sreg_" # regname # "_w">; } class PTXReadSRegIntrinsic_r32 : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>, GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>; class PTXReadSRegIntrinsic_r64 : Intrinsic<[llvm_i64_ty], [], [IntrNoMem]>, GCCBuiltin<"__nvvm_read_ptx_sreg_" # name>; defm int_nvvm_read_ptx_sreg_tid : PTXReadSRegIntrinsic_v4i32<"tid">; defm int_nvvm_read_ptx_sreg_ntid : PTXReadSRegIntrinsic_v4i32<"ntid">; def int_nvvm_read_ptx_sreg_laneid : PTXReadSRegIntrinsic_r32<"laneid">; def int_nvvm_read_ptx_sreg_warpid : PTXReadSRegIntrinsic_r32<"warpid">; def int_nvvm_read_ptx_sreg_nwarpid : PTXReadSRegIntrinsic_r32<"nwarpid">; defm int_nvvm_read_ptx_sreg_ctaid : PTXReadSRegIntrinsic_v4i32<"ctaid">; defm int_nvvm_read_ptx_sreg_nctaid : PTXReadSRegIntrinsic_v4i32<"nctaid">; def int_nvvm_read_ptx_sreg_smid : PTXReadSRegIntrinsic_r32<"smid">; def int_nvvm_read_ptx_sreg_nsmid : PTXReadSRegIntrinsic_r32<"nsmid">; def int_nvvm_read_ptx_sreg_gridid : PTXReadSRegIntrinsic_r32<"gridid">; def int_nvvm_read_ptx_sreg_lanemask_eq : PTXReadSRegIntrinsic_r32<"lanemask_eq">; def int_nvvm_read_ptx_sreg_lanemask_le : PTXReadSRegIntrinsic_r32<"lanemask_le">; def int_nvvm_read_ptx_sreg_lanemask_lt : PTXReadSRegIntrinsic_r32<"lanemask_lt">; def int_nvvm_read_ptx_sreg_lanemask_ge : PTXReadSRegIntrinsic_r32<"lanemask_ge">; def int_nvvm_read_ptx_sreg_lanemask_gt : PTXReadSRegIntrinsic_r32<"lanemask_gt">; def int_nvvm_read_ptx_sreg_clock : PTXReadSRegIntrinsic_r32<"clock">; def int_nvvm_read_ptx_sreg_clock64 : PTXReadSRegIntrinsic_r64<"clock64">; def int_nvvm_read_ptx_sreg_pm0 : PTXReadSRegIntrinsic_r32<"pm0">; def int_nvvm_read_ptx_sreg_pm1 : PTXReadSRegIntrinsic_r32<"pm1">; def int_nvvm_read_ptx_sreg_pm2 : PTXReadSRegIntrinsic_r32<"pm2">; def int_nvvm_read_ptx_sreg_pm3 : PTXReadSRegIntrinsic_r32<"pm3">; def int_nvvm_read_ptx_sreg_warpsize : PTXReadSRegIntrinsic_r32<"warpsize">; // // SHUFFLE // // shfl.down.b32 dest, val, offset, mask_and_clamp def int_nvvm_shfl_down_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.down.i32">, GCCBuiltin<"__nvvm_shfl_down_i32">; def int_nvvm_shfl_down_f32 : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.down.f32">, GCCBuiltin<"__nvvm_shfl_down_f32">; // shfl.up.b32 dest, val, offset, mask_and_clamp def int_nvvm_shfl_up_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.up.i32">, GCCBuiltin<"__nvvm_shfl_up_i32">; def int_nvvm_shfl_up_f32 : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.up.f32">, GCCBuiltin<"__nvvm_shfl_up_f32">; // shfl.bfly.b32 dest, val, offset, mask_and_clamp def int_nvvm_shfl_bfly_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.bfly.i32">, GCCBuiltin<"__nvvm_shfl_bfly_i32">; def int_nvvm_shfl_bfly_f32 : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.bfly.f32">, GCCBuiltin<"__nvvm_shfl_bfly_f32">; // shfl.idx.b32 dest, val, lane, mask_and_clamp def int_nvvm_shfl_idx_i32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.idx.i32">, GCCBuiltin<"__nvvm_shfl_idx_i32">; def int_nvvm_shfl_idx_f32 : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem, IntrConvergent], "llvm.nvvm.shfl.idx.f32">, GCCBuiltin<"__nvvm_shfl_idx_f32">; } //===- IntrinsicsPowerPC.td - Defines PowerPC intrinsics ---*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the PowerPC-specific intrinsics. // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // Definitions for all PowerPC intrinsics. // // Non-altivec intrinsics. let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.". // dcba/dcbf/dcbi/dcbst/dcbt/dcbz/dcbzl(PPC970) instructions. def int_ppc_dcba : Intrinsic<[], [llvm_ptr_ty], []>; def int_ppc_dcbf : Intrinsic<[], [llvm_ptr_ty], []>; def int_ppc_dcbi : Intrinsic<[], [llvm_ptr_ty], []>; def int_ppc_dcbst : Intrinsic<[], [llvm_ptr_ty], []>; def int_ppc_dcbt : Intrinsic<[], [llvm_ptr_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_ppc_dcbtst: Intrinsic<[], [llvm_ptr_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_ppc_dcbz : Intrinsic<[], [llvm_ptr_ty], []>; def int_ppc_dcbzl : Intrinsic<[], [llvm_ptr_ty], []>; // sync instruction (i.e. sync 0, a.k.a hwsync) def int_ppc_sync : Intrinsic<[], [], []>; // lwsync is sync 1 def int_ppc_lwsync : Intrinsic<[], [], []>; // Intrinsics used to generate ctr-based loops. These should only be // generated by the PowerPC backend! def int_ppc_mtctr : Intrinsic<[], [llvm_anyint_ty], []>; def int_ppc_is_decremented_ctr_nonzero : Intrinsic<[llvm_i1_ty], [], []>; // Intrinsics for [double]word extended forms of divide instructions def int_ppc_divwe : GCCBuiltin<"__builtin_divwe">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_divweu : GCCBuiltin<"__builtin_divweu">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_divde : GCCBuiltin<"__builtin_divde">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; def int_ppc_divdeu : GCCBuiltin<"__builtin_divdeu">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; // Bit permute doubleword def int_ppc_bpermd : GCCBuiltin<"__builtin_bpermd">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; } let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.". /// PowerPC_Vec_Intrinsic - Base class for all altivec intrinsics. class PowerPC_Vec_Intrinsic ret_types, list param_types, list properties> : GCCBuiltin, Intrinsic; /// PowerPC_VSX_Intrinsic - Base class for all VSX intrinsics. class PowerPC_VSX_Intrinsic ret_types, list param_types, list properties> : GCCBuiltin, Intrinsic; } //===----------------------------------------------------------------------===// // PowerPC Altivec Intrinsic Class Definitions. // /// PowerPC_Vec_FF_Intrinsic - A PowerPC intrinsic that takes one v4f32 /// vector and returns one. These intrinsics have no side effects. class PowerPC_Vec_FF_Intrinsic : PowerPC_Vec_Intrinsic; /// PowerPC_Vec_FFF_Intrinsic - A PowerPC intrinsic that takes two v4f32 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_Vec_FFF_Intrinsic : PowerPC_Vec_Intrinsic; /// PowerPC_Vec_BBB_Intrinsic - A PowerPC intrinsic that takes two v16i8 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_Vec_BBB_Intrinsic : PowerPC_Vec_Intrinsic; /// PowerPC_Vec_HHH_Intrinsic - A PowerPC intrinsic that takes two v8i16 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_Vec_HHH_Intrinsic : PowerPC_Vec_Intrinsic; /// PowerPC_Vec_WWW_Intrinsic - A PowerPC intrinsic that takes two v4i32 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_Vec_WWW_Intrinsic : PowerPC_Vec_Intrinsic; /// PowerPC_Vec_DDD_Intrinsic - A PowerPC intrinsic that takes two v2i64 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_Vec_DDD_Intrinsic : PowerPC_Vec_Intrinsic; /// PowerPC_Vec_QQQ_Intrinsic - A PowerPC intrinsic that takes two v1i128 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_Vec_QQQ_Intrinsic : PowerPC_Vec_Intrinsic; //===----------------------------------------------------------------------===// // PowerPC VSX Intrinsic Class Definitions. // /// PowerPC_VSX_Vec_DDD_Intrinsic - A PowerPC intrinsic that takes two v2f64 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_VSX_Vec_DDD_Intrinsic : PowerPC_VSX_Intrinsic; /// PowerPC_VSX_Vec_FFF_Intrinsic - A PowerPC intrinsic that takes two v4f32 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_VSX_Vec_FFF_Intrinsic : PowerPC_VSX_Intrinsic; /// PowerPC_VSX_Sca_DDD_Intrinsic - A PowerPC intrinsic that takes two f64 /// scalars and returns one. These intrinsics have no side effects. class PowerPC_VSX_Sca_DDD_Intrinsic : PowerPC_VSX_Intrinsic; //===----------------------------------------------------------------------===// // PowerPC Altivec Intrinsic Definitions. let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.". // Data Stream Control. def int_ppc_altivec_dss : GCCBuiltin<"__builtin_altivec_dss">, Intrinsic<[], [llvm_i32_ty], []>; def int_ppc_altivec_dssall : GCCBuiltin<"__builtin_altivec_dssall">, Intrinsic<[], [], []>; def int_ppc_altivec_dst : GCCBuiltin<"__builtin_altivec_dst">, Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_altivec_dstt : GCCBuiltin<"__builtin_altivec_dstt">, Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_altivec_dstst : GCCBuiltin<"__builtin_altivec_dstst">, Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_altivec_dststt : GCCBuiltin<"__builtin_altivec_dststt">, Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; // VSCR access. def int_ppc_altivec_mfvscr : GCCBuiltin<"__builtin_altivec_mfvscr">, Intrinsic<[llvm_v8i16_ty], [], [IntrReadMem]>; def int_ppc_altivec_mtvscr : GCCBuiltin<"__builtin_altivec_mtvscr">, Intrinsic<[], [llvm_v4i32_ty], []>; // Loads. These don't map directly to GCC builtins because they represent the // source address with a single pointer. def int_ppc_altivec_lvx : Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_ppc_altivec_lvxl : Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_ppc_altivec_lvebx : Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_ppc_altivec_lvehx : Intrinsic<[llvm_v8i16_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_ppc_altivec_lvewx : Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; // Stores. These don't map directly to GCC builtins because they represent the // source address with a single pointer. def int_ppc_altivec_stvx : Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_ppc_altivec_stvxl : Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_ppc_altivec_stvebx : Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_ppc_altivec_stvehx : Intrinsic<[], [llvm_v8i16_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_ppc_altivec_stvewx : Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; // Comparisons setting a vector. def int_ppc_altivec_vcmpbfp : GCCBuiltin<"__builtin_altivec_vcmpbfp">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpeqfp : GCCBuiltin<"__builtin_altivec_vcmpeqfp">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgefp : GCCBuiltin<"__builtin_altivec_vcmpgefp">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtfp : GCCBuiltin<"__builtin_altivec_vcmpgtfp">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequd : GCCBuiltin<"__builtin_altivec_vcmpequd">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsd : GCCBuiltin<"__builtin_altivec_vcmpgtsd">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtud : GCCBuiltin<"__builtin_altivec_vcmpgtud">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequw : GCCBuiltin<"__builtin_altivec_vcmpequw">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsw : GCCBuiltin<"__builtin_altivec_vcmpgtsw">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtuw : GCCBuiltin<"__builtin_altivec_vcmpgtuw">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequh : GCCBuiltin<"__builtin_altivec_vcmpequh">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsh : GCCBuiltin<"__builtin_altivec_vcmpgtsh">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtuh : GCCBuiltin<"__builtin_altivec_vcmpgtuh">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequb : GCCBuiltin<"__builtin_altivec_vcmpequb">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsb : GCCBuiltin<"__builtin_altivec_vcmpgtsb">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtub : GCCBuiltin<"__builtin_altivec_vcmpgtub">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; // Predicate Comparisons. The first operand specifies interpretation of CR6. def int_ppc_altivec_vcmpbfp_p : GCCBuiltin<"__builtin_altivec_vcmpbfp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpeqfp_p : GCCBuiltin<"__builtin_altivec_vcmpeqfp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgefp_p : GCCBuiltin<"__builtin_altivec_vcmpgefp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtfp_p : GCCBuiltin<"__builtin_altivec_vcmpgtfp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequd_p : GCCBuiltin<"__builtin_altivec_vcmpequd_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v2i64_ty,llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsd_p : GCCBuiltin<"__builtin_altivec_vcmpgtsd_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v2i64_ty,llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtud_p : GCCBuiltin<"__builtin_altivec_vcmpgtud_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v2i64_ty,llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequw_p : GCCBuiltin<"__builtin_altivec_vcmpequw_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4i32_ty,llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsw_p : GCCBuiltin<"__builtin_altivec_vcmpgtsw_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4i32_ty,llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtuw_p : GCCBuiltin<"__builtin_altivec_vcmpgtuw_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4i32_ty,llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequh_p : GCCBuiltin<"__builtin_altivec_vcmpequh_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v8i16_ty,llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsh_p : GCCBuiltin<"__builtin_altivec_vcmpgtsh_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v8i16_ty,llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtuh_p : GCCBuiltin<"__builtin_altivec_vcmpgtuh_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v8i16_ty,llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpequb_p : GCCBuiltin<"__builtin_altivec_vcmpequb_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v16i8_ty,llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtsb_p : GCCBuiltin<"__builtin_altivec_vcmpgtsb_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v16i8_ty,llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vcmpgtub_p : GCCBuiltin<"__builtin_altivec_vcmpgtub_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v16i8_ty,llvm_v16i8_ty], [IntrNoMem]>; } // Vector average. def int_ppc_altivec_vavgsb : PowerPC_Vec_BBB_Intrinsic<"vavgsb">; def int_ppc_altivec_vavgsh : PowerPC_Vec_HHH_Intrinsic<"vavgsh">; def int_ppc_altivec_vavgsw : PowerPC_Vec_WWW_Intrinsic<"vavgsw">; def int_ppc_altivec_vavgub : PowerPC_Vec_BBB_Intrinsic<"vavgub">; def int_ppc_altivec_vavguh : PowerPC_Vec_HHH_Intrinsic<"vavguh">; def int_ppc_altivec_vavguw : PowerPC_Vec_WWW_Intrinsic<"vavguw">; // Vector maximum. def int_ppc_altivec_vmaxfp : PowerPC_Vec_FFF_Intrinsic<"vmaxfp">; def int_ppc_altivec_vmaxsb : PowerPC_Vec_BBB_Intrinsic<"vmaxsb">; def int_ppc_altivec_vmaxsh : PowerPC_Vec_HHH_Intrinsic<"vmaxsh">; def int_ppc_altivec_vmaxsw : PowerPC_Vec_WWW_Intrinsic<"vmaxsw">; def int_ppc_altivec_vmaxsd : PowerPC_Vec_DDD_Intrinsic<"vmaxsd">; def int_ppc_altivec_vmaxub : PowerPC_Vec_BBB_Intrinsic<"vmaxub">; def int_ppc_altivec_vmaxuh : PowerPC_Vec_HHH_Intrinsic<"vmaxuh">; def int_ppc_altivec_vmaxuw : PowerPC_Vec_WWW_Intrinsic<"vmaxuw">; def int_ppc_altivec_vmaxud : PowerPC_Vec_DDD_Intrinsic<"vmaxud">; // Vector minimum. def int_ppc_altivec_vminfp : PowerPC_Vec_FFF_Intrinsic<"vminfp">; def int_ppc_altivec_vminsb : PowerPC_Vec_BBB_Intrinsic<"vminsb">; def int_ppc_altivec_vminsh : PowerPC_Vec_HHH_Intrinsic<"vminsh">; def int_ppc_altivec_vminsw : PowerPC_Vec_WWW_Intrinsic<"vminsw">; def int_ppc_altivec_vminsd : PowerPC_Vec_DDD_Intrinsic<"vminsd">; def int_ppc_altivec_vminub : PowerPC_Vec_BBB_Intrinsic<"vminub">; def int_ppc_altivec_vminuh : PowerPC_Vec_HHH_Intrinsic<"vminuh">; def int_ppc_altivec_vminuw : PowerPC_Vec_WWW_Intrinsic<"vminuw">; def int_ppc_altivec_vminud : PowerPC_Vec_DDD_Intrinsic<"vminud">; // Saturating adds. def int_ppc_altivec_vaddubs : PowerPC_Vec_BBB_Intrinsic<"vaddubs">; def int_ppc_altivec_vaddsbs : PowerPC_Vec_BBB_Intrinsic<"vaddsbs">; def int_ppc_altivec_vadduhs : PowerPC_Vec_HHH_Intrinsic<"vadduhs">; def int_ppc_altivec_vaddshs : PowerPC_Vec_HHH_Intrinsic<"vaddshs">; def int_ppc_altivec_vadduws : PowerPC_Vec_WWW_Intrinsic<"vadduws">; def int_ppc_altivec_vaddsws : PowerPC_Vec_WWW_Intrinsic<"vaddsws">; def int_ppc_altivec_vaddcuw : PowerPC_Vec_WWW_Intrinsic<"vaddcuw">; def int_ppc_altivec_vaddcuq : PowerPC_Vec_QQQ_Intrinsic<"vaddcuq">; // Saturating subs. def int_ppc_altivec_vsububs : PowerPC_Vec_BBB_Intrinsic<"vsububs">; def int_ppc_altivec_vsubsbs : PowerPC_Vec_BBB_Intrinsic<"vsubsbs">; def int_ppc_altivec_vsubuhs : PowerPC_Vec_HHH_Intrinsic<"vsubuhs">; def int_ppc_altivec_vsubshs : PowerPC_Vec_HHH_Intrinsic<"vsubshs">; def int_ppc_altivec_vsubuws : PowerPC_Vec_WWW_Intrinsic<"vsubuws">; def int_ppc_altivec_vsubsws : PowerPC_Vec_WWW_Intrinsic<"vsubsws">; def int_ppc_altivec_vsubcuw : PowerPC_Vec_WWW_Intrinsic<"vsubcuw">; def int_ppc_altivec_vsubcuq : PowerPC_Vec_QQQ_Intrinsic<"vsubcuq">; let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.". // Saturating multiply-adds. def int_ppc_altivec_vmhaddshs : GCCBuiltin<"__builtin_altivec_vmhaddshs">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vmhraddshs : GCCBuiltin<"__builtin_altivec_vmhraddshs">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vmaddfp : GCCBuiltin<"__builtin_altivec_vmaddfp">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vnmsubfp : GCCBuiltin<"__builtin_altivec_vnmsubfp">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; // Vector Multiply Sum Intructions. def int_ppc_altivec_vmsummbm : GCCBuiltin<"__builtin_altivec_vmsummbm">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmsumshm : GCCBuiltin<"__builtin_altivec_vmsumshm">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmsumshs : GCCBuiltin<"__builtin_altivec_vmsumshs">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmsumubm : GCCBuiltin<"__builtin_altivec_vmsumubm">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmsumuhm : GCCBuiltin<"__builtin_altivec_vmsumuhm">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmsumuhs : GCCBuiltin<"__builtin_altivec_vmsumuhs">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; // Vector Multiply Intructions. def int_ppc_altivec_vmulesb : GCCBuiltin<"__builtin_altivec_vmulesb">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vmulesh : GCCBuiltin<"__builtin_altivec_vmulesh">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vmulesw : GCCBuiltin<"__builtin_altivec_vmulesw">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmuleub : GCCBuiltin<"__builtin_altivec_vmuleub">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vmuleuh : GCCBuiltin<"__builtin_altivec_vmuleuh">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vmuleuw : GCCBuiltin<"__builtin_altivec_vmuleuw">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmulosb : GCCBuiltin<"__builtin_altivec_vmulosb">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vmulosh : GCCBuiltin<"__builtin_altivec_vmulosh">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vmulosw : GCCBuiltin<"__builtin_altivec_vmulosw">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vmuloub : GCCBuiltin<"__builtin_altivec_vmuloub">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vmulouh : GCCBuiltin<"__builtin_altivec_vmulouh">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vmulouw : GCCBuiltin<"__builtin_altivec_vmulouw">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; // Vector Sum Intructions. def int_ppc_altivec_vsumsws : GCCBuiltin<"__builtin_altivec_vsumsws">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vsum2sws : GCCBuiltin<"__builtin_altivec_vsum2sws">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vsum4sbs : GCCBuiltin<"__builtin_altivec_vsum4sbs">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vsum4shs : GCCBuiltin<"__builtin_altivec_vsum4shs">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vsum4ubs : GCCBuiltin<"__builtin_altivec_vsum4ubs">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v4i32_ty], [IntrNoMem]>; // Other multiplies. def int_ppc_altivec_vmladduhm : GCCBuiltin<"__builtin_altivec_vmladduhm">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; // Packs. def int_ppc_altivec_vpkpx : GCCBuiltin<"__builtin_altivec_vpkpx">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vpkshss : GCCBuiltin<"__builtin_altivec_vpkshss">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vpkshus : GCCBuiltin<"__builtin_altivec_vpkshus">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vpkswss : GCCBuiltin<"__builtin_altivec_vpkswss">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vpkswus : GCCBuiltin<"__builtin_altivec_vpkswus">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vpksdss : GCCBuiltin<"__builtin_altivec_vpksdss">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_vpksdus : GCCBuiltin<"__builtin_altivec_vpksdus">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; // vpkuhum is lowered to a shuffle. def int_ppc_altivec_vpkuhus : GCCBuiltin<"__builtin_altivec_vpkuhus">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; // vpkuwum is lowered to a shuffle. def int_ppc_altivec_vpkuwus : GCCBuiltin<"__builtin_altivec_vpkuwus">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; // vpkudum is lowered to a shuffle. def int_ppc_altivec_vpkudus : GCCBuiltin<"__builtin_altivec_vpkudus">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; // Unpacks. def int_ppc_altivec_vupkhpx : GCCBuiltin<"__builtin_altivec_vupkhpx">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vupkhsb : GCCBuiltin<"__builtin_altivec_vupkhsb">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vupkhsh : GCCBuiltin<"__builtin_altivec_vupkhsh">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vupkhsw : GCCBuiltin<"__builtin_altivec_vupkhsw">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vupklpx : GCCBuiltin<"__builtin_altivec_vupklpx">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vupklsb : GCCBuiltin<"__builtin_altivec_vupklsb">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vupklsh : GCCBuiltin<"__builtin_altivec_vupklsh">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_ppc_altivec_vupklsw : GCCBuiltin<"__builtin_altivec_vupklsw">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; // FP <-> integer conversion. def int_ppc_altivec_vcfsx : GCCBuiltin<"__builtin_altivec_vcfsx">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_altivec_vcfux : GCCBuiltin<"__builtin_altivec_vcfux">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_altivec_vctsxs : GCCBuiltin<"__builtin_altivec_vctsxs">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_altivec_vctuxs : GCCBuiltin<"__builtin_altivec_vctuxs">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_altivec_vrfim : GCCBuiltin<"__builtin_altivec_vrfim">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vrfin : GCCBuiltin<"__builtin_altivec_vrfin">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vrfip : GCCBuiltin<"__builtin_altivec_vrfip">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_altivec_vrfiz : GCCBuiltin<"__builtin_altivec_vrfiz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; // Add Extended Quadword def int_ppc_altivec_vaddeuqm : GCCBuiltin<"__builtin_altivec_vaddeuqm">, Intrinsic<[llvm_v1i128_ty], [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty], [IntrNoMem]>; def int_ppc_altivec_vaddecuq : GCCBuiltin<"__builtin_altivec_vaddecuq">, Intrinsic<[llvm_v1i128_ty], [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty], [IntrNoMem]>; // Sub Extended Quadword def int_ppc_altivec_vsubeuqm : GCCBuiltin<"__builtin_altivec_vsubeuqm">, Intrinsic<[llvm_v1i128_ty], [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty], [IntrNoMem]>; def int_ppc_altivec_vsubecuq : GCCBuiltin<"__builtin_altivec_vsubecuq">, Intrinsic<[llvm_v1i128_ty], [llvm_v1i128_ty, llvm_v1i128_ty, llvm_v1i128_ty], [IntrNoMem]>; } def int_ppc_altivec_vsl : PowerPC_Vec_WWW_Intrinsic<"vsl">; def int_ppc_altivec_vslo : PowerPC_Vec_WWW_Intrinsic<"vslo">; def int_ppc_altivec_vslb : PowerPC_Vec_BBB_Intrinsic<"vslb">; def int_ppc_altivec_vslh : PowerPC_Vec_HHH_Intrinsic<"vslh">; def int_ppc_altivec_vslw : PowerPC_Vec_WWW_Intrinsic<"vslw">; // Right Shifts. def int_ppc_altivec_vsr : PowerPC_Vec_WWW_Intrinsic<"vsr">; def int_ppc_altivec_vsro : PowerPC_Vec_WWW_Intrinsic<"vsro">; def int_ppc_altivec_vsrb : PowerPC_Vec_BBB_Intrinsic<"vsrb">; def int_ppc_altivec_vsrh : PowerPC_Vec_HHH_Intrinsic<"vsrh">; def int_ppc_altivec_vsrw : PowerPC_Vec_WWW_Intrinsic<"vsrw">; def int_ppc_altivec_vsrab : PowerPC_Vec_BBB_Intrinsic<"vsrab">; def int_ppc_altivec_vsrah : PowerPC_Vec_HHH_Intrinsic<"vsrah">; def int_ppc_altivec_vsraw : PowerPC_Vec_WWW_Intrinsic<"vsraw">; // Rotates. def int_ppc_altivec_vrlb : PowerPC_Vec_BBB_Intrinsic<"vrlb">; def int_ppc_altivec_vrlh : PowerPC_Vec_HHH_Intrinsic<"vrlh">; def int_ppc_altivec_vrlw : PowerPC_Vec_WWW_Intrinsic<"vrlw">; def int_ppc_altivec_vrld : PowerPC_Vec_DDD_Intrinsic<"vrld">; let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.". // Miscellaneous. def int_ppc_altivec_lvsl : Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty], [IntrNoMem]>; def int_ppc_altivec_lvsr : Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty], [IntrNoMem]>; def int_ppc_altivec_vperm : GCCBuiltin<"__builtin_altivec_vperm_4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vsel : GCCBuiltin<"__builtin_altivec_vsel_4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_ppc_altivec_vgbbd : GCCBuiltin<"__builtin_altivec_vgbbd">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_vbpermq : GCCBuiltin<"__builtin_altivec_vbpermq">, Intrinsic<[llvm_v2i64_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; } def int_ppc_altivec_vexptefp : PowerPC_Vec_FF_Intrinsic<"vexptefp">; def int_ppc_altivec_vlogefp : PowerPC_Vec_FF_Intrinsic<"vlogefp">; def int_ppc_altivec_vrefp : PowerPC_Vec_FF_Intrinsic<"vrefp">; def int_ppc_altivec_vrsqrtefp : PowerPC_Vec_FF_Intrinsic<"vrsqrtefp">; // Power8 Intrinsics // Crypto let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.". def int_ppc_altivec_crypto_vsbox : GCCBuiltin<"__builtin_altivec_crypto_vsbox">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_ppc_altivec_crypto_vpermxor : GCCBuiltin<"__builtin_altivec_crypto_vpermxor">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_ppc_altivec_crypto_vshasigmad : GCCBuiltin<"__builtin_altivec_crypto_vshasigmad">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_altivec_crypto_vshasigmaw : GCCBuiltin<"__builtin_altivec_crypto_vshasigmaw">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; } def int_ppc_altivec_crypto_vcipher : PowerPC_Vec_DDD_Intrinsic<"crypto_vcipher">; def int_ppc_altivec_crypto_vcipherlast : PowerPC_Vec_DDD_Intrinsic<"crypto_vcipherlast">; def int_ppc_altivec_crypto_vncipher : PowerPC_Vec_DDD_Intrinsic<"crypto_vncipher">; def int_ppc_altivec_crypto_vncipherlast : PowerPC_Vec_DDD_Intrinsic<"crypto_vncipherlast">; def int_ppc_altivec_crypto_vpmsumb : PowerPC_Vec_BBB_Intrinsic<"crypto_vpmsumb">; def int_ppc_altivec_crypto_vpmsumh : PowerPC_Vec_HHH_Intrinsic<"crypto_vpmsumh">; def int_ppc_altivec_crypto_vpmsumw : PowerPC_Vec_WWW_Intrinsic<"crypto_vpmsumw">; def int_ppc_altivec_crypto_vpmsumd : PowerPC_Vec_DDD_Intrinsic<"crypto_vpmsumd">; //===----------------------------------------------------------------------===// // PowerPC VSX Intrinsic Definitions. let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.". // Vector load. def int_ppc_vsx_lxvw4x : Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_ppc_vsx_lxvd2x : Intrinsic<[llvm_v2f64_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; // Vector store. def int_ppc_vsx_stxvw4x : Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_ppc_vsx_stxvd2x : Intrinsic<[], [llvm_v2f64_ty, llvm_ptr_ty], [IntrArgMemOnly]>; // Vector and scalar maximum. def int_ppc_vsx_xvmaxdp : PowerPC_VSX_Vec_DDD_Intrinsic<"xvmaxdp">; def int_ppc_vsx_xvmaxsp : PowerPC_VSX_Vec_FFF_Intrinsic<"xvmaxsp">; def int_ppc_vsx_xsmaxdp : PowerPC_VSX_Sca_DDD_Intrinsic<"xsmaxdp">; // Vector and scalar minimum. def int_ppc_vsx_xvmindp : PowerPC_VSX_Vec_DDD_Intrinsic<"xvmindp">; def int_ppc_vsx_xvminsp : PowerPC_VSX_Vec_FFF_Intrinsic<"xvminsp">; def int_ppc_vsx_xsmindp : PowerPC_VSX_Sca_DDD_Intrinsic<"xsmindp">; // Vector divide. def int_ppc_vsx_xvdivdp : PowerPC_VSX_Vec_DDD_Intrinsic<"xvdivdp">; def int_ppc_vsx_xvdivsp : PowerPC_VSX_Vec_FFF_Intrinsic<"xvdivsp">; // Vector round-to-infinity (ceil) def int_ppc_vsx_xvrspip : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvrdpip : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; // Vector reciprocal estimate def int_ppc_vsx_xvresp : GCCBuiltin<"__builtin_vsx_xvresp">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvredp : GCCBuiltin<"__builtin_vsx_xvredp">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; // Vector rsqrte def int_ppc_vsx_xvrsqrtesp : GCCBuiltin<"__builtin_vsx_xvrsqrtesp">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvrsqrtedp : GCCBuiltin<"__builtin_vsx_xvrsqrtedp">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; // Vector compare def int_ppc_vsx_xvcmpeqdp : PowerPC_VSX_Intrinsic<"xvcmpeqdp", [llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpeqdp_p : GCCBuiltin<"__builtin_vsx_xvcmpeqdp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v2f64_ty,llvm_v2f64_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpeqsp : PowerPC_VSX_Intrinsic<"xvcmpeqsp", [llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpeqsp_p : GCCBuiltin<"__builtin_vsx_xvcmpeqsp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgedp : PowerPC_VSX_Intrinsic<"xvcmpgedp", [llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgedp_p : GCCBuiltin<"__builtin_vsx_xvcmpgedp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v2f64_ty,llvm_v2f64_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgesp : PowerPC_VSX_Intrinsic<"xvcmpgesp", [llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgesp_p : GCCBuiltin<"__builtin_vsx_xvcmpgesp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgtdp : PowerPC_VSX_Intrinsic<"xvcmpgtdp", [llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgtdp_p : GCCBuiltin<"__builtin_vsx_xvcmpgtdp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v2f64_ty,llvm_v2f64_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgtsp : PowerPC_VSX_Intrinsic<"xvcmpgtsp", [llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xvcmpgtsp_p : GCCBuiltin<"__builtin_vsx_xvcmpgtsp_p">, Intrinsic<[llvm_i32_ty],[llvm_i32_ty,llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; def int_ppc_vsx_xxleqv : PowerPC_VSX_Intrinsic<"xxleqv", [llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // PowerPC QPX Intrinsics. // let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.". /// PowerPC_QPX_Intrinsic - Base class for all QPX intrinsics. class PowerPC_QPX_Intrinsic ret_types, list param_types, list properties> : GCCBuiltin, Intrinsic; } //===----------------------------------------------------------------------===// // PowerPC QPX Intrinsic Class Definitions. // /// PowerPC_QPX_FF_Intrinsic - A PowerPC intrinsic that takes one v4f64 /// vector and returns one. These intrinsics have no side effects. class PowerPC_QPX_FF_Intrinsic : PowerPC_QPX_Intrinsic; /// PowerPC_QPX_FFF_Intrinsic - A PowerPC intrinsic that takes two v4f64 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_QPX_FFF_Intrinsic : PowerPC_QPX_Intrinsic; /// PowerPC_QPX_FFFF_Intrinsic - A PowerPC intrinsic that takes three v4f64 /// vectors and returns one. These intrinsics have no side effects. class PowerPC_QPX_FFFF_Intrinsic : PowerPC_QPX_Intrinsic; /// PowerPC_QPX_Load_Intrinsic - A PowerPC intrinsic that takes a pointer /// and returns a v4f64. class PowerPC_QPX_Load_Intrinsic : PowerPC_QPX_Intrinsic; /// PowerPC_QPX_LoadPerm_Intrinsic - A PowerPC intrinsic that takes a pointer /// and returns a v4f64 permutation. class PowerPC_QPX_LoadPerm_Intrinsic : PowerPC_QPX_Intrinsic; /// PowerPC_QPX_Store_Intrinsic - A PowerPC intrinsic that takes a pointer /// and stores a v4f64. class PowerPC_QPX_Store_Intrinsic : PowerPC_QPX_Intrinsic; //===----------------------------------------------------------------------===// // PowerPC QPX Intrinsic Definitions. let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.". // Add Instructions def int_ppc_qpx_qvfadd : PowerPC_QPX_FFF_Intrinsic<"qvfadd">; def int_ppc_qpx_qvfadds : PowerPC_QPX_FFF_Intrinsic<"qvfadds">; def int_ppc_qpx_qvfsub : PowerPC_QPX_FFF_Intrinsic<"qvfsub">; def int_ppc_qpx_qvfsubs : PowerPC_QPX_FFF_Intrinsic<"qvfsubs">; // Estimate Instructions def int_ppc_qpx_qvfre : PowerPC_QPX_FF_Intrinsic<"qvfre">; def int_ppc_qpx_qvfres : PowerPC_QPX_FF_Intrinsic<"qvfres">; def int_ppc_qpx_qvfrsqrte : PowerPC_QPX_FF_Intrinsic<"qvfrsqrte">; def int_ppc_qpx_qvfrsqrtes : PowerPC_QPX_FF_Intrinsic<"qvfrsqrtes">; // Multiply Instructions def int_ppc_qpx_qvfmul : PowerPC_QPX_FFF_Intrinsic<"qvfmul">; def int_ppc_qpx_qvfmuls : PowerPC_QPX_FFF_Intrinsic<"qvfmuls">; def int_ppc_qpx_qvfxmul : PowerPC_QPX_FFF_Intrinsic<"qvfxmul">; def int_ppc_qpx_qvfxmuls : PowerPC_QPX_FFF_Intrinsic<"qvfxmuls">; // Multiply-add instructions def int_ppc_qpx_qvfmadd : PowerPC_QPX_FFFF_Intrinsic<"qvfmadd">; def int_ppc_qpx_qvfmadds : PowerPC_QPX_FFFF_Intrinsic<"qvfmadds">; def int_ppc_qpx_qvfnmadd : PowerPC_QPX_FFFF_Intrinsic<"qvfnmadd">; def int_ppc_qpx_qvfnmadds : PowerPC_QPX_FFFF_Intrinsic<"qvfnmadds">; def int_ppc_qpx_qvfmsub : PowerPC_QPX_FFFF_Intrinsic<"qvfmsub">; def int_ppc_qpx_qvfmsubs : PowerPC_QPX_FFFF_Intrinsic<"qvfmsubs">; def int_ppc_qpx_qvfnmsub : PowerPC_QPX_FFFF_Intrinsic<"qvfnmsub">; def int_ppc_qpx_qvfnmsubs : PowerPC_QPX_FFFF_Intrinsic<"qvfnmsubs">; def int_ppc_qpx_qvfxmadd : PowerPC_QPX_FFFF_Intrinsic<"qvfxmadd">; def int_ppc_qpx_qvfxmadds : PowerPC_QPX_FFFF_Intrinsic<"qvfxmadds">; def int_ppc_qpx_qvfxxnpmadd : PowerPC_QPX_FFFF_Intrinsic<"qvfxxnpmadd">; def int_ppc_qpx_qvfxxnpmadds : PowerPC_QPX_FFFF_Intrinsic<"qvfxxnpmadds">; def int_ppc_qpx_qvfxxcpnmadd : PowerPC_QPX_FFFF_Intrinsic<"qvfxxcpnmadd">; def int_ppc_qpx_qvfxxcpnmadds : PowerPC_QPX_FFFF_Intrinsic<"qvfxxcpnmadds">; def int_ppc_qpx_qvfxxmadd : PowerPC_QPX_FFFF_Intrinsic<"qvfxxmadd">; def int_ppc_qpx_qvfxxmadds : PowerPC_QPX_FFFF_Intrinsic<"qvfxxmadds">; // Select Instruction def int_ppc_qpx_qvfsel : PowerPC_QPX_FFFF_Intrinsic<"qvfsel">; // Permute Instruction def int_ppc_qpx_qvfperm : PowerPC_QPX_FFFF_Intrinsic<"qvfperm">; // Convert and Round Instructions def int_ppc_qpx_qvfctid : PowerPC_QPX_FF_Intrinsic<"qvfctid">; def int_ppc_qpx_qvfctidu : PowerPC_QPX_FF_Intrinsic<"qvfctidu">; def int_ppc_qpx_qvfctidz : PowerPC_QPX_FF_Intrinsic<"qvfctidz">; def int_ppc_qpx_qvfctiduz : PowerPC_QPX_FF_Intrinsic<"qvfctiduz">; def int_ppc_qpx_qvfctiw : PowerPC_QPX_FF_Intrinsic<"qvfctiw">; def int_ppc_qpx_qvfctiwu : PowerPC_QPX_FF_Intrinsic<"qvfctiwu">; def int_ppc_qpx_qvfctiwz : PowerPC_QPX_FF_Intrinsic<"qvfctiwz">; def int_ppc_qpx_qvfctiwuz : PowerPC_QPX_FF_Intrinsic<"qvfctiwuz">; def int_ppc_qpx_qvfcfid : PowerPC_QPX_FF_Intrinsic<"qvfcfid">; def int_ppc_qpx_qvfcfidu : PowerPC_QPX_FF_Intrinsic<"qvfcfidu">; def int_ppc_qpx_qvfcfids : PowerPC_QPX_FF_Intrinsic<"qvfcfids">; def int_ppc_qpx_qvfcfidus : PowerPC_QPX_FF_Intrinsic<"qvfcfidus">; def int_ppc_qpx_qvfrsp : PowerPC_QPX_FF_Intrinsic<"qvfrsp">; def int_ppc_qpx_qvfriz : PowerPC_QPX_FF_Intrinsic<"qvfriz">; def int_ppc_qpx_qvfrin : PowerPC_QPX_FF_Intrinsic<"qvfrin">; def int_ppc_qpx_qvfrip : PowerPC_QPX_FF_Intrinsic<"qvfrip">; def int_ppc_qpx_qvfrim : PowerPC_QPX_FF_Intrinsic<"qvfrim">; // Move Instructions def int_ppc_qpx_qvfneg : PowerPC_QPX_FF_Intrinsic<"qvfneg">; def int_ppc_qpx_qvfabs : PowerPC_QPX_FF_Intrinsic<"qvfabs">; def int_ppc_qpx_qvfnabs : PowerPC_QPX_FF_Intrinsic<"qvfnabs">; def int_ppc_qpx_qvfcpsgn : PowerPC_QPX_FFF_Intrinsic<"qvfcpsgn">; // Compare Instructions def int_ppc_qpx_qvftstnan : PowerPC_QPX_FFF_Intrinsic<"qvftstnan">; def int_ppc_qpx_qvfcmplt : PowerPC_QPX_FFF_Intrinsic<"qvfcmplt">; def int_ppc_qpx_qvfcmpgt : PowerPC_QPX_FFF_Intrinsic<"qvfcmpgt">; def int_ppc_qpx_qvfcmpeq : PowerPC_QPX_FFF_Intrinsic<"qvfcmpeq">; // Load instructions def int_ppc_qpx_qvlfd : PowerPC_QPX_Load_Intrinsic<"qvlfd">; def int_ppc_qpx_qvlfda : PowerPC_QPX_Load_Intrinsic<"qvlfda">; def int_ppc_qpx_qvlfs : PowerPC_QPX_Load_Intrinsic<"qvlfs">; def int_ppc_qpx_qvlfsa : PowerPC_QPX_Load_Intrinsic<"qvlfsa">; def int_ppc_qpx_qvlfcda : PowerPC_QPX_Load_Intrinsic<"qvlfcda">; def int_ppc_qpx_qvlfcd : PowerPC_QPX_Load_Intrinsic<"qvlfcd">; def int_ppc_qpx_qvlfcsa : PowerPC_QPX_Load_Intrinsic<"qvlfcsa">; def int_ppc_qpx_qvlfcs : PowerPC_QPX_Load_Intrinsic<"qvlfcs">; def int_ppc_qpx_qvlfiwaa : PowerPC_QPX_Load_Intrinsic<"qvlfiwaa">; def int_ppc_qpx_qvlfiwa : PowerPC_QPX_Load_Intrinsic<"qvlfiwa">; def int_ppc_qpx_qvlfiwza : PowerPC_QPX_Load_Intrinsic<"qvlfiwza">; def int_ppc_qpx_qvlfiwz : PowerPC_QPX_Load_Intrinsic<"qvlfiwz">; def int_ppc_qpx_qvlpcld : PowerPC_QPX_LoadPerm_Intrinsic<"qvlpcld">; def int_ppc_qpx_qvlpcls : PowerPC_QPX_LoadPerm_Intrinsic<"qvlpcls">; def int_ppc_qpx_qvlpcrd : PowerPC_QPX_LoadPerm_Intrinsic<"qvlpcrd">; def int_ppc_qpx_qvlpcrs : PowerPC_QPX_LoadPerm_Intrinsic<"qvlpcrs">; // Store instructions def int_ppc_qpx_qvstfd : PowerPC_QPX_Store_Intrinsic<"qvstfd">; def int_ppc_qpx_qvstfda : PowerPC_QPX_Store_Intrinsic<"qvstfda">; def int_ppc_qpx_qvstfs : PowerPC_QPX_Store_Intrinsic<"qvstfs">; def int_ppc_qpx_qvstfsa : PowerPC_QPX_Store_Intrinsic<"qvstfsa">; def int_ppc_qpx_qvstfcda : PowerPC_QPX_Store_Intrinsic<"qvstfcda">; def int_ppc_qpx_qvstfcd : PowerPC_QPX_Store_Intrinsic<"qvstfcd">; def int_ppc_qpx_qvstfcsa : PowerPC_QPX_Store_Intrinsic<"qvstfcsa">; def int_ppc_qpx_qvstfcs : PowerPC_QPX_Store_Intrinsic<"qvstfcs">; def int_ppc_qpx_qvstfiwa : PowerPC_QPX_Store_Intrinsic<"qvstfiwa">; def int_ppc_qpx_qvstfiw : PowerPC_QPX_Store_Intrinsic<"qvstfiw">; // Logical and permutation formation def int_ppc_qpx_qvflogical : PowerPC_QPX_Intrinsic<"qvflogical", [llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_ppc_qpx_qvgpci : PowerPC_QPX_Intrinsic<"qvgpci", [llvm_v4f64_ty], [llvm_i32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // PowerPC HTM Intrinsic Definitions. let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.". def int_ppc_tbegin : GCCBuiltin<"__builtin_tbegin">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; def int_ppc_tend : GCCBuiltin<"__builtin_tend">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; def int_ppc_tabort : GCCBuiltin<"__builtin_tabort">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; def int_ppc_tabortwc : GCCBuiltin<"__builtin_tabortwc">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_tabortwci : GCCBuiltin<"__builtin_tabortwci">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_tabortdc : GCCBuiltin<"__builtin_tabortdc">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_tabortdci : GCCBuiltin<"__builtin_tabortdci">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_ppc_tcheck : GCCBuiltin<"__builtin_tcheck">, Intrinsic<[llvm_i32_ty], [], []>; def int_ppc_treclaim : GCCBuiltin<"__builtin_treclaim">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; def int_ppc_trechkpt : GCCBuiltin<"__builtin_trechkpt">, Intrinsic<[llvm_i32_ty], [], []>; def int_ppc_tsr : GCCBuiltin<"__builtin_tsr">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>; def int_ppc_get_texasr : GCCBuiltin<"__builtin_get_texasr">, Intrinsic<[llvm_i64_ty], [], []>; def int_ppc_get_texasru : GCCBuiltin<"__builtin_get_texasru">, Intrinsic<[llvm_i64_ty], [], []>; def int_ppc_get_tfhar : GCCBuiltin<"__builtin_get_tfhar">, Intrinsic<[llvm_i64_ty], [], []>; def int_ppc_get_tfiar : GCCBuiltin<"__builtin_get_tfiar">, Intrinsic<[llvm_i64_ty], [], []>; def int_ppc_set_texasr : GCCBuiltin<"__builtin_set_texasr">, Intrinsic<[], [llvm_i64_ty], []>; def int_ppc_set_texasru : GCCBuiltin<"__builtin_set_texasru">, Intrinsic<[], [llvm_i64_ty], []>; def int_ppc_set_tfhar : GCCBuiltin<"__builtin_set_tfhar">, Intrinsic<[], [llvm_i64_ty], []>; def int_ppc_set_tfiar : GCCBuiltin<"__builtin_set_tfiar">, Intrinsic<[], [llvm_i64_ty], []>; // Extended mnemonics def int_ppc_tendall : GCCBuiltin<"__builtin_tendall">, Intrinsic<[llvm_i32_ty], [], []>; def int_ppc_tresume : GCCBuiltin<"__builtin_tresume">, Intrinsic<[llvm_i32_ty], [], []>; def int_ppc_tsuspend : GCCBuiltin<"__builtin_tsuspend">, Intrinsic<[llvm_i32_ty], [], []>; def int_ppc_ttest : GCCBuiltin<"__builtin_ttest">, Intrinsic<[llvm_i64_ty], [], []>; } //===- IntrinsicsSystemZ.td - Defines SystemZ intrinsics ---*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the SystemZ-specific intrinsics. // //===----------------------------------------------------------------------===// class SystemZUnaryConv : GCCBuiltin<"__builtin_s390_" ## name>, Intrinsic<[result], [arg], [IntrNoMem]>; class SystemZUnary : SystemZUnaryConv; class SystemZUnaryConvCC : Intrinsic<[result, llvm_i32_ty], [arg], [IntrNoMem]>; class SystemZUnaryCC : SystemZUnaryConvCC; class SystemZBinaryConv : GCCBuiltin<"__builtin_s390_" ## name>, Intrinsic<[result], [arg, arg], [IntrNoMem]>; class SystemZBinary : SystemZBinaryConv; class SystemZBinaryInt : GCCBuiltin<"__builtin_s390_" ## name>, Intrinsic<[type], [type, llvm_i32_ty], [IntrNoMem]>; class SystemZBinaryConvCC : Intrinsic<[result, llvm_i32_ty], [arg, arg], [IntrNoMem]>; class SystemZBinaryConvIntCC : Intrinsic<[result, llvm_i32_ty], [arg, llvm_i32_ty], [IntrNoMem]>; class SystemZBinaryCC : SystemZBinaryConvCC; class SystemZTernaryConv : GCCBuiltin<"__builtin_s390_" ## name>, Intrinsic<[result], [arg, arg, result], [IntrNoMem]>; class SystemZTernary : SystemZTernaryConv; class SystemZTernaryInt : GCCBuiltin<"__builtin_s390_" ## name>, Intrinsic<[type], [type, type, llvm_i32_ty], [IntrNoMem]>; class SystemZTernaryIntCC : Intrinsic<[type, llvm_i32_ty], [type, type, llvm_i32_ty], [IntrNoMem]>; class SystemZQuaternaryInt : GCCBuiltin<"__builtin_s390_" ## name>, Intrinsic<[type], [type, type, type, llvm_i32_ty], [IntrNoMem]>; class SystemZQuaternaryIntCC : Intrinsic<[type, llvm_i32_ty], [type, type, type, llvm_i32_ty], [IntrNoMem]>; multiclass SystemZUnaryExtBHF { def b : SystemZUnaryConv; def h : SystemZUnaryConv; def f : SystemZUnaryConv; } multiclass SystemZUnaryExtBHWF { def b : SystemZUnaryConv; def hw : SystemZUnaryConv; def f : SystemZUnaryConv; } multiclass SystemZUnaryBHF { def b : SystemZUnary; def h : SystemZUnary; def f : SystemZUnary; } multiclass SystemZUnaryBHFG : SystemZUnaryBHF { def g : SystemZUnary; } multiclass SystemZUnaryCCBHF { def bs : SystemZUnaryCC; def hs : SystemZUnaryCC; def fs : SystemZUnaryCC; } multiclass SystemZBinaryTruncHFG { def h : SystemZBinaryConv; def f : SystemZBinaryConv; def g : SystemZBinaryConv; } multiclass SystemZBinaryTruncCCHFG { def hs : SystemZBinaryConvCC; def fs : SystemZBinaryConvCC; def gs : SystemZBinaryConvCC; } multiclass SystemZBinaryExtBHF { def b : SystemZBinaryConv; def h : SystemZBinaryConv; def f : SystemZBinaryConv; } multiclass SystemZBinaryExtBHFG : SystemZBinaryExtBHF { def g : SystemZBinaryConv; } multiclass SystemZBinaryBHF { def b : SystemZBinary; def h : SystemZBinary; def f : SystemZBinary; } multiclass SystemZBinaryBHFG : SystemZBinaryBHF { def g : SystemZBinary; } multiclass SystemZBinaryIntBHFG { def b : SystemZBinaryInt; def h : SystemZBinaryInt; def f : SystemZBinaryInt; def g : SystemZBinaryInt; } multiclass SystemZBinaryCCBHF { def bs : SystemZBinaryCC; def hs : SystemZBinaryCC; def fs : SystemZBinaryCC; } multiclass SystemZCompareBHFG { def bs : SystemZBinaryCC; def hs : SystemZBinaryCC; def fs : SystemZBinaryCC; def gs : SystemZBinaryCC; } multiclass SystemZTernaryExtBHF { def b : SystemZTernaryConv; def h : SystemZTernaryConv; def f : SystemZTernaryConv; } multiclass SystemZTernaryExtBHFG : SystemZTernaryExtBHF { def g : SystemZTernaryConv; } multiclass SystemZTernaryBHF { def b : SystemZTernary; def h : SystemZTernary; def f : SystemZTernary; } multiclass SystemZTernaryIntBHF { def b : SystemZTernaryInt; def h : SystemZTernaryInt; def f : SystemZTernaryInt; } multiclass SystemZTernaryIntCCBHF { def bs : SystemZTernaryIntCC; def hs : SystemZTernaryIntCC; def fs : SystemZTernaryIntCC; } multiclass SystemZQuaternaryIntBHF { def b : SystemZQuaternaryInt; def h : SystemZQuaternaryInt; def f : SystemZQuaternaryInt; } multiclass SystemZQuaternaryIntBHFG : SystemZQuaternaryIntBHF { def g : SystemZQuaternaryInt; } multiclass SystemZQuaternaryIntCCBHF { def bs : SystemZQuaternaryIntCC; def hs : SystemZQuaternaryIntCC; def fs : SystemZQuaternaryIntCC; } //===----------------------------------------------------------------------===// // // Transactional-execution intrinsics // //===----------------------------------------------------------------------===// let TargetPrefix = "s390" in { def int_s390_tbegin : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrNoDuplicate]>; def int_s390_tbegin_nofloat : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrNoDuplicate]>; def int_s390_tbeginc : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty], [IntrNoDuplicate]>; def int_s390_tabort : Intrinsic<[], [llvm_i64_ty], [IntrNoReturn, Throws]>; def int_s390_tend : GCCBuiltin<"__builtin_tend">, Intrinsic<[llvm_i32_ty], []>; def int_s390_etnd : GCCBuiltin<"__builtin_tx_nesting_depth">, Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>; def int_s390_ntstg : Intrinsic<[], [llvm_i64_ty, llvm_ptr64_ty], [IntrArgMemOnly]>; def int_s390_ppa_txassist : GCCBuiltin<"__builtin_tx_assist">, Intrinsic<[], [llvm_i32_ty]>; } //===----------------------------------------------------------------------===// // // Vector intrinsics // //===----------------------------------------------------------------------===// let TargetPrefix = "s390" in { def int_s390_lcbb : GCCBuiltin<"__builtin_s390_lcbb">, Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrNoMem]>; def int_s390_vlbb : GCCBuiltin<"__builtin_s390_vlbb">, Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_s390_vll : GCCBuiltin<"__builtin_s390_vll">, Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty, llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_s390_vpdi : GCCBuiltin<"__builtin_s390_vpdi">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_s390_vperm : GCCBuiltin<"__builtin_s390_vperm">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; defm int_s390_vpks : SystemZBinaryTruncHFG<"vpks">; defm int_s390_vpks : SystemZBinaryTruncCCHFG; defm int_s390_vpkls : SystemZBinaryTruncHFG<"vpkls">; defm int_s390_vpkls : SystemZBinaryTruncCCHFG; def int_s390_vstl : GCCBuiltin<"__builtin_s390_vstl">, Intrinsic<[], [llvm_v16i8_ty, llvm_i32_ty, llvm_ptr_ty], // In fact write-only but there's no property // for that. [IntrArgMemOnly]>; defm int_s390_vupl : SystemZUnaryExtBHWF<"vupl">; defm int_s390_vupll : SystemZUnaryExtBHF<"vupll">; defm int_s390_vuph : SystemZUnaryExtBHF<"vuph">; defm int_s390_vuplh : SystemZUnaryExtBHF<"vuplh">; defm int_s390_vacc : SystemZBinaryBHFG<"vacc">; def int_s390_vaq : SystemZBinary<"vaq", llvm_v16i8_ty>; def int_s390_vacq : SystemZTernary<"vacq", llvm_v16i8_ty>; def int_s390_vaccq : SystemZBinary<"vaccq", llvm_v16i8_ty>; def int_s390_vacccq : SystemZTernary<"vacccq", llvm_v16i8_ty>; defm int_s390_vavg : SystemZBinaryBHFG<"vavg">; defm int_s390_vavgl : SystemZBinaryBHFG<"vavgl">; def int_s390_vcksm : SystemZBinary<"vcksm", llvm_v4i32_ty>; defm int_s390_vgfm : SystemZBinaryExtBHFG<"vgfm">; defm int_s390_vgfma : SystemZTernaryExtBHFG<"vgfma">; defm int_s390_vmah : SystemZTernaryBHF<"vmah">; defm int_s390_vmalh : SystemZTernaryBHF<"vmalh">; defm int_s390_vmae : SystemZTernaryExtBHF<"vmae">; defm int_s390_vmale : SystemZTernaryExtBHF<"vmale">; defm int_s390_vmao : SystemZTernaryExtBHF<"vmao">; defm int_s390_vmalo : SystemZTernaryExtBHF<"vmalo">; defm int_s390_vmh : SystemZBinaryBHF<"vmh">; defm int_s390_vmlh : SystemZBinaryBHF<"vmlh">; defm int_s390_vme : SystemZBinaryExtBHF<"vme">; defm int_s390_vmle : SystemZBinaryExtBHF<"vmle">; defm int_s390_vmo : SystemZBinaryExtBHF<"vmo">; defm int_s390_vmlo : SystemZBinaryExtBHF<"vmlo">; defm int_s390_verllv : SystemZBinaryBHFG<"verllv">; defm int_s390_verll : SystemZBinaryIntBHFG<"verll">; defm int_s390_verim : SystemZQuaternaryIntBHFG<"verim">; def int_s390_vsl : SystemZBinary<"vsl", llvm_v16i8_ty>; def int_s390_vslb : SystemZBinary<"vslb", llvm_v16i8_ty>; def int_s390_vsra : SystemZBinary<"vsra", llvm_v16i8_ty>; def int_s390_vsrab : SystemZBinary<"vsrab", llvm_v16i8_ty>; def int_s390_vsrl : SystemZBinary<"vsrl", llvm_v16i8_ty>; def int_s390_vsrlb : SystemZBinary<"vsrlb", llvm_v16i8_ty>; def int_s390_vsldb : GCCBuiltin<"__builtin_s390_vsldb">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>; defm int_s390_vscbi : SystemZBinaryBHFG<"vscbi">; def int_s390_vsq : SystemZBinary<"vsq", llvm_v16i8_ty>; def int_s390_vsbiq : SystemZTernary<"vsbiq", llvm_v16i8_ty>; def int_s390_vscbiq : SystemZBinary<"vscbiq", llvm_v16i8_ty>; def int_s390_vsbcbiq : SystemZTernary<"vsbcbiq", llvm_v16i8_ty>; def int_s390_vsumb : SystemZBinaryConv<"vsumb", llvm_v4i32_ty, llvm_v16i8_ty>; def int_s390_vsumh : SystemZBinaryConv<"vsumh", llvm_v4i32_ty, llvm_v8i16_ty>; def int_s390_vsumgh : SystemZBinaryConv<"vsumgh", llvm_v2i64_ty, llvm_v8i16_ty>; def int_s390_vsumgf : SystemZBinaryConv<"vsumgf", llvm_v2i64_ty, llvm_v4i32_ty>; def int_s390_vsumqf : SystemZBinaryConv<"vsumqf", llvm_v16i8_ty, llvm_v4i32_ty>; def int_s390_vsumqg : SystemZBinaryConv<"vsumqg", llvm_v16i8_ty, llvm_v2i64_ty>; def int_s390_vtm : SystemZBinaryConv<"vtm", llvm_i32_ty, llvm_v16i8_ty>; defm int_s390_vceq : SystemZCompareBHFG<"vceq">; defm int_s390_vch : SystemZCompareBHFG<"vch">; defm int_s390_vchl : SystemZCompareBHFG<"vchl">; defm int_s390_vfae : SystemZTernaryIntBHF<"vfae">; defm int_s390_vfae : SystemZTernaryIntCCBHF; defm int_s390_vfaez : SystemZTernaryIntBHF<"vfaez">; defm int_s390_vfaez : SystemZTernaryIntCCBHF; defm int_s390_vfee : SystemZBinaryBHF<"vfee">; defm int_s390_vfee : SystemZBinaryCCBHF; defm int_s390_vfeez : SystemZBinaryBHF<"vfeez">; defm int_s390_vfeez : SystemZBinaryCCBHF; defm int_s390_vfene : SystemZBinaryBHF<"vfene">; defm int_s390_vfene : SystemZBinaryCCBHF; defm int_s390_vfenez : SystemZBinaryBHF<"vfenez">; defm int_s390_vfenez : SystemZBinaryCCBHF; defm int_s390_vistr : SystemZUnaryBHF<"vistr">; defm int_s390_vistr : SystemZUnaryCCBHF; defm int_s390_vstrc : SystemZQuaternaryIntBHF<"vstrc">; defm int_s390_vstrc : SystemZQuaternaryIntCCBHF; defm int_s390_vstrcz : SystemZQuaternaryIntBHF<"vstrcz">; defm int_s390_vstrcz : SystemZQuaternaryIntCCBHF; def int_s390_vfcedbs : SystemZBinaryConvCC; def int_s390_vfchdbs : SystemZBinaryConvCC; def int_s390_vfchedbs : SystemZBinaryConvCC; def int_s390_vftcidb : SystemZBinaryConvIntCC; def int_s390_vfidb : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // // Misc intrinsics // //===----------------------------------------------------------------------===// let TargetPrefix = "s390" in { def int_s390_tdc : Intrinsic<[llvm_i32_ty], [llvm_anyfloat_ty, llvm_i64_ty], [IntrNoMem]>; } //===- Intrinsics.td - Defines all LLVM intrinsics ---------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines properties of all LLVM intrinsics. // //===----------------------------------------------------------------------===// include "llvm/CodeGen/ValueTypes.td" //===----------------------------------------------------------------------===// // Properties we keep track of for intrinsics. //===----------------------------------------------------------------------===// class IntrinsicProperty; // Intr*Mem - Memory properties. If no property is set, the worst case // is assumed (it may read and write any memory it can get access to and it may // have other side effects). // IntrNoMem - The intrinsic does not access memory or have any other side // effects. It may be CSE'd deleted if dead, etc. def IntrNoMem : IntrinsicProperty; // IntrReadMem - This intrinsic only reads from memory. It does not write to // memory and has no other side effects. Therefore, it cannot be moved across // potentially aliasing stores. However, it can be reordered otherwise and can // be deleted if dead. def IntrReadMem : IntrinsicProperty; // IntrWriteMem - This intrinsic only writes to memory, but does not read from // memory, and has no other side effects. This means dead stores before calls // to this intrinsics may be removed. def IntrWriteMem : IntrinsicProperty; // IntrArgMemOnly - This intrinsic only accesses memory that its pointer-typed // argument(s) points to, but may access an unspecified amount. Other than // reads from and (possibly volatile) writes to memory, it has no side effects. def IntrArgMemOnly : IntrinsicProperty; // Commutative - This intrinsic is commutative: X op Y == Y op X. def Commutative : IntrinsicProperty; // Throws - This intrinsic can throw. def Throws : IntrinsicProperty; // NoCapture - The specified argument pointer is not captured by the intrinsic. class NoCapture : IntrinsicProperty { int ArgNo = argNo; } // Returned - The specified argument is always the return value of the // intrinsic. class Returned : IntrinsicProperty { int ArgNo = argNo; } // ReadOnly - The specified argument pointer is not written to through the // pointer by the intrinsic. class ReadOnly : IntrinsicProperty { int ArgNo = argNo; } // WriteOnly - The intrinsic does not read memory through the specified // argument pointer. class WriteOnly : IntrinsicProperty { int ArgNo = argNo; } // ReadNone - The specified argument pointer is not dereferenced by the // intrinsic. class ReadNone : IntrinsicProperty { int ArgNo = argNo; } def IntrNoReturn : IntrinsicProperty; // IntrNoduplicate - Calls to this intrinsic cannot be duplicated. // Parallels the noduplicate attribute on LLVM IR functions. def IntrNoDuplicate : IntrinsicProperty; // IntrConvergent - Calls to this intrinsic are convergent and may not be made // control-dependent on any additional values. // Parallels the convergent attribute on LLVM IR functions. def IntrConvergent : IntrinsicProperty; //===----------------------------------------------------------------------===// // Types used by intrinsics. //===----------------------------------------------------------------------===// class LLVMType { ValueType VT = vt; } class LLVMQualPointerType : LLVMType{ LLVMType ElTy = elty; int AddrSpace = addrspace; } class LLVMPointerType : LLVMQualPointerType; class LLVMAnyPointerType : LLVMType{ LLVMType ElTy = elty; } // Match the type of another intrinsic parameter. Number is an index into the // list of overloaded types for the intrinsic, excluding all the fixed types. // The Number value must refer to a previously listed type. For example: // Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_anyfloat_ty, LLVMMatchType<0>]> // has two overloaded types, the 2nd and 3rd arguments. LLVMMatchType<0> // refers to the first overloaded type, which is the 2nd argument. class LLVMMatchType : LLVMType{ int Number = num; } // Match the type of another intrinsic parameter that is expected to be based on // an integral type (i.e. either iN or ), but change the scalar size to // be twice as wide or half as wide as the other type. This is only useful when // the intrinsic is overloaded, so the matched type should be declared as iAny. class LLVMExtendedType : LLVMMatchType; class LLVMTruncatedType : LLVMMatchType; class LLVMVectorSameWidth : LLVMMatchType { ValueType ElTy = elty.VT; } class LLVMPointerTo : LLVMMatchType; class LLVMVectorOfPointersToElt : LLVMMatchType; // Match the type of another intrinsic parameter that is expected to be a // vector type, but change the element count to be half as many class LLVMHalfElementsVectorType : LLVMMatchType; def llvm_void_ty : LLVMType; def llvm_any_ty : LLVMType; def llvm_anyint_ty : LLVMType; def llvm_anyfloat_ty : LLVMType; def llvm_anyvector_ty : LLVMType; def llvm_i1_ty : LLVMType; def llvm_i8_ty : LLVMType; def llvm_i16_ty : LLVMType; def llvm_i32_ty : LLVMType; def llvm_i64_ty : LLVMType; def llvm_half_ty : LLVMType; def llvm_float_ty : LLVMType; def llvm_double_ty : LLVMType; def llvm_f80_ty : LLVMType; def llvm_f128_ty : LLVMType; def llvm_ppcf128_ty : LLVMType; def llvm_ptr_ty : LLVMPointerType; // i8* def llvm_ptrptr_ty : LLVMPointerType; // i8** def llvm_anyptr_ty : LLVMAnyPointerType; // (space)i8* def llvm_empty_ty : LLVMType; // { } def llvm_descriptor_ty : LLVMPointerType; // { }* def llvm_metadata_ty : LLVMType; // !{...} def llvm_token_ty : LLVMType; // token def llvm_x86mmx_ty : LLVMType; def llvm_ptrx86mmx_ty : LLVMPointerType; // <1 x i64>* def llvm_v2i1_ty : LLVMType; // 2 x i1 def llvm_v4i1_ty : LLVMType; // 4 x i1 def llvm_v8i1_ty : LLVMType; // 8 x i1 def llvm_v16i1_ty : LLVMType; // 16 x i1 def llvm_v32i1_ty : LLVMType; // 32 x i1 def llvm_v64i1_ty : LLVMType; // 64 x i1 def llvm_v512i1_ty : LLVMType; // 512 x i1 def llvm_v1024i1_ty : LLVMType; //1024 x i1 def llvm_v1i8_ty : LLVMType; // 1 x i8 def llvm_v2i8_ty : LLVMType; // 2 x i8 def llvm_v4i8_ty : LLVMType; // 4 x i8 def llvm_v8i8_ty : LLVMType; // 8 x i8 def llvm_v16i8_ty : LLVMType; // 16 x i8 def llvm_v32i8_ty : LLVMType; // 32 x i8 def llvm_v64i8_ty : LLVMType; // 64 x i8 def llvm_v128i8_ty : LLVMType; //128 x i8 def llvm_v256i8_ty : LLVMType; //256 x i8 def llvm_v1i16_ty : LLVMType; // 1 x i16 def llvm_v2i16_ty : LLVMType; // 2 x i16 def llvm_v4i16_ty : LLVMType; // 4 x i16 def llvm_v8i16_ty : LLVMType; // 8 x i16 def llvm_v16i16_ty : LLVMType; // 16 x i16 def llvm_v32i16_ty : LLVMType; // 32 x i16 def llvm_v64i16_ty : LLVMType; // 64 x i16 def llvm_v128i16_ty : LLVMType; //128 x i16 def llvm_v1i32_ty : LLVMType; // 1 x i32 def llvm_v2i32_ty : LLVMType; // 2 x i32 def llvm_v4i32_ty : LLVMType; // 4 x i32 def llvm_v8i32_ty : LLVMType; // 8 x i32 def llvm_v16i32_ty : LLVMType; // 16 x i32 def llvm_v32i32_ty : LLVMType; // 32 x i32 def llvm_v64i32_ty : LLVMType; // 64 x i32 def llvm_v1i64_ty : LLVMType; // 1 x i64 def llvm_v2i64_ty : LLVMType; // 2 x i64 def llvm_v4i64_ty : LLVMType; // 4 x i64 def llvm_v8i64_ty : LLVMType; // 8 x i64 def llvm_v16i64_ty : LLVMType; // 16 x i64 def llvm_v32i64_ty : LLVMType; // 32 x i64 def llvm_v1i128_ty : LLVMType; // 1 x i128 def llvm_v2f16_ty : LLVMType; // 2 x half (__fp16) def llvm_v4f16_ty : LLVMType; // 4 x half (__fp16) def llvm_v8f16_ty : LLVMType; // 8 x half (__fp16) def llvm_v1f32_ty : LLVMType; // 1 x float def llvm_v2f32_ty : LLVMType; // 2 x float def llvm_v4f32_ty : LLVMType; // 4 x float def llvm_v8f32_ty : LLVMType; // 8 x float def llvm_v16f32_ty : LLVMType; // 16 x float def llvm_v1f64_ty : LLVMType; // 1 x double def llvm_v2f64_ty : LLVMType; // 2 x double def llvm_v4f64_ty : LLVMType; // 4 x double def llvm_v8f64_ty : LLVMType; // 8 x double def llvm_vararg_ty : LLVMType; // this means vararg here //===----------------------------------------------------------------------===// // Intrinsic Definitions. //===----------------------------------------------------------------------===// // Intrinsic class - This is used to define one LLVM intrinsic. The name of the // intrinsic definition should start with "int_", then match the LLVM intrinsic // name with the "llvm." prefix removed, and all "."s turned into "_"s. For // example, llvm.bswap.i16 -> int_bswap_i16. // // * RetTypes is a list containing the return types expected for the // intrinsic. // * ParamTypes is a list containing the parameter types expected for the // intrinsic. // * Properties can be set to describe the behavior of the intrinsic. // class SDPatternOperator; class Intrinsic ret_types, list param_types = [], list properties = [], string name = ""> : SDPatternOperator { string LLVMName = name; string TargetPrefix = ""; // Set to a prefix for target-specific intrinsics. list RetTypes = ret_types; list ParamTypes = param_types; list IntrProperties = properties; bit isTarget = 0; } /// GCCBuiltin - If this intrinsic exactly corresponds to a GCC builtin, this /// specifies the name of the builtin. This provides automatic CBE and CFE /// support. class GCCBuiltin { string GCCBuiltinName = name; } class MSBuiltin { string MSBuiltinName = name; } //===--------------- Variable Argument Handling Intrinsics ----------------===// // def int_vastart : Intrinsic<[], [llvm_ptr_ty], [], "llvm.va_start">; def int_vacopy : Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty], [], "llvm.va_copy">; def int_vaend : Intrinsic<[], [llvm_ptr_ty], [], "llvm.va_end">; //===------------------- Garbage Collection Intrinsics --------------------===// // def int_gcroot : Intrinsic<[], [llvm_ptrptr_ty, llvm_ptr_ty]>; def int_gcread : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty, llvm_ptrptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_gcwrite : Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty, llvm_ptrptr_ty], [IntrArgMemOnly, NoCapture<1>, NoCapture<2>]>; //===--------------------- Code Generator Intrinsics ----------------------===// // def int_returnaddress : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty], [IntrNoMem]>; def int_frameaddress : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty], [IntrNoMem]>; def int_read_register : Intrinsic<[llvm_anyint_ty], [llvm_metadata_ty], [IntrReadMem], "llvm.read_register">; def int_write_register : Intrinsic<[], [llvm_metadata_ty, llvm_anyint_ty], [], "llvm.write_register">; // Gets the address of the local variable area. This is typically a copy of the // stack, frame, or base pointer depending on the type of prologue. def int_localaddress : Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>; // Escapes local variables to allow access from other functions. def int_localescape : Intrinsic<[], [llvm_vararg_ty]>; // Given a function and the localaddress of a parent frame, returns a pointer // to an escaped allocation indicated by the index. def int_localrecover : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty, llvm_ptr_ty, llvm_i32_ty], [IntrNoMem]>; // Note: we treat stacksave/stackrestore as writemem because we don't otherwise // model their dependencies on allocas. def int_stacksave : Intrinsic<[llvm_ptr_ty]>, GCCBuiltin<"__builtin_stack_save">; def int_stackrestore : Intrinsic<[], [llvm_ptr_ty]>, GCCBuiltin<"__builtin_stack_restore">; def int_get_dynamic_area_offset : Intrinsic<[llvm_anyint_ty]>; def int_thread_pointer : Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>, GCCBuiltin<"__builtin_thread_pointer">; // IntrArgMemOnly is more pessimistic than strictly necessary for prefetch, // however it does conveniently prevent the prefetch from being reordered // with respect to nearby accesses to the same memory. def int_prefetch : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly, NoCapture<0>]>; def int_pcmarker : Intrinsic<[], [llvm_i32_ty]>; def int_readcyclecounter : Intrinsic<[llvm_i64_ty]>; // The assume intrinsic is marked as arbitrarily writing so that proper // control dependencies will be maintained. def int_assume : Intrinsic<[], [llvm_i1_ty], []>; // Stack Protector Intrinsic - The stackprotector intrinsic writes the stack // guard to the correct place on the stack frame. def int_stackprotector : Intrinsic<[], [llvm_ptr_ty, llvm_ptrptr_ty], []>; def int_stackguard : Intrinsic<[llvm_ptr_ty], [], []>; // A counter increment for instrumentation based profiling. def int_instrprof_increment : Intrinsic<[], [llvm_ptr_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], []>; // A call to profile runtime for value profiling of target expressions // through instrumentation based profiling. def int_instrprof_value_profile : Intrinsic<[], [llvm_ptr_ty, llvm_i64_ty, llvm_i64_ty, llvm_i32_ty, llvm_i32_ty], []>; //===------------------- Standard C Library Intrinsics --------------------===// // def int_memcpy : Intrinsic<[], [llvm_anyptr_ty, llvm_anyptr_ty, llvm_anyint_ty, llvm_i32_ty, llvm_i1_ty], [IntrArgMemOnly, NoCapture<0>, NoCapture<1>, WriteOnly<0>, ReadOnly<1>]>; def int_memmove : Intrinsic<[], [llvm_anyptr_ty, llvm_anyptr_ty, llvm_anyint_ty, llvm_i32_ty, llvm_i1_ty], [IntrArgMemOnly, NoCapture<0>, NoCapture<1>, ReadOnly<1>]>; def int_memset : Intrinsic<[], [llvm_anyptr_ty, llvm_i8_ty, llvm_anyint_ty, llvm_i32_ty, llvm_i1_ty], [IntrArgMemOnly, NoCapture<0>, WriteOnly<0>]>; let IntrProperties = [IntrNoMem] in { def int_fma : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>]>; def int_fmuladd : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>]>; // These functions do not read memory, but are sensitive to the // rounding mode. LLVM purposely does not model changes to the FP // environment so they can be treated as readnone. def int_sqrt : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_powi : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, llvm_i32_ty]>; def int_sin : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_cos : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_pow : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>]>; def int_log : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_log10: Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_log2 : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_exp : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_exp2 : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_fabs : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_copysign : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>]>; def int_floor : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_ceil : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_trunc : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_rint : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_nearbyint : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_round : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]>; def int_canonicalize : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>; } def int_minnum : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem, Commutative] >; def int_maxnum : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem, Commutative] >; // NOTE: these are internal interfaces. def int_setjmp : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty]>; def int_longjmp : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty], [IntrNoReturn]>; def int_sigsetjmp : Intrinsic<[llvm_i32_ty] , [llvm_ptr_ty, llvm_i32_ty]>; def int_siglongjmp : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty], [IntrNoReturn]>; // Internal interface for object size checking def int_objectsize : Intrinsic<[llvm_anyint_ty], [llvm_anyptr_ty, llvm_i1_ty], [IntrNoMem]>, GCCBuiltin<"__builtin_object_size">; //===------------------------- Expect Intrinsics --------------------------===// // def int_expect : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; //===-------------------- Bit Manipulation Intrinsics ---------------------===// // // None of these intrinsics accesses memory at all. let IntrProperties = [IntrNoMem] in { def int_bswap: Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>]>; def int_ctpop: Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>]>; def int_ctlz : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i1_ty]>; def int_cttz : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i1_ty]>; def int_bitreverse : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>]>; } //===------------------------ Debugger Intrinsics -------------------------===// // // None of these intrinsics accesses memory at all...but that doesn't mean the // optimizers can change them aggressively. Special handling needed in a few // places. let IntrProperties = [IntrNoMem] in { def int_dbg_declare : Intrinsic<[], [llvm_metadata_ty, llvm_metadata_ty, llvm_metadata_ty]>; def int_dbg_value : Intrinsic<[], [llvm_metadata_ty, llvm_i64_ty, llvm_metadata_ty, llvm_metadata_ty]>; } //===------------------ Exception Handling Intrinsics----------------------===// // // The result of eh.typeid.for depends on the enclosing function, but inside a // given function it is 'const' and may be CSE'd etc. def int_eh_typeid_for : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty], [IntrNoMem]>; def int_eh_return_i32 : Intrinsic<[], [llvm_i32_ty, llvm_ptr_ty]>; def int_eh_return_i64 : Intrinsic<[], [llvm_i64_ty, llvm_ptr_ty]>; // eh.exceptionpointer returns the pointer to the exception caught by // the given `catchpad`. def int_eh_exceptionpointer : Intrinsic<[llvm_anyptr_ty], [llvm_token_ty], [IntrNoMem]>; // Gets the exception code from a catchpad token. Only used on some platforms. def int_eh_exceptioncode : Intrinsic<[llvm_i32_ty], [llvm_token_ty], [IntrNoMem]>; // __builtin_unwind_init is an undocumented GCC intrinsic that causes all // callee-saved registers to be saved and restored (regardless of whether they // are used) in the calling function. It is used by libgcc_eh. def int_eh_unwind_init: Intrinsic<[]>, GCCBuiltin<"__builtin_unwind_init">; def int_eh_dwarf_cfa : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty]>; let IntrProperties = [IntrNoMem] in { def int_eh_sjlj_lsda : Intrinsic<[llvm_ptr_ty]>; def int_eh_sjlj_callsite : Intrinsic<[], [llvm_i32_ty]>; } def int_eh_sjlj_functioncontext : Intrinsic<[], [llvm_ptr_ty]>; def int_eh_sjlj_setjmp : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty]>; def int_eh_sjlj_longjmp : Intrinsic<[], [llvm_ptr_ty], [IntrNoReturn]>; def int_eh_sjlj_setup_dispatch : Intrinsic<[], []>; //===---------------- Generic Variable Attribute Intrinsics----------------===// // def int_var_annotation : Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty, llvm_ptr_ty, llvm_i32_ty], [], "llvm.var.annotation">; def int_ptr_annotation : Intrinsic<[LLVMAnyPointerType], [LLVMMatchType<0>, llvm_ptr_ty, llvm_ptr_ty, llvm_i32_ty], [], "llvm.ptr.annotation">; def int_annotation : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_ptr_ty, llvm_ptr_ty, llvm_i32_ty], [], "llvm.annotation">; //===------------------------ Trampoline Intrinsics -----------------------===// // def int_init_trampoline : Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty, llvm_ptr_ty], [IntrArgMemOnly, NoCapture<0>]>, GCCBuiltin<"__builtin_init_trampoline">; def int_adjust_trampoline : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>, GCCBuiltin<"__builtin_adjust_trampoline">; //===------------------------ Overflow Intrinsics -------------------------===// // // Expose the carry flag from add operations on two integrals. def int_sadd_with_overflow : Intrinsic<[llvm_anyint_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_uadd_with_overflow : Intrinsic<[llvm_anyint_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_ssub_with_overflow : Intrinsic<[llvm_anyint_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_usub_with_overflow : Intrinsic<[llvm_anyint_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_smul_with_overflow : Intrinsic<[llvm_anyint_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_umul_with_overflow : Intrinsic<[llvm_anyint_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; //===------------------------- Memory Use Markers -------------------------===// // def int_lifetime_start : Intrinsic<[], [llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly, NoCapture<1>]>; def int_lifetime_end : Intrinsic<[], [llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly, NoCapture<1>]>; def int_invariant_start : Intrinsic<[llvm_descriptor_ty], [llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly, NoCapture<1>]>; def int_invariant_end : Intrinsic<[], [llvm_descriptor_ty, llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly, NoCapture<2>]>; def int_invariant_group_barrier : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], [IntrNoMem]>; //===------------------------ Stackmap Intrinsics -------------------------===// // def int_experimental_stackmap : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_vararg_ty], [Throws]>; def int_experimental_patchpoint_void : Intrinsic<[], [llvm_i64_ty, llvm_i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_vararg_ty], [Throws]>; def int_experimental_patchpoint_i64 : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_vararg_ty], [Throws]>; //===------------------------ Garbage Collection Intrinsics ---------------===// // These are documented in docs/Statepoint.rst def int_experimental_gc_statepoint : Intrinsic<[llvm_token_ty], [llvm_i64_ty, llvm_i32_ty, llvm_anyptr_ty, llvm_i32_ty, llvm_i32_ty, llvm_vararg_ty], [Throws]>; def int_experimental_gc_result : Intrinsic<[llvm_any_ty], [llvm_token_ty], [IntrReadMem]>; def int_experimental_gc_relocate : Intrinsic<[llvm_any_ty], [llvm_token_ty, llvm_i32_ty, llvm_i32_ty], [IntrReadMem]>; //===-------------------------- Other Intrinsics --------------------------===// // def int_flt_rounds : Intrinsic<[llvm_i32_ty]>, GCCBuiltin<"__builtin_flt_rounds">; def int_trap : Intrinsic<[], [], [IntrNoReturn]>, GCCBuiltin<"__builtin_trap">; def int_debugtrap : Intrinsic<[]>, GCCBuiltin<"__builtin_debugtrap">; // Support for dynamic deoptimization (or de-specialization) def int_experimental_deoptimize : Intrinsic<[llvm_any_ty], [llvm_vararg_ty], [Throws]>; // Support for speculative runtime guards def int_experimental_guard : Intrinsic<[], [llvm_i1_ty, llvm_vararg_ty], [Throws]>; // NOP: calls/invokes to this intrinsic are removed by codegen def int_donothing : Intrinsic<[], [], [IntrNoMem]>; // Intrisics to support half precision floating point format let IntrProperties = [IntrNoMem] in { def int_convert_to_fp16 : Intrinsic<[llvm_i16_ty], [llvm_anyfloat_ty]>; def int_convert_from_fp16 : Intrinsic<[llvm_anyfloat_ty], [llvm_i16_ty]>; } // These convert intrinsics are to support various conversions between // various types with rounding and saturation. NOTE: avoid using these // intrinsics as they might be removed sometime in the future and // most targets don't support them. def int_convertff : Intrinsic<[llvm_anyfloat_ty], [llvm_anyfloat_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertfsi : Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertfui : Intrinsic<[llvm_anyfloat_ty], [llvm_anyint_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertsif : Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertuif : Intrinsic<[llvm_anyint_ty], [llvm_anyfloat_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertss : Intrinsic<[llvm_anyint_ty], [llvm_anyint_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertsu : Intrinsic<[llvm_anyint_ty], [llvm_anyint_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertus : Intrinsic<[llvm_anyint_ty], [llvm_anyint_ty, llvm_i32_ty, llvm_i32_ty]>; def int_convertuu : Intrinsic<[llvm_anyint_ty], [llvm_anyint_ty, llvm_i32_ty, llvm_i32_ty]>; // Clear cache intrinsic, default to ignore (ie. emit nothing) // maps to void __clear_cache() on supporting platforms def int_clear_cache : Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty], [], "llvm.clear_cache">; //===-------------------------- Masked Intrinsics -------------------------===// // def int_masked_store : Intrinsic<[], [llvm_anyvector_ty, LLVMAnyPointerType>, llvm_i32_ty, LLVMVectorSameWidth<0, llvm_i1_ty>], [IntrArgMemOnly]>; def int_masked_load : Intrinsic<[llvm_anyvector_ty], [LLVMAnyPointerType>, llvm_i32_ty, LLVMVectorSameWidth<0, llvm_i1_ty>, LLVMMatchType<0>], [IntrReadMem, IntrArgMemOnly]>; def int_masked_gather: Intrinsic<[llvm_anyvector_ty], [LLVMVectorOfPointersToElt<0>, llvm_i32_ty, LLVMVectorSameWidth<0, llvm_i1_ty>, LLVMMatchType<0>], [IntrReadMem, IntrArgMemOnly]>; def int_masked_scatter: Intrinsic<[], [llvm_anyvector_ty, LLVMVectorOfPointersToElt<0>, llvm_i32_ty, LLVMVectorSameWidth<0, llvm_i1_ty>], [IntrArgMemOnly]>; // Test whether a pointer is associated with a type metadata identifier. def int_type_test : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty, llvm_metadata_ty], [IntrNoMem]>; // Safely loads a function pointer from a virtual table pointer using type metadata. def int_type_checked_load : Intrinsic<[llvm_ptr_ty, llvm_i1_ty], [llvm_ptr_ty, llvm_i32_ty, llvm_metadata_ty], [IntrNoMem]>; def int_load_relative: Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty, llvm_anyint_ty], [IntrReadMem, IntrArgMemOnly]>; //===----------------------------------------------------------------------===// // Target-specific intrinsics //===----------------------------------------------------------------------===// include "llvm/IR/IntrinsicsPowerPC.td" include "llvm/IR/IntrinsicsX86.td" include "llvm/IR/IntrinsicsARM.td" include "llvm/IR/IntrinsicsAArch64.td" include "llvm/IR/IntrinsicsXCore.td" include "llvm/IR/IntrinsicsHexagon.td" include "llvm/IR/IntrinsicsNVVM.td" include "llvm/IR/IntrinsicsMips.td" include "llvm/IR/IntrinsicsAMDGPU.td" include "llvm/IR/IntrinsicsBPF.td" include "llvm/IR/IntrinsicsSystemZ.td" include "llvm/IR/IntrinsicsWebAssembly.td" //===- IntrinsicsWebAssembly.td - Defines wasm intrinsics --*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// /// /// \file /// \brief This file defines all of the WebAssembly-specific intrinsics. /// //===----------------------------------------------------------------------===// let TargetPrefix = "wasm" in { // All intrinsics start with "llvm.wasm.". // Note that current_memory is not IntrNoMem because it must be sequenced with // respect to grow_memory calls. def int_wasm_current_memory : Intrinsic<[llvm_anyint_ty], [], [IntrReadMem]>; def int_wasm_grow_memory : Intrinsic<[], [llvm_anyint_ty], []>; } //===- IntrinsicsX86.td - Defines X86 intrinsics -----------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the X86-specific intrinsics. // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // Interrupt traps let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_int : Intrinsic<[], [llvm_i8_ty]>; } //===----------------------------------------------------------------------===// // SEH intrinsics for Windows let TargetPrefix = "x86" in { def int_x86_seh_lsda : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], [IntrNoMem]>; // Marks the EH registration node created in LLVM IR prior to code generation. def int_x86_seh_ehregnode : Intrinsic<[], [llvm_ptr_ty], []>; // Marks the EH guard slot node created in LLVM IR prior to code generation. def int_x86_seh_ehguard : Intrinsic<[], [llvm_ptr_ty], []>; // Given a pointer to the end of an EH registration object, returns the true // parent frame address that can be used with llvm.localrecover. def int_x86_seh_recoverfp : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty, llvm_ptr_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // FLAGS. let TargetPrefix = "x86" in { def int_x86_flags_read_u32 : GCCBuiltin<"__builtin_ia32_readeflags_u32">, Intrinsic<[llvm_i32_ty], [], []>; def int_x86_flags_read_u64 : GCCBuiltin<"__builtin_ia32_readeflags_u64">, Intrinsic<[llvm_i64_ty], [], []>; def int_x86_flags_write_u32 : GCCBuiltin<"__builtin_ia32_writeeflags_u32">, Intrinsic<[], [llvm_i32_ty], []>; def int_x86_flags_write_u64 : GCCBuiltin<"__builtin_ia32_writeeflags_u64">, Intrinsic<[], [llvm_i64_ty], []>; } //===----------------------------------------------------------------------===// // Read Time Stamp Counter. let TargetPrefix = "x86" in { def int_x86_rdtsc : GCCBuiltin<"__builtin_ia32_rdtsc">, Intrinsic<[llvm_i64_ty], [], []>; def int_x86_rdtscp : GCCBuiltin<"__builtin_ia32_rdtscp">, Intrinsic<[llvm_i64_ty], [llvm_ptr_ty], [IntrArgMemOnly]>; } // Read Performance-Monitoring Counter. let TargetPrefix = "x86" in { def int_x86_rdpmc : GCCBuiltin<"__builtin_ia32_rdpmc">, Intrinsic<[llvm_i64_ty], [llvm_i32_ty], []>; } //===----------------------------------------------------------------------===// // 3DNow! let TargetPrefix = "x86" in { def int_x86_3dnow_pavgusb : GCCBuiltin<"__builtin_ia32_pavgusb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pf2id : GCCBuiltin<"__builtin_ia32_pf2id">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfacc : GCCBuiltin<"__builtin_ia32_pfacc">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfadd : GCCBuiltin<"__builtin_ia32_pfadd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfcmpeq : GCCBuiltin<"__builtin_ia32_pfcmpeq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfcmpge : GCCBuiltin<"__builtin_ia32_pfcmpge">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfcmpgt : GCCBuiltin<"__builtin_ia32_pfcmpgt">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfmax : GCCBuiltin<"__builtin_ia32_pfmax">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfmin : GCCBuiltin<"__builtin_ia32_pfmin">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfmul : GCCBuiltin<"__builtin_ia32_pfmul">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfrcp : GCCBuiltin<"__builtin_ia32_pfrcp">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfrcpit1 : GCCBuiltin<"__builtin_ia32_pfrcpit1">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfrcpit2 : GCCBuiltin<"__builtin_ia32_pfrcpit2">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfrsqrt : GCCBuiltin<"__builtin_ia32_pfrsqrt">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfrsqit1 : GCCBuiltin<"__builtin_ia32_pfrsqit1">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfsub : GCCBuiltin<"__builtin_ia32_pfsub">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pfsubr : GCCBuiltin<"__builtin_ia32_pfsubr">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pi2fd : GCCBuiltin<"__builtin_ia32_pi2fd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnow_pmulhrw : GCCBuiltin<"__builtin_ia32_pmulhrw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // 3DNow! extensions let TargetPrefix = "x86" in { def int_x86_3dnowa_pf2iw : GCCBuiltin<"__builtin_ia32_pf2iw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnowa_pfnacc : GCCBuiltin<"__builtin_ia32_pfnacc">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnowa_pfpnacc : GCCBuiltin<"__builtin_ia32_pfpnacc">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnowa_pi2fw : GCCBuiltin<"__builtin_ia32_pi2fw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_3dnowa_pswapd : Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // SSE1 // Arithmetic ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_add_ss : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_sub_ss : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_mul_ss : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_div_ss : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_sqrt_ps : GCCBuiltin<"__builtin_ia32_sqrtps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_rcp_ss : GCCBuiltin<"__builtin_ia32_rcpss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_rcp_ps : GCCBuiltin<"__builtin_ia32_rcpps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_rsqrt_ss : GCCBuiltin<"__builtin_ia32_rsqrtss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_rsqrt_ps : GCCBuiltin<"__builtin_ia32_rsqrtps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_min_ss : GCCBuiltin<"__builtin_ia32_minss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_min_ps : GCCBuiltin<"__builtin_ia32_minps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_max_ss : GCCBuiltin<"__builtin_ia32_maxss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_max_ps : GCCBuiltin<"__builtin_ia32_maxps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; } // Comparison ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_cmp_ss : GCCBuiltin<"__builtin_ia32_cmpss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse_cmp_ps : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse_comieq_ss : GCCBuiltin<"__builtin_ia32_comieq">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_comilt_ss : GCCBuiltin<"__builtin_ia32_comilt">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_comile_ss : GCCBuiltin<"__builtin_ia32_comile">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_comigt_ss : GCCBuiltin<"__builtin_ia32_comigt">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_comige_ss : GCCBuiltin<"__builtin_ia32_comige">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_comineq_ss : GCCBuiltin<"__builtin_ia32_comineq">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_ucomieq_ss : GCCBuiltin<"__builtin_ia32_ucomieq">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_ucomilt_ss : GCCBuiltin<"__builtin_ia32_ucomilt">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_ucomile_ss : GCCBuiltin<"__builtin_ia32_ucomile">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_ucomigt_ss : GCCBuiltin<"__builtin_ia32_ucomigt">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_ucomige_ss : GCCBuiltin<"__builtin_ia32_ucomige">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_ucomineq_ss : GCCBuiltin<"__builtin_ia32_ucomineq">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; } // Conversion ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_cvtss2si : GCCBuiltin<"__builtin_ia32_cvtss2si">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvtss2si64 : GCCBuiltin<"__builtin_ia32_cvtss2si64">, Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvttss2si : GCCBuiltin<"__builtin_ia32_cvttss2si">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvttss2si64 : GCCBuiltin<"__builtin_ia32_cvttss2si64">, Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvtsi2ss : GCCBuiltin<"__builtin_ia32_cvtsi2ss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse_cvtsi642ss : GCCBuiltin<"__builtin_ia32_cvtsi642ss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_sse_cvtps2pi : GCCBuiltin<"__builtin_ia32_cvtps2pi">, Intrinsic<[llvm_x86mmx_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvttps2pi: GCCBuiltin<"__builtin_ia32_cvttps2pi">, Intrinsic<[llvm_x86mmx_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvtpi2ps : GCCBuiltin<"__builtin_ia32_cvtpi2ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_x86mmx_ty], [IntrNoMem]>; } // Cacheability support ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_sfence : GCCBuiltin<"__builtin_ia32_sfence">, Intrinsic<[], [], []>; } // Control register. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_stmxcsr : Intrinsic<[], [llvm_ptr_ty], []>; def int_x86_sse_ldmxcsr : Intrinsic<[], [llvm_ptr_ty], []>; } // Misc. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_movmsk_ps : GCCBuiltin<"__builtin_ia32_movmskps">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // SSE2 // FP arithmetic ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_add_sd : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_sub_sd : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_mul_sd : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_div_sd : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_sqrt_pd : GCCBuiltin<"__builtin_ia32_sqrtpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_min_sd : GCCBuiltin<"__builtin_ia32_minsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_min_pd : GCCBuiltin<"__builtin_ia32_minpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_max_sd : GCCBuiltin<"__builtin_ia32_maxsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_max_pd : GCCBuiltin<"__builtin_ia32_maxpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; } // FP comparison ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_cmp_sd : GCCBuiltin<"__builtin_ia32_cmpsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse2_cmp_pd : Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse2_comieq_sd : GCCBuiltin<"__builtin_ia32_comisdeq">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_comilt_sd : GCCBuiltin<"__builtin_ia32_comisdlt">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_comile_sd : GCCBuiltin<"__builtin_ia32_comisdle">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_comigt_sd : GCCBuiltin<"__builtin_ia32_comisdgt">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_comige_sd : GCCBuiltin<"__builtin_ia32_comisdge">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_comineq_sd : GCCBuiltin<"__builtin_ia32_comisdneq">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_ucomieq_sd : GCCBuiltin<"__builtin_ia32_ucomisdeq">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_ucomilt_sd : GCCBuiltin<"__builtin_ia32_ucomisdlt">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_ucomile_sd : GCCBuiltin<"__builtin_ia32_ucomisdle">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_ucomigt_sd : GCCBuiltin<"__builtin_ia32_ucomisdgt">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_ucomige_sd : GCCBuiltin<"__builtin_ia32_ucomisdge">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_ucomineq_sd : GCCBuiltin<"__builtin_ia32_ucomisdneq">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; } // Integer arithmetic ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_padds_b : GCCBuiltin<"__builtin_ia32_paddsb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_padds_w : GCCBuiltin<"__builtin_ia32_paddsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_paddus_b : GCCBuiltin<"__builtin_ia32_paddusb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_paddus_w : GCCBuiltin<"__builtin_ia32_paddusw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_psubs_b : GCCBuiltin<"__builtin_ia32_psubsb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_sse2_psubs_w : GCCBuiltin<"__builtin_ia32_psubsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_psubus_b : GCCBuiltin<"__builtin_ia32_psubusb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_sse2_psubus_w : GCCBuiltin<"__builtin_ia32_psubusw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_pmulhu_w : GCCBuiltin<"__builtin_ia32_pmulhuw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_pmulh_w : GCCBuiltin<"__builtin_ia32_pmulhw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_pmulu_dq : GCCBuiltin<"__builtin_ia32_pmuludq128">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_pmadd_wd : GCCBuiltin<"__builtin_ia32_pmaddwd128">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_pavg_b : GCCBuiltin<"__builtin_ia32_pavgb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_pavg_w : GCCBuiltin<"__builtin_ia32_pavgw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; def int_x86_sse2_psad_bw : GCCBuiltin<"__builtin_ia32_psadbw128">, Intrinsic<[llvm_v2i64_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem, Commutative]>; } // Integer shift ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_psll_w : GCCBuiltin<"__builtin_ia32_psllw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_psll_d : GCCBuiltin<"__builtin_ia32_pslld128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sse2_psll_q : GCCBuiltin<"__builtin_ia32_psllq128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_sse2_psrl_w : GCCBuiltin<"__builtin_ia32_psrlw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_psrl_d : GCCBuiltin<"__builtin_ia32_psrld128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sse2_psrl_q : GCCBuiltin<"__builtin_ia32_psrlq128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_sse2_psra_w : GCCBuiltin<"__builtin_ia32_psraw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_psra_d : GCCBuiltin<"__builtin_ia32_psrad128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sse2_pslli_w : GCCBuiltin<"__builtin_ia32_psllwi128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_pslli_d : GCCBuiltin<"__builtin_ia32_pslldi128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_pslli_q : GCCBuiltin<"__builtin_ia32_psllqi128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_psrli_w : GCCBuiltin<"__builtin_ia32_psrlwi128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_psrli_d : GCCBuiltin<"__builtin_ia32_psrldi128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_psrli_q : GCCBuiltin<"__builtin_ia32_psrlqi128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_psrai_w : GCCBuiltin<"__builtin_ia32_psrawi128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_psrai_d : GCCBuiltin<"__builtin_ia32_psradi128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>; } // Conversion ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_cvtdq2ps : GCCBuiltin<"__builtin_ia32_cvtdq2ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sse2_cvtpd2dq : GCCBuiltin<"__builtin_ia32_cvtpd2dq">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvttpd2dq : GCCBuiltin<"__builtin_ia32_cvttpd2dq">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvtpd2ps : GCCBuiltin<"__builtin_ia32_cvtpd2ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvtps2dq : GCCBuiltin<"__builtin_ia32_cvtps2dq">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse2_cvttps2dq : GCCBuiltin<"__builtin_ia32_cvttps2dq">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse2_cvtsd2si : GCCBuiltin<"__builtin_ia32_cvtsd2si">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvtsd2si64 : GCCBuiltin<"__builtin_ia32_cvtsd2si64">, Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvttsd2si : GCCBuiltin<"__builtin_ia32_cvttsd2si">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvttsd2si64 : GCCBuiltin<"__builtin_ia32_cvttsd2si64">, Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvtsi2sd : GCCBuiltin<"__builtin_ia32_cvtsi2sd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse2_cvtsi642sd : GCCBuiltin<"__builtin_ia32_cvtsi642sd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_sse2_cvtsd2ss : GCCBuiltin<"__builtin_ia32_cvtsd2ss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_cvtss2sd : GCCBuiltin<"__builtin_ia32_cvtss2sd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse_cvtpd2pi : GCCBuiltin<"__builtin_ia32_cvtpd2pi">, Intrinsic<[llvm_x86mmx_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse_cvttpd2pi: GCCBuiltin<"__builtin_ia32_cvttpd2pi">, Intrinsic<[llvm_x86mmx_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse_cvtpi2pd : GCCBuiltin<"__builtin_ia32_cvtpi2pd">, Intrinsic<[llvm_v2f64_ty], [llvm_x86mmx_ty], [IntrNoMem]>; } // Misc. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_packsswb_128 : GCCBuiltin<"__builtin_ia32_packsswb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_packssdw_128 : GCCBuiltin<"__builtin_ia32_packssdw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sse2_packuswb_128 : GCCBuiltin<"__builtin_ia32_packuswb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_sse2_movmsk_pd : GCCBuiltin<"__builtin_ia32_movmskpd">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse2_pmovmskb_128 : GCCBuiltin<"__builtin_ia32_pmovmskb128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_sse2_maskmov_dqu : GCCBuiltin<"__builtin_ia32_maskmovdqu">, Intrinsic<[], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_ptr_ty], []>; def int_x86_sse2_clflush : GCCBuiltin<"__builtin_ia32_clflush">, Intrinsic<[], [llvm_ptr_ty], []>; def int_x86_sse2_lfence : GCCBuiltin<"__builtin_ia32_lfence">, Intrinsic<[], [], []>; def int_x86_sse2_mfence : GCCBuiltin<"__builtin_ia32_mfence">, Intrinsic<[], [], []>; def int_x86_sse2_pause : GCCBuiltin<"__builtin_ia32_pause">, Intrinsic<[], [], []>; } //===----------------------------------------------------------------------===// // SSE3 // Addition / subtraction ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse3_addsub_ps : GCCBuiltin<"__builtin_ia32_addsubps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse3_addsub_pd : GCCBuiltin<"__builtin_ia32_addsubpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; } // Horizontal ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse3_hadd_ps : GCCBuiltin<"__builtin_ia32_haddps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse3_hadd_pd : GCCBuiltin<"__builtin_ia32_haddpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse3_hsub_ps : GCCBuiltin<"__builtin_ia32_hsubps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_sse3_hsub_pd : GCCBuiltin<"__builtin_ia32_hsubpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; } // Specialized unaligned load. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse3_ldu_dq : GCCBuiltin<"__builtin_ia32_lddqu">, Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty], [IntrReadMem]>; } // Thread synchronization ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse3_monitor : GCCBuiltin<"__builtin_ia32_monitor">, Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_sse3_mwait : GCCBuiltin<"__builtin_ia32_mwait">, Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>; } //===----------------------------------------------------------------------===// // SSSE3 // Horizontal arithmetic ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_ssse3_phadd_w : GCCBuiltin<"__builtin_ia32_phaddw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_phadd_w_128 : GCCBuiltin<"__builtin_ia32_phaddw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_ssse3_phadd_d : GCCBuiltin<"__builtin_ia32_phaddd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_phadd_d_128 : GCCBuiltin<"__builtin_ia32_phaddd128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_ssse3_phadd_sw : GCCBuiltin<"__builtin_ia32_phaddsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_phadd_sw_128 : GCCBuiltin<"__builtin_ia32_phaddsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_ssse3_phsub_w : GCCBuiltin<"__builtin_ia32_phsubw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_phsub_w_128 : GCCBuiltin<"__builtin_ia32_phsubw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_ssse3_phsub_d : GCCBuiltin<"__builtin_ia32_phsubd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_phsub_d_128 : GCCBuiltin<"__builtin_ia32_phsubd128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_ssse3_phsub_sw : GCCBuiltin<"__builtin_ia32_phsubsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_phsub_sw_128 : GCCBuiltin<"__builtin_ia32_phsubsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_ssse3_pmadd_ub_sw : GCCBuiltin<"__builtin_ia32_pmaddubsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_pmadd_ub_sw_128 : GCCBuiltin<"__builtin_ia32_pmaddubsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; } // Packed multiply high with round and scale let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_ssse3_pmul_hr_sw : GCCBuiltin<"__builtin_ia32_pmulhrsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_ssse3_pmul_hr_sw_128 : GCCBuiltin<"__builtin_ia32_pmulhrsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem, Commutative]>; } // Shuffle ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_ssse3_pshuf_b : GCCBuiltin<"__builtin_ia32_pshufb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_pshuf_b_128 : GCCBuiltin<"__builtin_ia32_pshufb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_sse_pshuf_w : GCCBuiltin<"__builtin_ia32_pshufw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i8_ty], [IntrNoMem]>; } // Sign ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_ssse3_psign_b : GCCBuiltin<"__builtin_ia32_psignb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_psign_b_128 : GCCBuiltin<"__builtin_ia32_psignb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_ssse3_psign_w : GCCBuiltin<"__builtin_ia32_psignw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_psign_w_128 : GCCBuiltin<"__builtin_ia32_psignw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_ssse3_psign_d : GCCBuiltin<"__builtin_ia32_psignd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_psign_d_128 : GCCBuiltin<"__builtin_ia32_psignd128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; } // Absolute value ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_ssse3_pabs_b : GCCBuiltin<"__builtin_ia32_pabsb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_pabs_b_128 : GCCBuiltin<"__builtin_ia32_pabsb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_ssse3_pabs_w : GCCBuiltin<"__builtin_ia32_pabsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_pabs_w_128 : GCCBuiltin<"__builtin_ia32_pabsw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_ssse3_pabs_d : GCCBuiltin<"__builtin_ia32_pabsd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_ssse3_pabs_d_128 : GCCBuiltin<"__builtin_ia32_pabsd128">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // SSE4.1 // FP rounding ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_round_ss : GCCBuiltin<"__builtin_ia32_roundss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse41_round_ps : GCCBuiltin<"__builtin_ia32_roundps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse41_round_sd : GCCBuiltin<"__builtin_ia32_roundsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse41_round_pd : GCCBuiltin<"__builtin_ia32_roundpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; } // Vector min element let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_phminposuw : GCCBuiltin<"__builtin_ia32_phminposuw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>; } // Advanced Encryption Standard (AES) Instructions let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_aesni_aesimc : GCCBuiltin<"__builtin_ia32_aesimc128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_x86_aesni_aesenc : GCCBuiltin<"__builtin_ia32_aesenc128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_aesni_aesenclast : GCCBuiltin<"__builtin_ia32_aesenclast128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_aesni_aesdec : GCCBuiltin<"__builtin_ia32_aesdec128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_aesni_aesdeclast : GCCBuiltin<"__builtin_ia32_aesdeclast128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_aesni_aeskeygenassist : GCCBuiltin<"__builtin_ia32_aeskeygenassist128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; } // PCLMUL instruction let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_pclmulqdq : GCCBuiltin<"__builtin_ia32_pclmulqdq128">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector pack let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_packusdw : GCCBuiltin<"__builtin_ia32_packusdw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; } // Vector multiply let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_pmuldq : GCCBuiltin<"__builtin_ia32_pmuldq128">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem, Commutative]>; } // Vector insert let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_insertps : GCCBuiltin<"__builtin_ia32_insertps128">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector blend let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_pblendvb : GCCBuiltin<"__builtin_ia32_pblendvb128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,llvm_v16i8_ty], [IntrNoMem]>; def int_x86_sse41_blendvpd : GCCBuiltin<"__builtin_ia32_blendvpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty,llvm_v2f64_ty], [IntrNoMem]>; def int_x86_sse41_blendvps : GCCBuiltin<"__builtin_ia32_blendvps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty,llvm_v4f32_ty], [IntrNoMem]>; } // Vector dot product let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_dppd : GCCBuiltin<"__builtin_ia32_dppd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem, Commutative]>; def int_x86_sse41_dpps : GCCBuiltin<"__builtin_ia32_dpps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem, Commutative]>; } // Vector sum of absolute differences let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_mpsadbw : GCCBuiltin<"__builtin_ia32_mpsadbw128">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty,llvm_i8_ty], [IntrNoMem, Commutative]>; } // Cacheability support ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_movntdqa : GCCBuiltin<"__builtin_ia32_movntdqa">, Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty], [IntrReadMem]>; } // Test instruction with bitwise comparison. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_ptestz : GCCBuiltin<"__builtin_ia32_ptestz128">, Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_sse41_ptestc : GCCBuiltin<"__builtin_ia32_ptestc128">, Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_sse41_ptestnzc : GCCBuiltin<"__builtin_ia32_ptestnzc128">, Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // SSE4.2 // Miscellaneous // CRC Instruction let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse42_crc32_32_8 : GCCBuiltin<"__builtin_ia32_crc32qi">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_crc32_32_16 : GCCBuiltin<"__builtin_ia32_crc32hi">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_sse42_crc32_32_32 : GCCBuiltin<"__builtin_ia32_crc32si">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_sse42_crc32_64_64 : GCCBuiltin<"__builtin_ia32_crc32di">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; } // String/text processing ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse42_pcmpistrm128 : GCCBuiltin<"__builtin_ia32_pcmpistrm128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpistri128 : GCCBuiltin<"__builtin_ia32_pcmpistri128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpistria128 : GCCBuiltin<"__builtin_ia32_pcmpistria128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpistric128 : GCCBuiltin<"__builtin_ia32_pcmpistric128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpistrio128 : GCCBuiltin<"__builtin_ia32_pcmpistrio128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpistris128 : GCCBuiltin<"__builtin_ia32_pcmpistris128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpistriz128 : GCCBuiltin<"__builtin_ia32_pcmpistriz128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestrm128 : GCCBuiltin<"__builtin_ia32_pcmpestrm128">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestri128 : GCCBuiltin<"__builtin_ia32_pcmpestri128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestria128 : GCCBuiltin<"__builtin_ia32_pcmpestria128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestric128 : GCCBuiltin<"__builtin_ia32_pcmpestric128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestrio128 : GCCBuiltin<"__builtin_ia32_pcmpestrio128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestris128 : GCCBuiltin<"__builtin_ia32_pcmpestris128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse42_pcmpestriz128 : GCCBuiltin<"__builtin_ia32_pcmpestriz128">, Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // SSE4A let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse4a_extrqi : GCCBuiltin<"__builtin_ia32_extrqi">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse4a_extrq : GCCBuiltin<"__builtin_ia32_extrq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_sse4a_insertqi : GCCBuiltin<"__builtin_ia32_insertqi">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sse4a_insertq : GCCBuiltin<"__builtin_ia32_insertq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // AVX // Arithmetic ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_addsub_pd_256 : GCCBuiltin<"__builtin_ia32_addsubpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_addsub_ps_256 : GCCBuiltin<"__builtin_ia32_addsubps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_max_pd_256 : GCCBuiltin<"__builtin_ia32_maxpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_max_ps_256 : GCCBuiltin<"__builtin_ia32_maxps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_min_pd_256 : GCCBuiltin<"__builtin_ia32_minpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_min_ps_256 : GCCBuiltin<"__builtin_ia32_minps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_sqrt_pd_256 : GCCBuiltin<"__builtin_ia32_sqrtpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_sqrt_ps_256 : GCCBuiltin<"__builtin_ia32_sqrtps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_rsqrt_ps_256 : GCCBuiltin<"__builtin_ia32_rsqrtps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_rcp_ps_256 : GCCBuiltin<"__builtin_ia32_rcpps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_round_pd_256 : GCCBuiltin<"__builtin_ia32_roundpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx_round_ps_256 : GCCBuiltin<"__builtin_ia32_roundps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_i32_ty], [IntrNoMem]>; } // Horizontal ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_hadd_pd_256 : GCCBuiltin<"__builtin_ia32_haddpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_hsub_ps_256 : GCCBuiltin<"__builtin_ia32_hsubps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_hsub_pd_256 : GCCBuiltin<"__builtin_ia32_hsubpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_hadd_ps_256 : GCCBuiltin<"__builtin_ia32_haddps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; } // Vector permutation let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_vpermilvar_pd : GCCBuiltin<"__builtin_ia32_vpermilvarpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_avx_vpermilvar_ps : GCCBuiltin<"__builtin_ia32_vpermilvarps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx_vpermilvar_pd_256 : GCCBuiltin<"__builtin_ia32_vpermilvarpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx_vpermilvar_ps_256 : GCCBuiltin<"__builtin_ia32_vpermilvarps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx_vperm2f128_pd_256 : GCCBuiltin<"__builtin_ia32_vperm2f128_pd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx_vperm2f128_ps_256 : GCCBuiltin<"__builtin_ia32_vperm2f128_ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx_vperm2f128_si_256 : GCCBuiltin<"__builtin_ia32_vperm2f128_si256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_d_128 : GCCBuiltin<"__builtin_ia32_vpermi2vard128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_d_256 : GCCBuiltin<"__builtin_ia32_vpermi2vard256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_d_512 : GCCBuiltin<"__builtin_ia32_vpermi2vard512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_hi_128 : GCCBuiltin<"__builtin_ia32_vpermi2varhi128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_hi_256 : GCCBuiltin<"__builtin_ia32_vpermi2varhi256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_hi_512 : GCCBuiltin<"__builtin_ia32_vpermi2varhi512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_pd_128 : GCCBuiltin<"__builtin_ia32_vpermi2varpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_pd_256 : GCCBuiltin<"__builtin_ia32_vpermi2varpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_pd_512 : GCCBuiltin<"__builtin_ia32_vpermi2varpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_ps_128 : GCCBuiltin<"__builtin_ia32_vpermi2varps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_ps_256 : GCCBuiltin<"__builtin_ia32_vpermi2varps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_ps_512 : GCCBuiltin<"__builtin_ia32_vpermi2varps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_q_128 : GCCBuiltin<"__builtin_ia32_vpermi2varq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_q_256 : GCCBuiltin<"__builtin_ia32_vpermi2varq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_q_512 : GCCBuiltin<"__builtin_ia32_vpermi2varq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_d_512: GCCBuiltin<"__builtin_ia32_vpermt2vard512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_q_512: GCCBuiltin<"__builtin_ia32_vpermt2varq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_ps_512: GCCBuiltin<"__builtin_ia32_vpermt2varps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16i32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_pd_512: GCCBuiltin<"__builtin_ia32_vpermt2varpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8i64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_d_128 : GCCBuiltin<"__builtin_ia32_vpermt2vard128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_d_128 : GCCBuiltin<"__builtin_ia32_vpermt2vard128_maskz">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_d_256 : GCCBuiltin<"__builtin_ia32_vpermt2vard256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_d_256 : GCCBuiltin<"__builtin_ia32_vpermt2vard256_maskz">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_d_512 : GCCBuiltin<"__builtin_ia32_vpermt2vard512_maskz">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_hi_128 : GCCBuiltin<"__builtin_ia32_vpermt2varhi128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_hi_128 : GCCBuiltin<"__builtin_ia32_vpermt2varhi128_maskz">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_hi_256 : GCCBuiltin<"__builtin_ia32_vpermt2varhi256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_hi_256 : GCCBuiltin<"__builtin_ia32_vpermt2varhi256_maskz">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_hi_512 : GCCBuiltin<"__builtin_ia32_vpermt2varhi512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_hi_512 : GCCBuiltin<"__builtin_ia32_vpermt2varhi512_maskz">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_pd_128 : GCCBuiltin<"__builtin_ia32_vpermt2varpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_pd_128 : GCCBuiltin<"__builtin_ia32_vpermt2varpd128_maskz">, Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_pd_256 : GCCBuiltin<"__builtin_ia32_vpermt2varpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4i64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_pd_256 : GCCBuiltin<"__builtin_ia32_vpermt2varpd256_maskz">, Intrinsic<[llvm_v4f64_ty], [llvm_v4i64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_pd_512 : GCCBuiltin<"__builtin_ia32_vpermt2varpd512_maskz">, Intrinsic<[llvm_v8f64_ty], [llvm_v8i64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_ps_128 : GCCBuiltin<"__builtin_ia32_vpermt2varps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_ps_128 : GCCBuiltin<"__builtin_ia32_vpermt2varps128_maskz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_ps_256 : GCCBuiltin<"__builtin_ia32_vpermt2varps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_ps_256 : GCCBuiltin<"__builtin_ia32_vpermt2varps256_maskz">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_ps_512 : GCCBuiltin<"__builtin_ia32_vpermt2varps512_maskz">, Intrinsic<[llvm_v16f32_ty], [llvm_v16i32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_q_128 : GCCBuiltin<"__builtin_ia32_vpermt2varq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_q_128 : GCCBuiltin<"__builtin_ia32_vpermt2varq128_maskz">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_q_256 : GCCBuiltin<"__builtin_ia32_vpermt2varq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_q_256 : GCCBuiltin<"__builtin_ia32_vpermt2varq256_maskz">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_q_512 : GCCBuiltin<"__builtin_ia32_vpermt2varq512_maskz">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_qi_128 : GCCBuiltin<"__builtin_ia32_vpermi2varqi128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_qi_128 : GCCBuiltin<"__builtin_ia32_vpermt2varqi128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_qi_128 : GCCBuiltin<"__builtin_ia32_vpermt2varqi128_maskz">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_qi_256 : GCCBuiltin<"__builtin_ia32_vpermi2varqi256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_qi_256 : GCCBuiltin<"__builtin_ia32_vpermt2varqi256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_qi_256 : GCCBuiltin<"__builtin_ia32_vpermt2varqi256_maskz">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermi2var_qi_512 : GCCBuiltin<"__builtin_ia32_vpermi2varqi512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermt2var_qi_512 : GCCBuiltin<"__builtin_ia32_vpermt2varqi512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpermt2var_qi_512 : GCCBuiltin<"__builtin_ia32_vpermt2varqi512_maskz">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermilvar_pd_256 : GCCBuiltin<"__builtin_ia32_vpermilvarpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermilvar_pd_512 : GCCBuiltin<"__builtin_ia32_vpermilvarpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermilvar_pd_128 : GCCBuiltin<"__builtin_ia32_vpermilvarpd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermilvar_ps_256 : GCCBuiltin<"__builtin_ia32_vpermilvarps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermilvar_ps_512 : GCCBuiltin<"__builtin_ia32_vpermilvarps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpermilvar_ps_128 : GCCBuiltin<"__builtin_ia32_vpermilvarps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pshuf_b_128 : GCCBuiltin<"__builtin_ia32_pshufb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pshuf_b_256 : GCCBuiltin<"__builtin_ia32_pshufb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pshuf_b_512 : GCCBuiltin<"__builtin_ia32_pshufb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_f32x4_256 : GCCBuiltin<"__builtin_ia32_shuf_f32x4_256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_f32x4 : GCCBuiltin<"__builtin_ia32_shuf_f32x4_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_f64x2_256 : GCCBuiltin<"__builtin_ia32_shuf_f64x2_256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_f64x2 : GCCBuiltin<"__builtin_ia32_shuf_f64x2_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_i32x4_256 : GCCBuiltin<"__builtin_ia32_shuf_i32x4_256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_i32x4 : GCCBuiltin<"__builtin_ia32_shuf_i32x4_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_i64x2_256 : GCCBuiltin<"__builtin_ia32_shuf_i64x2_256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_i64x2 : GCCBuiltin<"__builtin_ia32_shuf_i64x2_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_pd_128 : GCCBuiltin<"__builtin_ia32_shufpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_pd_256 : GCCBuiltin<"__builtin_ia32_shufpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_pd_512 : GCCBuiltin<"__builtin_ia32_shufpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_ps_128 : GCCBuiltin<"__builtin_ia32_shufps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_ps_256 : GCCBuiltin<"__builtin_ia32_shufps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_shuf_ps_512 : GCCBuiltin<"__builtin_ia32_shufps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; } // Vector blend let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_blendv_pd_256 : GCCBuiltin<"__builtin_ia32_blendvpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_blendv_ps_256 : GCCBuiltin<"__builtin_ia32_blendvps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; } // Vector dot product let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_dp_ps_256 : GCCBuiltin<"__builtin_ia32_dpps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector compare let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_cmp_pd_256 : Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx_cmp_ps_256 : Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector convert let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_cvtdq2_ps_256 : GCCBuiltin<"__builtin_ia32_cvtdq2ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx_cvt_pd2_ps_256 : GCCBuiltin<"__builtin_ia32_cvtpd2ps256">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_cvt_ps2dq_256 : GCCBuiltin<"__builtin_ia32_cvtps2dq256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_cvtt_pd2dq_256 : GCCBuiltin<"__builtin_ia32_cvttpd2dq256">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_cvt_pd2dq_256 : GCCBuiltin<"__builtin_ia32_cvtpd2dq256">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_cvtt_ps2dq_256 : GCCBuiltin<"__builtin_ia32_cvttps2dq256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; } // Vector bit test let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_vtestz_pd : GCCBuiltin<"__builtin_ia32_vtestzpd">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_avx_vtestc_pd : GCCBuiltin<"__builtin_ia32_vtestcpd">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_avx_vtestnzc_pd : GCCBuiltin<"__builtin_ia32_vtestnzcpd">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_avx_vtestz_ps : GCCBuiltin<"__builtin_ia32_vtestzps">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_avx_vtestc_ps : GCCBuiltin<"__builtin_ia32_vtestcps">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_avx_vtestnzc_ps : GCCBuiltin<"__builtin_ia32_vtestnzcps">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_avx_vtestz_pd_256 : GCCBuiltin<"__builtin_ia32_vtestzpd256">, Intrinsic<[llvm_i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_vtestc_pd_256 : GCCBuiltin<"__builtin_ia32_vtestcpd256">, Intrinsic<[llvm_i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_vtestnzc_pd_256 : GCCBuiltin<"__builtin_ia32_vtestnzcpd256">, Intrinsic<[llvm_i32_ty], [llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_vtestz_ps_256 : GCCBuiltin<"__builtin_ia32_vtestzps256">, Intrinsic<[llvm_i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_vtestc_ps_256 : GCCBuiltin<"__builtin_ia32_vtestcps256">, Intrinsic<[llvm_i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_vtestnzc_ps_256 : GCCBuiltin<"__builtin_ia32_vtestnzcps256">, Intrinsic<[llvm_i32_ty], [llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_avx_ptestz_256 : GCCBuiltin<"__builtin_ia32_ptestz256">, Intrinsic<[llvm_i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx_ptestc_256 : GCCBuiltin<"__builtin_ia32_ptestc256">, Intrinsic<[llvm_i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx_ptestnzc_256 : GCCBuiltin<"__builtin_ia32_ptestnzc256">, Intrinsic<[llvm_i32_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_d_512 : GCCBuiltin<"__builtin_ia32_ptestmd512">, Intrinsic<[llvm_i16_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_q_512 : GCCBuiltin<"__builtin_ia32_ptestmq512">, Intrinsic<[llvm_i8_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_b_128 : GCCBuiltin<"__builtin_ia32_ptestmb128">, Intrinsic<[llvm_i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_b_256 : GCCBuiltin<"__builtin_ia32_ptestmb256">, Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_b_512 : GCCBuiltin<"__builtin_ia32_ptestmb512">, Intrinsic<[llvm_i64_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_d_128 : GCCBuiltin<"__builtin_ia32_ptestmd128">, Intrinsic<[llvm_i8_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_d_256 : GCCBuiltin<"__builtin_ia32_ptestmd256">, Intrinsic<[llvm_i8_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_q_128 : GCCBuiltin<"__builtin_ia32_ptestmq128">, Intrinsic<[llvm_i8_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_q_256 : GCCBuiltin<"__builtin_ia32_ptestmq256">, Intrinsic<[llvm_i8_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_w_128 : GCCBuiltin<"__builtin_ia32_ptestmw128">, Intrinsic<[llvm_i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_w_256 : GCCBuiltin<"__builtin_ia32_ptestmw256">, Intrinsic<[llvm_i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_ptestm_w_512 : GCCBuiltin<"__builtin_ia32_ptestmw512">, Intrinsic<[llvm_i32_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_b_128 : GCCBuiltin<"__builtin_ia32_ptestnmb128">, Intrinsic<[llvm_i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_b_256 : GCCBuiltin<"__builtin_ia32_ptestnmb256">, Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_b_512 : GCCBuiltin<"__builtin_ia32_ptestnmb512">, Intrinsic<[llvm_i64_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_d_128 : GCCBuiltin<"__builtin_ia32_ptestnmd128">, Intrinsic<[llvm_i8_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_d_256 : GCCBuiltin<"__builtin_ia32_ptestnmd256">, Intrinsic<[llvm_i8_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_d_512 : GCCBuiltin<"__builtin_ia32_ptestnmd512">, Intrinsic<[llvm_i16_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_q_128 : GCCBuiltin<"__builtin_ia32_ptestnmq128">, Intrinsic<[llvm_i8_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_q_256 : GCCBuiltin<"__builtin_ia32_ptestnmq256">, Intrinsic<[llvm_i8_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_q_512 : GCCBuiltin<"__builtin_ia32_ptestnmq512">, Intrinsic<[llvm_i8_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_w_128 : GCCBuiltin<"__builtin_ia32_ptestnmw128">, Intrinsic<[llvm_i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_w_256 : GCCBuiltin<"__builtin_ia32_ptestnmw256">, Intrinsic<[llvm_i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_ptestnm_w_512 : GCCBuiltin<"__builtin_ia32_ptestnmw512">, Intrinsic<[llvm_i32_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_pd_128 : GCCBuiltin<"__builtin_ia32_fpclasspd128_mask">, Intrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_pd_256 : GCCBuiltin<"__builtin_ia32_fpclasspd256_mask">, Intrinsic<[llvm_i8_ty], [llvm_v4f64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_pd_512 : GCCBuiltin<"__builtin_ia32_fpclasspd512_mask">, Intrinsic<[llvm_i8_ty], [llvm_v8f64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_ps_128 : GCCBuiltin<"__builtin_ia32_fpclassps128_mask">, Intrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_ps_256 : GCCBuiltin<"__builtin_ia32_fpclassps256_mask">, Intrinsic<[llvm_i8_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_ps_512 : GCCBuiltin<"__builtin_ia32_fpclassps512_mask">, Intrinsic<[llvm_i16_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_sd : GCCBuiltin<"__builtin_ia32_fpclasssd_mask">, Intrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fpclass_ss : GCCBuiltin<"__builtin_ia32_fpclassss_mask">, Intrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector extract sign mask let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_movmsk_pd_256 : GCCBuiltin<"__builtin_ia32_movmskpd256">, Intrinsic<[llvm_i32_ty], [llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx_movmsk_ps_256 : GCCBuiltin<"__builtin_ia32_movmskps256">, Intrinsic<[llvm_i32_ty], [llvm_v8f32_ty], [IntrNoMem]>; } // Vector zero let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_vzeroall : GCCBuiltin<"__builtin_ia32_vzeroall">, Intrinsic<[], [], []>; def int_x86_avx_vzeroupper : GCCBuiltin<"__builtin_ia32_vzeroupper">, Intrinsic<[], [], []>; } // Vector load with broadcast let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_vbroadcastf128_pd_256 : GCCBuiltin<"__builtin_ia32_vbroadcastf128_pd256">, Intrinsic<[llvm_v4f64_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx_vbroadcastf128_ps_256 : GCCBuiltin<"__builtin_ia32_vbroadcastf128_ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; } // SIMD load ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_ldu_dq_256 : GCCBuiltin<"__builtin_ia32_lddqu256">, Intrinsic<[llvm_v32i8_ty], [llvm_ptr_ty], [IntrReadMem]>; } // Conditional load ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_maskload_pd : GCCBuiltin<"__builtin_ia32_maskloadpd">, Intrinsic<[llvm_v2f64_ty], [llvm_ptr_ty, llvm_v2i64_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx_maskload_ps : GCCBuiltin<"__builtin_ia32_maskloadps">, Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty, llvm_v4i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx_maskload_pd_256 : GCCBuiltin<"__builtin_ia32_maskloadpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_ptr_ty, llvm_v4i64_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx_maskload_ps_256 : GCCBuiltin<"__builtin_ia32_maskloadps256">, Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty, llvm_v8i32_ty], [IntrReadMem, IntrArgMemOnly]>; } // Conditional move ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_move_ss : GCCBuiltin<"__builtin_ia32_movss_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_move_sd : GCCBuiltin<"__builtin_ia32_movsd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; } // Conditional store ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx_maskstore_pd : GCCBuiltin<"__builtin_ia32_maskstorepd">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_v2f64_ty], [IntrArgMemOnly]>; def int_x86_avx_maskstore_ps : GCCBuiltin<"__builtin_ia32_maskstoreps">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f32_ty], [IntrArgMemOnly]>; def int_x86_avx_maskstore_pd_256 : GCCBuiltin<"__builtin_ia32_maskstorepd256">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f64_ty], [IntrArgMemOnly]>; def int_x86_avx_maskstore_ps_256 : GCCBuiltin<"__builtin_ia32_maskstoreps256">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_v8f32_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_store_ss : GCCBuiltin<"__builtin_ia32_storess_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrArgMemOnly]>; } //===----------------------------------------------------------------------===// // AVX2 // Integer arithmetic ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_padds_b : GCCBuiltin<"__builtin_ia32_paddsb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_padds_w : GCCBuiltin<"__builtin_ia32_paddsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_paddus_b : GCCBuiltin<"__builtin_ia32_paddusb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_paddus_w : GCCBuiltin<"__builtin_ia32_paddusw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_psubs_b : GCCBuiltin<"__builtin_ia32_psubsb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx2_psubs_w : GCCBuiltin<"__builtin_ia32_psubsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_psubus_b : GCCBuiltin<"__builtin_ia32_psubusb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx2_psubus_w : GCCBuiltin<"__builtin_ia32_psubusw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_pmulhu_w : GCCBuiltin<"__builtin_ia32_pmulhuw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_pmulh_w : GCCBuiltin<"__builtin_ia32_pmulhw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_pmulu_dq : GCCBuiltin<"__builtin_ia32_pmuludq256">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_pmul_dq : GCCBuiltin<"__builtin_ia32_pmuldq256">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_pmadd_wd : GCCBuiltin<"__builtin_ia32_pmaddwd256">, Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_pavg_b : GCCBuiltin<"__builtin_ia32_pavgb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_pavg_w : GCCBuiltin<"__builtin_ia32_pavgw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_psad_bw : GCCBuiltin<"__builtin_ia32_psadbw256">, Intrinsic<[llvm_v4i64_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem, Commutative]>; } // Vector min, max let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_pmaxs_b_128 : GCCBuiltin<"__builtin_ia32_pmaxsb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_b_256 : GCCBuiltin<"__builtin_ia32_pmaxsb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_b_512 : GCCBuiltin<"__builtin_ia32_pmaxsb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_b_128 : GCCBuiltin<"__builtin_ia32_pmaxub128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_b_256 : GCCBuiltin<"__builtin_ia32_pmaxub256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_b_512 : GCCBuiltin<"__builtin_ia32_pmaxub512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_w_128 : GCCBuiltin<"__builtin_ia32_pmaxsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_w_256 : GCCBuiltin<"__builtin_ia32_pmaxsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_w_512 : GCCBuiltin<"__builtin_ia32_pmaxsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],[IntrNoMem]>; def int_x86_avx512_mask_pmaxu_w_128 : GCCBuiltin<"__builtin_ia32_pmaxuw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_w_256 : GCCBuiltin<"__builtin_ia32_pmaxuw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_w_512 : GCCBuiltin<"__builtin_ia32_pmaxuw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],[IntrNoMem]>; def int_x86_avx512_mask_pmins_b_128 : GCCBuiltin<"__builtin_ia32_pminsb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty,llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_b_256 : GCCBuiltin<"__builtin_ia32_pminsb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_b_512 : GCCBuiltin<"__builtin_ia32_pminsb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_b_128 : GCCBuiltin<"__builtin_ia32_pminub128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_b_256 : GCCBuiltin<"__builtin_ia32_pminub256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_b_512 : GCCBuiltin<"__builtin_ia32_pminub512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_w_128 : GCCBuiltin<"__builtin_ia32_pminsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_w_256 : GCCBuiltin<"__builtin_ia32_pminsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_w_512 : GCCBuiltin<"__builtin_ia32_pminsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty],[IntrNoMem]>; def int_x86_avx512_mask_pminu_w_128 : GCCBuiltin<"__builtin_ia32_pminuw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_w_256 : GCCBuiltin<"__builtin_ia32_pminuw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_w_512 : GCCBuiltin<"__builtin_ia32_pminuw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_d_512 : GCCBuiltin<"__builtin_ia32_pmaxud512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_d_256 : GCCBuiltin<"__builtin_ia32_pmaxud256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_d_128 : GCCBuiltin<"__builtin_ia32_pmaxud128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_d_512 : GCCBuiltin<"__builtin_ia32_pmaxsd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_d_256 : GCCBuiltin<"__builtin_ia32_pmaxsd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_d_128 : GCCBuiltin<"__builtin_ia32_pmaxsd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_q_512 : GCCBuiltin<"__builtin_ia32_pmaxuq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_q_256 : GCCBuiltin<"__builtin_ia32_pmaxuq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxu_q_128 : GCCBuiltin<"__builtin_ia32_pmaxuq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_q_512 : GCCBuiltin<"__builtin_ia32_pmaxsq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_q_256 : GCCBuiltin<"__builtin_ia32_pmaxsq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaxs_q_128 : GCCBuiltin<"__builtin_ia32_pmaxsq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_d_512 : GCCBuiltin<"__builtin_ia32_pminud512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_d_256 : GCCBuiltin<"__builtin_ia32_pminud256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_d_128 : GCCBuiltin<"__builtin_ia32_pminud128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_d_512 : GCCBuiltin<"__builtin_ia32_pminsd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_d_256 : GCCBuiltin<"__builtin_ia32_pminsd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_d_128 : GCCBuiltin<"__builtin_ia32_pminsd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_q_512 : GCCBuiltin<"__builtin_ia32_pminuq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_q_256 : GCCBuiltin<"__builtin_ia32_pminuq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pminu_q_128 : GCCBuiltin<"__builtin_ia32_pminuq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_q_512 : GCCBuiltin<"__builtin_ia32_pminsq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_q_256 : GCCBuiltin<"__builtin_ia32_pminsq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmins_q_128 : GCCBuiltin<"__builtin_ia32_pminsq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Integer shift ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_psll_w : GCCBuiltin<"__builtin_ia32_psllw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_avx2_psll_d : GCCBuiltin<"__builtin_ia32_pslld256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx2_psll_q : GCCBuiltin<"__builtin_ia32_psllq256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_avx2_psrl_w : GCCBuiltin<"__builtin_ia32_psrlw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_avx2_psrl_d : GCCBuiltin<"__builtin_ia32_psrld256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx2_psrl_q : GCCBuiltin<"__builtin_ia32_psrlq256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_avx2_psra_w : GCCBuiltin<"__builtin_ia32_psraw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_avx2_psra_d : GCCBuiltin<"__builtin_ia32_psrad256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx2_pslli_w : GCCBuiltin<"__builtin_ia32_psllwi256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_pslli_d : GCCBuiltin<"__builtin_ia32_pslldi256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_pslli_q : GCCBuiltin<"__builtin_ia32_psllqi256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_psrli_w : GCCBuiltin<"__builtin_ia32_psrlwi256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_psrli_d : GCCBuiltin<"__builtin_ia32_psrldi256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_psrli_q : GCCBuiltin<"__builtin_ia32_psrlqi256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_psrai_w : GCCBuiltin<"__builtin_ia32_psrawi256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx2_psrai_d : GCCBuiltin<"__builtin_ia32_psradi256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_w_128 : GCCBuiltin<"__builtin_ia32_psrlw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_w_256 : GCCBuiltin<"__builtin_ia32_psrlw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v8i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_w_512 : GCCBuiltin<"__builtin_ia32_psrlw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v8i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_wi_128 : GCCBuiltin<"__builtin_ia32_psrlwi128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_wi_256 : GCCBuiltin<"__builtin_ia32_psrlwi256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_wi_512 : GCCBuiltin<"__builtin_ia32_psrlwi512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_i32_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_w_128 : GCCBuiltin<"__builtin_ia32_psraw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_w_256 : GCCBuiltin<"__builtin_ia32_psraw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v8i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_w_512 : GCCBuiltin<"__builtin_ia32_psraw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v8i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_wi_128 : GCCBuiltin<"__builtin_ia32_psrawi128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_wi_256 : GCCBuiltin<"__builtin_ia32_psrawi256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_wi_512 : GCCBuiltin<"__builtin_ia32_psrawi512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_i32_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_d : GCCBuiltin<"__builtin_ia32_pslld512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v4i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_q : GCCBuiltin<"__builtin_ia32_psllq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v2i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_d : GCCBuiltin<"__builtin_ia32_psrld512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v4i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_q : GCCBuiltin<"__builtin_ia32_psrlq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v2i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_d : GCCBuiltin<"__builtin_ia32_psrad512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v4i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_q : GCCBuiltin<"__builtin_ia32_psraq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v2i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_w_128 : GCCBuiltin<"__builtin_ia32_psllw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_w_256 : GCCBuiltin<"__builtin_ia32_psllw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v8i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_w_512 : GCCBuiltin<"__builtin_ia32_psllw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v8i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_wi_128 : GCCBuiltin<"__builtin_ia32_psllwi128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_wi_256 : GCCBuiltin<"__builtin_ia32_psllwi256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_wi_512 : GCCBuiltin<"__builtin_ia32_psllwi512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_i32_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv16_hi : GCCBuiltin<"__builtin_ia32_psllv16hi_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv2_di : GCCBuiltin<"__builtin_ia32_psllv2di_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv32hi : GCCBuiltin<"__builtin_ia32_psllv32hi_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv4_di : GCCBuiltin<"__builtin_ia32_psllv4di_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv4_si : GCCBuiltin<"__builtin_ia32_psllv4si_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv8_hi : GCCBuiltin<"__builtin_ia32_psllv8hi_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv8_si : GCCBuiltin<"__builtin_ia32_psllv8si_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_d_128 : GCCBuiltin<"__builtin_ia32_psrad128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_d_256 : GCCBuiltin<"__builtin_ia32_psrad256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v4i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_di_128 : GCCBuiltin<"__builtin_ia32_psradi128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_di_256 : GCCBuiltin<"__builtin_ia32_psradi256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_di_512 : GCCBuiltin<"__builtin_ia32_psradi512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_q_128 : GCCBuiltin<"__builtin_ia32_psraq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_q_256 : GCCBuiltin<"__builtin_ia32_psraq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v2i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_qi_128 : GCCBuiltin<"__builtin_ia32_psraqi128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_qi_256 : GCCBuiltin<"__builtin_ia32_psraqi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psra_qi_512 : GCCBuiltin<"__builtin_ia32_psraqi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_d_128: GCCBuiltin<"__builtin_ia32_psrld128_mask">, Intrinsic<[llvm_v4i32_ty], [ llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty ], [IntrNoMem]>; def int_x86_avx512_mask_psrl_d_256: GCCBuiltin<"__builtin_ia32_psrld256_mask">, Intrinsic<[llvm_v8i32_ty], [ llvm_v8i32_ty, llvm_v4i32_ty, llvm_v8i32_ty, llvm_i8_ty ], [IntrNoMem]>; def int_x86_avx512_mask_psrl_di_128: GCCBuiltin<"__builtin_ia32_psrldi128_mask">, Intrinsic<[llvm_v4i32_ty], [ llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty ], [IntrNoMem]>; def int_x86_avx512_mask_psrl_di_256: GCCBuiltin<"__builtin_ia32_psrldi256_mask">, Intrinsic<[llvm_v8i32_ty], [ llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty ], [IntrNoMem]>; def int_x86_avx512_mask_psrl_di_512: GCCBuiltin<"__builtin_ia32_psrldi512_mask">, Intrinsic<[llvm_v16i32_ty], [ llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty ], [IntrNoMem]>; def int_x86_avx512_mask_psrl_q_128: GCCBuiltin<"__builtin_ia32_psrlq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_q_256: GCCBuiltin<"__builtin_ia32_psrlq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v2i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_qi_128: GCCBuiltin<"__builtin_ia32_psrlqi128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_qi_256: GCCBuiltin<"__builtin_ia32_psrlqi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrl_qi_512: GCCBuiltin<"__builtin_ia32_psrlqi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmultishift_qb_128: GCCBuiltin<"__builtin_ia32_vpmultishiftqb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmultishift_qb_256: GCCBuiltin<"__builtin_ia32_vpmultishiftqb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmultishift_qb_512: GCCBuiltin<"__builtin_ia32_vpmultishiftqb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; } // Pack ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_packsswb : GCCBuiltin<"__builtin_ia32_packsswb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_packssdw : GCCBuiltin<"__builtin_ia32_packssdw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_packuswb : GCCBuiltin<"__builtin_ia32_packuswb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_packusdw : GCCBuiltin<"__builtin_ia32_packusdw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; } // Absolute value ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_pabs_b : GCCBuiltin<"__builtin_ia32_pabsb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx2_pabs_w : GCCBuiltin<"__builtin_ia32_pabsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_pabs_d : GCCBuiltin<"__builtin_ia32_pabsd256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_b_128 : GCCBuiltin<"__builtin_ia32_pabsb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_b_256 : GCCBuiltin<"__builtin_ia32_pabsb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_b_512 : GCCBuiltin<"__builtin_ia32_pabsb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_d_128 : GCCBuiltin<"__builtin_ia32_pabsd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_d_256 : GCCBuiltin<"__builtin_ia32_pabsd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_d_512 : GCCBuiltin<"__builtin_ia32_pabsd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_q_128 : GCCBuiltin<"__builtin_ia32_pabsq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_q_256 : GCCBuiltin<"__builtin_ia32_pabsq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_q_512 : GCCBuiltin<"__builtin_ia32_pabsq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_w_128 : GCCBuiltin<"__builtin_ia32_pabsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_w_256 : GCCBuiltin<"__builtin_ia32_pabsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pabs_w_512 : GCCBuiltin<"__builtin_ia32_pabsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; } // Horizontal arithmetic ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_phadd_w : GCCBuiltin<"__builtin_ia32_phaddw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_phadd_d : GCCBuiltin<"__builtin_ia32_phaddd256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_phadd_sw : GCCBuiltin<"__builtin_ia32_phaddsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_phsub_w : GCCBuiltin<"__builtin_ia32_phsubw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_phsub_d : GCCBuiltin<"__builtin_ia32_phsubd256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_phsub_sw : GCCBuiltin<"__builtin_ia32_phsubsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_pmadd_ub_sw : GCCBuiltin<"__builtin_ia32_pmaddubsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; } // Sign ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_psign_b : GCCBuiltin<"__builtin_ia32_psignb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx2_psign_w : GCCBuiltin<"__builtin_ia32_psignw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx2_psign_d : GCCBuiltin<"__builtin_ia32_psignd256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; } // Packed multiply high with round and scale let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_pmul_hr_sw : GCCBuiltin<"__builtin_ia32_pmulhrsw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty], [IntrNoMem, Commutative]>; def int_x86_avx512_mask_pmul_hr_sw_128 : GCCBuiltin<"__builtin_ia32_pmulhrsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmul_hr_sw_256 : GCCBuiltin<"__builtin_ia32_pmulhrsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmul_hr_sw_512 : GCCBuiltin<"__builtin_ia32_pmulhrsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; } // Vector blend let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_pblendvb : GCCBuiltin<"__builtin_ia32_pblendvb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; } // Vector load with broadcast let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_pbroadcast_b_gpr_128 : GCCBuiltin<"__builtin_ia32_pbroadcastb128_gpr_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_b_gpr_256 : GCCBuiltin<"__builtin_ia32_pbroadcastb256_gpr_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_b_gpr_512 : GCCBuiltin<"__builtin_ia32_pbroadcastb512_gpr_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_w_gpr_128 : GCCBuiltin<"__builtin_ia32_pbroadcastw128_gpr_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_w_gpr_256 : GCCBuiltin<"__builtin_ia32_pbroadcastw256_gpr_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_w_gpr_512 : GCCBuiltin<"__builtin_ia32_pbroadcastw512_gpr_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_d_gpr_128 : GCCBuiltin<"__builtin_ia32_pbroadcastd128_gpr_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_d_gpr_256 : GCCBuiltin<"__builtin_ia32_pbroadcastd256_gpr_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_d_gpr_512 : GCCBuiltin<"__builtin_ia32_pbroadcastd512_gpr_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_q_gpr_128 : GCCBuiltin<"__builtin_ia32_pbroadcastq128_gpr_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_q_gpr_256 : GCCBuiltin<"__builtin_ia32_pbroadcastq256_gpr_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_q_gpr_512 : GCCBuiltin<"__builtin_ia32_pbroadcastq512_gpr_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pbroadcast_q_mem_512 : GCCBuiltin<"__builtin_ia32_pbroadcastq512_mem_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector permutation let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_permd : GCCBuiltin<"__builtin_ia32_permvarsi256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_permps : GCCBuiltin<"__builtin_ia32_permvarsf256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_vperm2i128 : GCCBuiltin<"__builtin_ia32_permti256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Vector extract and insert let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_vextractf32x4_512 : GCCBuiltin<"__builtin_ia32_extractf32x4_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextracti32x4_512 : GCCBuiltin<"__builtin_ia32_extracti32x4_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextractf32x4_256 : GCCBuiltin<"__builtin_ia32_extractf32x4_256_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextracti32x4_256 : GCCBuiltin<"__builtin_ia32_extracti32x4_256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextractf64x2_256 : GCCBuiltin<"__builtin_ia32_extractf64x2_256_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v4f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextracti64x2_256 : GCCBuiltin<"__builtin_ia32_extracti64x2_256_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextractf64x2_512 : GCCBuiltin<"__builtin_ia32_extractf64x2_512_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v8f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextracti64x2_512 : GCCBuiltin<"__builtin_ia32_extracti64x2_512_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v8i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextractf32x8_512 : GCCBuiltin<"__builtin_ia32_extractf32x8_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextracti32x8_512 : GCCBuiltin<"__builtin_ia32_extracti32x8_mask">, Intrinsic<[llvm_v8i32_ty],[llvm_v16i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextractf64x4_512 : GCCBuiltin<"__builtin_ia32_extractf64x4_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v8f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vextracti64x4_512 : GCCBuiltin<"__builtin_ia32_extracti64x4_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_insertf32x4_256 : GCCBuiltin<"__builtin_ia32_insertf32x4_256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_insertf32x4_512 : GCCBuiltin<"__builtin_ia32_insertf32x4_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_insertf32x8_512 : GCCBuiltin<"__builtin_ia32_insertf32x8_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v8f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_insertf64x2_256 : GCCBuiltin<"__builtin_ia32_insertf64x2_256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_insertf64x2_512 : GCCBuiltin<"__builtin_ia32_insertf64x2_512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_insertf64x4_512 : GCCBuiltin<"__builtin_ia32_insertf64x4_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v4f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_inserti32x4_256 : GCCBuiltin<"__builtin_ia32_inserti32x4_256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_inserti32x4_512 : GCCBuiltin<"__builtin_ia32_inserti32x4_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_inserti32x8_512 : GCCBuiltin<"__builtin_ia32_inserti32x8_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_inserti64x2_256 : GCCBuiltin<"__builtin_ia32_inserti64x2_256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_inserti64x2_512 : GCCBuiltin<"__builtin_ia32_inserti64x2_512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_inserti64x4_512 : GCCBuiltin<"__builtin_ia32_inserti64x4_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Conditional load ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_maskload_d : GCCBuiltin<"__builtin_ia32_maskloadd">, Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_v4i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_maskload_q : GCCBuiltin<"__builtin_ia32_maskloadq">, Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_v2i64_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_maskload_d_256 : GCCBuiltin<"__builtin_ia32_maskloadd256">, Intrinsic<[llvm_v8i32_ty], [llvm_ptr_ty, llvm_v8i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_maskload_q_256 : GCCBuiltin<"__builtin_ia32_maskloadq256">, Intrinsic<[llvm_v4i64_ty], [llvm_ptr_ty, llvm_v4i64_ty], [IntrReadMem, IntrArgMemOnly]>; } // Conditional store ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_maskstore_d : GCCBuiltin<"__builtin_ia32_maskstored">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrArgMemOnly]>; def int_x86_avx2_maskstore_q : GCCBuiltin<"__builtin_ia32_maskstoreq">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrArgMemOnly]>; def int_x86_avx2_maskstore_d_256 : GCCBuiltin<"__builtin_ia32_maskstored256">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i32_ty], [IntrArgMemOnly]>; def int_x86_avx2_maskstore_q_256 : GCCBuiltin<"__builtin_ia32_maskstoreq256">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrArgMemOnly]>; } // Variable bit shift ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_psllv_d : GCCBuiltin<"__builtin_ia32_psllv4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx2_psllv_d_256 : GCCBuiltin<"__builtin_ia32_psllv8si">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_psllv_q : GCCBuiltin<"__builtin_ia32_psllv2di">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_avx2_psllv_q_256 : GCCBuiltin<"__builtin_ia32_psllv4di">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx2_psrlv_d : GCCBuiltin<"__builtin_ia32_psrlv4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx2_psrlv_d_256 : GCCBuiltin<"__builtin_ia32_psrlv8si">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx2_psrlv_q : GCCBuiltin<"__builtin_ia32_psrlv2di">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_avx2_psrlv_q_256 : GCCBuiltin<"__builtin_ia32_psrlv4di">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx2_psrav_d : GCCBuiltin<"__builtin_ia32_psrav4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx2_psrav_d_256 : GCCBuiltin<"__builtin_ia32_psrav8si">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv_d : GCCBuiltin<"__builtin_ia32_psllv16si_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psllv_q : GCCBuiltin<"__builtin_ia32_psllv8di_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav_d : GCCBuiltin<"__builtin_ia32_psrav16si_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav_q : GCCBuiltin<"__builtin_ia32_psrav8di_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv_d : GCCBuiltin<"__builtin_ia32_psrlv16si_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv_q : GCCBuiltin<"__builtin_ia32_psrlv8di_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_d_128 : GCCBuiltin<"__builtin_ia32_pslld128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_d_256 : GCCBuiltin<"__builtin_ia32_pslld256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v4i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_di_128 : GCCBuiltin<"__builtin_ia32_pslldi128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_di_256 : GCCBuiltin<"__builtin_ia32_pslldi256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_di_512 : GCCBuiltin<"__builtin_ia32_pslldi512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_q_128 : GCCBuiltin<"__builtin_ia32_psllq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_q_256 : GCCBuiltin<"__builtin_ia32_psllq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v2i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_qi_128 : GCCBuiltin<"__builtin_ia32_psllqi128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_qi_256 : GCCBuiltin<"__builtin_ia32_psllqi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psll_qi_512 : GCCBuiltin<"__builtin_ia32_psllqi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav16_hi : GCCBuiltin<"__builtin_ia32_psrav16hi_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav32_hi : GCCBuiltin<"__builtin_ia32_psrav32hi_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav4_si : GCCBuiltin<"__builtin_ia32_psrav4si_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav8_hi : GCCBuiltin<"__builtin_ia32_psrav8hi_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav8_si : GCCBuiltin<"__builtin_ia32_psrav8si_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav_q_128 : GCCBuiltin<"__builtin_ia32_psravq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrav_q_256 : GCCBuiltin<"__builtin_ia32_psravq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv16_hi : GCCBuiltin<"__builtin_ia32_psrlv16hi_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv2_di : GCCBuiltin<"__builtin_ia32_psrlv2di_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv32hi : GCCBuiltin<"__builtin_ia32_psrlv32hi_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv4_di : GCCBuiltin<"__builtin_ia32_psrlv4di_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv4_si : GCCBuiltin<"__builtin_ia32_psrlv4si_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv8_hi : GCCBuiltin<"__builtin_ia32_psrlv8hi_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psrlv8_si : GCCBuiltin<"__builtin_ia32_psrlv8si_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prorv_d_128 : GCCBuiltin<"__builtin_ia32_prorvd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prorv_d_256 : GCCBuiltin<"__builtin_ia32_prorvd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prorv_d_512 : GCCBuiltin<"__builtin_ia32_prorvd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_prorv_q_128 : GCCBuiltin<"__builtin_ia32_prorvq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prorv_q_256 : GCCBuiltin<"__builtin_ia32_prorvq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prorv_q_512 : GCCBuiltin<"__builtin_ia32_prorvq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prol_d_128 : GCCBuiltin<"__builtin_ia32_prold128_mask">, Intrinsic<[llvm_v4i32_ty] , [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prol_d_256 : GCCBuiltin<"__builtin_ia32_prold256_mask">, Intrinsic<[llvm_v8i32_ty] , [llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prol_d_512 : GCCBuiltin<"__builtin_ia32_prold512_mask">, Intrinsic<[llvm_v16i32_ty] , [llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_prol_q_128 : GCCBuiltin<"__builtin_ia32_prolq128_mask">, Intrinsic<[llvm_v2i64_ty] , [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prol_q_256 : GCCBuiltin<"__builtin_ia32_prolq256_mask">, Intrinsic<[llvm_v4i64_ty] , [llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prol_q_512 : GCCBuiltin<"__builtin_ia32_prolq512_mask">, Intrinsic<[llvm_v8i64_ty] , [llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prolv_d_128 : GCCBuiltin<"__builtin_ia32_prolvd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prolv_d_256 : GCCBuiltin<"__builtin_ia32_prolvd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prolv_d_512 : GCCBuiltin<"__builtin_ia32_prolvd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_prolv_q_128 : GCCBuiltin<"__builtin_ia32_prolvq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prolv_q_256 : GCCBuiltin<"__builtin_ia32_prolvq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_prolv_q_512 : GCCBuiltin<"__builtin_ia32_prolvq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pror_d_128 : GCCBuiltin<"__builtin_ia32_prord128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pror_d_256 : GCCBuiltin<"__builtin_ia32_prord256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pror_d_512 : GCCBuiltin<"__builtin_ia32_prord512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pror_q_128 : GCCBuiltin<"__builtin_ia32_prorq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pror_q_256 : GCCBuiltin<"__builtin_ia32_prorq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pror_q_512 : GCCBuiltin<"__builtin_ia32_prorq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Gather ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_gather_d_pd : GCCBuiltin<"__builtin_ia32_gatherd_pd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_pd_256 : GCCBuiltin<"__builtin_ia32_gatherd_pd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_pd : GCCBuiltin<"__builtin_ia32_gatherq_pd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_pd_256 : GCCBuiltin<"__builtin_ia32_gatherq_pd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_ps : GCCBuiltin<"__builtin_ia32_gatherd_ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_ps_256 : GCCBuiltin<"__builtin_ia32_gatherd_ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_ps : GCCBuiltin<"__builtin_ia32_gatherq_ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_ps_256 : GCCBuiltin<"__builtin_ia32_gatherq_ps256">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_q : GCCBuiltin<"__builtin_ia32_gatherd_q">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_q_256 : GCCBuiltin<"__builtin_ia32_gatherd_q256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_q : GCCBuiltin<"__builtin_ia32_gatherq_q">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_q_256 : GCCBuiltin<"__builtin_ia32_gatherq_q256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_d : GCCBuiltin<"__builtin_ia32_gatherd_d">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_d_d_256 : GCCBuiltin<"__builtin_ia32_gatherd_d256">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_d : GCCBuiltin<"__builtin_ia32_gatherq_d">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx2_gather_q_d_256 : GCCBuiltin<"__builtin_ia32_gatherq_d256">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; } // Misc. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx2_pmovmskb : GCCBuiltin<"__builtin_ia32_pmovmskb256">, Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx2_pshuf_b : GCCBuiltin<"__builtin_ia32_pshufb256">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx2_mpsadbw : GCCBuiltin<"__builtin_ia32_mpsadbw256">, Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i8_ty], [IntrNoMem, Commutative]>; def int_x86_avx2_movntdqa : GCCBuiltin<"__builtin_ia32_movntdqa256">, Intrinsic<[llvm_v4i64_ty], [llvm_ptr_ty], [IntrReadMem]>; } //===----------------------------------------------------------------------===// // FMA3 and FMA4 let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_fma_vfmadd_ss : GCCBuiltin<"__builtin_ia32_vfmaddss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfmadd_sd : GCCBuiltin<"__builtin_ia32_vfmaddsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfmadd_ps : GCCBuiltin<"__builtin_ia32_vfmaddps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfmadd_pd : GCCBuiltin<"__builtin_ia32_vfmaddpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_fma_vfmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_fma_vfmsub_ss : GCCBuiltin<"__builtin_ia32_vfmsubss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfmsub_sd : GCCBuiltin<"__builtin_ia32_vfmsubsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfmsub_ps : GCCBuiltin<"__builtin_ia32_vfmsubps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfmsub_pd : GCCBuiltin<"__builtin_ia32_vfmsubpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfmsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfmsubps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_fma_vfmsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfmsubpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_fma_vfnmadd_ss : GCCBuiltin<"__builtin_ia32_vfnmaddss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfnmadd_sd : GCCBuiltin<"__builtin_ia32_vfnmaddsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfnmadd_ps : GCCBuiltin<"__builtin_ia32_vfnmaddps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfnmadd_pd : GCCBuiltin<"__builtin_ia32_vfnmaddpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfnmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfnmaddps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_fma_vfnmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfnmaddpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_fma_vfnmsub_ss : GCCBuiltin<"__builtin_ia32_vfnmsubss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfnmsub_sd : GCCBuiltin<"__builtin_ia32_vfnmsubsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfnmsub_ps : GCCBuiltin<"__builtin_ia32_vfnmsubps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfnmsub_pd : GCCBuiltin<"__builtin_ia32_vfnmsubpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfnmsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfnmsubps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_fma_vfnmsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfnmsubpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_fma_vfmaddsub_ps : GCCBuiltin<"__builtin_ia32_vfmaddsubps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfmaddsub_pd : GCCBuiltin<"__builtin_ia32_vfmaddsubpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfmaddsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_fma_vfmaddsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_fma_vfmsubadd_ps : GCCBuiltin<"__builtin_ia32_vfmsubaddps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_x86_fma_vfmsubadd_pd : GCCBuiltin<"__builtin_ia32_vfmsubaddpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>; def int_x86_fma_vfmsubadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmsubaddps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty], [IntrNoMem]>; def int_x86_fma_vfmsubadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmsubaddpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_pd_128 : GCCBuiltin<"__builtin_ia32_vfmaddpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_pd_128 : GCCBuiltin<"__builtin_ia32_vfmaddpd128_mask3">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_pd_128 : GCCBuiltin<"__builtin_ia32_vfmaddpd128_maskz">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddpd256_mask3">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddpd256_maskz">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_pd_512 : GCCBuiltin<"__builtin_ia32_vfmaddpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_pd_512 : GCCBuiltin<"__builtin_ia32_vfmaddpd512_mask3">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_pd_512 : GCCBuiltin<"__builtin_ia32_vfmaddpd512_maskz">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_ps_128 : GCCBuiltin<"__builtin_ia32_vfmaddps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_ps_128 : GCCBuiltin<"__builtin_ia32_vfmaddps128_mask3">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_ps_128 : GCCBuiltin<"__builtin_ia32_vfmaddps128_maskz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddps256_mask3">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddps256_maskz">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_ps_512 : GCCBuiltin<"__builtin_ia32_vfmaddps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_ps_512 : GCCBuiltin<"__builtin_ia32_vfmaddps512_mask3">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_ps_512 : GCCBuiltin<"__builtin_ia32_vfmaddps512_maskz">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmaddsub_pd_128 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmaddsub_pd_128 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd128_mask3">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmaddsub_pd_128 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd128_maskz">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmaddsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmaddsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd256_mask3">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmaddsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd256_maskz">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmaddsub_pd_512 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmaddsub_pd_512 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd512_mask3">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmaddsub_pd_512 : GCCBuiltin<"__builtin_ia32_vfmaddsubpd512_maskz">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmaddsub_ps_128 : GCCBuiltin<"__builtin_ia32_vfmaddsubps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmaddsub_ps_128 : GCCBuiltin<"__builtin_ia32_vfmaddsubps128_mask3">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmaddsub_ps_128 : GCCBuiltin<"__builtin_ia32_vfmaddsubps128_maskz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmaddsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmaddsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubps256_mask3">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmaddsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfmaddsubps256_maskz">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmaddsub_ps_512 : GCCBuiltin<"__builtin_ia32_vfmaddsubps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmaddsub_ps_512 : GCCBuiltin<"__builtin_ia32_vfmaddsubps512_mask3">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmaddsub_ps_512 : GCCBuiltin<"__builtin_ia32_vfmaddsubps512_maskz">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_sd : GCCBuiltin<"__builtin_ia32_vfmaddsd3_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfmadd_ss : GCCBuiltin<"__builtin_ia32_vfmaddss3_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_sd : GCCBuiltin<"__builtin_ia32_vfmaddsd3_maskz">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vfmadd_ss : GCCBuiltin<"__builtin_ia32_vfmaddss3_maskz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_sd : GCCBuiltin<"__builtin_ia32_vfmaddsd3_mask3">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmadd_ss : GCCBuiltin<"__builtin_ia32_vfmaddss3_mask3">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsub_pd_128 : GCCBuiltin<"__builtin_ia32_vfmsubpd128_mask3">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfmsubpd256_mask3">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsub_pd_512 : GCCBuiltin<"__builtin_ia32_vfmsubpd512_mask3">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsub_ps_128 : GCCBuiltin<"__builtin_ia32_vfmsubps128_mask3">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfmsubps256_mask3">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsub_ps_512 : GCCBuiltin<"__builtin_ia32_vfmsubps512_mask3">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsubadd_pd_128 : GCCBuiltin<"__builtin_ia32_vfmsubaddpd128_mask3">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsubadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfmsubaddpd256_mask3">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsubadd_pd_512 : GCCBuiltin<"__builtin_ia32_vfmsubaddpd512_mask3">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsubadd_ps_128 : GCCBuiltin<"__builtin_ia32_vfmsubaddps128_mask3">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsubadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfmsubaddps256_mask3">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfmsubadd_ps_512 : GCCBuiltin<"__builtin_ia32_vfmsubaddps512_mask3">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmadd_pd_128 : GCCBuiltin<"__builtin_ia32_vfnmaddpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmadd_pd_256 : GCCBuiltin<"__builtin_ia32_vfnmaddpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmadd_pd_512 : GCCBuiltin<"__builtin_ia32_vfnmaddpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmadd_ps_128 : GCCBuiltin<"__builtin_ia32_vfnmaddps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmadd_ps_256 : GCCBuiltin<"__builtin_ia32_vfnmaddps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmadd_ps_512 : GCCBuiltin<"__builtin_ia32_vfnmaddps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmsub_pd_128 : GCCBuiltin<"__builtin_ia32_vfnmsubpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfnmsub_pd_128 : GCCBuiltin<"__builtin_ia32_vfnmsubpd128_mask3">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfnmsubpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfnmsub_pd_256 : GCCBuiltin<"__builtin_ia32_vfnmsubpd256_mask3">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmsub_pd_512 : GCCBuiltin<"__builtin_ia32_vfnmsubpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfnmsub_pd_512 : GCCBuiltin<"__builtin_ia32_vfnmsubpd512_mask3">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmsub_ps_128 : GCCBuiltin<"__builtin_ia32_vfnmsubps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfnmsub_ps_128 : GCCBuiltin<"__builtin_ia32_vfnmsubps128_mask3">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfnmsubps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfnmsub_ps_256 : GCCBuiltin<"__builtin_ia32_vfnmsubps256_mask3">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vfnmsub_ps_512 : GCCBuiltin<"__builtin_ia32_vfnmsubps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask3_vfnmsub_ps_512 : GCCBuiltin<"__builtin_ia32_vfnmsubps512_mask3">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpmadd52h_uq_128 : GCCBuiltin<"__builtin_ia32_vpmadd52huq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpmadd52h_uq_128 : GCCBuiltin<"__builtin_ia32_vpmadd52huq128_maskz">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpmadd52l_uq_128 : GCCBuiltin<"__builtin_ia32_vpmadd52luq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpmadd52l_uq_128 : GCCBuiltin<"__builtin_ia32_vpmadd52luq128_maskz">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpmadd52h_uq_256 : GCCBuiltin<"__builtin_ia32_vpmadd52huq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpmadd52h_uq_256 : GCCBuiltin<"__builtin_ia32_vpmadd52huq256_maskz">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpmadd52l_uq_256 : GCCBuiltin<"__builtin_ia32_vpmadd52luq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpmadd52l_uq_256 : GCCBuiltin<"__builtin_ia32_vpmadd52luq256_maskz">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpmadd52h_uq_512 : GCCBuiltin<"__builtin_ia32_vpmadd52huq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpmadd52h_uq_512 : GCCBuiltin<"__builtin_ia32_vpmadd52huq512_maskz">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vpmadd52l_uq_512 : GCCBuiltin<"__builtin_ia32_vpmadd52luq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_vpmadd52l_uq_512 : GCCBuiltin<"__builtin_ia32_vpmadd52luq512_maskz">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // XOP let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_xop_vpermil2pd : GCCBuiltin<"__builtin_ia32_vpermil2pd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpermil2pd_256 : GCCBuiltin<"__builtin_ia32_vpermil2pd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpermil2ps : GCCBuiltin<"__builtin_ia32_vpermil2ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpermil2ps_256 : GCCBuiltin<"__builtin_ia32_vpermil2ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vfrcz_pd : GCCBuiltin<"__builtin_ia32_vfrczpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_xop_vfrcz_ps : GCCBuiltin<"__builtin_ia32_vfrczps">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_xop_vfrcz_sd : GCCBuiltin<"__builtin_ia32_vfrczsd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>; def int_x86_xop_vfrcz_ss : GCCBuiltin<"__builtin_ia32_vfrczss">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>; def int_x86_xop_vfrcz_pd_256 : GCCBuiltin<"__builtin_ia32_vfrczpd256">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty], [IntrNoMem]>; def int_x86_xop_vfrcz_ps_256 : GCCBuiltin<"__builtin_ia32_vfrczps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty], [IntrNoMem]>; def int_x86_xop_vpcmov : GCCBuiltin<"__builtin_ia32_vpcmov">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpcmov_256 : GCCBuiltin<"__builtin_ia32_vpcmov_256">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty], [IntrNoMem]>; def int_x86_xop_vpcomb : GCCBuiltin<"__builtin_ia32_vpcomb">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomw : GCCBuiltin<"__builtin_ia32_vpcomw">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomd : GCCBuiltin<"__builtin_ia32_vpcomd">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomq : GCCBuiltin<"__builtin_ia32_vpcomq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomub : GCCBuiltin<"__builtin_ia32_vpcomub">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomuw : GCCBuiltin<"__builtin_ia32_vpcomuw">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomud : GCCBuiltin<"__builtin_ia32_vpcomud">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpcomuq : GCCBuiltin<"__builtin_ia32_vpcomuq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vphaddbd : GCCBuiltin<"__builtin_ia32_vphaddbd">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphaddbq : GCCBuiltin<"__builtin_ia32_vphaddbq">, Intrinsic<[llvm_v2i64_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphaddbw : GCCBuiltin<"__builtin_ia32_vphaddbw">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphadddq : GCCBuiltin<"__builtin_ia32_vphadddq">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vphaddubd : GCCBuiltin<"__builtin_ia32_vphaddubd">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphaddubq : GCCBuiltin<"__builtin_ia32_vphaddubq">, Intrinsic<[llvm_v2i64_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphaddubw : GCCBuiltin<"__builtin_ia32_vphaddubw">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphaddudq : GCCBuiltin<"__builtin_ia32_vphaddudq">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vphadduwd : GCCBuiltin<"__builtin_ia32_vphadduwd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vphadduwq : GCCBuiltin<"__builtin_ia32_vphadduwq">, Intrinsic<[llvm_v2i64_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vphaddwd : GCCBuiltin<"__builtin_ia32_vphaddwd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vphaddwq : GCCBuiltin<"__builtin_ia32_vphaddwq">, Intrinsic<[llvm_v2i64_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vphsubbw : GCCBuiltin<"__builtin_ia32_vphsubbw">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vphsubdq : GCCBuiltin<"__builtin_ia32_vphsubdq">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vphsubwd : GCCBuiltin<"__builtin_ia32_vphsubwd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vpmacsdd : GCCBuiltin<"__builtin_ia32_vpmacsdd">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpmacsdqh : GCCBuiltin<"__builtin_ia32_vpmacsdqh">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpmacsdql : GCCBuiltin<"__builtin_ia32_vpmacsdql">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpmacssdd : GCCBuiltin<"__builtin_ia32_vpmacssdd">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpmacssdqh : GCCBuiltin<"__builtin_ia32_vpmacssdqh">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpmacssdql : GCCBuiltin<"__builtin_ia32_vpmacssdql">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpmacsswd : GCCBuiltin<"__builtin_ia32_vpmacsswd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpmacssww : GCCBuiltin<"__builtin_ia32_vpmacssww">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vpmacswd : GCCBuiltin<"__builtin_ia32_vpmacswd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpmacsww : GCCBuiltin<"__builtin_ia32_vpmacsww">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vpmadcsswd : GCCBuiltin<"__builtin_ia32_vpmadcsswd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpmadcswd : GCCBuiltin<"__builtin_ia32_vpmadcswd">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpperm : GCCBuiltin<"__builtin_ia32_vpperm">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vprotb : GCCBuiltin<"__builtin_ia32_vprotb">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vprotd : GCCBuiltin<"__builtin_ia32_vprotd">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vprotq : GCCBuiltin<"__builtin_ia32_vprotq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vprotw : GCCBuiltin<"__builtin_ia32_vprotw">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vprotbi : GCCBuiltin<"__builtin_ia32_vprotbi">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vprotdi : GCCBuiltin<"__builtin_ia32_vprotdi">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vprotqi : GCCBuiltin<"__builtin_ia32_vprotqi">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vprotwi : GCCBuiltin<"__builtin_ia32_vprotwi">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_xop_vpshab : GCCBuiltin<"__builtin_ia32_vpshab">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vpshad : GCCBuiltin<"__builtin_ia32_vpshad">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpshaq : GCCBuiltin<"__builtin_ia32_vpshaq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpshaw : GCCBuiltin<"__builtin_ia32_vpshaw">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; def int_x86_xop_vpshlb : GCCBuiltin<"__builtin_ia32_vpshlb">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>; def int_x86_xop_vpshld : GCCBuiltin<"__builtin_ia32_vpshld">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_xop_vpshlq : GCCBuiltin<"__builtin_ia32_vpshlq">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>; def int_x86_xop_vpshlw : GCCBuiltin<"__builtin_ia32_vpshlw">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // MMX // Empty MMX state op. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_mmx_emms : GCCBuiltin<"__builtin_ia32_emms">, Intrinsic<[], [], []>; def int_x86_mmx_femms : GCCBuiltin<"__builtin_ia32_femms">, Intrinsic<[], [], []>; } // Integer arithmetic ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". // Addition def int_x86_mmx_padd_b : GCCBuiltin<"__builtin_ia32_paddb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_padd_w : GCCBuiltin<"__builtin_ia32_paddw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_padd_d : GCCBuiltin<"__builtin_ia32_paddd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_padd_q : GCCBuiltin<"__builtin_ia32_paddq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_padds_b : GCCBuiltin<"__builtin_ia32_paddsb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_padds_w : GCCBuiltin<"__builtin_ia32_paddsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_paddus_b : GCCBuiltin<"__builtin_ia32_paddusb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_paddus_w : GCCBuiltin<"__builtin_ia32_paddusw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; // Subtraction def int_x86_mmx_psub_b : GCCBuiltin<"__builtin_ia32_psubb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psub_w : GCCBuiltin<"__builtin_ia32_psubw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psub_d : GCCBuiltin<"__builtin_ia32_psubd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psub_q : GCCBuiltin<"__builtin_ia32_psubq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psubs_b : GCCBuiltin<"__builtin_ia32_psubsb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psubs_w : GCCBuiltin<"__builtin_ia32_psubsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psubus_b : GCCBuiltin<"__builtin_ia32_psubusb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psubus_w : GCCBuiltin<"__builtin_ia32_psubusw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; // Multiplication def int_x86_mmx_pmulh_w : GCCBuiltin<"__builtin_ia32_pmulhw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pmull_w : GCCBuiltin<"__builtin_ia32_pmullw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pmulhu_w : GCCBuiltin<"__builtin_ia32_pmulhuw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pmulu_dq : GCCBuiltin<"__builtin_ia32_pmuludq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pmadd_wd : GCCBuiltin<"__builtin_ia32_pmaddwd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; // Bitwise operations def int_x86_mmx_pand : GCCBuiltin<"__builtin_ia32_pand">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_pandn : GCCBuiltin<"__builtin_ia32_pandn">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_por : GCCBuiltin<"__builtin_ia32_por">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_pxor : GCCBuiltin<"__builtin_ia32_pxor">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; // Averages def int_x86_mmx_pavg_b : GCCBuiltin<"__builtin_ia32_pavgb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pavg_w : GCCBuiltin<"__builtin_ia32_pavgw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; // Maximum def int_x86_mmx_pmaxu_b : GCCBuiltin<"__builtin_ia32_pmaxub">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pmaxs_w : GCCBuiltin<"__builtin_ia32_pmaxsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; // Minimum def int_x86_mmx_pminu_b : GCCBuiltin<"__builtin_ia32_pminub">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pmins_w : GCCBuiltin<"__builtin_ia32_pminsw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; // Packed sum of absolute differences def int_x86_mmx_psad_bw : GCCBuiltin<"__builtin_ia32_psadbw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; } // Integer shift ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". // Shift left logical def int_x86_mmx_psll_w : GCCBuiltin<"__builtin_ia32_psllw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psll_d : GCCBuiltin<"__builtin_ia32_pslld">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psll_q : GCCBuiltin<"__builtin_ia32_psllq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psrl_w : GCCBuiltin<"__builtin_ia32_psrlw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psrl_d : GCCBuiltin<"__builtin_ia32_psrld">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psrl_q : GCCBuiltin<"__builtin_ia32_psrlq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psra_w : GCCBuiltin<"__builtin_ia32_psraw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_psra_d : GCCBuiltin<"__builtin_ia32_psrad">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_pslli_w : GCCBuiltin<"__builtin_ia32_psllwi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_pslli_d : GCCBuiltin<"__builtin_ia32_pslldi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_pslli_q : GCCBuiltin<"__builtin_ia32_psllqi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_psrli_w : GCCBuiltin<"__builtin_ia32_psrlwi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_psrli_d : GCCBuiltin<"__builtin_ia32_psrldi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_psrli_q : GCCBuiltin<"__builtin_ia32_psrlqi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_psrai_w : GCCBuiltin<"__builtin_ia32_psrawi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_psrai_d : GCCBuiltin<"__builtin_ia32_psradi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; } // Permute let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_permvar_df_256 : GCCBuiltin<"__builtin_ia32_permvardf256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_df_512 : GCCBuiltin<"__builtin_ia32_permvardf512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_di_256 : GCCBuiltin<"__builtin_ia32_permvardi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_di_512 : GCCBuiltin<"__builtin_ia32_permvardi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_hi_128 : GCCBuiltin<"__builtin_ia32_permvarhi128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_hi_256 : GCCBuiltin<"__builtin_ia32_permvarhi256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_hi_512 : GCCBuiltin<"__builtin_ia32_permvarhi512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_qi_128 : GCCBuiltin<"__builtin_ia32_permvarqi128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_qi_256 : GCCBuiltin<"__builtin_ia32_permvarqi256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_qi_512 : GCCBuiltin<"__builtin_ia32_permvarqi512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_sf_256 : GCCBuiltin<"__builtin_ia32_permvarsf256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_sf_512 : GCCBuiltin<"__builtin_ia32_permvarsf512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_si_256 : GCCBuiltin<"__builtin_ia32_permvarsi256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_permvar_si_512 : GCCBuiltin<"__builtin_ia32_permvarsi512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; } // Pack ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_mmx_packsswb : GCCBuiltin<"__builtin_ia32_packsswb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_packssdw : GCCBuiltin<"__builtin_ia32_packssdw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_packuswb : GCCBuiltin<"__builtin_ia32_packuswb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; } // Unpacking ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_mmx_punpckhbw : GCCBuiltin<"__builtin_ia32_punpckhbw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_punpckhwd : GCCBuiltin<"__builtin_ia32_punpckhwd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_punpckhdq : GCCBuiltin<"__builtin_ia32_punpckhdq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_punpcklbw : GCCBuiltin<"__builtin_ia32_punpcklbw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_punpcklwd : GCCBuiltin<"__builtin_ia32_punpcklwd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_punpckldq : GCCBuiltin<"__builtin_ia32_punpckldq">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; } // Integer comparison ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_mmx_pcmpeq_b : GCCBuiltin<"__builtin_ia32_pcmpeqb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pcmpeq_w : GCCBuiltin<"__builtin_ia32_pcmpeqw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pcmpeq_d : GCCBuiltin<"__builtin_ia32_pcmpeqd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem, Commutative]>; def int_x86_mmx_pcmpgt_b : GCCBuiltin<"__builtin_ia32_pcmpgtb">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_pcmpgt_w : GCCBuiltin<"__builtin_ia32_pcmpgtw">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_pcmpgt_d : GCCBuiltin<"__builtin_ia32_pcmpgtd">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty], [IntrNoMem]>; } // Misc. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_mmx_maskmovq : GCCBuiltin<"__builtin_ia32_maskmovq">, Intrinsic<[], [llvm_x86mmx_ty, llvm_x86mmx_ty, llvm_ptr_ty], []>; def int_x86_mmx_pmovmskb : GCCBuiltin<"__builtin_ia32_pmovmskb">, Intrinsic<[llvm_i32_ty], [llvm_x86mmx_ty], [IntrNoMem]>; def int_x86_mmx_movnt_dq : GCCBuiltin<"__builtin_ia32_movntq">, Intrinsic<[], [llvm_ptrx86mmx_ty, llvm_x86mmx_ty], []>; def int_x86_mmx_palignr_b : GCCBuiltin<"__builtin_ia32_palignr">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_x86mmx_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_mmx_pextr_w : GCCBuiltin<"__builtin_ia32_vec_ext_v4hi">, Intrinsic<[llvm_i32_ty], [llvm_x86mmx_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_mmx_pinsr_w : GCCBuiltin<"__builtin_ia32_vec_set_v4hi">, Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // BMI let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_bmi_bextr_32 : GCCBuiltin<"__builtin_ia32_bextr_u32">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_bmi_bextr_64 : GCCBuiltin<"__builtin_ia32_bextr_u64">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_bmi_bzhi_32 : GCCBuiltin<"__builtin_ia32_bzhi_si">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_bmi_bzhi_64 : GCCBuiltin<"__builtin_ia32_bzhi_di">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_bmi_pdep_32 : GCCBuiltin<"__builtin_ia32_pdep_si">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_bmi_pdep_64 : GCCBuiltin<"__builtin_ia32_pdep_di">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_bmi_pext_32 : GCCBuiltin<"__builtin_ia32_pext_si">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_bmi_pext_64 : GCCBuiltin<"__builtin_ia32_pext_di">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // FS/GS Base let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_rdfsbase_32 : GCCBuiltin<"__builtin_ia32_rdfsbase32">, Intrinsic<[llvm_i32_ty], []>; def int_x86_rdgsbase_32 : GCCBuiltin<"__builtin_ia32_rdgsbase32">, Intrinsic<[llvm_i32_ty], []>; def int_x86_rdfsbase_64 : GCCBuiltin<"__builtin_ia32_rdfsbase64">, Intrinsic<[llvm_i64_ty], []>; def int_x86_rdgsbase_64 : GCCBuiltin<"__builtin_ia32_rdgsbase64">, Intrinsic<[llvm_i64_ty], []>; def int_x86_wrfsbase_32 : GCCBuiltin<"__builtin_ia32_wrfsbase32">, Intrinsic<[], [llvm_i32_ty]>; def int_x86_wrgsbase_32 : GCCBuiltin<"__builtin_ia32_wrgsbase32">, Intrinsic<[], [llvm_i32_ty]>; def int_x86_wrfsbase_64 : GCCBuiltin<"__builtin_ia32_wrfsbase64">, Intrinsic<[], [llvm_i64_ty]>; def int_x86_wrgsbase_64 : GCCBuiltin<"__builtin_ia32_wrgsbase64">, Intrinsic<[], [llvm_i64_ty]>; } //===----------------------------------------------------------------------===// // FXSR let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_fxrstor : GCCBuiltin<"__builtin_ia32_fxrstor">, Intrinsic<[], [llvm_ptr_ty], []>; def int_x86_fxrstor64 : GCCBuiltin<"__builtin_ia32_fxrstor64">, Intrinsic<[], [llvm_ptr_ty], []>; def int_x86_fxsave : GCCBuiltin<"__builtin_ia32_fxsave">, Intrinsic<[], [llvm_ptr_ty], []>; def int_x86_fxsave64 : GCCBuiltin<"__builtin_ia32_fxsave64">, Intrinsic<[], [llvm_ptr_ty], []>; } //===----------------------------------------------------------------------===// // XSAVE let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_xsave : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsave64 : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xrstor : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xrstor64 : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsaveopt : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsaveopt64 : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xrstors : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xrstors64 : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsavec : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsavec64 : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsaves : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; def int_x86_xsaves64 : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], []>; } //===----------------------------------------------------------------------===// // CLFLUSHOPT let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_clflushopt : GCCBuiltin<"__builtin_ia32_clflushopt">, Intrinsic<[], [llvm_ptr_ty], []>; } //===----------------------------------------------------------------------===// // Support protection key let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_rdpkru : GCCBuiltin <"__builtin_ia32_rdpkru">, Intrinsic<[llvm_i32_ty], [], []>; def int_x86_wrpkru : GCCBuiltin<"__builtin_ia32_wrpkru">, Intrinsic<[], [llvm_i32_ty], []>; } //===----------------------------------------------------------------------===// // Half float conversion let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_vcvtph2ps_128 : GCCBuiltin<"__builtin_ia32_vcvtph2ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_vcvtph2ps_256 : GCCBuiltin<"__builtin_ia32_vcvtph2ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_vcvtps2ph_128 : GCCBuiltin<"__builtin_ia32_vcvtps2ph">, Intrinsic<[llvm_v8i16_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_vcvtps2ph_256 : GCCBuiltin<"__builtin_ia32_vcvtps2ph256">, Intrinsic<[llvm_v8i16_ty], [llvm_v8f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vcvtph2ps_512 : GCCBuiltin<"__builtin_ia32_vcvtph2ps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16i16_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_vcvtph2ps_256 : GCCBuiltin<"__builtin_ia32_vcvtph2ps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i16_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vcvtph2ps_128 : GCCBuiltin<"__builtin_ia32_vcvtph2ps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vcvtps2ph_512 : GCCBuiltin<"__builtin_ia32_vcvtps2ph512_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_vcvtps2ph_256 : GCCBuiltin<"__builtin_ia32_vcvtps2ph256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_vcvtps2ph_128 : GCCBuiltin<"__builtin_ia32_vcvtps2ph_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // TBM let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_tbm_bextri_u32 : GCCBuiltin<"__builtin_ia32_bextri_u32">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_tbm_bextri_u64 : GCCBuiltin<"__builtin_ia32_bextri_u64">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // RDRAND intrinsics - Return a random value and whether it is valid. // RDSEED intrinsics - Return a NIST SP800-90B & C compliant random value and // whether it is valid. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". // These are declared side-effecting so they don't get eliminated by CSE or // LICM. def int_x86_rdrand_16 : Intrinsic<[llvm_i16_ty, llvm_i32_ty], [], []>; def int_x86_rdrand_32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [], []>; def int_x86_rdrand_64 : Intrinsic<[llvm_i64_ty, llvm_i32_ty], [], []>; def int_x86_rdseed_16 : Intrinsic<[llvm_i16_ty, llvm_i32_ty], [], []>; def int_x86_rdseed_32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [], []>; def int_x86_rdseed_64 : Intrinsic<[llvm_i64_ty, llvm_i32_ty], [], []>; } //===----------------------------------------------------------------------===// // ADX let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_addcarryx_u32: GCCBuiltin<"__builtin_ia32_addcarryx_u32">, Intrinsic<[llvm_i8_ty], [llvm_i8_ty, llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_x86_addcarryx_u64: GCCBuiltin<"__builtin_ia32_addcarryx_u64">, Intrinsic<[llvm_i8_ty], [llvm_i8_ty, llvm_i64_ty, llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_x86_addcarry_u32: GCCBuiltin<"__builtin_ia32_addcarry_u32">, Intrinsic<[llvm_i8_ty], [llvm_i8_ty, llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_x86_addcarry_u64: GCCBuiltin<"__builtin_ia32_addcarry_u64">, Intrinsic<[llvm_i8_ty], [llvm_i8_ty, llvm_i64_ty, llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_x86_subborrow_u32: GCCBuiltin<"__builtin_ia32_subborrow_u32">, Intrinsic<[llvm_i8_ty], [llvm_i8_ty, llvm_i32_ty, llvm_i32_ty, llvm_ptr_ty], [IntrArgMemOnly]>; def int_x86_subborrow_u64: GCCBuiltin<"__builtin_ia32_subborrow_u64">, Intrinsic<[llvm_i8_ty], [llvm_i8_ty, llvm_i64_ty, llvm_i64_ty, llvm_ptr_ty], [IntrArgMemOnly]>; } //===----------------------------------------------------------------------===// // RTM intrinsics. Transactional Memory support. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_xbegin : GCCBuiltin<"__builtin_ia32_xbegin">, Intrinsic<[llvm_i32_ty], [], []>; def int_x86_xend : GCCBuiltin<"__builtin_ia32_xend">, Intrinsic<[], [], []>; def int_x86_xabort : GCCBuiltin<"__builtin_ia32_xabort">, Intrinsic<[], [llvm_i8_ty], []>; def int_x86_xtest : GCCBuiltin<"__builtin_ia32_xtest">, Intrinsic<[llvm_i32_ty], [], []>; } //===----------------------------------------------------------------------===// // AVX512 // Mask ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". // Mask instructions // 16-bit mask def int_x86_avx512_kand_w : GCCBuiltin<"__builtin_ia32_kandhi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kandn_w : GCCBuiltin<"__builtin_ia32_kandnhi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_knot_w : GCCBuiltin<"__builtin_ia32_knothi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kor_w : GCCBuiltin<"__builtin_ia32_korhi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kxor_w : GCCBuiltin<"__builtin_ia32_kxorhi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kxnor_w : GCCBuiltin<"__builtin_ia32_kxnorhi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kunpck_bw : GCCBuiltin<"__builtin_ia32_kunpckhi">, Intrinsic<[llvm_i16_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kunpck_wd : GCCBuiltin<"__builtin_ia32_kunpcksi">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_kunpck_dq : GCCBuiltin<"__builtin_ia32_kunpckdi">, Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_kortestz_w : GCCBuiltin<"__builtin_ia32_kortestzhi">, Intrinsic<[llvm_i32_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_kortestc_w : GCCBuiltin<"__builtin_ia32_kortestchi">, Intrinsic<[llvm_i32_ty], [llvm_i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_d_128 : GCCBuiltin<"__builtin_ia32_pmovsxbd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_d_256 : GCCBuiltin<"__builtin_ia32_pmovsxbd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v16i8_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_d_512 : GCCBuiltin<"__builtin_ia32_pmovsxbd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i8_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_q_128 : GCCBuiltin<"__builtin_ia32_pmovsxbq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v16i8_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_q_256 : GCCBuiltin<"__builtin_ia32_pmovsxbq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v16i8_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_q_512 : GCCBuiltin<"__builtin_ia32_pmovsxbq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v16i8_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_w_128 : GCCBuiltin<"__builtin_ia32_pmovsxbw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_w_256 : GCCBuiltin<"__builtin_ia32_pmovsxbw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i8_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxb_w_512 : GCCBuiltin<"__builtin_ia32_pmovsxbw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i8_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxd_q_128 : GCCBuiltin<"__builtin_ia32_pmovsxdq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxd_q_256 : GCCBuiltin<"__builtin_ia32_pmovsxdq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxd_q_512 : GCCBuiltin<"__builtin_ia32_pmovsxdq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxw_d_128 : GCCBuiltin<"__builtin_ia32_pmovsxwd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxw_d_256 : GCCBuiltin<"__builtin_ia32_pmovsxwd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i16_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxw_d_512 : GCCBuiltin<"__builtin_ia32_pmovsxwd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i16_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxw_q_128 : GCCBuiltin<"__builtin_ia32_pmovsxwq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v8i16_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxw_q_256 : GCCBuiltin<"__builtin_ia32_pmovsxwq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i16_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovsxw_q_512 : GCCBuiltin<"__builtin_ia32_pmovsxwq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i16_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Conversion ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_cvttss2si : GCCBuiltin<"__builtin_ia32_vcvttss2si32">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttss2si64 : GCCBuiltin<"__builtin_ia32_vcvttss2si64">, Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttss2usi : GCCBuiltin<"__builtin_ia32_vcvttss2usi32">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttss2usi64 : GCCBuiltin<"__builtin_ia32_vcvttss2usi64">, Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtusi2ss : GCCBuiltin<"__builtin_ia32_cvtusi2ss32">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtusi642ss : GCCBuiltin<"__builtin_ia32_cvtusi2ss64">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttsd2si : GCCBuiltin<"__builtin_ia32_vcvttsd2si32">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttsd2si64 : GCCBuiltin<"__builtin_ia32_vcvttsd2si64">, Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttsd2usi : GCCBuiltin<"__builtin_ia32_vcvttsd2usi32">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvttsd2usi64 : GCCBuiltin<"__builtin_ia32_vcvttsd2usi64">, Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtusi2sd : GCCBuiltin<"__builtin_ia32_cvtusi2sd32">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtusi642sd : GCCBuiltin<"__builtin_ia32_cvtusi2sd64">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtss2usi32 : GCCBuiltin<"__builtin_ia32_vcvtss2usi32">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtss2usi64 : GCCBuiltin<"__builtin_ia32_vcvtss2usi64">, Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtss2si32 : GCCBuiltin<"__builtin_ia32_vcvtss2si32">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtss2si64 : GCCBuiltin<"__builtin_ia32_vcvtss2si64">, Intrinsic<[llvm_i64_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtsd2usi32 : GCCBuiltin<"__builtin_ia32_vcvtsd2usi32">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtsd2usi64 : GCCBuiltin<"__builtin_ia32_vcvtsd2usi64">, Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtsd2si32 : GCCBuiltin<"__builtin_ia32_vcvtsd2si32">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcvtsd2si64 : GCCBuiltin<"__builtin_ia32_vcvtsd2si64">, Intrinsic<[llvm_i64_ty], [llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtsi2ss32 : GCCBuiltin<"__builtin_ia32_cvtsi2ss32">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtsi2ss64 : GCCBuiltin<"__builtin_ia32_cvtsi2ss64">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtsi2sd32 : GCCBuiltin<"__builtin_ia32_cvtsi2sd32">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtsi2sd64 : GCCBuiltin<"__builtin_ia32_cvtsi2sd64">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtb2mask_128 : GCCBuiltin<"__builtin_ia32_cvtb2mask128">, Intrinsic<[llvm_i16_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtb2mask_256 : GCCBuiltin<"__builtin_ia32_cvtb2mask256">, Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtb2mask_512 : GCCBuiltin<"__builtin_ia32_cvtb2mask512">, Intrinsic<[llvm_i64_ty], [llvm_v64i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtw2mask_128 : GCCBuiltin<"__builtin_ia32_cvtw2mask128">, Intrinsic<[llvm_i8_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_avx512_cvtw2mask_256 : GCCBuiltin<"__builtin_ia32_cvtw2mask256">, Intrinsic<[llvm_i16_ty], [llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx512_cvtw2mask_512 : GCCBuiltin<"__builtin_ia32_cvtw2mask512">, Intrinsic<[llvm_i32_ty], [llvm_v32i16_ty], [IntrNoMem]>; def int_x86_avx512_cvtd2mask_128 : GCCBuiltin<"__builtin_ia32_cvtd2mask128">, Intrinsic<[llvm_i8_ty], [llvm_v4i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtd2mask_256 : GCCBuiltin<"__builtin_ia32_cvtd2mask256">, Intrinsic<[llvm_i8_ty], [llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtd2mask_512 : GCCBuiltin<"__builtin_ia32_cvtd2mask512">, Intrinsic<[llvm_i16_ty], [llvm_v16i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtq2mask_128 : GCCBuiltin<"__builtin_ia32_cvtq2mask128">, Intrinsic<[llvm_i8_ty], [llvm_v2i64_ty], [IntrNoMem]>; def int_x86_avx512_cvtq2mask_256 : GCCBuiltin<"__builtin_ia32_cvtq2mask256">, Intrinsic<[llvm_i8_ty], [llvm_v4i64_ty], [IntrNoMem]>; def int_x86_avx512_cvtq2mask_512 : GCCBuiltin<"__builtin_ia32_cvtq2mask512">, Intrinsic<[llvm_i8_ty], [llvm_v8i64_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2b_128 : GCCBuiltin<"__builtin_ia32_cvtmask2b128">, Intrinsic<[llvm_v16i8_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2b_256 : GCCBuiltin<"__builtin_ia32_cvtmask2b256">, Intrinsic<[llvm_v32i8_ty], [llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2b_512 : GCCBuiltin<"__builtin_ia32_cvtmask2b512">, Intrinsic<[llvm_v64i8_ty], [llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2w_128 : GCCBuiltin<"__builtin_ia32_cvtmask2w128">, Intrinsic<[llvm_v8i16_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2w_256 : GCCBuiltin<"__builtin_ia32_cvtmask2w256">, Intrinsic<[llvm_v16i16_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2w_512 : GCCBuiltin<"__builtin_ia32_cvtmask2w512">, Intrinsic<[llvm_v32i16_ty], [llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2d_128 : GCCBuiltin<"__builtin_ia32_cvtmask2d128">, Intrinsic<[llvm_v4i32_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2d_256 : GCCBuiltin<"__builtin_ia32_cvtmask2d256">, Intrinsic<[llvm_v8i32_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2d_512 : GCCBuiltin<"__builtin_ia32_cvtmask2d512">, Intrinsic<[llvm_v16i32_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2q_128 : GCCBuiltin<"__builtin_ia32_cvtmask2q128">, Intrinsic<[llvm_v2i64_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2q_256 : GCCBuiltin<"__builtin_ia32_cvtmask2q256">, Intrinsic<[llvm_v4i64_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_cvtmask2q_512 : GCCBuiltin<"__builtin_ia32_cvtmask2q512">, Intrinsic<[llvm_v8i64_ty], [llvm_i8_ty], [IntrNoMem]>; } // Pack ops. let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_packsswb_128 : GCCBuiltin<"__builtin_ia32_packsswb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_packsswb_256 : GCCBuiltin<"__builtin_ia32_packsswb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty,llvm_v16i16_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_packsswb_512 : GCCBuiltin<"__builtin_ia32_packsswb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v32i16_ty,llvm_v32i16_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_packssdw_128 : GCCBuiltin<"__builtin_ia32_packssdw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_packssdw_256 : GCCBuiltin<"__builtin_ia32_packssdw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_packssdw_512 : GCCBuiltin<"__builtin_ia32_packssdw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_packuswb_128 : GCCBuiltin<"__builtin_ia32_packuswb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_packuswb_256 : GCCBuiltin<"__builtin_ia32_packuswb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v16i16_ty,llvm_v16i16_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_packuswb_512 : GCCBuiltin<"__builtin_ia32_packuswb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v32i16_ty,llvm_v32i16_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_packusdw_128 : GCCBuiltin<"__builtin_ia32_packusdw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_packusdw_256 : GCCBuiltin<"__builtin_ia32_packusdw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_packusdw_512 : GCCBuiltin<"__builtin_ia32_packusdw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; } // Vector convert let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_cvtdq2pd_128 : GCCBuiltin<"__builtin_ia32_cvtdq2pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtdq2pd_256 : GCCBuiltin<"__builtin_ia32_cvtdq2pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtdq2pd_512 : GCCBuiltin<"__builtin_ia32_cvtdq2pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8i32_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtdq2ps_128 : GCCBuiltin<"__builtin_ia32_cvtdq2ps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtdq2ps_256 : GCCBuiltin<"__builtin_ia32_cvtdq2ps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtdq2ps_512 : GCCBuiltin<"__builtin_ia32_cvtdq2ps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2dq_128 : GCCBuiltin<"__builtin_ia32_cvtpd2dq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2dq_256 : GCCBuiltin<"__builtin_ia32_cvtpd2dq256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2dq_512 : GCCBuiltin<"__builtin_ia32_cvtpd2dq512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f64_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2ps_256 : GCCBuiltin<"__builtin_ia32_cvtpd2ps256_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2ps_512 : GCCBuiltin<"__builtin_ia32_cvtpd2ps512_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f64_ty, llvm_v8f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtsd2ss_round : GCCBuiltin<"__builtin_ia32_cvtsd2ss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v2f64_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtss2sd_round : GCCBuiltin<"__builtin_ia32_cvtss2sd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v4f32_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2ps : GCCBuiltin<"__builtin_ia32_cvtpd2ps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v2f64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2qq_128 : GCCBuiltin<"__builtin_ia32_cvtpd2qq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2qq_256 : GCCBuiltin<"__builtin_ia32_cvtpd2qq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2qq_512 : GCCBuiltin<"__builtin_ia32_cvtpd2qq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2udq_128 : GCCBuiltin<"__builtin_ia32_cvtpd2udq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2udq_256 : GCCBuiltin<"__builtin_ia32_cvtpd2udq256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2udq_512 : GCCBuiltin<"__builtin_ia32_cvtpd2udq512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f64_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2uqq_128 : GCCBuiltin<"__builtin_ia32_cvtpd2uqq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2uqq_256 : GCCBuiltin<"__builtin_ia32_cvtpd2uqq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtpd2uqq_512 : GCCBuiltin<"__builtin_ia32_cvtpd2uqq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2dq_128 : GCCBuiltin<"__builtin_ia32_cvtps2dq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2dq_256 : GCCBuiltin<"__builtin_ia32_cvtps2dq256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2dq_512 : GCCBuiltin<"__builtin_ia32_cvtps2dq512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2pd_128 : GCCBuiltin<"__builtin_ia32_cvtps2pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2pd_256 : GCCBuiltin<"__builtin_ia32_cvtps2pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2pd_512 : GCCBuiltin<"__builtin_ia32_cvtps2pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f32_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2qq_128 : GCCBuiltin<"__builtin_ia32_cvtps2qq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2qq_256 : GCCBuiltin<"__builtin_ia32_cvtps2qq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2qq_512 : GCCBuiltin<"__builtin_ia32_cvtps2qq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f32_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2udq_128 : GCCBuiltin<"__builtin_ia32_cvtps2udq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2udq_256 : GCCBuiltin<"__builtin_ia32_cvtps2udq256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2udq_512 : GCCBuiltin<"__builtin_ia32_cvtps2udq512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2uqq_128 : GCCBuiltin<"__builtin_ia32_cvtps2uqq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2uqq_256 : GCCBuiltin<"__builtin_ia32_cvtps2uqq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtps2uqq_512 : GCCBuiltin<"__builtin_ia32_cvtps2uqq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f32_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtqq2pd_128 : GCCBuiltin<"__builtin_ia32_cvtqq2pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtqq2pd_256 : GCCBuiltin<"__builtin_ia32_cvtqq2pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtqq2pd_512 : GCCBuiltin<"__builtin_ia32_cvtqq2pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtqq2ps_128 : GCCBuiltin<"__builtin_ia32_cvtqq2ps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v2i64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtqq2ps_256 : GCCBuiltin<"__builtin_ia32_cvtqq2ps256_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtqq2ps_512 : GCCBuiltin<"__builtin_ia32_cvtqq2ps512_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i64_ty, llvm_v8f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2dq_128 : GCCBuiltin<"__builtin_ia32_cvttpd2dq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2dq_256 : GCCBuiltin<"__builtin_ia32_cvttpd2dq256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2dq_512 : GCCBuiltin<"__builtin_ia32_cvttpd2dq512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f64_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2qq_128 : GCCBuiltin<"__builtin_ia32_cvttpd2qq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2qq_256 : GCCBuiltin<"__builtin_ia32_cvttpd2qq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2qq_512 : GCCBuiltin<"__builtin_ia32_cvttpd2qq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2udq_128 : GCCBuiltin<"__builtin_ia32_cvttpd2udq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2udq_256 : GCCBuiltin<"__builtin_ia32_cvttpd2udq256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2udq_512 : GCCBuiltin<"__builtin_ia32_cvttpd2udq512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f64_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2uqq_128 : GCCBuiltin<"__builtin_ia32_cvttpd2uqq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2uqq_256 : GCCBuiltin<"__builtin_ia32_cvttpd2uqq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttpd2uqq_512 : GCCBuiltin<"__builtin_ia32_cvttpd2uqq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f64_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2dq_128 : GCCBuiltin<"__builtin_ia32_cvttps2dq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2dq_256 : GCCBuiltin<"__builtin_ia32_cvttps2dq256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2dq_512 : GCCBuiltin<"__builtin_ia32_cvttps2dq512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2qq_128 : GCCBuiltin<"__builtin_ia32_cvttps2qq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2qq_256 : GCCBuiltin<"__builtin_ia32_cvttps2qq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2qq_512 : GCCBuiltin<"__builtin_ia32_cvttps2qq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f32_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2udq_128 : GCCBuiltin<"__builtin_ia32_cvttps2udq128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2udq_256 : GCCBuiltin<"__builtin_ia32_cvttps2udq256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8f32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2udq_512 : GCCBuiltin<"__builtin_ia32_cvttps2udq512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16f32_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2uqq_128 : GCCBuiltin<"__builtin_ia32_cvttps2uqq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4f32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2uqq_256 : GCCBuiltin<"__builtin_ia32_cvttps2uqq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4f32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvttps2uqq_512 : GCCBuiltin<"__builtin_ia32_cvttps2uqq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8f32_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtudq2pd_128 : GCCBuiltin<"__builtin_ia32_cvtudq2pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtudq2pd_256 : GCCBuiltin<"__builtin_ia32_cvtudq2pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtudq2pd_512 : GCCBuiltin<"__builtin_ia32_cvtudq2pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8i32_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtudq2ps_128 : GCCBuiltin<"__builtin_ia32_cvtudq2ps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtudq2ps_256 : GCCBuiltin<"__builtin_ia32_cvtudq2ps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtudq2ps_512 : GCCBuiltin<"__builtin_ia32_cvtudq2ps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16i32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtuqq2pd_128 : GCCBuiltin<"__builtin_ia32_cvtuqq2pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtuqq2pd_256 : GCCBuiltin<"__builtin_ia32_cvtuqq2pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtuqq2pd_512 : GCCBuiltin<"__builtin_ia32_cvtuqq2pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8i64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtuqq2ps_128 : GCCBuiltin<"__builtin_ia32_cvtuqq2ps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v2i64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtuqq2ps_256 : GCCBuiltin<"__builtin_ia32_cvtuqq2ps256_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4i64_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cvtuqq2ps_512 : GCCBuiltin<"__builtin_ia32_cvtuqq2ps512_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i64_ty, llvm_v8f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_pd_128 : GCCBuiltin<"__builtin_ia32_rndscalepd_128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_pd_256 : GCCBuiltin<"__builtin_ia32_rndscalepd_256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_pd_512 : GCCBuiltin<"__builtin_ia32_rndscalepd_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_ps_128 : GCCBuiltin<"__builtin_ia32_rndscaleps_128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_ps_256 : GCCBuiltin<"__builtin_ia32_rndscaleps_256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_ps_512 : GCCBuiltin<"__builtin_ia32_rndscaleps_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_pd_128 : GCCBuiltin<"__builtin_ia32_reducepd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_pd_256 : GCCBuiltin<"__builtin_ia32_reducepd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_pd_512 : GCCBuiltin<"__builtin_ia32_reducepd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_ps_128 : GCCBuiltin<"__builtin_ia32_reduceps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_ps_256 : GCCBuiltin<"__builtin_ia32_reduceps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_ps_512 : GCCBuiltin<"__builtin_ia32_reduceps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_pd_128 : GCCBuiltin<"__builtin_ia32_rangepd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_pd_256 : GCCBuiltin<"__builtin_ia32_rangepd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_pd_512 : GCCBuiltin<"__builtin_ia32_rangepd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_ps_128 : GCCBuiltin<"__builtin_ia32_rangeps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_ps_256 : GCCBuiltin<"__builtin_ia32_rangeps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_ps_512 : GCCBuiltin<"__builtin_ia32_rangeps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; } // Vector load with broadcast let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_vbroadcast_ss_512 : GCCBuiltin<"__builtin_ia32_vbroadcastss512">, Intrinsic<[llvm_v16f32_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_vbroadcast_sd_512 : GCCBuiltin<"__builtin_ia32_vbroadcastsd512">, Intrinsic<[llvm_v8f64_ty], [llvm_ptr_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_broadcastf32x2_256 : GCCBuiltin<"__builtin_ia32_broadcastf32x2_256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v4f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf32x2_512 : GCCBuiltin<"__builtin_ia32_broadcastf32x2_512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v4f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti32x2_128 : GCCBuiltin<"__builtin_ia32_broadcasti32x2_128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti32x2_256 : GCCBuiltin<"__builtin_ia32_broadcasti32x2_256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v4i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti32x2_512 : GCCBuiltin<"__builtin_ia32_broadcasti32x2_512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v4i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf32x4_256 : GCCBuiltin<"__builtin_ia32_broadcastf32x4_256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v4f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf32x4_512 : GCCBuiltin<"__builtin_ia32_broadcastf32x4_512">, Intrinsic<[llvm_v16f32_ty], [llvm_v4f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf32x8_512 : GCCBuiltin<"__builtin_ia32_broadcastf32x8_512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v8f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf64x2_256 : GCCBuiltin<"__builtin_ia32_broadcastf64x2_256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v2f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf64x2_512 : GCCBuiltin<"__builtin_ia32_broadcastf64x2_512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v2f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcastf64x4_512 : GCCBuiltin<"__builtin_ia32_broadcastf64x4_512">, Intrinsic<[llvm_v8f64_ty], [llvm_v4f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti32x4_256 : GCCBuiltin<"__builtin_ia32_broadcasti32x4_256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v4i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti32x4_512 : GCCBuiltin<"__builtin_ia32_broadcasti32x4_512">, Intrinsic<[llvm_v16i32_ty], [llvm_v4i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti32x8_512 : GCCBuiltin<"__builtin_ia32_broadcasti32x8_512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v8i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti64x2_256 : GCCBuiltin<"__builtin_ia32_broadcasti64x2_256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v2i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti64x2_512 : GCCBuiltin<"__builtin_ia32_broadcasti64x2_512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v2i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_broadcasti64x4_512 : GCCBuiltin<"__builtin_ia32_broadcasti64x4_512">, Intrinsic<[llvm_v8i64_ty], [llvm_v4i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_broadcastmw_512 : GCCBuiltin<"__builtin_ia32_broadcastmw512">, Intrinsic<[llvm_v16i32_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_broadcastmw_256 : GCCBuiltin<"__builtin_ia32_broadcastmw256">, Intrinsic<[llvm_v8i32_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_broadcastmw_128 : GCCBuiltin<"__builtin_ia32_broadcastmw128">, Intrinsic<[llvm_v4i32_ty], [llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_broadcastmb_512 : GCCBuiltin<"__builtin_ia32_broadcastmb512">, Intrinsic<[llvm_v8i64_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_broadcastmb_256 : GCCBuiltin<"__builtin_ia32_broadcastmb256">, Intrinsic<[llvm_v4i64_ty], [llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_broadcastmb_128 : GCCBuiltin<"__builtin_ia32_broadcastmb128">, Intrinsic<[llvm_v2i64_ty], [llvm_i8_ty], [IntrNoMem]>; } // Vector sign and zero extend let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_pmovzxbq : GCCBuiltin<"__builtin_ia32_pmovzxbq512">, Intrinsic<[llvm_v8i64_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_avx512_pmovzxwd : GCCBuiltin<"__builtin_ia32_pmovzxwd512">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i16_ty], [IntrNoMem]>; def int_x86_avx512_pmovzxbd : GCCBuiltin<"__builtin_ia32_pmovzxbd512">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i8_ty], [IntrNoMem]>; def int_x86_avx512_pmovzxwq : GCCBuiltin<"__builtin_ia32_pmovzxwq512">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_avx512_pmovzxdq : GCCBuiltin<"__builtin_ia32_pmovzxdq512">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_d_128 : GCCBuiltin<"__builtin_ia32_pmovzxbd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v16i8_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_d_256 : GCCBuiltin<"__builtin_ia32_pmovzxbd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v16i8_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_d_512 : GCCBuiltin<"__builtin_ia32_pmovzxbd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i8_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_q_128 : GCCBuiltin<"__builtin_ia32_pmovzxbq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v16i8_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_q_256 : GCCBuiltin<"__builtin_ia32_pmovzxbq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v16i8_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_q_512 : GCCBuiltin<"__builtin_ia32_pmovzxbq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v16i8_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_w_128 : GCCBuiltin<"__builtin_ia32_pmovzxbw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_w_256 : GCCBuiltin<"__builtin_ia32_pmovzxbw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i8_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxb_w_512 : GCCBuiltin<"__builtin_ia32_pmovzxbw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i8_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxd_q_128 : GCCBuiltin<"__builtin_ia32_pmovzxdq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxd_q_256 : GCCBuiltin<"__builtin_ia32_pmovzxdq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxd_q_512 : GCCBuiltin<"__builtin_ia32_pmovzxdq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxw_d_128 : GCCBuiltin<"__builtin_ia32_pmovzxwd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxw_d_256 : GCCBuiltin<"__builtin_ia32_pmovzxwd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i16_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxw_d_512 : GCCBuiltin<"__builtin_ia32_pmovzxwd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i16_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxw_q_128 : GCCBuiltin<"__builtin_ia32_pmovzxwq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v8i16_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxw_q_256 : GCCBuiltin<"__builtin_ia32_pmovzxwq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i16_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovzxw_q_512 : GCCBuiltin<"__builtin_ia32_pmovzxwq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i16_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } // Arithmetic ops let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_avx512_mask_add_ps_128 : GCCBuiltin<"__builtin_ia32_addps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_ps_256 : GCCBuiltin<"__builtin_ia32_addps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_ps_512 : GCCBuiltin<"__builtin_ia32_addps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_pd_128 : GCCBuiltin<"__builtin_ia32_addpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_pd_256 : GCCBuiltin<"__builtin_ia32_addpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_pd_512 : GCCBuiltin<"__builtin_ia32_addpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_ps_128 : GCCBuiltin<"__builtin_ia32_subps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_ps_256 : GCCBuiltin<"__builtin_ia32_subps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_ps_512 : GCCBuiltin<"__builtin_ia32_subps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_pd_128 : GCCBuiltin<"__builtin_ia32_subpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_pd_256 : GCCBuiltin<"__builtin_ia32_subpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_pd_512 : GCCBuiltin<"__builtin_ia32_subpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_ps_128 : GCCBuiltin<"__builtin_ia32_mulps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_ps_256 : GCCBuiltin<"__builtin_ia32_mulps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_ps_512 : GCCBuiltin<"__builtin_ia32_mulps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_pd_128 : GCCBuiltin<"__builtin_ia32_mulpd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_pd_256 : GCCBuiltin<"__builtin_ia32_mulpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_pd_512 : GCCBuiltin<"__builtin_ia32_mulpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_ps_128 : GCCBuiltin<"__builtin_ia32_divps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_ps_256 : GCCBuiltin<"__builtin_ia32_divps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_ps_512 : GCCBuiltin<"__builtin_ia32_divps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_pd_128 : GCCBuiltin<"__builtin_ia32_divpd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_pd_256 : GCCBuiltin<"__builtin_ia32_divpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_pd_512 : GCCBuiltin<"__builtin_ia32_divpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_ps_128 : GCCBuiltin<"__builtin_ia32_maxps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_ps_256 : GCCBuiltin<"__builtin_ia32_maxps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_ps_512 : GCCBuiltin<"__builtin_ia32_maxps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_pd_128 : GCCBuiltin<"__builtin_ia32_maxpd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_pd_256 : GCCBuiltin<"__builtin_ia32_maxpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_pd_512 : GCCBuiltin<"__builtin_ia32_maxpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_ps_128 : GCCBuiltin<"__builtin_ia32_minps_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_ps_256 : GCCBuiltin<"__builtin_ia32_minps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_ps_512 : GCCBuiltin<"__builtin_ia32_minps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_pd_128 : GCCBuiltin<"__builtin_ia32_minpd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_pd_256 : GCCBuiltin<"__builtin_ia32_minpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_pd_512 : GCCBuiltin<"__builtin_ia32_minpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_ss_round : GCCBuiltin<"__builtin_ia32_addss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_ss_round : GCCBuiltin<"__builtin_ia32_divss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_ss_round : GCCBuiltin<"__builtin_ia32_mulss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_ss_round : GCCBuiltin<"__builtin_ia32_subss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_ss_round : GCCBuiltin<"__builtin_ia32_maxss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_ss_round : GCCBuiltin<"__builtin_ia32_minss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_add_sd_round : GCCBuiltin<"__builtin_ia32_addsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_div_sd_round : GCCBuiltin<"__builtin_ia32_divsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_mul_sd_round : GCCBuiltin<"__builtin_ia32_mulsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sub_sd_round : GCCBuiltin<"__builtin_ia32_subsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_max_sd_round : GCCBuiltin<"__builtin_ia32_maxsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_min_sd_round : GCCBuiltin<"__builtin_ia32_minsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_ss : GCCBuiltin<"__builtin_ia32_rndscaless_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_rndscale_sd : GCCBuiltin<"__builtin_ia32_rndscalesd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_ss : GCCBuiltin<"__builtin_ia32_rangess128_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_range_sd : GCCBuiltin<"__builtin_ia32_rangesd128_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_ss : GCCBuiltin<"__builtin_ia32_reducess_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_reduce_sd : GCCBuiltin<"__builtin_ia32_reducesd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_sd : GCCBuiltin<"__builtin_ia32_scalefsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_ss : GCCBuiltin<"__builtin_ia32_scalefss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_pd_128 : GCCBuiltin<"__builtin_ia32_scalefpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_pd_256 : GCCBuiltin<"__builtin_ia32_scalefpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty],[IntrNoMem]>; def int_x86_avx512_mask_scalef_pd_512 : GCCBuiltin<"__builtin_ia32_scalefpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_ps_128 : GCCBuiltin<"__builtin_ia32_scalefps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_ps_256 : GCCBuiltin<"__builtin_ia32_scalefps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_scalef_ps_512 : GCCBuiltin<"__builtin_ia32_scalefps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_pd_128 : GCCBuiltin<"__builtin_ia32_sqrtpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_pd_256 : GCCBuiltin<"__builtin_ia32_sqrtpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_pd_512 : GCCBuiltin<"__builtin_ia32_sqrtpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_ps_128 : GCCBuiltin<"__builtin_ia32_sqrtps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_ps_256 : GCCBuiltin<"__builtin_ia32_sqrtps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_sqrt_ps_512 : GCCBuiltin<"__builtin_ia32_sqrtps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_pd_128 : GCCBuiltin<"__builtin_ia32_fixupimmpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_pd_128 : GCCBuiltin<"__builtin_ia32_fixupimmpd128_maskz">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_pd_256 : GCCBuiltin<"__builtin_ia32_fixupimmpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_pd_256 : GCCBuiltin<"__builtin_ia32_fixupimmpd256_maskz">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_pd_512 : GCCBuiltin<"__builtin_ia32_fixupimmpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_pd_512 : GCCBuiltin<"__builtin_ia32_fixupimmpd512_maskz">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_ps_128 : GCCBuiltin<"__builtin_ia32_fixupimmps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_ps_128 : GCCBuiltin<"__builtin_ia32_fixupimmps128_maskz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_ps_256 : GCCBuiltin<"__builtin_ia32_fixupimmps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_ps_256 : GCCBuiltin<"__builtin_ia32_fixupimmps256_maskz">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_ps_512 : GCCBuiltin<"__builtin_ia32_fixupimmps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_ps_512 : GCCBuiltin<"__builtin_ia32_fixupimmps512_maskz">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_sd : GCCBuiltin<"__builtin_ia32_fixupimmsd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_sd : GCCBuiltin<"__builtin_ia32_fixupimmsd_maskz">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_fixupimm_ss : GCCBuiltin<"__builtin_ia32_fixupimmss_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_maskz_fixupimm_ss : GCCBuiltin<"__builtin_ia32_fixupimmss_maskz">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_pd_128 : GCCBuiltin<"__builtin_ia32_getexppd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_pd_256 : GCCBuiltin<"__builtin_ia32_getexppd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_pd_512 : GCCBuiltin<"__builtin_ia32_getexppd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_ps_128 : GCCBuiltin<"__builtin_ia32_getexpps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_ps_256 : GCCBuiltin<"__builtin_ia32_getexpps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_ps_512 : GCCBuiltin<"__builtin_ia32_getexpps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_ss : GCCBuiltin<"__builtin_ia32_getexpss128_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getexp_sd : GCCBuiltin<"__builtin_ia32_getexpsd128_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_pd_128 : GCCBuiltin<"__builtin_ia32_getmantpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_pd_256 : GCCBuiltin<"__builtin_ia32_getmantpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty,llvm_i32_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_pd_512 : GCCBuiltin<"__builtin_ia32_getmantpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty,llvm_i32_ty, llvm_v8f64_ty, llvm_i8_ty,llvm_i32_ty ], [IntrNoMem]>; def int_x86_avx512_mask_getmant_ps_128 : GCCBuiltin<"__builtin_ia32_getmantps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_ps_256 : GCCBuiltin<"__builtin_ia32_getmantps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_i32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_ps_512 : GCCBuiltin<"__builtin_ia32_getmantps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty,llvm_i32_ty, llvm_v16f32_ty,llvm_i16_ty,llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_ss : GCCBuiltin<"__builtin_ia32_getmantss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_getmant_sd : GCCBuiltin<"__builtin_ia32_getmantsd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_ss : GCCBuiltin<"__builtin_ia32_rsqrt14ss_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_sd : GCCBuiltin<"__builtin_ia32_rsqrt14sd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_pd_128 : GCCBuiltin<"__builtin_ia32_rsqrt14pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_pd_256 : GCCBuiltin<"__builtin_ia32_rsqrt14pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_pd_512 : GCCBuiltin<"__builtin_ia32_rsqrt14pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_ps_128 : GCCBuiltin<"__builtin_ia32_rsqrt14ps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_ps_256 : GCCBuiltin<"__builtin_ia32_rsqrt14ps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt14_ps_512 : GCCBuiltin<"__builtin_ia32_rsqrt14ps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_ss : GCCBuiltin<"__builtin_ia32_rcp14ss_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_sd : GCCBuiltin<"__builtin_ia32_rcp14sd_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_pd_128 : GCCBuiltin<"__builtin_ia32_rcp14pd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_pd_256 : GCCBuiltin<"__builtin_ia32_rcp14pd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_pd_512 : GCCBuiltin<"__builtin_ia32_rcp14pd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_ps_128 : GCCBuiltin<"__builtin_ia32_rcp14ps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_ps_256 : GCCBuiltin<"__builtin_ia32_rcp14ps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_rcp14_ps_512 : GCCBuiltin<"__builtin_ia32_rcp14ps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_rcp28_ps : GCCBuiltin<"__builtin_ia32_rcp28ps_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rcp28_pd : GCCBuiltin<"__builtin_ia32_rcp28pd_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_exp2_ps : GCCBuiltin<"__builtin_ia32_exp2ps_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_exp2_pd : GCCBuiltin<"__builtin_ia32_exp2pd_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rcp28_ss : GCCBuiltin<"__builtin_ia32_rcp28ss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rcp28_sd : GCCBuiltin<"__builtin_ia32_rcp28sd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt28_ps : GCCBuiltin<"__builtin_ia32_rsqrt28ps_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt28_pd : GCCBuiltin<"__builtin_ia32_rsqrt28pd_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt28_ss : GCCBuiltin<"__builtin_ia32_rsqrt28ss_round_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_rsqrt28_sd : GCCBuiltin<"__builtin_ia32_rsqrt28sd_round_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_psad_bw_512 : GCCBuiltin<"__builtin_ia32_psadbw512">, Intrinsic<[llvm_v8i64_ty], [llvm_v64i8_ty, llvm_v64i8_ty], [IntrNoMem]>; } // FP logical ops let TargetPrefix = "x86" in { def int_x86_avx512_mask_and_pd_128 : GCCBuiltin<"__builtin_ia32_andpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_and_pd_256 : GCCBuiltin<"__builtin_ia32_andpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_and_pd_512 : GCCBuiltin<"__builtin_ia32_andpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_and_ps_128 : GCCBuiltin<"__builtin_ia32_andps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_and_ps_256 : GCCBuiltin<"__builtin_ia32_andps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_and_ps_512 : GCCBuiltin<"__builtin_ia32_andps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_andn_pd_128 : GCCBuiltin<"__builtin_ia32_andnpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_andn_pd_256 : GCCBuiltin<"__builtin_ia32_andnpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_andn_pd_512 : GCCBuiltin<"__builtin_ia32_andnpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_andn_ps_128 : GCCBuiltin<"__builtin_ia32_andnps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_andn_ps_256 : GCCBuiltin<"__builtin_ia32_andnps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_andn_ps_512 : GCCBuiltin<"__builtin_ia32_andnps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_or_pd_128 : GCCBuiltin<"__builtin_ia32_orpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_or_pd_256 : GCCBuiltin<"__builtin_ia32_orpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_or_pd_512 : GCCBuiltin<"__builtin_ia32_orpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_or_ps_128 : GCCBuiltin<"__builtin_ia32_orps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_or_ps_256 : GCCBuiltin<"__builtin_ia32_orps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_or_ps_512 : GCCBuiltin<"__builtin_ia32_orps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_xor_pd_128 : GCCBuiltin<"__builtin_ia32_xorpd128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_xor_pd_256 : GCCBuiltin<"__builtin_ia32_xorpd256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_xor_pd_512 : GCCBuiltin<"__builtin_ia32_xorpd512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_xor_ps_128 : GCCBuiltin<"__builtin_ia32_xorps128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_xor_ps_256 : GCCBuiltin<"__builtin_ia32_xorps256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_xor_ps_512 : GCCBuiltin<"__builtin_ia32_xorps512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; } // Integer arithmetic ops let TargetPrefix = "x86" in { def int_x86_avx512_mask_padd_b_128 : GCCBuiltin<"__builtin_ia32_paddb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_b_256 : GCCBuiltin<"__builtin_ia32_paddb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_b_512 : GCCBuiltin<"__builtin_ia32_paddb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_w_128 : GCCBuiltin<"__builtin_ia32_paddw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_w_256 : GCCBuiltin<"__builtin_ia32_paddw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_w_512 : GCCBuiltin<"__builtin_ia32_paddw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_padds_b_128 : GCCBuiltin<"__builtin_ia32_paddsb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_padds_b_256 : GCCBuiltin<"__builtin_ia32_paddsb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_padds_b_512 : GCCBuiltin<"__builtin_ia32_paddsb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_padds_w_128 : GCCBuiltin<"__builtin_ia32_paddsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_padds_w_256 : GCCBuiltin<"__builtin_ia32_paddsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_padds_w_512 : GCCBuiltin<"__builtin_ia32_paddsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_paddus_b_128 : GCCBuiltin<"__builtin_ia32_paddusb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_paddus_b_256 : GCCBuiltin<"__builtin_ia32_paddusb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_paddus_b_512 : GCCBuiltin<"__builtin_ia32_paddusb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_paddus_w_128 : GCCBuiltin<"__builtin_ia32_paddusw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_paddus_w_256 : GCCBuiltin<"__builtin_ia32_paddusw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_paddus_w_512 : GCCBuiltin<"__builtin_ia32_paddusw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_d_128 : GCCBuiltin<"__builtin_ia32_paddd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_d_256 : GCCBuiltin<"__builtin_ia32_paddd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_d_512 : GCCBuiltin<"__builtin_ia32_paddd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_q_128 : GCCBuiltin<"__builtin_ia32_paddq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_q_256 : GCCBuiltin<"__builtin_ia32_paddq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_padd_q_512 : GCCBuiltin<"__builtin_ia32_paddq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_b_128 : GCCBuiltin<"__builtin_ia32_psubb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_b_256 : GCCBuiltin<"__builtin_ia32_psubb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_b_512 : GCCBuiltin<"__builtin_ia32_psubb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_w_128 : GCCBuiltin<"__builtin_ia32_psubw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_w_256 : GCCBuiltin<"__builtin_ia32_psubw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_w_512 : GCCBuiltin<"__builtin_ia32_psubw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubs_b_128 : GCCBuiltin<"__builtin_ia32_psubsb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubs_b_256 : GCCBuiltin<"__builtin_ia32_psubsb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubs_b_512 : GCCBuiltin<"__builtin_ia32_psubsb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubs_w_128 : GCCBuiltin<"__builtin_ia32_psubsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubs_w_256 : GCCBuiltin<"__builtin_ia32_psubsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubs_w_512 : GCCBuiltin<"__builtin_ia32_psubsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubus_b_128 : GCCBuiltin<"__builtin_ia32_psubusb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubus_b_256 : GCCBuiltin<"__builtin_ia32_psubusb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubus_b_512 : GCCBuiltin<"__builtin_ia32_psubusb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubus_w_128 : GCCBuiltin<"__builtin_ia32_psubusw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubus_w_256 : GCCBuiltin<"__builtin_ia32_psubusw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psubus_w_512 : GCCBuiltin<"__builtin_ia32_psubusw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_d_128 : GCCBuiltin<"__builtin_ia32_psubd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_d_256 : GCCBuiltin<"__builtin_ia32_psubd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_d_512 : GCCBuiltin<"__builtin_ia32_psubd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_q_128 : GCCBuiltin<"__builtin_ia32_psubq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_q_256 : GCCBuiltin<"__builtin_ia32_psubq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_psub_q_512 : GCCBuiltin<"__builtin_ia32_psubq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulu_dq_128 : GCCBuiltin<"__builtin_ia32_pmuludq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmul_dq_128 : GCCBuiltin<"__builtin_ia32_pmuldq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulu_dq_256 : GCCBuiltin<"__builtin_ia32_pmuludq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmul_dq_256 : GCCBuiltin<"__builtin_ia32_pmuldq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulu_dq_512 : GCCBuiltin<"__builtin_ia32_pmuludq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmul_dq_512 : GCCBuiltin<"__builtin_ia32_pmuldq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_w_128 : GCCBuiltin<"__builtin_ia32_pmullw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_w_256 : GCCBuiltin<"__builtin_ia32_pmullw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_w_512 : GCCBuiltin<"__builtin_ia32_pmullw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_d_128 : GCCBuiltin<"__builtin_ia32_pmulld128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_d_256 : GCCBuiltin<"__builtin_ia32_pmulld256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_d_512 : GCCBuiltin<"__builtin_ia32_pmulld512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_q_128 : GCCBuiltin<"__builtin_ia32_pmullq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_q_256 : GCCBuiltin<"__builtin_ia32_pmullq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmull_q_512 : GCCBuiltin<"__builtin_ia32_pmullq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulhu_w_512 : GCCBuiltin<"__builtin_ia32_pmulhuw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulh_w_512 : GCCBuiltin<"__builtin_ia32_pmulhw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulhu_w_128 : GCCBuiltin<"__builtin_ia32_pmulhuw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulhu_w_256 : GCCBuiltin<"__builtin_ia32_pmulhuw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulh_w_128 : GCCBuiltin<"__builtin_ia32_pmulhw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmulh_w_256 : GCCBuiltin<"__builtin_ia32_pmulhw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pavg_b_512 : GCCBuiltin<"__builtin_ia32_pavgb512_mask">, Intrinsic<[llvm_v64i8_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v64i8_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_pavg_w_512 : GCCBuiltin<"__builtin_ia32_pavgw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pavg_b_128 : GCCBuiltin<"__builtin_ia32_pavgb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pavg_b_256 : GCCBuiltin<"__builtin_ia32_pavgb256_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pavg_w_128 : GCCBuiltin<"__builtin_ia32_pavgw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pavg_w_256 : GCCBuiltin<"__builtin_ia32_pavgw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaddw_d_128 : GCCBuiltin<"__builtin_ia32_pmaddwd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaddw_d_256 : GCCBuiltin<"__builtin_ia32_pmaddwd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaddw_d_512 : GCCBuiltin<"__builtin_ia32_pmaddwd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaddubs_w_128 : GCCBuiltin<"__builtin_ia32_pmaddubsw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaddubs_w_256 : GCCBuiltin<"__builtin_ia32_pmaddubsw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmaddubs_w_512 : GCCBuiltin<"__builtin_ia32_pmaddubsw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_dbpsadbw_128 : GCCBuiltin<"__builtin_ia32_dbpsadbw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_dbpsadbw_256 : GCCBuiltin<"__builtin_ia32_dbpsadbw256_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_dbpsadbw_512 : GCCBuiltin<"__builtin_ia32_dbpsadbw512_mask">, Intrinsic<[llvm_v32i16_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i32_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrNoMem]>; } // Gather and Scatter ops let TargetPrefix = "x86" in { def int_x86_avx512_gather_dpd_512 : GCCBuiltin<"__builtin_ia32_gathersiv8df">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_dps_512 : GCCBuiltin<"__builtin_ia32_gathersiv16sf">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_qpd_512 : GCCBuiltin<"__builtin_ia32_gatherdiv8df">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_qps_512 : GCCBuiltin<"__builtin_ia32_gatherdiv16sf">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_dpq_512 : GCCBuiltin<"__builtin_ia32_gathersiv8di">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_dpi_512 : GCCBuiltin<"__builtin_ia32_gathersiv16si">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_qpq_512 : GCCBuiltin<"__builtin_ia32_gatherdiv8di">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather_qpi_512 : GCCBuiltin<"__builtin_ia32_gatherdiv16si">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div2_df : GCCBuiltin<"__builtin_ia32_gather3div2df">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div2_di : GCCBuiltin<"__builtin_ia32_gather3div2di">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div4_df : GCCBuiltin<"__builtin_ia32_gather3div4df">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div4_di : GCCBuiltin<"__builtin_ia32_gather3div4di">, Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div4_sf : GCCBuiltin<"__builtin_ia32_gather3div4sf">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div4_si : GCCBuiltin<"__builtin_ia32_gather3div4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div8_sf : GCCBuiltin<"__builtin_ia32_gather3div8sf">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3div8_si : GCCBuiltin<"__builtin_ia32_gather3div8si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv2_df : GCCBuiltin<"__builtin_ia32_gather3siv2df">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv2_di : GCCBuiltin<"__builtin_ia32_gather3siv2di">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv4_df : GCCBuiltin<"__builtin_ia32_gather3siv4df">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv4_di : GCCBuiltin<"__builtin_ia32_gather3siv4di">, Intrinsic<[llvm_v8i32_ty], [llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv4_sf : GCCBuiltin<"__builtin_ia32_gather3siv4sf">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv4_si : GCCBuiltin<"__builtin_ia32_gather3siv4si">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv8_sf : GCCBuiltin<"__builtin_ia32_gather3siv8sf">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_gather3siv8_si : GCCBuiltin<"__builtin_ia32_gather3siv8si">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>; // scatter def int_x86_avx512_scatter_dpd_512 : GCCBuiltin<"__builtin_ia32_scattersiv8df">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8f64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_dps_512 : GCCBuiltin<"__builtin_ia32_scattersiv16sf">, Intrinsic<[], [llvm_ptr_ty, llvm_i16_ty, llvm_v16i32_ty, llvm_v16f32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_qpd_512 : GCCBuiltin<"__builtin_ia32_scatterdiv8df">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i64_ty, llvm_v8f64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_qps_512 : GCCBuiltin<"__builtin_ia32_scatterdiv16sf">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i64_ty, llvm_v8f32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_dpq_512 : GCCBuiltin<"__builtin_ia32_scattersiv8di">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8i64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_dpi_512 : GCCBuiltin<"__builtin_ia32_scattersiv16si">, Intrinsic<[], [llvm_ptr_ty, llvm_i16_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_qpq_512 : GCCBuiltin<"__builtin_ia32_scatterdiv8di">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatter_qpi_512 : GCCBuiltin<"__builtin_ia32_scatterdiv16si">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i64_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv2_df : GCCBuiltin<"__builtin_ia32_scatterdiv2df">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv2_di : GCCBuiltin<"__builtin_ia32_scatterdiv2di">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv4_df : GCCBuiltin<"__builtin_ia32_scatterdiv4df">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv4_di : GCCBuiltin<"__builtin_ia32_scatterdiv4di">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv4_sf : GCCBuiltin<"__builtin_ia32_scatterdiv4sf">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv4_si : GCCBuiltin<"__builtin_ia32_scatterdiv4si">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv8_sf : GCCBuiltin<"__builtin_ia32_scatterdiv8sf">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterdiv8_si : GCCBuiltin<"__builtin_ia32_scatterdiv8si">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv2_df : GCCBuiltin<"__builtin_ia32_scattersiv2df">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv2_di : GCCBuiltin<"__builtin_ia32_scattersiv2di">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv4_df : GCCBuiltin<"__builtin_ia32_scattersiv4df">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv4_di : GCCBuiltin<"__builtin_ia32_scattersiv4di">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv4_sf : GCCBuiltin<"__builtin_ia32_scattersiv4sf">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv4_si : GCCBuiltin<"__builtin_ia32_scattersiv4si">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv8_sf : GCCBuiltin<"__builtin_ia32_scattersiv8sf">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scattersiv8_si : GCCBuiltin<"__builtin_ia32_scattersiv8si">, Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; // gather prefetch def int_x86_avx512_gatherpf_dpd_512 : GCCBuiltin<"__builtin_ia32_gatherpfdpd">, Intrinsic<[], [llvm_i8_ty, llvm_v8i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_gatherpf_dps_512 : GCCBuiltin<"__builtin_ia32_gatherpfdps">, Intrinsic<[], [llvm_i16_ty, llvm_v16i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_gatherpf_qpd_512 : GCCBuiltin<"__builtin_ia32_gatherpfqpd">, Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_gatherpf_qps_512 : GCCBuiltin<"__builtin_ia32_gatherpfqps">, Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; // scatter prefetch def int_x86_avx512_scatterpf_dpd_512 : GCCBuiltin<"__builtin_ia32_scatterpfdpd">, Intrinsic<[], [llvm_i8_ty, llvm_v8i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterpf_dps_512 : GCCBuiltin<"__builtin_ia32_scatterpfdps">, Intrinsic<[], [llvm_i16_ty, llvm_v16i32_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterpf_qpd_512 : GCCBuiltin<"__builtin_ia32_scatterpfqpd">, Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_scatterpf_qps_512 : GCCBuiltin<"__builtin_ia32_scatterpfqps">, Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>; } // AVX-512 conflict detection instruction // Instructions that count the number of leading zero bits let TargetPrefix = "x86" in { def int_x86_avx512_mask_conflict_d_128 : GCCBuiltin<"__builtin_ia32_vpconflictsi_128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_conflict_d_256 : GCCBuiltin<"__builtin_ia32_vpconflictsi_256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_conflict_d_512 : GCCBuiltin<"__builtin_ia32_vpconflictsi_512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_conflict_q_128 : GCCBuiltin<"__builtin_ia32_vpconflictdi_128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_conflict_q_256 : GCCBuiltin<"__builtin_ia32_vpconflictdi_256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_conflict_q_512 : GCCBuiltin<"__builtin_ia32_vpconflictdi_512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_lzcnt_d_128 : Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_lzcnt_d_256 : Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_lzcnt_d_512 : Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_lzcnt_q_128 : Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_lzcnt_q_256 : Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_lzcnt_q_512 : Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; } let TargetPrefix = "x86" in { def int_x86_avx512_mask_valign_q_512 : GCCBuiltin<"__builtin_ia32_alignq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_valign_d_512 : GCCBuiltin<"__builtin_ia32_alignd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_valign_q_256 : GCCBuiltin<"__builtin_ia32_alignq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_valign_d_256 : GCCBuiltin<"__builtin_ia32_alignd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_valign_q_128 : GCCBuiltin<"__builtin_ia32_alignq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_valign_d_128 : GCCBuiltin<"__builtin_ia32_alignd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; } // Compares let TargetPrefix = "x86" in { // 512-bit def int_x86_avx512_vcomi_sd : GCCBuiltin<"__builtin_ia32_vcomisd">, Intrinsic<[llvm_i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_vcomi_ss : GCCBuiltin<"__builtin_ia32_vcomiss">, Intrinsic<[llvm_i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_b_512: Intrinsic<[llvm_i64_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i32_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_w_512: Intrinsic<[llvm_i32_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_d_512: Intrinsic<[llvm_i16_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem ]>; def int_x86_avx512_mask_cmp_q_512: Intrinsic<[llvm_i8_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_b_512: Intrinsic<[llvm_i64_ty], [llvm_v64i8_ty, llvm_v64i8_ty, llvm_i32_ty, llvm_i64_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_w_512: Intrinsic<[llvm_i32_ty], [llvm_v32i16_ty, llvm_v32i16_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_d_512: Intrinsic<[llvm_i16_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_q_512: Intrinsic<[llvm_i8_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; // 256-bit def int_x86_avx512_mask_cmp_b_256: Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_w_256: Intrinsic<[llvm_i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_d_256: Intrinsic<[llvm_i8_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_q_256: Intrinsic<[llvm_i8_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_b_256: Intrinsic<[llvm_i32_ty], [llvm_v32i8_ty, llvm_v32i8_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_w_256: Intrinsic<[llvm_i16_ty], [llvm_v16i16_ty, llvm_v16i16_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_d_256: Intrinsic<[llvm_i8_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_q_256: Intrinsic<[llvm_i8_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; // 128-bit def int_x86_avx512_mask_cmp_b_128: Intrinsic<[llvm_i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_w_128: Intrinsic<[llvm_i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_d_128: Intrinsic<[llvm_i8_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_q_128: Intrinsic<[llvm_i8_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_b_128: Intrinsic<[llvm_i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_w_128: Intrinsic<[llvm_i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_d_128: Intrinsic<[llvm_i8_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_ucmp_q_128: Intrinsic<[llvm_i8_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; } // Compress, Expand let TargetPrefix = "x86" in { def int_x86_avx512_mask_compress_ps_512 : GCCBuiltin<"__builtin_ia32_compresssf512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_pd_512 : GCCBuiltin<"__builtin_ia32_compressdf512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_ps_256 : GCCBuiltin<"__builtin_ia32_compresssf256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_pd_256 : GCCBuiltin<"__builtin_ia32_compressdf256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_ps_128 : GCCBuiltin<"__builtin_ia32_compresssf128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_pd_128 : GCCBuiltin<"__builtin_ia32_compressdf128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_store_ps_512 : GCCBuiltin<"__builtin_ia32_compressstoresf512_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_pd_512 : GCCBuiltin<"__builtin_ia32_compressstoredf512_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_ps_256 : GCCBuiltin<"__builtin_ia32_compressstoresf256_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_pd_256 : GCCBuiltin<"__builtin_ia32_compressstoredf256_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_ps_128 : GCCBuiltin<"__builtin_ia32_compressstoresf128_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_pd_128 : GCCBuiltin<"__builtin_ia32_compressstoredf128_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_d_512 : GCCBuiltin<"__builtin_ia32_compresssi512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_q_512 : GCCBuiltin<"__builtin_ia32_compressdi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_d_256 : GCCBuiltin<"__builtin_ia32_compresssi256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_q_256 : GCCBuiltin<"__builtin_ia32_compressdi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_d_128 : GCCBuiltin<"__builtin_ia32_compresssi128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_q_128 : GCCBuiltin<"__builtin_ia32_compressdi128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_compress_store_d_512 : GCCBuiltin<"__builtin_ia32_compressstoresi512_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_q_512 : GCCBuiltin<"__builtin_ia32_compressstoredi512_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_d_256 : GCCBuiltin<"__builtin_ia32_compressstoresi256_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_q_256 : GCCBuiltin<"__builtin_ia32_compressstoredi256_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_d_128 : GCCBuiltin<"__builtin_ia32_compressstoresi128_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_compress_store_q_128 : GCCBuiltin<"__builtin_ia32_compressstoredi128_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; // expand def int_x86_avx512_mask_expand_ps_512 : GCCBuiltin<"__builtin_ia32_expandsf512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_pd_512 : GCCBuiltin<"__builtin_ia32_expanddf512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_ps_256 : GCCBuiltin<"__builtin_ia32_expandsf256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_pd_256 : GCCBuiltin<"__builtin_ia32_expanddf256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_ps_128 : GCCBuiltin<"__builtin_ia32_expandsf128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_pd_128 : GCCBuiltin<"__builtin_ia32_expanddf128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_load_ps_512 : GCCBuiltin<"__builtin_ia32_expandloadsf512_mask">, Intrinsic<[llvm_v16f32_ty], [llvm_ptr_ty, llvm_v16f32_ty, llvm_i16_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_pd_512 : GCCBuiltin<"__builtin_ia32_expandloaddf512_mask">, Intrinsic<[llvm_v8f64_ty], [llvm_ptr_ty, llvm_v8f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_ps_256 : GCCBuiltin<"__builtin_ia32_expandloadsf256_mask">, Intrinsic<[llvm_v8f32_ty], [llvm_ptr_ty, llvm_v8f32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_pd_256 : GCCBuiltin<"__builtin_ia32_expandloaddf256_mask">, Intrinsic<[llvm_v4f64_ty], [llvm_ptr_ty, llvm_v4f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_ps_128 : GCCBuiltin<"__builtin_ia32_expandloadsf128_mask">, Intrinsic<[llvm_v4f32_ty], [llvm_ptr_ty, llvm_v4f32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_pd_128 : GCCBuiltin<"__builtin_ia32_expandloaddf128_mask">, Intrinsic<[llvm_v2f64_ty], [llvm_ptr_ty, llvm_v2f64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_d_512 : GCCBuiltin<"__builtin_ia32_expandsi512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_q_512 : GCCBuiltin<"__builtin_ia32_expanddi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_d_256 : GCCBuiltin<"__builtin_ia32_expandsi256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_q_256 : GCCBuiltin<"__builtin_ia32_expanddi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_d_128 : GCCBuiltin<"__builtin_ia32_expandsi128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_q_128 : GCCBuiltin<"__builtin_ia32_expanddi128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_expand_load_d_512 : GCCBuiltin<"__builtin_ia32_expandloadsi512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_q_512 : GCCBuiltin<"__builtin_ia32_expandloaddi512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_d_256 : GCCBuiltin<"__builtin_ia32_expandloadsi256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_q_256 : GCCBuiltin<"__builtin_ia32_expandloaddi256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_d_128 : GCCBuiltin<"__builtin_ia32_expandloadsi128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; def int_x86_avx512_mask_expand_load_q_128 : GCCBuiltin<"__builtin_ia32_expandloaddi128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrReadMem, IntrArgMemOnly]>; } // truncate let TargetPrefix = "x86" in { def int_x86_avx512_mask_pmov_qb_128 : GCCBuiltin<"__builtin_ia32_pmovqb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qb_mem_128 : GCCBuiltin<"__builtin_ia32_pmovqb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qb_128 : GCCBuiltin<"__builtin_ia32_pmovsqb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qb_mem_128 : GCCBuiltin<"__builtin_ia32_pmovsqb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qb_128 : GCCBuiltin<"__builtin_ia32_pmovusqb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v2i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qb_mem_128 : GCCBuiltin<"__builtin_ia32_pmovusqb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qb_256 : GCCBuiltin<"__builtin_ia32_pmovqb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qb_mem_256 : GCCBuiltin<"__builtin_ia32_pmovqb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qb_256 : GCCBuiltin<"__builtin_ia32_pmovsqb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qb_mem_256 : GCCBuiltin<"__builtin_ia32_pmovsqb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qb_256 : GCCBuiltin<"__builtin_ia32_pmovusqb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v4i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qb_mem_256 : GCCBuiltin<"__builtin_ia32_pmovusqb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qb_512 : GCCBuiltin<"__builtin_ia32_pmovqb512_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qb_mem_512 : GCCBuiltin<"__builtin_ia32_pmovqb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qb_512 : GCCBuiltin<"__builtin_ia32_pmovsqb512_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qb_mem_512 : GCCBuiltin<"__builtin_ia32_pmovsqb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qb_512 : GCCBuiltin<"__builtin_ia32_pmovusqb512_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i64_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qb_mem_512 : GCCBuiltin<"__builtin_ia32_pmovusqb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qw_128 : GCCBuiltin<"__builtin_ia32_pmovqw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qw_mem_128 : GCCBuiltin<"__builtin_ia32_pmovqw128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qw_128 : GCCBuiltin<"__builtin_ia32_pmovsqw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qw_mem_128 : GCCBuiltin<"__builtin_ia32_pmovsqw128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qw_128 : GCCBuiltin<"__builtin_ia32_pmovusqw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v2i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qw_mem_128 : GCCBuiltin<"__builtin_ia32_pmovusqw128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qw_256 : GCCBuiltin<"__builtin_ia32_pmovqw256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qw_mem_256 : GCCBuiltin<"__builtin_ia32_pmovqw256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qw_256 : GCCBuiltin<"__builtin_ia32_pmovsqw256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qw_mem_256 : GCCBuiltin<"__builtin_ia32_pmovsqw256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qw_256 : GCCBuiltin<"__builtin_ia32_pmovusqw256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qw_mem_256 : GCCBuiltin<"__builtin_ia32_pmovusqw256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qw_512 : GCCBuiltin<"__builtin_ia32_pmovqw512_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qw_mem_512 : GCCBuiltin<"__builtin_ia32_pmovqw512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qw_512 : GCCBuiltin<"__builtin_ia32_pmovsqw512_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qw_mem_512 : GCCBuiltin<"__builtin_ia32_pmovsqw512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qw_512 : GCCBuiltin<"__builtin_ia32_pmovusqw512_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i64_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qw_mem_512 : GCCBuiltin<"__builtin_ia32_pmovusqw512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qd_128 : GCCBuiltin<"__builtin_ia32_pmovqd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qd_mem_128 : GCCBuiltin<"__builtin_ia32_pmovqd128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qd_128 : GCCBuiltin<"__builtin_ia32_pmovsqd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qd_mem_128 : GCCBuiltin<"__builtin_ia32_pmovsqd128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qd_128 : GCCBuiltin<"__builtin_ia32_pmovusqd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qd_mem_128 : GCCBuiltin<"__builtin_ia32_pmovusqd128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qd_256 : GCCBuiltin<"__builtin_ia32_pmovqd256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qd_mem_256 : GCCBuiltin<"__builtin_ia32_pmovqd256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qd_256 : GCCBuiltin<"__builtin_ia32_pmovsqd256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qd_mem_256 : GCCBuiltin<"__builtin_ia32_pmovsqd256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qd_256 : GCCBuiltin<"__builtin_ia32_pmovusqd256_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qd_mem_256 : GCCBuiltin<"__builtin_ia32_pmovusqd256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_qd_512 : GCCBuiltin<"__builtin_ia32_pmovqd512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_qd_mem_512 : GCCBuiltin<"__builtin_ia32_pmovqd512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_qd_512 : GCCBuiltin<"__builtin_ia32_pmovsqd512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_qd_mem_512 : GCCBuiltin<"__builtin_ia32_pmovsqd512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_qd_512 : GCCBuiltin<"__builtin_ia32_pmovusqd512_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i64_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_qd_mem_512 : GCCBuiltin<"__builtin_ia32_pmovusqd512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i64_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_db_128 : GCCBuiltin<"__builtin_ia32_pmovdb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_db_mem_128 : GCCBuiltin<"__builtin_ia32_pmovdb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_db_128 : GCCBuiltin<"__builtin_ia32_pmovsdb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_db_mem_128 : GCCBuiltin<"__builtin_ia32_pmovsdb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_db_128 : GCCBuiltin<"__builtin_ia32_pmovusdb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v4i32_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_db_mem_128 : GCCBuiltin<"__builtin_ia32_pmovusdb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_db_256 : GCCBuiltin<"__builtin_ia32_pmovdb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_db_mem_256 : GCCBuiltin<"__builtin_ia32_pmovdb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_db_256 : GCCBuiltin<"__builtin_ia32_pmovsdb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_db_mem_256 : GCCBuiltin<"__builtin_ia32_pmovsdb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_db_256 : GCCBuiltin<"__builtin_ia32_pmovusdb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i32_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_db_mem_256 : GCCBuiltin<"__builtin_ia32_pmovusdb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_db_512 : GCCBuiltin<"__builtin_ia32_pmovdb512_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_db_mem_512 : GCCBuiltin<"__builtin_ia32_pmovdb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_db_512 : GCCBuiltin<"__builtin_ia32_pmovsdb512_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_db_mem_512 : GCCBuiltin<"__builtin_ia32_pmovsdb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_db_512 : GCCBuiltin<"__builtin_ia32_pmovusdb512_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i32_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_db_mem_512 : GCCBuiltin<"__builtin_ia32_pmovusdb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_dw_128 : GCCBuiltin<"__builtin_ia32_pmovdw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_dw_mem_128 : GCCBuiltin<"__builtin_ia32_pmovdw128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_dw_128 : GCCBuiltin<"__builtin_ia32_pmovsdw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_dw_mem_128 : GCCBuiltin<"__builtin_ia32_pmovsdw128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_dw_128 : GCCBuiltin<"__builtin_ia32_pmovusdw128_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_dw_mem_128 : GCCBuiltin<"__builtin_ia32_pmovusdw128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_dw_256 : GCCBuiltin<"__builtin_ia32_pmovdw256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_dw_mem_256 : GCCBuiltin<"__builtin_ia32_pmovdw256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_dw_256 : GCCBuiltin<"__builtin_ia32_pmovsdw256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_dw_mem_256 : GCCBuiltin<"__builtin_ia32_pmovsdw256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_dw_256 : GCCBuiltin<"__builtin_ia32_pmovusdw256_mask">, Intrinsic<[llvm_v8i16_ty], [llvm_v8i32_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_dw_mem_256 : GCCBuiltin<"__builtin_ia32_pmovusdw256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_dw_512 : GCCBuiltin<"__builtin_ia32_pmovdw512_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_dw_mem_512 : GCCBuiltin<"__builtin_ia32_pmovdw512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_dw_512 : GCCBuiltin<"__builtin_ia32_pmovsdw512_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_dw_mem_512 : GCCBuiltin<"__builtin_ia32_pmovsdw512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_dw_512 : GCCBuiltin<"__builtin_ia32_pmovusdw512_mask">, Intrinsic<[llvm_v16i16_ty], [llvm_v16i32_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_dw_mem_512 : GCCBuiltin<"__builtin_ia32_pmovusdw512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i32_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_wb_128 : GCCBuiltin<"__builtin_ia32_pmovwb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_wb_mem_128 : GCCBuiltin<"__builtin_ia32_pmovwb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_wb_128 : GCCBuiltin<"__builtin_ia32_pmovswb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_wb_mem_128 : GCCBuiltin<"__builtin_ia32_pmovswb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_wb_128 : GCCBuiltin<"__builtin_ia32_pmovuswb128_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_wb_mem_128 : GCCBuiltin<"__builtin_ia32_pmovuswb128mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v8i16_ty, llvm_i8_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_wb_256 : GCCBuiltin<"__builtin_ia32_pmovwb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_wb_mem_256 : GCCBuiltin<"__builtin_ia32_pmovwb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_wb_256 : GCCBuiltin<"__builtin_ia32_pmovswb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_wb_mem_256 : GCCBuiltin<"__builtin_ia32_pmovswb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_wb_256 : GCCBuiltin<"__builtin_ia32_pmovuswb256_mask">, Intrinsic<[llvm_v16i8_ty], [llvm_v16i16_ty, llvm_v16i8_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_wb_mem_256 : GCCBuiltin<"__builtin_ia32_pmovuswb256mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v16i16_ty, llvm_i16_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmov_wb_512 : GCCBuiltin<"__builtin_ia32_pmovwb512_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmov_wb_mem_512 : GCCBuiltin<"__builtin_ia32_pmovwb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovs_wb_512 : GCCBuiltin<"__builtin_ia32_pmovswb512_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovs_wb_mem_512 : GCCBuiltin<"__builtin_ia32_pmovswb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrArgMemOnly]>; def int_x86_avx512_mask_pmovus_wb_512 : GCCBuiltin<"__builtin_ia32_pmovuswb512_mask">, Intrinsic<[llvm_v32i8_ty], [llvm_v32i16_ty, llvm_v32i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_pmovus_wb_mem_512 : GCCBuiltin<"__builtin_ia32_pmovuswb512mem_mask">, Intrinsic<[], [llvm_ptr_ty, llvm_v32i16_ty, llvm_i32_ty], [IntrArgMemOnly]>; } // Bitwise ternary logic let TargetPrefix = "x86" in { def int_x86_avx512_mask_pternlog_d_128 : GCCBuiltin<"__builtin_ia32_pternlogd128_mask">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_pternlog_d_128 : GCCBuiltin<"__builtin_ia32_pternlogd128_maskz">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pternlog_d_256 : GCCBuiltin<"__builtin_ia32_pternlogd256_mask">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_pternlog_d_256 : GCCBuiltin<"__builtin_ia32_pternlogd256_maskz">, Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pternlog_d_512 : GCCBuiltin<"__builtin_ia32_pternlogd512_mask">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_maskz_pternlog_d_512 : GCCBuiltin<"__builtin_ia32_pternlogd512_maskz">, Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty, llvm_i16_ty], [IntrNoMem]>; def int_x86_avx512_mask_pternlog_q_128 : GCCBuiltin<"__builtin_ia32_pternlogq128_mask">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_pternlog_q_128 : GCCBuiltin<"__builtin_ia32_pternlogq128_maskz">, Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pternlog_q_256 : GCCBuiltin<"__builtin_ia32_pternlogq256_mask">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_pternlog_q_256 : GCCBuiltin<"__builtin_ia32_pternlogq256_maskz">, Intrinsic<[llvm_v4i64_ty], [llvm_v4i64_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_pternlog_q_512 : GCCBuiltin<"__builtin_ia32_pternlogq512_mask">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_maskz_pternlog_q_512 : GCCBuiltin<"__builtin_ia32_pternlogq512_maskz">, Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_v8i64_ty, llvm_v8i64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; } // Misc. let TargetPrefix = "x86" in { def int_x86_avx512_mask_cmp_ps_512 : GCCBuiltin<"__builtin_ia32_cmpps512_mask">, Intrinsic<[llvm_i16_ty], [llvm_v16f32_ty, llvm_v16f32_ty, llvm_i32_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_pd_512 : GCCBuiltin<"__builtin_ia32_cmppd512_mask">, Intrinsic<[llvm_i8_ty], [llvm_v8f64_ty, llvm_v8f64_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_ps_256 : GCCBuiltin<"__builtin_ia32_cmpps256_mask">, Intrinsic<[llvm_i8_ty], [llvm_v8f32_ty, llvm_v8f32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_pd_256 : GCCBuiltin<"__builtin_ia32_cmppd256_mask">, Intrinsic<[llvm_i8_ty], [llvm_v4f64_ty, llvm_v4f64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_ps_128 : GCCBuiltin<"__builtin_ia32_cmpps128_mask">, Intrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_pd_128 : GCCBuiltin<"__builtin_ia32_cmppd128_mask">, Intrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_ss : GCCBuiltin<"__builtin_ia32_cmpss_mask">, Intrinsic<[llvm_i8_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_mask_cmp_sd : GCCBuiltin<"__builtin_ia32_cmpsd_mask">, Intrinsic<[llvm_i8_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_i32_ty, llvm_i8_ty, llvm_i32_ty], [IntrNoMem]>; def int_x86_avx512_movntdqa : GCCBuiltin<"__builtin_ia32_movntdqa512">, Intrinsic<[llvm_v8i64_ty], [llvm_ptr_ty], [IntrReadMem]>; } //===----------------------------------------------------------------------===// // SHA intrinsics let TargetPrefix = "x86" in { def int_x86_sha1rnds4 : GCCBuiltin<"__builtin_ia32_sha1rnds4">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty], [IntrNoMem]>; def int_x86_sha1nexte : GCCBuiltin<"__builtin_ia32_sha1nexte">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sha1msg1 : GCCBuiltin<"__builtin_ia32_sha1msg1">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sha1msg2 : GCCBuiltin<"__builtin_ia32_sha1msg2">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sha256rnds2 : GCCBuiltin<"__builtin_ia32_sha256rnds2">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sha256msg1 : GCCBuiltin<"__builtin_ia32_sha256msg1">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; def int_x86_sha256msg2 : GCCBuiltin<"__builtin_ia32_sha256msg2">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>; } //===----------------------------------------------------------------------===// // Thread synchronization ops with timer. let TargetPrefix = "x86" in { def int_x86_monitorx : GCCBuiltin<"__builtin_ia32_monitorx">, Intrinsic<[], [ llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty ], []>; def int_x86_mwaitx : GCCBuiltin<"__builtin_ia32_mwaitx">, Intrinsic<[], [ llvm_i32_ty, llvm_i32_ty, llvm_i32_ty ], []>; } //==- IntrinsicsXCore.td - XCore intrinsics -*- tablegen -*-==// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines all of the XCore-specific intrinsics. // //===----------------------------------------------------------------------===// let TargetPrefix = "xcore" in { // All intrinsics start with "llvm.xcore.". // Miscellaneous instructions. def int_xcore_bitrev : Intrinsic<[llvm_i32_ty],[llvm_i32_ty],[IntrNoMem]>, GCCBuiltin<"__builtin_bitrev">; def int_xcore_crc8 : Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i32_ty,llvm_i32_ty,llvm_i32_ty], [IntrNoMem]>; def int_xcore_crc32 : Intrinsic<[llvm_i32_ty], [llvm_i32_ty,llvm_i32_ty,llvm_i32_ty], [IntrNoMem]>; def int_xcore_sext : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_xcore_zext : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_xcore_getid : Intrinsic<[llvm_i32_ty],[],[IntrNoMem]>, GCCBuiltin<"__builtin_getid">; def int_xcore_getps : Intrinsic<[llvm_i32_ty],[llvm_i32_ty]>, GCCBuiltin<"__builtin_getps">; def int_xcore_setps : Intrinsic<[],[llvm_i32_ty, llvm_i32_ty]>, GCCBuiltin<"__builtin_setps">; def int_xcore_geted : Intrinsic<[llvm_i32_ty],[]>; def int_xcore_getet : Intrinsic<[llvm_i32_ty],[]>; def int_xcore_setsr : Intrinsic<[],[llvm_i32_ty]>; def int_xcore_clrsr : Intrinsic<[],[llvm_i32_ty]>; // Resource instructions. def int_xcore_getr : Intrinsic<[llvm_anyptr_ty],[llvm_i32_ty]>; def int_xcore_freer : Intrinsic<[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_in : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty],[NoCapture<0>]>; def int_xcore_int : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_inct : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_out : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_outt : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_outct : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_chkct : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_testct : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_testwct : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_setd : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_setc : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_inshr : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_outshr : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_setpt : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_clrpt : Intrinsic<[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_getts : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_syncr : Intrinsic<[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_settw : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_setv : Intrinsic<[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; def int_xcore_setev : Intrinsic<[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; def int_xcore_eeu : Intrinsic<[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_edu : Intrinsic<[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_setclk : Intrinsic<[],[llvm_anyptr_ty, llvm_anyptr_ty], [NoCapture<0>, NoCapture<1>]>; def int_xcore_setrdy : Intrinsic<[],[llvm_anyptr_ty, llvm_anyptr_ty], [NoCapture<0>, NoCapture<1>]>; def int_xcore_setpsc : Intrinsic<[],[llvm_anyptr_ty, llvm_i32_ty], [NoCapture<0>]>; def int_xcore_peek : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_endin : Intrinsic<[llvm_i32_ty],[llvm_anyptr_ty], [NoCapture<0>]>; // Intrinsics for events. def int_xcore_waitevent : Intrinsic<[llvm_ptr_ty],[], [IntrReadMem]>; // If any of the resources owned by the thread are ready this returns the // vector of one of the ready resources. If no resources owned by the thread // are ready then the operand passed to the intrinsic is returned. def int_xcore_checkevent : Intrinsic<[llvm_ptr_ty],[llvm_ptr_ty]>; def int_xcore_clre : Intrinsic<[],[],[]>; // Intrinsics for threads. def int_xcore_getst : Intrinsic <[llvm_anyptr_ty],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_msync : Intrinsic <[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_ssync : Intrinsic <[],[]>; def int_xcore_mjoin : Intrinsic <[],[llvm_anyptr_ty], [NoCapture<0>]>; def int_xcore_initsp : Intrinsic <[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; def int_xcore_initpc : Intrinsic <[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; def int_xcore_initlr : Intrinsic <[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; def int_xcore_initcp : Intrinsic <[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; def int_xcore_initdp : Intrinsic <[],[llvm_anyptr_ty, llvm_ptr_ty], [NoCapture<0>]>; }