[PATCH] D152538: `G_ATOMICRMW_NAND` failure in legalizer

niwin anto via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 9 09:49:19 PDT 2023


niwinanto added a comment.

In D152538#4409120 <https://reviews.llvm.org/D152538#4409120>, @arsenm wrote:

> In D152538#4409114 <https://reviews.llvm.org/D152538#4409114>, @niwinanto wrote:
>
>> In D152538#4408800 <https://reviews.llvm.org/D152538#4408800>, @arsenm wrote:
>>
>>> Needs testcase
>>
>> I am not sure how to trigger this error.  I don't see any targets legalizing G_ATOMICRMW_NAND. Only AMD GPU has G_ATOMICRMW_NAND in legalizerInfo, but it is lowered. In our use case we are legalizing it and facing this issue.
>
> You didn't post any patch context so I'm not sure what you're specifically handling here. You just need a mir test with G_ATOMICRMW_NAND and/or an IR test with atomicrmw nand with the appropriate type

Apologies, I could not explain correctly.

For example

  %0 = atomicrmw nand ptr @sc, i8 1 seq_cst, align 1

to

  %0:_(s8) = G_ATOMICRMW_NAND %1(p0), %2 :: (load store seq_cst (s8) on @s    c)

In our use case, s8 for G_ATOMICRMW_NAND is not supported. Hence, trying to widen it to s32.
However, `LegalizerHelper::widenScalar(...)` does not handle G_ATOMICRMW_NAND, but other G_ATOMICRMW*.

Why I cannot add test/ trigger this error, no other target legalize G_ATOMICRMW_NAND, hence I cannot invoke `LegalizerHelper::widenScalar(...)`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152538



More information about the llvm-commits mailing list