blob: 72f98a4ace9ff131181cb3eb539b2489da89b02e [file] [log] [blame]
Tanya Lattner61eee0c2011-06-04 00:47:47 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
2#pragma OPENCL EXTENSION cl_khr_fp64 : enable
3
4void test_astype() {
5 float f = 1.0f;
6 unsigned int i = __builtin_astype(f, unsigned int);
7
8 typedef __attribute__(( ext_vector_type(4) )) int int4;
9 typedef __attribute__(( ext_vector_type(3) )) float float3;
10 typedef __attribute__(( ext_vector_type(4) )) float float4;
11 typedef __attribute__(( ext_vector_type(4) )) double double4;
12
13 float4 f4;
Stephen Hines6bcf27b2014-05-29 04:14:42 -070014 double4 d4 = __builtin_astype(f4, double4); // expected-error{{invalid reinterpretation: sizes of 'double4' (vector of 4 'double' values) and 'float4' (vector of 4 'float' values) must match}}
Tanya Lattner61eee0c2011-06-04 00:47:47 +000015
16 // Verify int4->float3, float3->int4 works.
17 int4 i4;
18 float3 f3 = __builtin_astype(i4, float3);
19 i4 = __builtin_astype(f3, int4);
Peter Collingbourneaf9cddf2011-06-08 15:15:17 +000020}