[llvm] [GlobalISel] support lowering of G_SHUFFLEVECTOR with pointer args (PR #141959)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri May 30 00:05:14 PDT 2025


================
@@ -0,0 +1,22 @@
+# RUN: llc -march=amdgcn -run-pass=legalizer -verify-machineinstrs %s -o -
+
+--- |
+  define i32 @test() {
+    unreachable
+  }
+...
+---
+name:            test
+tracksRegLiveness: true
+body: |
+  bb.0:
+    %0:_(p0) = G_CONSTANT i64 0
+    %1:_(<2 x p0>) = G_BUILD_VECTOR %0:_(p0), %0:_(p0)
+    %2:_(<2 x p0>) = G_LOAD %0:_(p0) :: (load (<2 x p0>))
+    %3:_(p0) = G_SHUFFLE_VECTOR %2:_(<2 x p0>), %1:_, shufflemask(0)
+    %4:_(s32), %5:_(s32) = G_UNMERGE_VALUES %3:_(p0)
+    $vgpr0 = COPY %4:_(s32)
+    $vgpr1 = COPY %5:_(s32)
+    SI_RETURN implicit $vgpr0, implicit $vgpr1
+...
+
----------------
arsenm wrote:

Test belongs in GlobalISel subdirectory 

https://github.com/llvm/llvm-project/pull/141959


More information about the llvm-commits mailing list