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