[PATCH] D77090: AMDGPU/GlobalISel: Change intrinsic ID for _L to _LZ opt

Sebastian Neubauer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 31 06:37:12 PDT 2020


Flakebi accepted this revision.
Flakebi added a comment.
This revision is now accepted and ready to land.

> I think any operand changes should be done during legalization, and selection should be relatively simple. We already do more of this type of conversion during legalize, so I think it makes sense to consolidate it there.

Thanks for the explanation, looks good to me then.



================
Comment at: llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:3730-3731
     // base intrinsic opcode, but the current searchable tables only gives us
     // the final MI opcode. Eliminate the register here, and track with an
     // immediate 0 so the final selection will know to do the opcode change.
     if (mi_match(MI.getOperand(LodIdx).getReg(), *MRI, m_GFCst(ConstantLod))) {
----------------
Can you update the comment to reflect the changes?


================
Comment at: llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.ltolz.a16.ll:27
   ; GFX9:   [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32)
-  ; GFX9:   [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), 0, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0 :: (dereferenceable load 16 from custom "TargetCustom8")
+  ; GFX9:   [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), 0, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0 :: (dereferenceable load 16 from custom "TargetCustom8")
   ; GFX9:   [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)
----------------
The tests are outdated, they should not contain the 0 lod argument.


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

https://reviews.llvm.org/D77090





More information about the llvm-commits mailing list