blob: e939676b82b86a4d8cb61bd58298673f5d641552 [file] [edit]
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5
// RUN: %clang_cc1 -triple amdgpu6.00-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple amdgpu8.03-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple amdgpu9.00-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple amdgpu9.50-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple amdgpu10.10-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple amdgpu11.00-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// RUN: %clang_cc1 -triple amdgpu12.50-amd-amdhsa-gnu -emit-llvm -o - %s | FileCheck %s
// CHECK-LABEL: define dso_local bfloat @div(
// CHECK-SAME: bfloat noundef [[A:%.*]], bfloat noundef [[B:%.*]]) #[[ATTR0:[0-9]+]] {
// CHECK-NEXT: [[ENTRY:.*:]]
// CHECK-NEXT: [[A_ADDR:%.*]] = alloca bfloat, align 2, addrspace(5)
// CHECK-NEXT: [[B_ADDR:%.*]] = alloca bfloat, align 2, addrspace(5)
// CHECK-NEXT: [[A_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[A_ADDR]] to ptr
// CHECK-NEXT: [[B_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[B_ADDR]] to ptr
// CHECK-NEXT: store bfloat [[A]], ptr [[A_ADDR_ASCAST]], align 2
// CHECK-NEXT: store bfloat [[B]], ptr [[B_ADDR_ASCAST]], align 2
// CHECK-NEXT: [[TMP0:%.*]] = load bfloat, ptr [[A_ADDR_ASCAST]], align 2
// CHECK-NEXT: [[TMP1:%.*]] = load bfloat, ptr [[B_ADDR_ASCAST]], align 2
// CHECK-NEXT: [[DIV:%.*]] = fdiv bfloat [[TMP0]], [[TMP1]]
// CHECK-NEXT: ret bfloat [[DIV]]
//
__bf16 div(__bf16 a, __bf16 b) {
return a / b;
}