Ignore:
Timestamp:
Jun 30, 2014, 10:36:54 PM (5 years ago)
Author:
linmengl
Message:

add float vector support for getTypeForEVT, fix wide integer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • parabix-LLVM/mkValueTypes.py

    r3904 r3905  
    293293            num_elt = getNumElement(tpname)
    294294            fieldtype = bitwidth / num_elt
     295            res += "  case MVT::{0}:   return VectorType::get(Type::".format(tpname)
    295296            if fieldtype > 64 or fieldtype == 2 or fieldtype == 4:
     297                res += "getIntNTy(Context, {0})".format(fieldtype)
     298            else:
     299                res += "getInt{0}Ty(Context)".format(fieldtype)
     300            res += ", {0});\n".format(num_elt)
     301
     302    res += "\n"
     303
     304    for bitwidth in sorted(VectorSizeMap.keys()):
     305        for tpname in VectorSizeMap[bitwidth]:
     306            if 'f' not in tpname:
     307                # only works on integer vectors
    296308                continue
    297             res += "  case MVT::{tpname}:   return VectorType::get(Type::getInt{fieldtype}Ty(Context), {num_elt});\n".format(
    298                     **{'tpname': tpname, 'fieldtype': fieldtype, 'num_elt': num_elt});
     309            num_elt = getNumElement(tpname)
     310            fieldtype = bitwidth / num_elt
     311            res += "  case MVT::{0}:   return VectorType::get(Type::".format(tpname)
     312            if fieldtype == 16:
     313                res += "getHalfTy"
     314            elif fieldtype == 32:
     315                res += "getFloatTy"
     316            elif fieldtype == 64:
     317                res += "getDoubleTy"
     318            else:
     319                raise Exception("Invalid float type for getTypeForEVT")
     320            res += "(Context), {0});\n".format(num_elt)
     321
    299322    return res
    300323
Note: See TracChangeset for help on using the changeset viewer.