[llvm-branch-commits] [clang] [llvm] [X86][ACE] Add x86_bsr type and Block Scale Register support (PR #208706)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jul 13 06:48:08 PDT 2026
mahesh-attarde wrote:
I understand use case where we use struct for bsr data, though it is not listed in spec.
I am not sure about concept of `no_bsr`, it is representing default bsr (0x7F)/OCP FP8 behavior.
I was thinking
```
void test_scaled_top4mxhbf8ps(__acetile *dst, __m512i a, __m512i b, __m512i lo, __m512i hi) {
__bsr scales = __bsr_make(lo, hi);
__tile_ace_top4mxhbf8ps(dst, a, b, scales, 7);
}
#define __tile_ace_top4fp8ps(dst, src1, src2, scales, imm) \
(*(dst) = __builtin_ia32_top4mxhbf8ps_internal( \
16, 64, 64, (imm), *(dst), (__v16si)(src1), (__v16si)(src2), \
__bsr_default()
void test_ace_bsr_top4fp8ps(__acetile *dst, __m512i a, __m512i b, __m512i lo, __m512i hi) {
__tile_ace_top4fp8ps(dst, a, b, 7);
}
```
lets ideate on making it convenient for ACE programmers.
* It would help if we can break down it into multiple issues, stacked-pr etc. something like
+ Enable bsr type
+ Enable intrinsics and isa
+ Enable dataflow
+ Optimize dataflow, diagnostics
+ Enable spilling
Ref: https://llvm.org/docs/GitHub.html#stacked-pull-requests
https://github.com/llvm/llvm-project/pull/208706
More information about the llvm-branch-commits
mailing list