10ff50d49SMatt Arsenault// RUN: cp %s %t 2*6f68048dSEric Liu// RUN: %clang_cc1 -cl-std=CL1.2 -pedantic -Wall -fixit %t -triple x86_64-unknown-linux-gnu 3*6f68048dSEric Liu// RUN: %clang_cc1 -cl-std=CL1.2 -fsyntax-only -pedantic -Wall -Werror %t -triple x86_64-unknown-linux-gnu 4*6f68048dSEric Liu// RUN: %clang_cc1 -cl-std=CL1.2 -E -o - %t -triple x86_64-unknown-linux-gnu | FileCheck %s 50ff50d49SMatt Arsenault 6a4c33ecdSMatt Arsenault#pragma OPENCL EXTENSION cl_khr_fp64 : enable 7a4c33ecdSMatt Arsenault 858fc8082SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) char char4; 958fc8082SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) short short4; 100ff50d49SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) int int4; 1158fc8082SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) unsigned int uint4; 120ff50d49SMatt Arsenaulttypedef __attribute__((ext_vector_type(8))) int int8; 1358fc8082SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) long long4; 1458fc8082SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) float float4; 1558fc8082SMatt Arsenaulttypedef __attribute__((ext_vector_type(4))) double double4; 160ff50d49SMatt Arsenault 170ff50d49SMatt Arsenaultint printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))); 180ff50d49SMatt Arsenault 190ff50d49SMatt Arsenault 200ff50d49SMatt Arsenaultvoid vector_fixits() { 210ff50d49SMatt Arsenault printf("%v4f", (int4) 123); 2258fc8082SMatt Arsenault // CHECK: printf("%v4hld", (int4) 123); 230ff50d49SMatt Arsenault 240ff50d49SMatt Arsenault printf("%v8d", (int4) 123); 2558fc8082SMatt Arsenault // CHECK: printf("%v4hld", (int4) 123); 260ff50d49SMatt Arsenault 270ff50d49SMatt Arsenault printf("%v4d", (int8) 123); 2858fc8082SMatt Arsenault // CHECK: printf("%v8hld", (int8) 123); 290ff50d49SMatt Arsenault 300ff50d49SMatt Arsenault printf("%v4f", (int8) 123); 3158fc8082SMatt Arsenault // CHECK: printf("%v8hld", (int8) 123); 3258fc8082SMatt Arsenault 3358fc8082SMatt Arsenault printf("%v4ld", (int8) 123); 3458fc8082SMatt Arsenault // CHECK: printf("%v8hld", (int8) 123); 3558fc8082SMatt Arsenault 3658fc8082SMatt Arsenault printf("%v4hlf", (int4) 123); 3758fc8082SMatt Arsenault // CHECK: printf("%v4hld", (int4) 123); 3858fc8082SMatt Arsenault 3958fc8082SMatt Arsenault printf("%v8hld", (int4) 123); 4058fc8082SMatt Arsenault // CHECK: printf("%v4hld", (int4) 123); 4158fc8082SMatt Arsenault 4258fc8082SMatt Arsenault printf("%v4hld", (int8) 123); 4358fc8082SMatt Arsenault // CHECK: printf("%v8hld", (int8) 123); 4458fc8082SMatt Arsenault 4558fc8082SMatt Arsenault printf("%v4hlf", (int8) 123); 4658fc8082SMatt Arsenault // CHECK: printf("%v8hld", (int8) 123); 4758fc8082SMatt Arsenault 4858fc8082SMatt Arsenault printf("%v4hd", (int4) 123); 4958fc8082SMatt Arsenault // CHECK: printf("%v4hld", (int4) 123); 5058fc8082SMatt Arsenault 5158fc8082SMatt Arsenault printf("%v4hld", (short4) 123); 5258fc8082SMatt Arsenault // CHECK: printf("%v4hd", (short4) 123); 5358fc8082SMatt Arsenault 5458fc8082SMatt Arsenault printf("%v4ld", (short4) 123); 5558fc8082SMatt Arsenault // CHECK: printf("%v4hd", (short4) 123); 5658fc8082SMatt Arsenault 5758fc8082SMatt Arsenault printf("%v4hld", (long4) 123); 5858fc8082SMatt Arsenault // CHECK: printf("%v4ld", (long4) 123); 5958fc8082SMatt Arsenault 6058fc8082SMatt Arsenault printf("%v8f", (float4) 2.0f); 6158fc8082SMatt Arsenault // CHECK: printf("%v4hlf", (float4) 2.0f); 6258fc8082SMatt Arsenault 6358fc8082SMatt Arsenault printf("%v4f", (float4) 2.0f); 6458fc8082SMatt Arsenault // CHECK: printf("%v4hlf", (float4) 2.0f); 6558fc8082SMatt Arsenault 6658fc8082SMatt Arsenault printf("%v4lf", (double4) 2.0); 6758fc8082SMatt Arsenault // CHECK: printf("%v4lf", (double4) 2.0); 6858fc8082SMatt Arsenault 6958fc8082SMatt Arsenault /// FIXME: This should be fixed 7058fc8082SMatt Arsenault printf("%v4hhd", (int4) 123); 7158fc8082SMatt Arsenault // CHECK: printf("%v4hhd", (int4) 123); 7258fc8082SMatt Arsenault 7358fc8082SMatt Arsenault /// FIXME: This should be fixed 7458fc8082SMatt Arsenault printf("%v4hhd", (int8) 123); 7558fc8082SMatt Arsenault // CHECK: printf("%v4hhd", (int8) 123); 760ff50d49SMatt Arsenault} 77