translator: add arraextensions to BooleanArray, ByteArray and ShortArray

This commit is contained in:
Alexey Stepanov
2016-08-12 09:42:06 +03:00
parent d15a7383b1
commit 5a823a3c17
5 changed files with 383 additions and 215 deletions
+53
View File
@@ -40,3 +40,56 @@ class BooleanArray(var size: Int) {
}
}
fun BooleanArray.copyOf(newSize: Int): BooleanArray {
val newInstance = BooleanArray(newSize)
var index = 0
val end = if (newSize > this.size) this.size else newSize
while (index < end) {
val value = this.get(index)
newInstance.set(index, value)
index = index + 1
}
while (index < newSize) {
newInstance.set(index, false)
index = index + 1
}
return newInstance
}
fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {
val newInstance = BooleanArray(toIndex - fromIndex)
var index = fromIndex
while (index < toIndex) {
val value = this.get(index)
newInstance.set(index - fromIndex, value)
index = index + 1
}
return newInstance
}
operator fun BooleanArray.plus(element: Boolean): BooleanArray {
val index = size
val result = this.copyOf(index + 1)
result[index] = element
return result
}
operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray {
val thisSize = size
val arraySize = elements.size
val resultSize = thisSize + arraySize
val newInstance = this.copyOf(resultSize)
var index = thisSize
while (index < resultSize) {
val value = elements.get(index - thisSize)
newInstance.set(index, value)
index = index + 1
}
return newInstance
}
+53
View File
@@ -39,3 +39,56 @@ class ByteArray(var size: Int) {
}
}
fun ByteArray.copyOf(newSize: Int): ByteArray {
val newInstance = ByteArray(newSize)
var index = 0
val end = if (newSize > this.size) this.size else newSize
while (index < end) {
val value = this.get(index)
newInstance.set(index, value)
index = index + 1
}
while (index < newSize) {
newInstance.set(index, 0)
index = index + 1
}
return newInstance
}
fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {
val newInstance = ByteArray(toIndex - fromIndex)
var index = fromIndex
while (index < toIndex) {
val value = this.get(index)
newInstance.set(index - fromIndex, value)
index = index + 1
}
return newInstance
}
operator fun ByteArray.plus(element: Byte): ByteArray {
val index = size
val result = this.copyOf(index + 1)
result[index] = element
return result
}
operator fun ByteArray.plus(elements: ByteArray): ByteArray {
val thisSize = size
val arraySize = elements.size
val resultSize = thisSize + arraySize
val newInstance = this.copyOf(resultSize)
var index = thisSize
while (index < resultSize) {
val value = elements.get(index - thisSize)
newInstance.set(index, value)
index = index + 1
}
return newInstance
}
+53
View File
@@ -38,3 +38,56 @@ class ShortArray(var size: Int) {
}
}
fun ShortArray.copyOf(newSize: Int): ShortArray {
val newInstance = ShortArray(newSize)
var index = 0
val end = if (newSize > this.size) this.size else newSize
while (index < end) {
val value = this.get(index)
newInstance.set(index, value)
index = index + 1
}
while (index < newSize) {
newInstance.set(index, 0)
index = index + 1
}
return newInstance
}
fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {
val newInstance = ShortArray(toIndex - fromIndex)
var index = fromIndex
while (index < toIndex) {
val value = this.get(index)
newInstance.set(index - fromIndex, value)
index = index + 1
}
return newInstance
}
operator fun ShortArray.plus(element: Short): ShortArray {
val index = size
val result = this.copyOf(index + 1)
result[index] = element
return result
}
operator fun ShortArray.plus(elements: ShortArray): ShortArray {
val thisSize = size
val arraySize = elements.size
val resultSize = thisSize + arraySize
val newInstance = this.copyOf(resultSize)
var index = thisSize
while (index < resultSize) {
val value = elements.get(index - thisSize)
newInstance.set(index, value)
index = index + 1
}
return newInstance
}
+55 -50
View File
@@ -3,7 +3,7 @@ target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv7m-none--eabi"
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_intToByte(i32 %value) #0 {
define zeroext i8 @kotlinclib_intToByte(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -12,7 +12,7 @@ define weak zeroext i8 @kotlinclib_intToByte(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_intToChar(i32 %value) #0 {
define zeroext i8 @kotlinclib_intToChar(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -21,7 +21,7 @@ define weak zeroext i8 @kotlinclib_intToChar(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_intToShort(i32 %value) #0 {
define signext i16 @kotlinclib_intToShort(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -30,7 +30,7 @@ define weak signext i16 @kotlinclib_intToShort(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_intToLong(i32 %value) #0 {
define i32 @kotlinclib_intToLong(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -38,7 +38,7 @@ define weak i32 @kotlinclib_intToLong(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak float @kotlinclib_intToFloat(i32 %value) #0 {
define float @kotlinclib_intToFloat(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -47,7 +47,7 @@ define weak float @kotlinclib_intToFloat(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak double @kotlinclib_intToDouble(i32 %value) #0 {
define double @kotlinclib_intToDouble(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -56,7 +56,7 @@ define weak double @kotlinclib_intToDouble(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_byteToChar(i8 zeroext %value) #0 {
define zeroext i8 @kotlinclib_byteToChar(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -64,7 +64,7 @@ define weak zeroext i8 @kotlinclib_byteToChar(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_byteToShort(i8 zeroext %value) #0 {
define signext i16 @kotlinclib_byteToShort(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -73,7 +73,7 @@ define weak signext i16 @kotlinclib_byteToShort(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_byteToInt(i8 zeroext %value) #0 {
define i32 @kotlinclib_byteToInt(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -82,7 +82,7 @@ define weak i32 @kotlinclib_byteToInt(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_byteToLong(i8 zeroext %value) #0 {
define i32 @kotlinclib_byteToLong(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -91,7 +91,7 @@ define weak i32 @kotlinclib_byteToLong(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak float @kotlinclib_byteToFloat(i8 zeroext %value) #0 {
define float @kotlinclib_byteToFloat(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -100,7 +100,7 @@ define weak float @kotlinclib_byteToFloat(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak double @kotlinclib_byteToDouble(i8 zeroext %value) #0 {
define double @kotlinclib_byteToDouble(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -109,7 +109,7 @@ define weak double @kotlinclib_byteToDouble(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_charToByte(i8 zeroext %value) #0 {
define zeroext i8 @kotlinclib_charToByte(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -117,7 +117,7 @@ define weak zeroext i8 @kotlinclib_charToByte(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_charToShort(i8 zeroext %value) #0 {
define signext i16 @kotlinclib_charToShort(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -126,7 +126,7 @@ define weak signext i16 @kotlinclib_charToShort(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_charToInt(i8 zeroext %value) #0 {
define i32 @kotlinclib_charToInt(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -135,7 +135,7 @@ define weak i32 @kotlinclib_charToInt(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_charToLong(i8 zeroext %value) #0 {
define i32 @kotlinclib_charToLong(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -144,7 +144,7 @@ define weak i32 @kotlinclib_charToLong(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak float @kotlinclib_charToFloat(i8 zeroext %value) #0 {
define float @kotlinclib_charToFloat(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -153,7 +153,7 @@ define weak float @kotlinclib_charToFloat(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak double @kotlinclib_charToDouble(i8 zeroext %value) #0 {
define double @kotlinclib_charToDouble(i8 zeroext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
@@ -162,7 +162,7 @@ define weak double @kotlinclib_charToDouble(i8 zeroext %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_shortToByte(i16 signext %value) #0 {
define zeroext i8 @kotlinclib_shortToByte(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -171,7 +171,7 @@ define weak zeroext i8 @kotlinclib_shortToByte(i16 signext %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_shortToChar(i16 signext %value) #0 {
define zeroext i8 @kotlinclib_shortToChar(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -180,7 +180,7 @@ define weak zeroext i8 @kotlinclib_shortToChar(i16 signext %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_shortToInt(i16 signext %value) #0 {
define i32 @kotlinclib_shortToInt(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -189,7 +189,7 @@ define weak i32 @kotlinclib_shortToInt(i16 signext %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_shortToLong(i16 signext %value) #0 {
define i32 @kotlinclib_shortToLong(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -198,7 +198,7 @@ define weak i32 @kotlinclib_shortToLong(i16 signext %value) #0 {
}
; Function Attrs: nounwind
define weak float @kotlinclib_shortToFloat(i16 signext %value) #0 {
define float @kotlinclib_shortToFloat(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -207,7 +207,7 @@ define weak float @kotlinclib_shortToFloat(i16 signext %value) #0 {
}
; Function Attrs: nounwind
define weak double @kotlinclib_shortToDouble(i16 signext %value) #0 {
define double @kotlinclib_shortToDouble(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -216,7 +216,7 @@ define weak double @kotlinclib_shortToDouble(i16 signext %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_longToByte(i32 %value) #0 {
define zeroext i8 @kotlinclib_longToByte(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -225,7 +225,7 @@ define weak zeroext i8 @kotlinclib_longToByte(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_longToChar(i32 %value) #0 {
define zeroext i8 @kotlinclib_longToChar(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -234,7 +234,7 @@ define weak zeroext i8 @kotlinclib_longToChar(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_longToShort(i32 %value) #0 {
define signext i16 @kotlinclib_longToShort(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -243,7 +243,7 @@ define weak signext i16 @kotlinclib_longToShort(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_longToInt(i32 %value) #0 {
define i32 @kotlinclib_longToInt(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -251,7 +251,7 @@ define weak i32 @kotlinclib_longToInt(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak float @kotlinclib_longToFloat(i32 %value) #0 {
define float @kotlinclib_longToFloat(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -260,7 +260,7 @@ define weak float @kotlinclib_longToFloat(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak double @kotlinclib_longToDouble(i32 %value) #0 {
define double @kotlinclib_longToDouble(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -269,7 +269,7 @@ define weak double @kotlinclib_longToDouble(i32 %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_floatToByte(float %value) #0 {
define zeroext i8 @kotlinclib_floatToByte(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -278,7 +278,7 @@ define weak zeroext i8 @kotlinclib_floatToByte(float %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_floatToChar(float %value) #0 {
define zeroext i8 @kotlinclib_floatToChar(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -287,7 +287,7 @@ define weak zeroext i8 @kotlinclib_floatToChar(float %value) #0 {
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_floatToShort(float %value) #0 {
define signext i16 @kotlinclib_floatToShort(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -296,7 +296,7 @@ define weak signext i16 @kotlinclib_floatToShort(float %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_floatToInt(float %value) #0 {
define i32 @kotlinclib_floatToInt(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -305,7 +305,7 @@ define weak i32 @kotlinclib_floatToInt(float %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_floatToLong(float %value) #0 {
define i32 @kotlinclib_floatToLong(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -314,7 +314,7 @@ define weak i32 @kotlinclib_floatToLong(float %value) #0 {
}
; Function Attrs: nounwind
define weak double @kotlinclib_floatToDouble(float %value) #0 {
define double @kotlinclib_floatToDouble(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -323,7 +323,7 @@ define weak double @kotlinclib_floatToDouble(float %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_doubleToByte(double %value) #0 {
define zeroext i8 @kotlinclib_doubleToByte(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -332,7 +332,7 @@ define weak zeroext i8 @kotlinclib_doubleToByte(double %value) #0 {
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_doubleToChar(double %value) #0 {
define zeroext i8 @kotlinclib_doubleToChar(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -341,7 +341,7 @@ define weak zeroext i8 @kotlinclib_doubleToChar(double %value) #0 {
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_doubleToShort(double %value) #0 {
define signext i16 @kotlinclib_doubleToShort(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -350,7 +350,7 @@ define weak signext i16 @kotlinclib_doubleToShort(double %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_doubleToInt(double %value) #0 {
define i32 @kotlinclib_doubleToInt(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -359,7 +359,7 @@ define weak i32 @kotlinclib_doubleToInt(double %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_doubleToLong(double %value) #0 {
define i32 @kotlinclib_doubleToLong(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -368,7 +368,7 @@ define weak i32 @kotlinclib_doubleToLong(double %value) #0 {
}
; Function Attrs: nounwind
define weak float @kotlinclib_doubleToFloat(double %value) #0 {
define float @kotlinclib_doubleToFloat(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -377,37 +377,42 @@ define weak float @kotlinclib_doubleToFloat(double %value) #0 {
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_int_size() #0 {
define i32 @kotlinclib_int_size() #0 {
ret i32 4
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_long_size() #0 {
ret i32 8
define i32 @kotlinclib_long_size() #0 {
ret i32 4
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_boolean_size() #0 {
define i32 @kotlinclib_boolean_size() #0 {
ret i32 1
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_short_size() #0 {
define i32 @kotlinclib_short_size() #0 {
ret i32 2
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_double_size() #0 {
define i32 @kotlinclib_double_size() #0 {
ret i32 8
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_float_size() #0 {
define i32 @kotlinclib_float_size() #0 {
ret i32 4
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_char_size() #0 {
define i32 @kotlinclib_char_size() #0 {
ret i32 1
}
; Function Attrs: nounwind
define i32 @kotlinclib_byte_size() #0 {
ret i32 1
}
+169 -165
View File
@@ -1,9 +1,9 @@
; ModuleID = 'primitives.c'
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv7m-none--eabi"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_intToByte(i32 %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_intToByte(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -11,8 +11,8 @@ define weak zeroext i8 @kotlinclib_intToByte(i32 %value) #0 {
ret i8 %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_intToChar(i32 %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_intToChar(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -20,8 +20,8 @@ define weak zeroext i8 @kotlinclib_intToChar(i32 %value) #0 {
ret i8 %3
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_intToShort(i32 %value) #0 {
; Function Attrs: nounwind uwtable
define signext i16 @kotlinclib_intToShort(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -29,16 +29,17 @@ define weak signext i16 @kotlinclib_intToShort(i32 %value) #0 {
ret i16 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_intToLong(i32 %value) #0 {
; Function Attrs: nounwind uwtable
define i64 @kotlinclib_intToLong(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
ret i32 %2
%3 = sext i32 %2 to i64
ret i64 %3
}
; Function Attrs: nounwind
define weak float @kotlinclib_intToFloat(i32 %value) #0 {
; Function Attrs: nounwind uwtable
define float @kotlinclib_intToFloat(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -46,8 +47,8 @@ define weak float @kotlinclib_intToFloat(i32 %value) #0 {
ret float %3
}
; Function Attrs: nounwind
define weak double @kotlinclib_intToDouble(i32 %value) #0 {
; Function Attrs: nounwind uwtable
define double @kotlinclib_intToDouble(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
@@ -55,114 +56,114 @@ define weak double @kotlinclib_intToDouble(i32 %value) #0 {
ret double %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_byteToChar(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_byteToChar(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
ret i8 %2
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_byteToShort(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define signext i16 @kotlinclib_byteToShort(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = zext i8 %2 to i16
%3 = sext i8 %2 to i16
ret i16 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_byteToInt(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_byteToInt(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = zext i8 %2 to i32
%3 = sext i8 %2 to i32
ret i32 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_byteToLong(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define i64 @kotlinclib_byteToLong(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = zext i8 %2 to i32
ret i32 %3
%3 = sext i8 %2 to i64
ret i64 %3
}
; Function Attrs: nounwind
define weak float @kotlinclib_byteToFloat(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define float @kotlinclib_byteToFloat(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = uitofp i8 %2 to float
%3 = sitofp i8 %2 to float
ret float %3
}
; Function Attrs: nounwind
define weak double @kotlinclib_byteToDouble(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define double @kotlinclib_byteToDouble(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = uitofp i8 %2 to double
%3 = sitofp i8 %2 to double
ret double %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_charToByte(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_charToByte(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
ret i8 %2
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_charToShort(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define signext i16 @kotlinclib_charToShort(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = zext i8 %2 to i16
%3 = sext i8 %2 to i16
ret i16 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_charToInt(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_charToInt(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = zext i8 %2 to i32
%3 = sext i8 %2 to i32
ret i32 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_charToLong(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define i64 @kotlinclib_charToLong(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = zext i8 %2 to i32
ret i32 %3
%3 = sext i8 %2 to i64
ret i64 %3
}
; Function Attrs: nounwind
define weak float @kotlinclib_charToFloat(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define float @kotlinclib_charToFloat(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = uitofp i8 %2 to float
%3 = sitofp i8 %2 to float
ret float %3
}
; Function Attrs: nounwind
define weak double @kotlinclib_charToDouble(i8 zeroext %value) #0 {
; Function Attrs: nounwind uwtable
define double @kotlinclib_charToDouble(i8 signext %value) #0 {
%1 = alloca i8, align 1
store i8 %value, i8* %1, align 1
%2 = load i8* %1, align 1
%3 = uitofp i8 %2 to double
%3 = sitofp i8 %2 to double
ret double %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_shortToByte(i16 signext %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_shortToByte(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -170,8 +171,8 @@ define weak zeroext i8 @kotlinclib_shortToByte(i16 signext %value) #0 {
ret i8 %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_shortToChar(i16 signext %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_shortToChar(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -179,8 +180,8 @@ define weak zeroext i8 @kotlinclib_shortToChar(i16 signext %value) #0 {
ret i8 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_shortToInt(i16 signext %value) #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_shortToInt(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -188,17 +189,17 @@ define weak i32 @kotlinclib_shortToInt(i16 signext %value) #0 {
ret i32 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_shortToLong(i16 signext %value) #0 {
; Function Attrs: nounwind uwtable
define i64 @kotlinclib_shortToLong(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
%3 = sext i16 %2 to i32
ret i32 %3
%3 = sext i16 %2 to i64
ret i64 %3
}
; Function Attrs: nounwind
define weak float @kotlinclib_shortToFloat(i16 signext %value) #0 {
; Function Attrs: nounwind uwtable
define float @kotlinclib_shortToFloat(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -206,8 +207,8 @@ define weak float @kotlinclib_shortToFloat(i16 signext %value) #0 {
ret float %3
}
; Function Attrs: nounwind
define weak double @kotlinclib_shortToDouble(i16 signext %value) #0 {
; Function Attrs: nounwind uwtable
define double @kotlinclib_shortToDouble(i16 signext %value) #0 {
%1 = alloca i16, align 2
store i16 %value, i16* %1, align 2
%2 = load i16* %1, align 2
@@ -215,79 +216,80 @@ define weak double @kotlinclib_shortToDouble(i16 signext %value) #0 {
ret double %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_longToByte(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
%3 = trunc i32 %2 to i8
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_longToByte(i64 %value) #0 {
%1 = alloca i64, align 8
store i64 %value, i64* %1, align 8
%2 = load i64* %1, align 8
%3 = trunc i64 %2 to i8
ret i8 %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_longToChar(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
%3 = trunc i32 %2 to i8
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_longToChar(i64 %value) #0 {
%1 = alloca i64, align 8
store i64 %value, i64* %1, align 8
%2 = load i64* %1, align 8
%3 = trunc i64 %2 to i8
ret i8 %3
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_longToShort(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
%3 = trunc i32 %2 to i16
; Function Attrs: nounwind uwtable
define signext i16 @kotlinclib_longToShort(i64 %value) #0 {
%1 = alloca i64, align 8
store i64 %value, i64* %1, align 8
%2 = load i64* %1, align 8
%3 = trunc i64 %2 to i16
ret i16 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_longToInt(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
ret i32 %2
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_longToInt(i64 %value) #0 {
%1 = alloca i64, align 8
store i64 %value, i64* %1, align 8
%2 = load i64* %1, align 8
%3 = trunc i64 %2 to i32
ret i32 %3
}
; Function Attrs: nounwind
define weak float @kotlinclib_longToFloat(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
%3 = sitofp i32 %2 to float
; Function Attrs: nounwind uwtable
define float @kotlinclib_longToFloat(i64 %value) #0 {
%1 = alloca i64, align 8
store i64 %value, i64* %1, align 8
%2 = load i64* %1, align 8
%3 = sitofp i64 %2 to float
ret float %3
}
; Function Attrs: nounwind
define weak double @kotlinclib_longToDouble(i32 %value) #0 {
%1 = alloca i32, align 4
store i32 %value, i32* %1, align 4
%2 = load i32* %1, align 4
%3 = sitofp i32 %2 to double
; Function Attrs: nounwind uwtable
define double @kotlinclib_longToDouble(i64 %value) #0 {
%1 = alloca i64, align 8
store i64 %value, i64* %1, align 8
%2 = load i64* %1, align 8
%3 = sitofp i64 %2 to double
ret double %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_floatToByte(float %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_floatToByte(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
%3 = fptoui float %2 to i8
%3 = fptosi float %2 to i8
ret i8 %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_floatToChar(float %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_floatToChar(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
%3 = fptoui float %2 to i8
%3 = fptosi float %2 to i8
ret i8 %3
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_floatToShort(float %value) #0 {
; Function Attrs: nounwind uwtable
define signext i16 @kotlinclib_floatToShort(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -295,8 +297,8 @@ define weak signext i16 @kotlinclib_floatToShort(float %value) #0 {
ret i16 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_floatToInt(float %value) #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_floatToInt(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -304,17 +306,17 @@ define weak i32 @kotlinclib_floatToInt(float %value) #0 {
ret i32 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_floatToLong(float %value) #0 {
; Function Attrs: nounwind uwtable
define i64 @kotlinclib_floatToLong(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
%3 = fptosi float %2 to i32
ret i32 %3
%3 = fptosi float %2 to i64
ret i64 %3
}
; Function Attrs: nounwind
define weak double @kotlinclib_floatToDouble(float %value) #0 {
; Function Attrs: nounwind uwtable
define double @kotlinclib_floatToDouble(float %value) #0 {
%1 = alloca float, align 4
store float %value, float* %1, align 4
%2 = load float* %1, align 4
@@ -322,26 +324,26 @@ define weak double @kotlinclib_floatToDouble(float %value) #0 {
ret double %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_doubleToByte(double %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_doubleToByte(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
%3 = fptoui double %2 to i8
%3 = fptosi double %2 to i8
ret i8 %3
}
; Function Attrs: nounwind
define weak zeroext i8 @kotlinclib_doubleToChar(double %value) #0 {
; Function Attrs: nounwind uwtable
define signext i8 @kotlinclib_doubleToChar(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
%3 = fptoui double %2 to i8
%3 = fptosi double %2 to i8
ret i8 %3
}
; Function Attrs: nounwind
define weak signext i16 @kotlinclib_doubleToShort(double %value) #0 {
; Function Attrs: nounwind uwtable
define signext i16 @kotlinclib_doubleToShort(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -349,8 +351,8 @@ define weak signext i16 @kotlinclib_doubleToShort(double %value) #0 {
ret i16 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_doubleToInt(double %value) #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_doubleToInt(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -358,17 +360,17 @@ define weak i32 @kotlinclib_doubleToInt(double %value) #0 {
ret i32 %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_doubleToLong(double %value) #0 {
; Function Attrs: nounwind uwtable
define i64 @kotlinclib_doubleToLong(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
%3 = fptosi double %2 to i32
ret i32 %3
%3 = fptosi double %2 to i64
ret i64 %3
}
; Function Attrs: nounwind
define weak float @kotlinclib_doubleToFloat(double %value) #0 {
; Function Attrs: nounwind uwtable
define float @kotlinclib_doubleToFloat(double %value) #0 {
%1 = alloca double, align 8
store double %value, double* %1, align 8
%2 = load double* %1, align 8
@@ -376,46 +378,48 @@ define weak float @kotlinclib_doubleToFloat(double %value) #0 {
ret float %3
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_int_size() #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_int_size() #0 {
ret i32 4
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_long_size() #0 {
ret i32 4
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_boolean_size() #0 {
ret i32 1
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_short_size() #0 {
ret i32 2
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_double_size() #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_long_size() #0 {
ret i32 8
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_float_size() #0 {
ret i32 4
}
; Function Attrs: nounwind
define weak i32 @kotlinclib_char_size() #0 {
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_boolean_size() #0 {
ret i32 1
}
attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_short_size() #0 {
ret i32 2
}
!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_double_size() #0 {
ret i32 8
}
!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 1, !"min_enum_size", i32 4}
!2 = !{!"Ubuntu clang version 3.6.2-3ubuntu2 (tags/RELEASE_362/final) (based on LLVM 3.6.2)"}
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_float_size() #0 {
ret i32 4
}
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_char_size() #0 {
ret i32 1
}
; Function Attrs: nounwind uwtable
define i32 @kotlinclib_byte_size() #0 {
ret i32 1
}
attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
!llvm.ident = !{!0}
!0 = !{!"Ubuntu clang version 3.6.2-3ubuntu2 (tags/RELEASE_362/final) (based on LLVM 3.6.2)"}