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

Reply via email to