[PATCH] D152538: `G_ATOMICRMW_NAND` failure in legalizer

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 9 09:54:32 PDT 2023


arsenm added a comment.

In D152538#4409230 <https://reviews.llvm.org/D152538#4409230>, @niwinanto wrote:

> 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(...)`.

I think ppc or mips would use this, plus there's always unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp


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