1; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SI %s
2; RUN: llc -march=amdgcn -mcpu=fiji -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
3
4; Make sure fdiv is promoted to f32.
5
6; GCN-LABEL: {{^}}fdiv_f16
7; GCN:     v_cvt_f32_f16
8; GCN:     v_cvt_f32_f16
9; GCN:     v_div_scale_f32
10; GCN-DAG: v_div_scale_f32
11; GCN-DAG: v_rcp_f32
12; GCN:     v_fma_f32
13; GCN:     v_fma_f32
14; GCN:     v_mul_f32
15; GCN:     v_fma_f32
16; GCN:     v_fma_f32
17; GCN:     v_fma_f32
18; GCN:     v_div_fmas_f32
19; GCN:     v_div_fixup_f32
20; GCN:     v_cvt_f16_f32
21define void @fdiv_f16(
22    half addrspace(1)* %r,
23    half addrspace(1)* %a,
24    half addrspace(1)* %b) {
25entry:
26  %a.val = load half, half addrspace(1)* %a
27  %b.val = load half, half addrspace(1)* %b
28  %r.val = fdiv half %a.val, %b.val
29  store half %r.val, half addrspace(1)* %r
30  ret void
31}
32