mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 19:16:05 +00:00

Because half is limited to the `cl_khr_fp16` extension being enabled, `DefaultLvalueConversion` can fail when it's not enabled. The original assumption that it will never fail is therefore wrong now. Fixes: PR47976 Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D103175
16 lines
537 B
Plaintext
16 lines
537 B
Plaintext
//RUN: %clang_cc1 %s -triple spir -verify -fsyntax-only
|
|
|
|
#pragma OPENCL EXTENSION cl_khr_fp16 : disable
|
|
|
|
typedef half half2 __attribute__((ext_vector_type(2)));
|
|
|
|
half f(half2 h2) { // expected-error{{declaring function return value of type 'half' is not allowed ; did you forget * ?}}
|
|
return h2.s0; // expected-error{{loading directly from pointer to type '__private half' requires cl_khr_fp16. Use vector data load builtin functions instead}}
|
|
}
|
|
|
|
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
|
|
|
half f(half2 h2) {
|
|
return h2.s0;
|
|
}
|