Changes between Version 7 and Version 8 of CompleteInteger


Ignore:
Timestamp:
May 14, 2014, 6:19:38 AM (5 years ago)
Author:
cameron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CompleteInteger

    v7 v8  
    1111  1. Add first class support for vectors of integers of i1, i2 and i4 types up to <256 x i1>, <128 x i2>, <64 x i4>.
    1212  1. Add first class support for vectors of long integers <2 x i128>.
     13
     14
    1315
    1416== Short Integer Types ==
     
    3537the BitShuffle subproject can be implemented.
    3638
     39
     40
    3741=== Example: 2-bit Fields ===
    3842
     
    4852We explore this possibility with the [wiki:i2Vector i2Vector] project.
    4953
     54=== Type Legalization ===
     55
     56==== !X86/X86ISelLowering.cpp ====
     57[http://llvm.org/docs/CodeGenerator.html#legalize-selectiondag-types Legalizing Types]
     58
     59New {{{addRegisterClass}}} statements required.
     60
     61The {{{i1}}} vector types.
     62
     63{{{   
     64addRegisterClass(MVT::v32i1, &X86::GR32RegClass);
     65addRegisterClass(MVT::v64i1, &X86::GR64RegClass);
     66addRegisterClass(MVT::v128i1, &X86::VR128RegClass);
     67addRegisterClass(MVT::v256i1, &X86::VR256RegClass);
     68addRegisterClass(MVT::v512i1, &X86::VR512RegClass);
     69}}}
     70
     71
     72The {{{i2}}} vector types.
     73
     74{{{   
     75addRegisterClass(MVT::v16i2, &X86::GR32RegClass);
     76addRegisterClass(MVT::v32i2, &X86::GR64RegClass);
     77addRegisterClass(MVT::v64i2, &X86::VR128RegClass);
     78addRegisterClass(MVT::v128i2, &X86::VR256RegClass);
     79addRegisterClass(MVT::v256i2, &X86::VR512RegClass);
     80}}}
     81
     82The {{{i4}}} vector types.
     83
     84{{{   
     85addRegisterClass(MVT::v8i4, &X86::GR32RegClass);
     86addRegisterClass(MVT::v16i4, &X86::GR64RegClass);
     87addRegisterClass(MVT::v32i4, &X86::VR128RegClass);
     88addRegisterClass(MVT::v64i4, &X86::VR256RegClass);
     89addRegisterClass(MVT::v128i4, &X86::VR512RegClass);
     90}}}
     91
     92Additional vector types.
     93{{{   
     94addRegisterClass(MVT::v4i8, &X86::GR32RegClass);
     95addRegisterClass(MVT::v2i16, &X86::GR32RegClass);
     96addRegisterClass(MVT::v8i8, &X86::GR64RegClass);
     97addRegisterClass(MVT::v4i16, &X86::GR64RegClass);
     98addRegisterClass(MVT::v2i32, &X86::GR64RegClass);
     99}}}
     100
    50101
    51102== Vectors of Long Integers ==