| ;; #pragma OPENCL EXTENSION cl_khr_fp16 : enable |
| ;; half test() |
| ;; { |
| ;; half x = 0.1f; |
| ;; x += 2.0f; |
| ;; half y = x + x; |
| ;; return y; |
| ;; } |
| |
| ; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV |
| |
| ; CHECK-SPIRV-DAG: OpCapability Float16Buffer |
| ; CHECK-SPIRV-DAG: OpCapability Float16 |
| |
| define spir_func half @test() { |
| entry: |
| %x = alloca half, align 2 |
| %y = alloca half, align 2 |
| store half 0xH2E66, half* %x, align 2 |
| %0 = load half, half* %x, align 2 |
| %conv = fpext half %0 to float |
| %add = fadd float %conv, 2.000000e+00 |
| %conv1 = fptrunc float %add to half |
| store half %conv1, half* %x, align 2 |
| %1 = load half, half* %x, align 2 |
| %2 = load half, half* %x, align 2 |
| %add2 = fadd half %1, %2 |
| store half %add2, half* %y, align 2 |
| %3 = load half, half* %y, align 2 |
| ret half %3 |
| } |