--- a/LLVMIRBuilder.st Wed Jul 06 22:40:59 2016 +0100
+++ b/LLVMIRBuilder.st Fri Aug 05 17:12:05 2016 +0100
@@ -395,6 +395,69 @@
"Created: / 11-02-2016 / 20:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 12-02-2016 / 11:55:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+sext: value toInt: type
+ ^ self sext: value toInt: type as: ''.
+
+ "Created: / 05-08-2016 / 11:50:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+sext: value toInt: type as: name
+ | valueType |
+
+ self assertIsIntegerValue: value.
+ valueType := value type.
+ self assertIsType: type.
+ self assert: type isIntegerType description: 'Type is not an integer type'.
+ self assertIsString: name.
+ self assert: valueType sizeInBits < type sizeInBits description: 'Bit size of value is not smaller than bitsize of integer type'.
+
+ ^ LLVM BuildSExt: self _: value _: type _: name.
+
+ "Created: / 05-08-2016 / 13:41:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+trunc: value toInt: type
+ ^ self trunc: value toInt: type as: ''.
+
+ "Created: / 05-08-2016 / 17:10:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+trunc: value toInt: type as: name
+ | valueType |
+
+ self assertIsIntegerValue: value.
+ valueType := value type.
+ self assertIsType: type.
+ self assert: type isIntegerType description: 'Type is not an integer type'.
+ self assertIsString: name.
+ self assert: valueType sizeInBits > type sizeInBits description: 'Bit size of value is not greater than bitsize of integer type'.
+
+ ^ LLVM BuildTrunc: self _: value _: type _: name.
+
+ "Created: / 05-08-2016 / 17:10:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+zext: value toInt: type
+ ^ self zext: value toInt: type as: ''.
+
+ "Created: / 05-08-2016 / 13:42:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+zext: value toInt: type as: name
+ | valueType |
+
+ self assertIsIntegerValue: value.
+ valueType := value type.
+ self assertIsType: type.
+ self assert: type isIntegerType description: 'Type is not an integer type'.
+ self assertIsString: name.
+ self assert: valueType sizeInBits < type sizeInBits description: 'Bit size of value is not smaller than bitsize of integer type'.
+
+ ^ LLVM BuildZExt: self _: value _: type _: name.
+
+ "Created: / 05-08-2016 / 13:42:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMIRBuilder methodsFor:'instructions - intrinsics'!