The patch adds support of i128 params lowering. The changes are quite trivial to support i128 as a "special case" of integer type. With this patch, we lower i128 params the same way as aggregates of size 16 bytes: .param .b8 _ [16].
Currently, NVPTX can't deal with the 128 bit integers:
- in some cases because of failed assertions like ValVTs.size() == OutVals.size() && "Bad return value decomposition"
- in other cases emitting PTX with .i128 or .u128 types (which are not valid [1])
[1] http://docs.nvidia.com/cuda/parallel-thread-execution/index.html#fundamental-types
Nit. I'd group together (Ty->isIntegerTy() && !Ty->isIntegerTy(128))