diff options
author | Jason Sams <jsams@google.com> | 2014-02-24 19:17:33 -0800 |
---|---|---|
committer | Jason Sams <jsams@google.com> | 2014-02-28 01:47:57 +0000 |
commit | d8c4983b1a6c975ef3a691bde0a62c34dda1197e (patch) | |
tree | 5b5b756fa321ab6b9e781ebad997a3ae18bc0f08 /driver | |
parent | e926ff70839ae10e78525a021a0c79c9d080cb35 (diff) | |
download | rs-d8c4983b1a6c975ef3a691bde0a62c34dda1197e.tar.gz |
Add long & double conversions.
Change-Id: I236fb3d8cfed73fe8437c39a27e10f0d27a48ba1
Diffstat (limited to 'driver')
-rw-r--r-- | driver/runtime/convert.ll | 664 |
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 +} + + |