| Tim Northover | f861de3 | 2014-07-18 08:43:24 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s |
| 2 | |
| 3 | declare float @llvm.convert.from.fp16.f32(i16) nounwind readnone |
| 4 | declare double @llvm.convert.from.fp16.f64(i16) nounwind readnone |
| 5 | |
| Tom Stellard | 79243d9 | 2014-10-01 17:15:17 +0000 | [diff] [blame^] | 6 | ; SI-LABEL: {{^}}test_convert_fp16_to_fp32: |
| Tim Northover | f861de3 | 2014-07-18 08:43:24 +0000 | [diff] [blame] | 7 | ; SI: BUFFER_LOAD_USHORT [[VAL:v[0-9]+]] |
| 8 | ; SI: V_CVT_F32_F16_e32 [[RESULT:v[0-9]+]], [[VAL]] |
| 9 | ; SI: BUFFER_STORE_DWORD [[RESULT]] |
| 10 | define void @test_convert_fp16_to_fp32(float addrspace(1)* noalias %out, i16 addrspace(1)* noalias %in) nounwind { |
| 11 | %val = load i16 addrspace(1)* %in, align 2 |
| 12 | %cvt = call float @llvm.convert.from.fp16.f32(i16 %val) nounwind readnone |
| 13 | store float %cvt, float addrspace(1)* %out, align 4 |
| 14 | ret void |
| 15 | } |
| 16 | |
| 17 | |
| Tom Stellard | 79243d9 | 2014-10-01 17:15:17 +0000 | [diff] [blame^] | 18 | ; SI-LABEL: {{^}}test_convert_fp16_to_fp64: |
| Tim Northover | f861de3 | 2014-07-18 08:43:24 +0000 | [diff] [blame] | 19 | ; SI: BUFFER_LOAD_USHORT [[VAL:v[0-9]+]] |
| 20 | ; SI: V_CVT_F32_F16_e32 [[RESULT32:v[0-9]+]], [[VAL]] |
| 21 | ; SI: V_CVT_F64_F32_e32 [[RESULT:v\[[0-9]+:[0-9]+\]]], [[RESULT32]] |
| 22 | ; SI: BUFFER_STORE_DWORDX2 [[RESULT]] |
| 23 | define void @test_convert_fp16_to_fp64(double addrspace(1)* noalias %out, i16 addrspace(1)* noalias %in) nounwind { |
| 24 | %val = load i16 addrspace(1)* %in, align 2 |
| 25 | %cvt = call double @llvm.convert.from.fp16.f64(i16 %val) nounwind readnone |
| 26 | store double %cvt, double addrspace(1)* %out, align 4 |
| 27 | ret void |
| 28 | } |