From: Reid Spencer
This is an overloaded intrinsic. You can use llvm.bit.part_set on -any integer bit width. -
- declare i17 @llvm.bit.part_set.i17.i17.i9 (i17 %val, i32 %bit, i9 %newbits) - declare i29 @llvm.bit.part_set.i29.i29.i13(i29 %val, i32 %bit, i13 %newbits) -- -
The 'llvm.bit.part_set' family of intrinsic functions sets a range -of bits in a given value to a new value and returns the result.
- -The first argument and the result may be an integer type of any bit width but -they must have the same bit width. The second argument must be an i32. -The third argument may be any any bit width less than or equal to the bit width -of the first argument.
- -The 'llvm.bit.part_set' intrinsic sets the value given by -%newbits into %val at the bit index given by %bit. -This is equivalent to the following sequence:
-