summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorJason Sams <jsams@google.com>2014-02-24 19:17:33 -0800
committerJason Sams <jsams@google.com>2014-02-28 01:47:57 +0000
commitd8c4983b1a6c975ef3a691bde0a62c34dda1197e (patch)
tree5b5b756fa321ab6b9e781ebad997a3ae18bc0f08 /driver
parente926ff70839ae10e78525a021a0c79c9d080cb35 (diff)
downloadrs-d8c4983b1a6c975ef3a691bde0a62c34dda1197e.tar.gz
Add long & double conversions.
Change-Id: I236fb3d8cfed73fe8437c39a27e10f0d27a48ba1
Diffstat (limited to 'driver')
-rw-r--r--driver/runtime/convert.ll664
1 files changed, 664 insertions, 0 deletions
diff --git a/driver/runtime/convert.ll b/driver/runtime/convert.ll
index f45850d0..9f40c510 100644
--- a/driver/runtime/convert.ll
+++ b/driver/runtime/convert.ll
@@ -109,6 +109,47 @@ define <4 x float> @_Z14convert_float4Dv4_f(<4 x float> %in) nounwind readnone a
}
+define <2 x float> @_Z14convert_float2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptrunc <2 x double> %in to <2 x float>
+ ret <2 x float> %1
+}
+define <3 x float> @_Z14convert_float3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptrunc <3 x double> %in to <3 x float>
+ ret <3 x float> %1
+}
+define <4 x float> @_Z14convert_float4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptrunc <4 x double> %in to <4 x float>
+ ret <4 x float> %1
+}
+
+define <2 x float> @_Z14convert_float2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <2 x i64> %in to <2 x float>
+ ret <2 x float> %1
+}
+define <3 x float> @_Z14convert_float3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <3 x i64> %in to <3 x float>
+ ret <3 x float> %1
+}
+define <4 x float> @_Z14convert_float4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <4 x i64> %in to <4 x float>
+ ret <4 x float> %1
+}
+
+define <2 x float> @_Z14convert_float2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <2 x i64> %in to <2 x float>
+ ret <2 x float> %1
+}
+define <3 x float> @_Z14convert_float3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <3 x i64> %in to <3 x float>
+ ret <3 x float> %1
+}
+define <4 x float> @_Z14convert_float4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <4 x i64> %in to <4 x float>
+ ret <4 x float> %1
+}
+
+
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; CHAR ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -211,6 +252,45 @@ define <2 x i8> @_Z13convert_char2Dv2_i(<2 x i32> %in) nounwind readnone alwaysi
ret <2 x i8> %1
}
+define <2 x i8> @_Z13convert_char2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i8>
+ ret <2 x i8> %1
+}
+define <3 x i8> @_Z13convert_char3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i8>
+ ret <3 x i8> %1
+}
+define <4 x i8> @_Z13convert_char4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i8>
+ ret <4 x i8> %1
+}
+
+define <2 x i8> @_Z13convert_char2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i8>
+ ret <2 x i8> %1
+}
+define <3 x i8> @_Z13convert_char3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i8>
+ ret <3 x i8> %1
+}
+define <4 x i8> @_Z13convert_char4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i8>
+ ret <4 x i8> %1
+}
+
+define <2 x i8> @_Z13convert_char2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i8>
+ ret <2 x i8> %1
+}
+define <3 x i8> @_Z13convert_char3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i8>
+ ret <3 x i8> %1
+}
+define <4 x i8> @_Z13convert_char4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i8>
+ ret <4 x i8> %1
+}
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; UCHAR ;;;;;;;;;;
@@ -315,6 +395,45 @@ define <2 x i8> @_Z14convert_uchar2Dv2_i(<2 x i32> %in) nounwind readnone always
ret <2 x i8> %1
}
+define <2 x i8> @_Z14convert_uchar2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i8>
+ ret <2 x i8> %1
+}
+define <3 x i8> @_Z14convert_uchar3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i8>
+ ret <3 x i8> %1
+}
+define <4 x i8> @_Z14convert_uchar4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i8>
+ ret <4 x i8> %1
+}
+
+define <2 x i8> @_Z14convert_uchar2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i8>
+ ret <2 x i8> %1
+}
+define <3 x i8> @_Z14convert_uchar3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i8>
+ ret <3 x i8> %1
+}
+define <4 x i8> @_Z14convert_uchar4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i8>
+ ret <4 x i8> %1
+}
+
+define <2 x i8> @_Z14convert_uchar2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i8>
+ ret <2 x i8> %1
+}
+define <3 x i8> @_Z14convert_uchar3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i8>
+ ret <3 x i8> %1
+}
+define <4 x i8> @_Z14convert_uchar4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i8>
+ ret <4 x i8> %1
+}
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; SHORT ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -419,6 +538,46 @@ define <2 x i16> @_Z14convert_short2Dv2_i(<2 x i32> %in) nounwind readnone alway
}
+define <2 x i16> @_Z14convert_short2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i16>
+ ret <2 x i16> %1
+}
+define <3 x i16> @_Z14convert_short3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i16>
+ ret <3 x i16> %1
+}
+define <4 x i16> @_Z14convert_short4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i16>
+ ret <4 x i16> %1
+}
+
+define <2 x i16> @_Z14convert_short2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i16>
+ ret <2 x i16> %1
+}
+define <3 x i16> @_Z14convert_short3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i16>
+ ret <3 x i16> %1
+}
+define <4 x i16> @_Z14convert_short4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i16>
+ ret <4 x i16> %1
+}
+
+define <2 x i16> @_Z14convert_short2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i16>
+ ret <2 x i16> %1
+}
+define <3 x i16> @_Z14convert_short3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i16>
+ ret <3 x i16> %1
+}
+define <4 x i16> @_Z14convert_short4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i16>
+ ret <4 x i16> %1
+}
+
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; USHORT ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -522,6 +681,44 @@ define <2 x i16> @_Z15convert_ushort2Dv2_i(<2 x i32> %in) nounwind readnone alwa
ret <2 x i16> %1
}
+define <2 x i16> @_Z15convert_ushort2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i16>
+ ret <2 x i16> %1
+}
+define <3 x i16> @_Z15convert_ushort3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i16>
+ ret <3 x i16> %1
+}
+define <4 x i16> @_Z15convert_ushort4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i16>
+ ret <4 x i16> %1
+}
+
+define <2 x i16> @_Z15convert_ushort2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i16>
+ ret <2 x i16> %1
+}
+define <3 x i16> @_Z15convert_ushort3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i16>
+ ret <3 x i16> %1
+}
+define <4 x i16> @_Z15convert_ushort4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i16>
+ ret <4 x i16> %1
+}
+
+define <2 x i16> @_Z15convert_ushort2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i16>
+ ret <2 x i16> %1
+}
+define <3 x i16> @_Z15convert_ushort3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i16>
+ ret <3 x i16> %1
+}
+define <4 x i16> @_Z15convert_ushort4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i16>
+ ret <4 x i16> %1
+}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; INT ;;;;;;;;;;
@@ -626,6 +823,45 @@ define <2 x i32> @_Z12convert_int2Dv2_i(<2 x i32> %in) nounwind readnone alwaysi
ret <2 x i32> %in
}
+define <2 x i32> @_Z12convert_int2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i32>
+ ret <2 x i32> %1
+}
+define <3 x i32> @_Z12convert_int3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i32>
+ ret <3 x i32> %1
+}
+define <4 x i32> @_Z12convert_int4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i32>
+ ret <4 x i32> %1
+}
+
+define <2 x i32> @_Z12convert_int2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i32>
+ ret <2 x i32> %1
+}
+define <3 x i32> @_Z12convert_int3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i32>
+ ret <3 x i32> %1
+}
+define <4 x i32> @_Z12convert_int4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i32>
+ ret <4 x i32> %1
+}
+
+define <2 x i32> @_Z12convert_int2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i32>
+ ret <2 x i32> %1
+}
+define <3 x i32> @_Z12convert_int3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i32>
+ ret <3 x i32> %1
+}
+define <4 x i32> @_Z12convert_int4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i32>
+ ret <4 x i32> %1
+}
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; UINT ;;;;;;;;;;
@@ -729,3 +965,431 @@ define <3 x i32> @_Z13convert_uint3Dv3_i(<3 x i32> %in) nounwind readnone always
define <2 x i32> @_Z13convert_uint2Dv2_i(<2 x i32> %in) nounwind readnone alwaysinline {
ret <2 x i32> %in
}
+
+define <2 x i32> @_Z13convert_uint2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i32>
+ ret <2 x i32> %1
+}
+define <3 x i32> @_Z13convert_uint3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i32>
+ ret <3 x i32> %1
+}
+define <4 x i32> @_Z13convert_uint4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i32>
+ ret <4 x i32> %1
+}
+
+define <2 x i32> @_Z13convert_uint2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i32>
+ ret <2 x i32> %1
+}
+define <3 x i32> @_Z13convert_uint3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i32>
+ ret <3 x i32> %1
+}
+define <4 x i32> @_Z13convert_uint4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i32>
+ ret <4 x i32> %1
+}
+
+define <2 x i32> @_Z13convert_uint2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <2 x i64> %in to <2 x i32>
+ ret <2 x i32> %1
+}
+define <3 x i32> @_Z13convert_uint3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <3 x i64> %in to <3 x i32>
+ ret <3 x i32> %1
+}
+define <4 x i32> @_Z13convert_uint4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = trunc <4 x i64> %in to <4 x i32>
+ ret <4 x i32> %1
+}
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;; LONG ;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+define <4 x i64> @_Z13convert_long4Dv4_f(<4 x float> %in) nounwind readnone alwaysinline {
+ %1 = fptoui <4 x float> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_f(<3 x float> %in) nounwind readnone alwaysinline {
+ %1 = fptoui <3 x float> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_f(<2 x float> %in) nounwind readnone alwaysinline {
+ %1 = fptoui <2 x float> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z13convert_long4Dv4_h(<4 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i8> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_h(<3 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i8> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_h(<2 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i8> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z13convert_long4Dv4_c(<4 x i8> %in) nounwind readnone alwaysinline {
+ %1 = sext <4 x i8> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_c(<3 x i8> %in) nounwind readnone alwaysinline {
+ %1 = sext <3 x i8> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_c(<2 x i8> %in) nounwind readnone alwaysinline {
+ %1 = sext <2 x i8> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z13convert_long4Dv4_t(<4 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i16> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_t(<3 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i16> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_t(<2 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i16> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z13convert_long4Dv4_s(<4 x i16> %in) nounwind readnone alwaysinline {
+ %1 = sext <4 x i16> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_s(<3 x i16> %in) nounwind readnone alwaysinline {
+ %1 = sext <3 x i16> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_s(<2 x i16> %in) nounwind readnone alwaysinline {
+ %1 = sext <2 x i16> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z13convert_long4Dv4_j(<4 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i32> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_j(<3 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i32> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_j(<2 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i32> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z13convert_long4Dv4_i(<4 x i32> %in) nounwind readnone alwaysinline {
+ %1 = sext <4 x i32> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_i(<3 x i32> %in) nounwind readnone alwaysinline {
+ %1 = sext <3 x i32> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z13convert_long2Dv2_i(<2 x i32> %in) nounwind readnone alwaysinline {
+ %1 = sext <2 x i32> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <2 x i64> @_Z13convert_long2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+define <3 x i64> @_Z13convert_long3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <4 x i64> @_Z13convert_long4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+
+define <2 x i64> @_Z13convert_long2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ ret <2 x i64> %in
+}
+define <3 x i64> @_Z13convert_long3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ ret <3 x i64> %in
+}
+define <4 x i64> @_Z13convert_long4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ ret <4 x i64> %in
+}
+
+define <2 x i64> @_Z13convert_long2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ ret <2 x i64> %in
+}
+define <3 x i64> @_Z13convert_long3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ ret <3 x i64> %in
+}
+define <4 x i64> @_Z13convert_long4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ ret <4 x i64> %in
+}
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;; ULONG ;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+define <4 x i64> @_Z14convert_ulong4Dv4_f(<4 x float> %in) nounwind readnone alwaysinline {
+ %1 = fptoui <4 x float> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_f(<3 x float> %in) nounwind readnone alwaysinline {
+ %1 = fptoui <3 x float> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_f(<2 x float> %in) nounwind readnone alwaysinline {
+ %1 = fptoui <2 x float> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z14convert_ulong4Dv4_h(<4 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i8> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_h(<3 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i8> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_h(<2 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i8> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z14convert_ulong4Dv4_c(<4 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i8> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_c(<3 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i8> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_c(<2 x i8> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i8> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z14convert_ulong4Dv4_t(<4 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i16> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_t(<3 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i16> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_t(<2 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i16> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z14convert_ulong4Dv4_s(<4 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i16> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_s(<3 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i16> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_s(<2 x i16> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i16> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z14convert_ulong4Dv4_j(<4 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i32> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_j(<3 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i32> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_j(<2 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i32> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <4 x i64> @_Z14convert_ulong4Dv4_i(<4 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <4 x i32> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_i(<3 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <3 x i32> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <2 x i64> @_Z14convert_ulong2Dv2_i(<2 x i32> %in) nounwind readnone alwaysinline {
+ %1 = zext <2 x i32> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+
+define <2 x i64> @_Z14convert_ulong2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <2 x double> %in to <2 x i64>
+ ret <2 x i64> %1
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <3 x double> %in to <3 x i64>
+ ret <3 x i64> %1
+}
+define <4 x i64> @_Z14convert_ulong4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ %1 = fptosi <4 x double> %in to <4 x i64>
+ ret <4 x i64> %1
+}
+
+define <2 x i64> @_Z14convert_ulong2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ ret <2 x i64> %in
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ ret <3 x i64> %in
+}
+define <4 x i64> @_Z14convert_ulong4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ ret <4 x i64> %in
+}
+
+define <2 x i64> @_Z14convert_ulong2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ ret <2 x i64> %in
+}
+define <3 x i64> @_Z14convert_ulong3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ ret <3 x i64> %in
+}
+define <4 x i64> @_Z14convert_ulong4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ ret <4 x i64> %in
+}
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;; DOUBLE ;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+define <2 x double> @_Z15convert_double2Dv2_h(<2 x i8> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <2 x i8> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_h(<3 x i8> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <3 x i8> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_h(<4 x i8> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <4 x i8> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_c(<2 x i8> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <2 x i8> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_c(<3 x i8> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <3 x i8> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_c(<4 x i8> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <4 x i8> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_t(<2 x i16> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <2 x i16> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_t(<3 x i16> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <3 x i16> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_t(<4 x i16> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <4 x i16> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_s(<2 x i16> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <2 x i16> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_s(<3 x i16> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <3 x i16> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_s(<4 x i16> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <4 x i16> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_j(<2 x i32> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <2 x i32> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_j(<3 x i32> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <3 x i32> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_j(<4 x i32> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <4 x i32> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_i(<2 x i32> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <2 x i32> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_i(<3 x i32> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <3 x i32> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_i(<4 x i32> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <4 x i32> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_f(<2 x float> %in) nounwind readnone alwaysinline {
+ %1 = fpext <2 x float> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_f(<3 x float> %in) nounwind readnone alwaysinline {
+ %1 = fpext <3 x float> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_f(<4 x float> %in) nounwind readnone alwaysinline {
+ %1 = fpext <4 x float> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_d(<2 x double> %in) nounwind readnone alwaysinline {
+ ret <2 x double> %in
+}
+define <3 x double> @_Z15convert_double3Dv3_d(<3 x double> %in) nounwind readnone alwaysinline {
+ ret <3 x double> %in
+}
+define <4 x double> @_Z15convert_double4Dv4_d(<4 x double> %in) nounwind readnone alwaysinline {
+ ret <4 x double> %in
+}
+
+define <2 x double> @_Z15convert_double2Dv2_l(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <2 x i64> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_l(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <3 x i64> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_l(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = sitofp <4 x i64> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+define <2 x double> @_Z15convert_double2Dv2_y(<2 x i64> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <2 x i64> %in to <2 x double>
+ ret <2 x double> %1
+}
+define <3 x double> @_Z15convert_double3Dv3_y(<3 x i64> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <3 x i64> %in to <3 x double>
+ ret <3 x double> %1
+}
+define <4 x double> @_Z15convert_double4Dv4_y(<4 x i64> %in) nounwind readnone alwaysinline {
+ %1 = uitofp <4 x i64> %in to <4 x double>
+ ret <4 x double> %1
+}
+
+