[PATCH] D64856: [MIPS GlobalISel] ClampScalar and select pointer G_ICMP

Petar Avramovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 19 13:56:19 PDT 2019


Petar.Avramovic added a comment.

Hello @brzycki, I will take a closer look on Monday.
Quick guess is that swapping lines 310,311 in AArch64LegalizerInfo.cpp (rules for G_ICMP) could fix the problem:
i.e. to change

  .clampScalar(0, s32, s32)
  .clampScalar(1, s32, s64)

into this:

  .clampScalar(1, s32, s64)
  .clampScalar(0, s32, s32)

I assumed that G_ICMP gets narrowScalared in default form with s1 as a result, but it looks like that is not always the case. 
I will try to fix this in narrow scalar so that there is no need for specific ordering of legalization rules for some generic opcodes.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D64856





More information about the llvm-commits mailing list