Issue |
94116
|
Summary |
[AMDGPU] v_pk_fmac_f16 is broken with inline constants on gfx11
|
Labels |
new issue
|
Assignees |
|
Reporter |
DadSchoorse
|
I'm using LLVM version 398162ddbcf741c49e86bef2ef4aaa3fd0213916
I tested inline constant behavior of `v_pk_fma_f16` on Navi31 and Raphael. For gfx11 (and I assume all newer hardware), the fp16 inline constant is duplicated into the high bits. For gfx10.3 (and I assume all older hardware), the upper half always reads zero. LLVM seems to apply the gfx10 behavior for all generations.
Current llvm-mc assembler behavior for gfx11:
```
v_pk_fmac_f16 v0, 0x3C003C00, v1 // 0xff, 0x02, 0x00, 0x78, 0x00, 0x3c, 0x00, 0x3c
v_pk_fmac_f16 v0, 0x3C00, v1 // 0xf2, 0x02, 0x00, 0x78
```
Expected behavior according to my Navi31 tests:
```
v_pk_fmac_f16 v0, 0x3C003C00, v1 // 0xf2, 0x02, 0x00, 0x78
v_pk_fmac_f16 v0, 0x3C00, v1 // 0xff, 0x02, 0x00, 0x78, 0x00, 0x3c, 0x00, 0x00
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs