1// RUN: %clang_cc1 %s -emit-llvm -o - -triple spir-unknown-unknown | FileCheck %s 2 3#pragma OPENCL EXTENSION cl_khr_fp16 : enable 4 5 6half test() 7{ 8 half x = 0.1f; 9 x+=2.0f; 10 x-=2.0f; 11 half y = x + x; 12 half z = y * 1.0f; 13 return z; 14// CHECK: half 0xH3260 15} 16 17// CHECK-LABEL: @test_inc(half %x) 18// CHECK: [[INC:%.*]] = fadd half %x, 0xH3C00 19// CHECK: ret half [[INC]] 20half test_inc(half x) 21{ 22 return ++x; 23} 24 25__attribute__((overloadable)) int min(int, int); 26__attribute__((overloadable)) half min(half, half); 27__attribute__((overloadable)) float min(float, float); 28 29__kernel void foo( __global half* buf, __global float* buf2 ) 30{ 31 buf[0] = min( buf[0], 1.5h ); 32// CHECK: half 0xH3E00 33 buf[0] = min( buf2[0], 1.5f ); 34// CHECK: float 1.500000e+00 35 36 const half one = 1.6666; 37 buf[1] = min( buf[1], one ); 38// CHECK: half 0xH3EAB 39} 40 41