| // RUN: %clang_cc1 %s -cl-std=cl3.0 -emit-llvm -o - -triple spir-unknown-unknown | FileCheck %s |
| // RUN: %clang_cc1 %s -cl-std=cl3.0 -emit-llvm -o - -triple spirv64-unknown-unknown | FileCheck %s |
| |
| kernel void test(global __bf16 *a, global __bf16 *b){ |
| // CHECK-LABEL: spir_kernel void @test( |
| // CHECK: fadd bfloat |
| // CHECK: fsub bfloat |
| // CHECK: fmul bfloat |
| // CHECK: fdiv bfloat |
| |
| *b += *a; |
| *b -= *a; |
| *b *= *a; |
| *b /= *a; |
| } |
| |
| typedef __bf16 __bf16v4 __attribute((ext_vector_type(4))); |
| |
| kernel void test_v4(global __bf16v4 *a, global __bf16v4 *b){ |
| // CHECK-LABEL: spir_kernel void @test_v4( |
| // CHECK: fadd <4 x bfloat> |
| // CHECK: fsub <4 x bfloat> |
| // CHECK: fmul <4 x bfloat> |
| // CHECK: fdiv <4 x bfloat> |
| |
| *b += *a; |
| *b -= *a; |
| *b *= *a; |
| *b /= *a; |
| } |
| |