diff options
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU/bf16-math.ll')
-rw-r--r-- | llvm/test/CodeGen/AMDGPU/bf16-math.ll | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/bf16-math.ll b/llvm/test/CodeGen/AMDGPU/bf16-math.ll new file mode 100644 index 0000000..029604c --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/bf16-math.ll @@ -0,0 +1,51 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 +; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck --check-prefix=GCN %s + +; TODO: Add global-isel when it can support bf16 + +define amdgpu_ps void @llvm_log2_bf16_v(ptr addrspace(1) %out, bfloat %src) { +; GCN-LABEL: llvm_log2_bf16_v: +; GCN: ; %bb.0: +; GCN-NEXT: v_log_bf16_e32 v2, v2 +; GCN-NEXT: global_store_b16 v[0:1], v2, off +; GCN-NEXT: s_endpgm + %log = call bfloat @llvm.log2.bf16(bfloat %src) + store bfloat %log, ptr addrspace(1) %out, align 2 + ret void +} + +define amdgpu_ps void @llvm_log2_bf16_s(ptr addrspace(1) %out, bfloat inreg %src) { +; GCN-LABEL: llvm_log2_bf16_s: +; GCN: ; %bb.0: +; GCN-NEXT: v_log_bf16_e32 v2, s0 +; GCN-NEXT: global_store_b16 v[0:1], v2, off +; GCN-NEXT: s_endpgm + %log = call bfloat @llvm.log2.bf16(bfloat %src) + store bfloat %log, ptr addrspace(1) %out, align 2 + ret void +} + +define amdgpu_ps void @llvm_exp2_bf16_v(ptr addrspace(1) %out, bfloat %src) { +; GCN-LABEL: llvm_exp2_bf16_v: +; GCN: ; %bb.0: +; GCN-NEXT: v_exp_bf16_e32 v2, v2 +; GCN-NEXT: global_store_b16 v[0:1], v2, off +; GCN-NEXT: s_endpgm + %exp = call bfloat @llvm.exp2.bf16(bfloat %src) + store bfloat %exp, ptr addrspace(1) %out, align 2 + ret void +} + +define amdgpu_ps void @llvm_exp2_bf16_s(ptr addrspace(1) %out, bfloat inreg %src) { +; GCN-LABEL: llvm_exp2_bf16_s: +; GCN: ; %bb.0: +; GCN-NEXT: v_exp_bf16_e32 v2, s0 +; GCN-NEXT: global_store_b16 v[0:1], v2, off +; GCN-NEXT: s_endpgm + %exp = call bfloat @llvm.exp2.bf16(bfloat %src) + store bfloat %exp, ptr addrspace(1) %out, align 2 + ret void +} + +declare bfloat @llvm.log2.bf16(bfloat) +declare bfloat @llvm.exp2.bf16(bfloat) |