[PATCH] D146287: [AMDGPU][GISel] Add inverse ballot intrinsic

Jessica Del via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 30 04:12:08 PDT 2023


OutOfCache marked 3 inline comments as done.
OutOfCache added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/SIISelLowering.cpp:4502-4523
+    for (unsigned i = 0; i < NumParts; ++i) {
+      Register DstPart = MRI.createVirtualRegister(&AMDGPU::SReg_32RegClass);
+      // 64-bit masks need to be split into two 32-bit parts.
+      // We need to address the subregs for the readfirstlanes
+      int SubReg = Is32Mask ? 0 : (AMDGPU::sub0 + i * 8);
+      BuildMI(*BB, &MI, DL, TII->get(AMDGPU::V_READFIRSTLANE_B32),
+              Is32Mask ? DstReg : DstPart)
----------------
nhaehnle wrote:
> This entire sequence could probably be replaced by just calling SIInstrInfo::readlaneVGPRToSGPR.
Good call. Would it make sense to also use this method for other pseudos that generate readfirstlanes here? Like `S_ADD_CO_PSEUDO`. In another change, of course.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146287



More information about the llvm-commits mailing list