// RUN: %clang_cc1 %s -emit-llvm -o - -triple spir-unknown-unknown | FileCheck %s

#pragma OPENCL EXTENSION cl_khr_fp16 : enable


half test()
{
   half x = 0.1f;
   x+=2.0f;
   x-=2.0f;
   half y = x + x;
   half z = y * 1.0f;
   return z;
// CHECK: half 0xH3260
}

// CHECK-LABEL: @test_inc(half %x)
// CHECK: [[INC:%.*]] = fadd half %x, 0xH3C00
// CHECK: ret half [[INC]]
half test_inc(half x)
{
  return ++x;
}

__attribute__((overloadable)) int min(int, int);
__attribute__((overloadable)) half min(half, half);
__attribute__((overloadable)) float min(float, float);

__kernel void foo( __global half* buf, __global float* buf2 )
{
    buf[0] = min( buf[0], 1.5h );
// CHECK: half 0xH3E00
    buf[0] = min( buf2[0], 1.5f );
// CHECK: float 1.500000e+00

    const half one = 1.6666;
    buf[1] = min( buf[1], one );
// CHECK: half 0xH3EAB
}

