22 | | ~~There can be some applications of 2-bit integer fields, i.e., the~~ |

23 | | ~~SIMD vector type <64 x i2> for 128-bit SIMD registers.~~ |

24 | | |

25 | | ~~Can this be implemented in a generic way as follows:~~ |

26 | | |

27 | | ~~ 1. Make it a legal type in the SelectionDAG !LegalizeTypes phase.~~ |

28 | | ~~ 2. Create implementations of the standard vector operations and rule out all others in the SelectionDAG Legalize phase.~~ |

29 | | ~~ 3. Implement each operation using bitwise logic on the 2 positions of each field.~~ |

30 | | |

31 | | ~~We explore this possibility with the [wiki:i2Vector i2Vector] project.~~ |

32 | | |

33 | | ~~=== Support for i128, i256, i512 Types ===~~ |

34 | | |

35 | | ~~Parabix applications need long stream addition, subtraction and shift operations.~~ |

36 | | ~~There are standard ways of implementing these, including our parallel long-stream addition algorithm.~~ |

37 | | ~~Can these be integrated into LLVM?~~ |

38 | | |

39 | | ~~The LongInteger project involves systematic support of the i256 type on LLVM, taking advantage~~ |

40 | | ~~of AVX2 instructions on the latest Intel Haswell chips. Now part of the CompleteInteger project.~~ |