diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/IR/Function.cpp | 41 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86IntrinsicsInfo.h | 2 | 
2 files changed, 25 insertions, 18 deletions
| diff --git a/llvm/lib/IR/Function.cpp b/llvm/lib/IR/Function.cpp index 605f3ecea50..83f71a89162 100644 --- a/llvm/lib/IR/Function.cpp +++ b/llvm/lib/IR/Function.cpp @@ -474,7 +474,7 @@ std::string Intrinsic::getName(ID id, ArrayRef<Type*> Tys) {  ///  /// NOTE: This must be kept in synch with the copy in TblGen/IntrinsicEmitter!  enum IIT_Info { -  // Common values should be encoded with 0-15. +  // Common values should be encoded with 0-16.    IIT_Done = 0,    IIT_I1   = 1,    IIT_I8   = 2, @@ -489,23 +489,24 @@ enum IIT_Info {    IIT_V8   = 11,    IIT_V16  = 12,    IIT_V32  = 13, -  IIT_PTR  = 14, -  IIT_ARG  = 15, - -  // Values from 16+ are only encodable with the inefficient encoding. -  IIT_MMX  = 16, -  IIT_METADATA = 17, -  IIT_EMPTYSTRUCT = 18, -  IIT_STRUCT2 = 19, -  IIT_STRUCT3 = 20, -  IIT_STRUCT4 = 21, -  IIT_STRUCT5 = 22, -  IIT_EXTEND_ARG = 23, -  IIT_TRUNC_ARG = 24, -  IIT_ANYPTR = 25, -  IIT_V1   = 26, -  IIT_VARARG = 27, -  IIT_HALF_VEC_ARG = 28 +  IIT_V64  = 14, +  IIT_PTR  = 15, +  IIT_ARG  = 16, + +  // Values from 17+ are only encodable with the inefficient encoding. +  IIT_MMX  = 17, +  IIT_METADATA = 18, +  IIT_EMPTYSTRUCT = 19, +  IIT_STRUCT2 = 20, +  IIT_STRUCT3 = 21, +  IIT_STRUCT4 = 22, +  IIT_STRUCT5 = 23, +  IIT_EXTEND_ARG = 24, +  IIT_TRUNC_ARG = 25, +  IIT_ANYPTR = 26, +  IIT_V1   = 27, +  IIT_VARARG = 28, +  IIT_HALF_VEC_ARG = 29  }; @@ -576,6 +577,10 @@ static void DecodeIITType(unsigned &NextElt, ArrayRef<unsigned char> Infos,      OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 32));      DecodeIITType(NextElt, Infos, OutputTable);      return; +  case IIT_V64: +    OutputTable.push_back(IITDescriptor::get(IITDescriptor::Vector, 64)); +    DecodeIITType(NextElt, Infos, OutputTable); +    return;    case IIT_PTR:      OutputTable.push_back(IITDescriptor::get(IITDescriptor::Pointer, 0));      DecodeIITType(NextElt, Infos, OutputTable); diff --git a/llvm/lib/Target/X86/X86IntrinsicsInfo.h b/llvm/lib/Target/X86/X86IntrinsicsInfo.h index b9b836c78f1..4c374af1f04 100644 --- a/llvm/lib/Target/X86/X86IntrinsicsInfo.h +++ b/llvm/lib/Target/X86/X86IntrinsicsInfo.h @@ -156,8 +156,10 @@ static const IntrinsicData  IntrinsicsWithoutChain[] = {    X86_INTRINSIC_DATA(avx2_psubus_b,     INTR_TYPE_2OP, X86ISD::SUBUS, 0),    X86_INTRINSIC_DATA(avx2_psubus_w,     INTR_TYPE_2OP, X86ISD::SUBUS, 0),    X86_INTRINSIC_DATA(avx2_vperm2i128,   INTR_TYPE_3OP, X86ISD::VPERM2X128, 0), +  X86_INTRINSIC_DATA(avx512_mask_pcmpeq_b_512,  CMP_MASK,  X86ISD::PCMPEQM, 0),    X86_INTRINSIC_DATA(avx512_mask_pcmpeq_d_512,  CMP_MASK,  X86ISD::PCMPEQM, 0),    X86_INTRINSIC_DATA(avx512_mask_pcmpeq_q_512,  CMP_MASK,  X86ISD::PCMPEQM, 0), +  X86_INTRINSIC_DATA(avx512_mask_pcmpeq_w_512,  CMP_MASK,  X86ISD::PCMPEQM, 0),    X86_INTRINSIC_DATA(avx_hadd_pd_256,   INTR_TYPE_2OP, X86ISD::FHADD, 0),    X86_INTRINSIC_DATA(avx_hadd_ps_256,   INTR_TYPE_2OP, X86ISD::FHADD, 0),    X86_INTRINSIC_DATA(avx_hsub_pd_256,   INTR_TYPE_2OP, X86ISD::FHSUB, 0), | 

