blob: e1181e1e3e6a7b6dc54bf3278688d5455fc0bf20 [file] [log] [blame]
Matt Arsenault0ff50d42018-12-01 22:16:27 +00001// RUN: cp %s %t
2// RUN: %clang_cc1 -cl-std=CL1.2 -pedantic -Wall -fixit %t
3// RUN: %clang_cc1 -cl-std=CL1.2 -fsyntax-only -pedantic -Wall -Werror %t
4// RUN: %clang_cc1 -cl-std=CL1.2 -E -o - %t | FileCheck %s
5
Matt Arsenault58fc8082019-01-29 20:49:54 +00006typedef __attribute__((ext_vector_type(4))) char char4;
7typedef __attribute__((ext_vector_type(4))) short short4;
Matt Arsenault0ff50d42018-12-01 22:16:27 +00008typedef __attribute__((ext_vector_type(4))) int int4;
Matt Arsenault58fc8082019-01-29 20:49:54 +00009typedef __attribute__((ext_vector_type(4))) unsigned int uint4;
Matt Arsenault0ff50d42018-12-01 22:16:27 +000010typedef __attribute__((ext_vector_type(8))) int int8;
Matt Arsenault58fc8082019-01-29 20:49:54 +000011typedef __attribute__((ext_vector_type(4))) long long4;
12typedef __attribute__((ext_vector_type(4))) float float4;
13typedef __attribute__((ext_vector_type(4))) double double4;
Matt Arsenault0ff50d42018-12-01 22:16:27 +000014
15int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));
16
17
18void vector_fixits() {
19 printf("%v4f", (int4) 123);
Matt Arsenault58fc8082019-01-29 20:49:54 +000020 // CHECK: printf("%v4hld", (int4) 123);
Matt Arsenault0ff50d42018-12-01 22:16:27 +000021
22 printf("%v8d", (int4) 123);
Matt Arsenault58fc8082019-01-29 20:49:54 +000023 // CHECK: printf("%v4hld", (int4) 123);
Matt Arsenault0ff50d42018-12-01 22:16:27 +000024
25 printf("%v4d", (int8) 123);
Matt Arsenault58fc8082019-01-29 20:49:54 +000026 // CHECK: printf("%v8hld", (int8) 123);
Matt Arsenault0ff50d42018-12-01 22:16:27 +000027
28 printf("%v4f", (int8) 123);
Matt Arsenault58fc8082019-01-29 20:49:54 +000029 // CHECK: printf("%v8hld", (int8) 123);
30
31 printf("%v4ld", (int8) 123);
32 // CHECK: printf("%v8hld", (int8) 123);
33
34 printf("%v4hlf", (int4) 123);
35 // CHECK: printf("%v4hld", (int4) 123);
36
37 printf("%v8hld", (int4) 123);
38 // CHECK: printf("%v4hld", (int4) 123);
39
40 printf("%v4hld", (int8) 123);
41 // CHECK: printf("%v8hld", (int8) 123);
42
43 printf("%v4hlf", (int8) 123);
44 // CHECK: printf("%v8hld", (int8) 123);
45
46 printf("%v4hd", (int4) 123);
47 // CHECK: printf("%v4hld", (int4) 123);
48
49 printf("%v4hld", (short4) 123);
50 // CHECK: printf("%v4hd", (short4) 123);
51
52 printf("%v4ld", (short4) 123);
53 // CHECK: printf("%v4hd", (short4) 123);
54
55 printf("%v4hld", (long4) 123);
56 // CHECK: printf("%v4ld", (long4) 123);
57
58 printf("%v8f", (float4) 2.0f);
59 // CHECK: printf("%v4hlf", (float4) 2.0f);
60
61 printf("%v4f", (float4) 2.0f);
62 // CHECK: printf("%v4hlf", (float4) 2.0f);
63
64 printf("%v4lf", (double4) 2.0);
65 // CHECK: printf("%v4lf", (double4) 2.0);
66
67 /// FIXME: This should be fixed
68 printf("%v4hhd", (int4) 123);
69 // CHECK: printf("%v4hhd", (int4) 123);
70
71 /// FIXME: This should be fixed
72 printf("%v4hhd", (int8) 123);
73 // CHECK: printf("%v4hhd", (int8) 123);
Matt Arsenault0ff50d42018-12-01 22:16:27 +000074}