saiislam added a comment.

In D80804#2123183 <https://reviews.llvm.org/D80804#2123183>, @JonChesterfield 
wrote:

> This patch declares the clang builtin as acting on signed values, but the IR 
> intrinsic maps to an instruction which does an unsigned comparison. We don't 
> have ISA support for a signed comparison equivalent. Addition is the same 
> operation on signed or unsigned integers, but signed integer comparison is 
> not equivalent to unsigned integer comparison.
>
>   // 32bit
>    tmp = MEM[ADDR];
>    MEM[ADDR] = (tmp >= DATA) ? 0 : tmp + 1; // unsigned
>   compare
>    RETURN_DATA = tmp.
>
>
> The builtins should be changed to take unsigned values, optionally making 
> that clear from the naming scheme, perhaps  `__amdgcn_builtin_atomic_dec_u32`.
>
> Apologies for not reviewing this the first time around.


I have created D83121 <https://reviews.llvm.org/D83121> for this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80804/new/

https://reviews.llvm.org/D80804



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D80804: [AMDGPU] ... Jon Chesterfield via Phabricator via cfe-commits
    • [PATCH] D80804: [AMD... Saiyedul Islam via Phabricator via cfe-commits

Reply via email to